summaryrefslogtreecommitdiff
path: root/keyboards/mf68
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mf68')
0 files changed, 0 insertions, 0 deletions
width='100%'> -rw-r--r--cleopatre/buildroot/Makefile515
-rw-r--r--cleopatre/buildroot/TODO14
-rw-r--r--cleopatre/buildroot/docs/Glibc_vs_uClibc.html240
-rw-r--r--cleopatre/buildroot/docs/README51
-rw-r--r--cleopatre/buildroot/docs/README.diskimage37
-rw-r--r--cleopatre/buildroot/docs/about.html26
-rw-r--r--cleopatre/buildroot/docs/buildroot.html1090
-rw-r--r--cleopatre/buildroot/docs/copyright.txt29
-rw-r--r--cleopatre/buildroot/docs/developer.html71
-rw-r--r--cleopatre/buildroot/docs/docs.html31
-rw-r--r--cleopatre/buildroot/docs/download.html31
-rw-r--r--cleopatre/buildroot/docs/footer.html20
-rw-r--r--cleopatre/buildroot/docs/header.html80
-rw-r--r--cleopatre/buildroot/docs/images/busybox1.pngbin0 -> 10913 bytes-rw-r--r--cleopatre/buildroot/docs/images/valid-html401.pngbin0 -> 1950 bytes-rw-r--r--cleopatre/buildroot/docs/index.html1
-rw-r--r--cleopatre/buildroot/docs/lists.html34
-rw-r--r--cleopatre/buildroot/docs/news.html37
-rw-r--r--cleopatre/buildroot/docs/patches.html43
-rw-r--r--cleopatre/buildroot/docs/stylesheet.css65
-rw-r--r--cleopatre/buildroot/docs/subversion.html40
-rw-r--r--cleopatre/buildroot/package/Config.in495
-rw-r--r--cleopatre/buildroot/package/Makefile.autotools.in397
-rw-r--r--cleopatre/buildroot/package/Makefile.in357
-rw-r--r--cleopatre/buildroot/package/ace_of_penguins/Config.in11
-rw-r--r--cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins-1.2-update.patch10493
-rw-r--r--cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins.mk20
-rw-r--r--cleopatre/buildroot/package/acpid/Config.in8
-rw-r--r--cleopatre/buildroot/package/acpid/acpid-sign-warning.patch11
-rw-r--r--cleopatre/buildroot/package/acpid/acpid-socket-path.patch11
-rw-r--r--cleopatre/buildroot/package/acpid/acpid.mk48
-rw-r--r--cleopatre/buildroot/package/alsa-lib/Config.in7
-rw-r--r--cleopatre/buildroot/package/alsa-lib/alsa-lib.mk87
-rw-r--r--cleopatre/buildroot/package/alsa-utils/Config.in77
-rw-r--r--cleopatre/buildroot/package/alsa-utils/alsa-utils.mk96
-rw-r--r--cleopatre/buildroot/package/alsamixergui/Config.in6
-rw-r--r--cleopatre/buildroot/package/alsamixergui/alsamixergui.mk18
-rw-r--r--cleopatre/buildroot/package/alsamixergui/alsamixergui_0.9.0rc2-1-7.patch40
-rw-r--r--cleopatre/buildroot/package/argus/Config.in10
-rw-r--r--cleopatre/buildroot/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch1278
-rw-r--r--cleopatre/buildroot/package/argus/argus.mk69
-rw-r--r--cleopatre/buildroot/package/asterisk/Config.in12
-rw-r--r--cleopatre/buildroot/package/asterisk/asterisk.mk89
-rw-r--r--cleopatre/buildroot/package/asterisk/asterisk_no_res_ninit.patch12
-rw-r--r--cleopatre/buildroot/package/at/Config.in9
-rw-r--r--cleopatre/buildroot/package/at/at-crosscompile.patch83
-rw-r--r--cleopatre/buildroot/package/at/at.mk77
-rw-r--r--cleopatre/buildroot/package/atk/Config.in9
-rw-r--r--cleopatre/buildroot/package/atk/atk.mk67
-rw-r--r--cleopatre/buildroot/package/aumix/Config.in12
-rw-r--r--cleopatre/buildroot/package/aumix/aumix.mk64
-rw-r--r--cleopatre/buildroot/package/autoconf/Config.in7
-rw-r--r--cleopatre/buildroot/package/autoconf/autoconf.mk138
-rw-r--r--cleopatre/buildroot/package/automake/Config.in7
-rw-r--r--cleopatre/buildroot/package/automake/automake.mk141
-rw-r--r--cleopatre/buildroot/package/avahi/Config.in34
-rwxr-xr-xcleopatre/buildroot/package/avahi/S05avahi-setup.sh16
-rwxr-xr-xcleopatre/buildroot/package/avahi/S50avahi-daemon20
-rw-r--r--cleopatre/buildroot/package/avahi/autoipd-perms.patch11
-rw-r--r--cleopatre/buildroot/package/avahi/avahi.mk204
-rwxr-xr-xcleopatre/buildroot/package/avahi/busybox-udhcpc-default.script52
-rw-r--r--cleopatre/buildroot/package/avahi/libdir-la.patch77
-rw-r--r--cleopatre/buildroot/package/avahi/uclibc.patch19
-rw-r--r--cleopatre/buildroot/package/axel/Config.in6
-rw-r--r--cleopatre/buildroot/package/axel/axel.mk55
-rw-r--r--cleopatre/buildroot/package/bash/Config.in7
-rw-r--r--cleopatre/buildroot/package/bash/bash.mk107
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00147
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00248
-rw-r--r--cleopatre/buildroot/package/bash/bash32-003147
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00496
-rw-r--r--cleopatre/buildroot/package/bash/bash32-005223
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00645
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00755
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00848
-rw-r--r--cleopatre/buildroot/package/bash/bash32-00961
-rw-r--r--cleopatre/buildroot/package/bash/bash32-010207
-rw-r--r--cleopatre/buildroot/package/bash/bash32-011138
-rw-r--r--cleopatre/buildroot/package/bash/bash32-01296
-rw-r--r--cleopatre/buildroot/package/bash/bash32-01365
-rw-r--r--cleopatre/buildroot/package/bash/bash32-014307
-rw-r--r--cleopatre/buildroot/package/bash/bash32-01595
-rw-r--r--cleopatre/buildroot/package/bash/bash32-01652
-rw-r--r--cleopatre/buildroot/package/bash/bash32-01785
-rw-r--r--cleopatre/buildroot/package/bash/bash32-01898
-rw-r--r--cleopatre/buildroot/package/bash/bash32-019343
-rw-r--r--cleopatre/buildroot/package/bash/bash32-020183
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02172
-rw-r--r--cleopatre/buildroot/package/bash/bash32-022126
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02351
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02477
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02579
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02682
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02785
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02860
-rw-r--r--cleopatre/buildroot/package/bash/bash32-02952
-rw-r--r--cleopatre/buildroot/package/bash/bash32-03050
-rw-r--r--cleopatre/buildroot/package/bash/bash32-03162
-rw-r--r--cleopatre/buildroot/package/bash/bash32-03247
-rw-r--r--cleopatre/buildroot/package/bash/bash32-03388
-rw-r--r--cleopatre/buildroot/package/bash/bash32-remove-bzero-dependancy.patch64
-rw-r--r--cleopatre/buildroot/package/beecrypt/Config.in6
-rw-r--r--cleopatre/buildroot/package/beecrypt/beecrypt-4.1.2_no-cxx-glue.patch12
-rw-r--r--cleopatre/buildroot/package/beecrypt/beecrypt.mk18
-rw-r--r--cleopatre/buildroot/package/berkeleydb/Config.in7
-rw-r--r--cleopatre/buildroot/package/berkeleydb/berkeleydb.mk101
-rw-r--r--cleopatre/buildroot/package/bind/Config.in21
-rw-r--r--cleopatre/buildroot/package/bind/bind-cross-fix.patch11
-rw-r--r--cleopatre/buildroot/package/bind/bind.mk101
-rw-r--r--cleopatre/buildroot/package/bind/bind.sysvinit56
-rw-r--r--cleopatre/buildroot/package/bison/Config.in8
-rw-r--r--cleopatre/buildroot/package/bison/bison.mk82
-rwxr-xr-xcleopatre/buildroot/package/bison/yacc2
-rw-r--r--cleopatre/buildroot/package/blackbox/Config.in10
-rw-r--r--cleopatre/buildroot/package/blackbox/blackbox-0.70.1-configure.patch15
-rw-r--r--cleopatre/buildroot/package/blackbox/blackbox.mk23
-rw-r--r--cleopatre/buildroot/package/boa/Config.in7
-rw-r--r--cleopatre/buildroot/package/boa/boa-config.site-i3861
-rw-r--r--cleopatre/buildroot/package/boa/boa.conf187
-rw-r--r--cleopatre/buildroot/package/boa/boa.mk86
-rw-r--r--cleopatre/buildroot/package/boa/mime.types205
-rw-r--r--cleopatre/buildroot/package/bootutils/Config.in10
-rw-r--r--cleopatre/buildroot/package/bootutils/bootutils.mk15
-rw-r--r--cleopatre/buildroot/package/bridge-utils/Config.in7
-rw-r--r--cleopatre/buildroot/package/bridge-utils/bridge.mk71
-rw-r--r--cleopatre/buildroot/package/bridge-utils/bridge.patch11
-rw-r--r--cleopatre/buildroot/package/bsdiff/Config.in8
-rw-r--r--cleopatre/buildroot/package/bsdiff/bsdiff.mk54
-rw-r--r--cleopatre/buildroot/package/buildroot-libtool.patch86
-rw-r--r--cleopatre/buildroot/package/busybox/Config.in110
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.11.1-basename.patch9
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.11.1-modutils.patch12
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.11.1-tar.patch53
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.11.x.config851
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.2.2.1-max_host_len_40.patch61
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.2.2.1.config643
-rw-r--r--cleopatre/buildroot/package/busybox/busybox-1.6.0.config690
-rw-r--r--cleopatre/buildroot/package/busybox/busybox.mk153
-rw-r--r--cleopatre/buildroot/package/busybox/initramfs.mk149
-rw-r--r--cleopatre/buildroot/package/bzip2/Config.in9
-rw-r--r--cleopatre/buildroot/package/bzip2/bzip2.mk120
-rw-r--r--cleopatre/buildroot/package/cairo/Config.in15
-rw-r--r--cleopatre/buildroot/package/cairo/cairo.mk51
-rw-r--r--cleopatre/buildroot/package/cairo/old_patches/0001-Add-autoconf-macro-AX_C_FLOAT_WORDS_BIGENDIAN.patch103
-rw-r--r--cleopatre/buildroot/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch79
-rw-r--r--cleopatre/buildroot/package/config/Makefile40
-rw-r--r--cleopatre/buildroot/package/config/Makefile.kconfig279
-rw-r--r--cleopatre/buildroot/package/config/POTFILES.in5
-rw-r--r--cleopatre/buildroot/package/config/README.buildroot222
-rwxr-xr-xcleopatre/buildroot/package/config/check.sh14
-rw-r--r--cleopatre/buildroot/package/config/conf.c631
-rw-r--r--cleopatre/buildroot/package/config/confdata.c824
-rw-r--r--cleopatre/buildroot/package/config/expr.c1100
-rw-r--r--cleopatre/buildroot/package/config/expr.h200
-rw-r--r--cleopatre/buildroot/package/config/foo.h12
-rw-r--r--cleopatre/buildroot/package/config/gconf.c1630
-rw-r--r--cleopatre/buildroot/package/config/gconf.glade648
-rw-r--r--cleopatre/buildroot/package/config/images.c326
-rw-r--r--cleopatre/buildroot/package/config/kconfig-language.txt303
-rw-r--r--cleopatre/buildroot/package/config/kconfig-to-buildroot2.patch1425
-rw-r--r--cleopatre/buildroot/package/config/kconfig_load.c35
-rw-r--r--cleopatre/buildroot/package/config/kxgettext.c229
-rw-r--r--cleopatre/buildroot/package/config/lex.zconf.c_shipped2369
-rw-r--r--cleopatre/buildroot/package/config/lkc.h154
-rw-r--r--cleopatre/buildroot/package/config/lkc_proto.h45
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/BIG.FAT.WARNING4
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/check-lxdialog.sh78
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/checklist.c325
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/dialog.h225
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/inputbox.c238
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/menubox.c434
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/textbox.c391
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/util.c645
-rw-r--r--cleopatre/buildroot/package/config/lxdialog/yesno.c114
-rw-r--r--cleopatre/buildroot/package/config/mconf.c967
-rw-r--r--cleopatre/buildroot/package/config/menu.c431
-rw-r--r--cleopatre/buildroot/package/config/qconf.cc1760
-rw-r--r--cleopatre/buildroot/package/config/qconf.h334
-rw-r--r--cleopatre/buildroot/package/config/symbol.c878
-rw-r--r--cleopatre/buildroot/package/config/util.c218
-rw-r--r--cleopatre/buildroot/package/config/zconf.gperf44
-rw-r--r--cleopatre/buildroot/package/config/zconf.hash.c_shipped234
-rw-r--r--cleopatre/buildroot/package/config/zconf.l350
-rw-r--r--cleopatre/buildroot/package/config/zconf.tab.c_shipped2479
-rw-r--r--cleopatre/buildroot/package/config/zconf.y703
-rw-r--r--cleopatre/buildroot/package/coreutils/Config.in15
-rw-r--r--cleopatre/buildroot/package/coreutils/coreutils.mk156
-rw-r--r--cleopatre/buildroot/package/cups/Config.in7
-rw-r--r--cleopatre/buildroot/package/cups/cups-1.3.5-mantohtml.patch11
-rw-r--r--cleopatre/buildroot/package/cups/cups-1.3.5-no-tests-man.patch13
-rw-r--r--cleopatre/buildroot/package/cups/cups.mk70
-rw-r--r--cleopatre/buildroot/package/curl/Config.in15
-rw-r--r--cleopatre/buildroot/package/curl/curl-7.10.4-path.patch13
-rw-r--r--cleopatre/buildroot/package/curl/curl-7.12.0-nousr.patch16
-rw-r--r--cleopatre/buildroot/package/curl/curl-7.13.1-2005-3185.patch16
-rw-r--r--cleopatre/buildroot/package/curl/curl-7.13.1-auth.patch48
-rw-r--r--cleopatre/buildroot/package/curl/curl-7.13.1-cve-2005-4077.patch23
-rw-r--r--cleopatre/buildroot/package/curl/curl.mk97
-rw-r--r--cleopatre/buildroot/package/customize/Config.in6
-rw-r--r--cleopatre/buildroot/package/customize/customize.mk32
-rw-r--r--cleopatre/buildroot/package/cvs/Config.in14
-rw-r--r--cleopatre/buildroot/package/cvs/cvs.mk94
-rw-r--r--cleopatre/buildroot/package/dash/Config.in7
-rw-r--r--cleopatre/buildroot/package/dash/dash.mk73
-rw-r--r--cleopatre/buildroot/package/database/Config.in8
-rw-r--r--cleopatre/buildroot/package/database/database.mk1
-rw-r--r--cleopatre/buildroot/package/database/mysql_client/Config.in4
-rw-r--r--cleopatre/buildroot/package/database/mysql_client/mysql_client.mk30
-rw-r--r--cleopatre/buildroot/package/database/sqlite/Config.in9
-rw-r--r--cleopatre/buildroot/package/database/sqlite/sqlite.mk80
-rw-r--r--cleopatre/buildroot/package/dbus-glib/Config.in9
-rw-r--r--cleopatre/buildroot/package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch77
-rw-r--r--cleopatre/buildroot/package/dbus-glib/dbus-glib-cross-compile.patch129
-rw-r--r--cleopatre/buildroot/package/dbus-glib/dbus-glib-libintl.patch12
-rw-r--r--cleopatre/buildroot/package/dbus-glib/dbus-glib.mk81
-rw-r--r--cleopatre/buildroot/package/dbus/Config.in31
-rwxr-xr-xcleopatre/buildroot/package/dbus/S30dbus77
-rw-r--r--cleopatre/buildroot/package/dbus/dbus.mk116
-rw-r--r--cleopatre/buildroot/package/devmem2/Config.in6
-rw-r--r--cleopatre/buildroot/package/devmem2/devmem2.mk42
-rw-r--r--cleopatre/buildroot/package/dhcp/Config.in27
-rwxr-xr-xcleopatre/buildroot/package/dhcp/S80dhcp-relay53
-rwxr-xr-xcleopatre/buildroot/package/dhcp/S80dhcp-server48
-rwxr-xr-xcleopatre/buildroot/package/dhcp/dhclient-script2
-rw-r--r--cleopatre/buildroot/package/dhcp/dhclient.conf50
-rw-r--r--cleopatre/buildroot/package/dhcp/dhcp.mk135
-rw-r--r--cleopatre/buildroot/package/dhcp/dhcp_xecute.patch452
-rw-r--r--cleopatre/buildroot/package/dhcp/dhcpd.conf108
-rw-r--r--cleopatre/buildroot/package/dialog/Config.in10
-rw-r--r--cleopatre/buildroot/package/dialog/dialog.mk64
-rw-r--r--cleopatre/buildroot/package/diffutils/Config.in6
-rw-r--r--cleopatre/buildroot/package/diffutils/diffutils.mk126
-rw-r--r--cleopatre/buildroot/package/dillo/Config.in15
-rw-r--r--cleopatre/buildroot/package/dillo/dillo.mk58
-rw-r--r--cleopatre/buildroot/package/directfb/Config.in19
-rw-r--r--cleopatre/buildroot/package/directfb/directfb.mk124
-rw-r--r--cleopatre/buildroot/package/distcc/Config.in8
-rw-r--r--cleopatre/buildroot/package/distcc/distcc.mk71
-rw-r--r--cleopatre/buildroot/package/dm/Config.in5
-rw-r--r--cleopatre/buildroot/package/dm/dm.mk131
-rw-r--r--cleopatre/buildroot/package/dmalloc/Config.in9
-rw-r--r--cleopatre/buildroot/package/dmalloc/dmalloc-mips.patch43
-rw-r--r--cleopatre/buildroot/package/dmalloc/dmalloc.mk105
-rw-r--r--cleopatre/buildroot/package/dmraid/Config.in5
-rw-r--r--cleopatre/buildroot/package/dmraid/dmraid.init31
-rw-r--r--cleopatre/buildroot/package/dmraid/dmraid.mk67
-rw-r--r--cleopatre/buildroot/package/dmraid/dmraid.patch20
-rw-r--r--cleopatre/buildroot/package/dnsmasq/Config.in15
-rw-r--r--cleopatre/buildroot/package/dnsmasq/dnsmasq.mk80
-rw-r--r--cleopatre/buildroot/package/docker/Config.in6
-rw-r--r--cleopatre/buildroot/package/docker/docker-1.5-pkgconfig.patch23
-rw-r--r--cleopatre/buildroot/package/docker/docker-1.5-skip-configure.patch4
-rw-r--r--cleopatre/buildroot/package/docker/docker.mk27
-rw-r--r--cleopatre/buildroot/package/dropbear/Config.in6
-rw-r--r--cleopatre/buildroot/package/dropbear/S50dropbear56
-rw-r--r--cleopatre/buildroot/package/dropbear/dropbear-fix-missing-TIMEVAL_TO_TIMESPEC.patch11
-rw-r--r--cleopatre/buildroot/package/dropbear/dropbear.mk81
-rw-r--r--cleopatre/buildroot/package/dummy/Config.in7
-rw-r--r--cleopatre/buildroot/package/dummy/dummy.mk93
-rw-r--r--cleopatre/buildroot/package/e2fsprogs/Config.in82
-rw-r--r--cleopatre/buildroot/package/e2fsprogs/e2fsprogs-001-rel-libs.patch12
-rw-r--r--cleopatre/buildroot/package/e2fsprogs/e2fsprogs.mk135
-rw-r--r--cleopatre/buildroot/package/editors/Config.in12
-rw-r--r--cleopatre/buildroot/package/editors/ed/Config.in8
-rw-r--r--cleopatre/buildroot/package/editors/ed/ed.mk59
-rw-r--r--cleopatre/buildroot/package/editors/editors.mk1
-rw-r--r--cleopatre/buildroot/package/editors/nano/Config.in8
-rw-r--r--cleopatre/buildroot/package/editors/nano/nano.mk59
-rw-r--r--cleopatre/buildroot/package/editors/uemacs/Config.in7
-rw-r--r--cleopatre/buildroot/package/editors/uemacs/uemacs-4.0.15-lt.01.patch33
-rw-r--r--cleopatre/buildroot/package/editors/uemacs/uemacs-4.0.15-lt.02.patch16
-rw-r--r--cleopatre/buildroot/package/editors/uemacs/uemacs.mk48
-rw-r--r--cleopatre/buildroot/package/editors/vim/Config.in16
-rw-r--r--cleopatre/buildroot/package/editors/vim/configure.patch19263
-rw-r--r--cleopatre/buildroot/package/editors/vim/patches233
-rw-r--r--cleopatre/buildroot/package/editors/vim/vim.mk98
-rw-r--r--cleopatre/buildroot/package/ethtool/Config.in7
-rw-r--r--cleopatre/buildroot/package/ethtool/ethtool.mk57
-rw-r--r--cleopatre/buildroot/package/expat/Config.in8
-rw-r--r--cleopatre/buildroot/package/expat/Makefile.in3
-rw-r--r--cleopatre/buildroot/package/expat/expat.mk80
-rw-r--r--cleopatre/buildroot/package/expat/libdir-la.patch77
-rw-r--r--cleopatre/buildroot/package/ezxml/Config.in6
-rw-r--r--cleopatre/buildroot/package/ezxml/ezxml-0.8.6-allow-compiler-override.patch17
-rw-r--r--cleopatre/buildroot/package/ezxml/ezxml.mk47
-rw-r--r--cleopatre/buildroot/package/fakeroot/Config.in10
-rw-r--r--cleopatre/buildroot/package/fakeroot/fakeroot-doc.patch20
-rw-r--r--cleopatre/buildroot/package/fakeroot/fakeroot-uclibc-LFS.patch14
-rw-r--r--cleopatre/buildroot/package/fakeroot/fakeroot.mk136
-rw-r--r--cleopatre/buildroot/package/fbset/Config.in8
-rw-r--r--cleopatre/buildroot/package/fbset/fbset.mk51
-rw-r--r--cleopatre/buildroot/package/fbv/Config.in11
-rw-r--r--cleopatre/buildroot/package/fbv/fbv-1.0b-arch.patch.avr3248
-rw-r--r--cleopatre/buildroot/package/fbv/fbv-1.0b-cross.patch44
-rw-r--r--cleopatre/buildroot/package/fbv/fbv-1.0b-fix-24bpp-support-on-big-endian.patch32
-rw-r--r--cleopatre/buildroot/package/fbv/fbv-1.0b-include.patch20
-rw-r--r--cleopatre/buildroot/package/fbv/fbv.mk56
-rw-r--r--cleopatre/buildroot/package/fconfig/Config.in5
-rw-r--r--cleopatre/buildroot/package/fconfig/fconfig-listmode.patch177
-rw-r--r--cleopatre/buildroot/package/fconfig/fconfig.mk50
-rw-r--r--cleopatre/buildroot/package/festival/Config.in22
-rw-r--r--cleopatre/buildroot/package/festival/festival.mk4
-rw-r--r--cleopatre/buildroot/package/festival/festival/festival-1.96-beta-doc.patch23
-rw-r--r--cleopatre/buildroot/package/festival/festival/festival-1.96-beta-etcsiteinit.patch55
-rw-r--r--cleopatre/buildroot/package/festival/festival/festival-1.96-beta-libdir.patch10
-rw-r--r--cleopatre/buildroot/package/festival/festival/festival-1.96-beta-speechtools-dir.patch11
-rw-r--r--cleopatre/buildroot/package/festival/festival/festival.mk21
-rw-r--r--cleopatre/buildroot/package/festival/lexicons/Config.in20
-rw-r--r--cleopatre/buildroot/package/festival/lexicons/festlex.mk46
-rw-r--r--cleopatre/buildroot/package/festival/speech-tools/Config.in6
-rw-r--r--cleopatre/buildroot/package/festival/speech-tools/speech-tools-1.2.96-beta-install.patch47
-rw-r--r--cleopatre/buildroot/package/festival/speech-tools/speech-tools.mk20
-rw-r--r--cleopatre/buildroot/package/festival/voices/Config.in63
-rw-r--r--cleopatre/buildroot/package/festival/voices/festvox.mk99
-rw-r--r--cleopatre/buildroot/package/file/Config.in7
-rw-r--r--cleopatre/buildroot/package/file/file.mk122
-rw-r--r--cleopatre/buildroot/package/findutils/Config.in8
-rw-r--r--cleopatre/buildroot/package/findutils/findutils.mk90
-rw-r--r--cleopatre/buildroot/package/fis/Config.in5
-rw-r--r--cleopatre/buildroot/package/fis/fis-001-checksum.patch274
-rw-r--r--cleopatre/buildroot/package/fis/fis-002-makefile.patch10
-rw-r--r--cleopatre/buildroot/package/fis/fis.mk51
-rw-r--r--cleopatre/buildroot/package/flex/Config.in15
-rw-r--r--cleopatre/buildroot/package/flex/flex-2.5.33-prog-ar.patch22
-rw-r--r--cleopatre/buildroot/package/flex/flex.mk126
-rw-r--r--cleopatre/buildroot/package/fltk/Config.in10
-rw-r--r--cleopatre/buildroot/package/fltk/fltk-1.1.7-makefiles.patch132
-rw-r--r--cleopatre/buildroot/package/fltk/fltk-1.1.7-tests.patch11
-rw-r--r--cleopatre/buildroot/package/fltk/fltk.mk23
-rw-r--r--cleopatre/buildroot/package/fontconfig/Config.in8
-rw-r--r--cleopatre/buildroot/package/fontconfig/fontconfig.mk26
-rw-r--r--cleopatre/buildroot/package/freetype/Config.in27
-rw-r--r--cleopatre/buildroot/package/freetype/freetype-2.2.1-libdir-la.patch77
-rw-r--r--cleopatre/buildroot/package/freetype/freetype.mk71
-rw-r--r--cleopatre/buildroot/package/fuse/Config.in7
-rw-r--r--cleopatre/buildroot/package/fuse/libfuse.mk77
-rw-r--r--cleopatre/buildroot/package/fusion/40-fusion.rules1
-rw-r--r--cleopatre/buildroot/package/fusion/Config.in6
-rw-r--r--cleopatre/buildroot/package/fusion/fusion.h277
-rw-r--r--cleopatre/buildroot/package/fusion/fusion.mk41
-rw-r--r--cleopatre/buildroot/package/fusion/linux-2.6.22.1-008-fusion.patch6265
-rw-r--r--cleopatre/buildroot/package/gadgetfs-test/Config.in12
-rw-r--r--cleopatre/buildroot/package/gadgetfs-test/gadgetfs-test-fix-usb-ch9-include.patch40
-rw-r--r--cleopatre/buildroot/package/gadgetfs-test/gadgetfs-test-rename-include-usb_gadgetfs-to-usb-dir.patch12
-rw-r--r--cleopatre/buildroot/package/gadgetfs-test/gadgetfs-test.mk51
-rw-r--r--cleopatre/buildroot/package/gamin/Config.in6
-rw-r--r--cleopatre/buildroot/package/gamin/gamin-0.1.9-configure.patch92
-rw-r--r--cleopatre/buildroot/package/gamin/gamin-0.1.9-debug.patch14
-rw-r--r--cleopatre/buildroot/package/gamin/gamin.mk22
-rw-r--r--cleopatre/buildroot/package/gawk/Config.in9
-rw-r--r--cleopatre/buildroot/package/gawk/gawk-3.1.5-core.patch31
-rw-r--r--cleopatre/buildroot/package/gawk/gawk-3.1.5-gcc4.patch23
-rw-r--r--cleopatre/buildroot/package/gawk/gawk.mk84
-rw-r--r--cleopatre/buildroot/package/gettext/Config.in29
-rw-r--r--cleopatre/buildroot/package/gettext/gettext-error_print_progname.patch14
-rw-r--r--cleopatre/buildroot/package/gettext/gettext.mk178
-rw-r--r--cleopatre/buildroot/package/gettext/libdir-la.patch154
-rw-r--r--cleopatre/buildroot/package/gmp/Config.in14
-rw-r--r--cleopatre/buildroot/package/gmp/gmp.mk109
-rw-r--r--cleopatre/buildroot/package/gnuchess/Config.in6
-rw-r--r--cleopatre/buildroot/package/gnuchess/gnuchess-5.07.patch11
-rw-r--r--cleopatre/buildroot/package/gnuchess/gnuchess.mk18
-rw-r--r--cleopatre/buildroot/package/gnuconfig/.cvsignore5
-rw-r--r--cleopatre/buildroot/package/gnuconfig/CVS/Entries14
-rw-r--r--cleopatre/buildroot/package/gnuconfig/CVS/Repository1
-rw-r--r--cleopatre/buildroot/package/gnuconfig/CVS/Root1
-rw-r--r--cleopatre/buildroot/package/gnuconfig/ChangeLog1996
-rw-r--r--cleopatre/buildroot/package/gnuconfig/Config.in8
-rw-r--r--cleopatre/buildroot/package/gnuconfig/Makefile15
-rw-r--r--cleopatre/buildroot/package/gnuconfig/README.buildroot16
-rwxr-xr-xcleopatre/buildroot/package/gnuconfig/config.guess1535
-rwxr-xr-xcleopatre/buildroot/package/gnuconfig/config.sub1646
-rw-r--r--cleopatre/buildroot/package/gnuconfig/gnuconfig.mk3
-rw-r--r--cleopatre/buildroot/package/gnuconfig/patches/config.guess.uclibc.patch178
-rw-r--r--cleopatre/buildroot/package/gnuconfig/patches/config.sub.gnuhurd-uclibc.patch20
-rw-r--r--cleopatre/buildroot/package/gnuconfig/patches/config.sub.ps2.patch50
-rw-r--r--cleopatre/buildroot/package/gnuconfig/patches/config.sub.sh.patch39
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/.cvsignore1
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/CVS/Entries7
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/CVS/Repository1
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/CVS/Root1
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/config-guess.data34
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/config-guess.sh47
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/config-sub.data116
-rw-r--r--cleopatre/buildroot/package/gnuconfig/testsuite/config-sub.sh35
-rwxr-xr-xcleopatre/buildroot/package/gnuconfig/testsuite/uname.in9
-rwxr-xr-xcleopatre/buildroot/package/gnuconfig/uname11
-rw-r--r--cleopatre/buildroot/package/gperf/Config.in6
-rw-r--r--cleopatre/buildroot/package/gperf/gperf.mk26
-rw-r--r--cleopatre/buildroot/package/gqview/Config.in7
-rw-r--r--cleopatre/buildroot/package/gqview/gqview-2.1.5-make.patch11
-rw-r--r--cleopatre/buildroot/package/gqview/gqview.mk18
-rw-r--r--cleopatre/buildroot/package/grep/Config.in8
-rw-r--r--cleopatre/buildroot/package/grep/grep.mk70
-rw-r--r--cleopatre/buildroot/package/gtk2-engines/Config.in5
-rw-r--r--cleopatre/buildroot/package/gtk2-engines/gtk2-engines.mk161
-rw-r--r--cleopatre/buildroot/package/gtk2-themes/Config.in8
-rw-r--r--cleopatre/buildroot/package/gtk2-themes/gtk2_themes.mk19
-rw-r--r--cleopatre/buildroot/package/gzip/Config.in7
-rw-r--r--cleopatre/buildroot/package/gzip/gzip.mk66
-rw-r--r--cleopatre/buildroot/package/hal/Config.in9
-rwxr-xr-xcleopatre/buildroot/package/hal/S98haldaemon56
-rw-r--r--cleopatre/buildroot/package/hal/hal.mk117
-rw-r--r--cleopatre/buildroot/package/hal/hal01-configure-buildroot-cross.patch10
-rw-r--r--cleopatre/buildroot/package/hal/hal02-include-ieee80211-fix.patch15
-rw-r--r--cleopatre/buildroot/package/hal/hal03-link-dbus.patch60
-rw-r--r--cleopatre/buildroot/package/hal/hal04-remove-glib-dbus-headers.patch275
-rw-r--r--cleopatre/buildroot/package/hal/hal05-libtool-hack.patch13
-rw-r--r--cleopatre/buildroot/package/hal/hal06-libintl.patch24
-rw-r--r--cleopatre/buildroot/package/haserl/Config.in33
-rw-r--r--cleopatre/buildroot/package/haserl/haserl-0.8.0-legacy.patch12
-rw-r--r--cleopatre/buildroot/package/haserl/haserl.mk61
-rw-r--r--cleopatre/buildroot/package/hdparm/Config.in6
-rw-r--r--cleopatre/buildroot/package/hdparm/hdparm.mk53
-rw-r--r--cleopatre/buildroot/package/hdparm/hdparm.patch12
-rw-r--r--cleopatre/buildroot/package/hostap/Config.in9
-rw-r--r--cleopatre/buildroot/package/hostap/hostap.mk72
-rw-r--r--cleopatre/buildroot/package/hotplug/Config.in6
-rw-r--r--cleopatre/buildroot/package/hotplug/diethotplug-0.5.tarbin0 -> 40960 bytes-rw-r--r--cleopatre/buildroot/package/hotplug/hotplug.mk45
-rw-r--r--cleopatre/buildroot/package/hwdata/Config.in5
-rw-r--r--cleopatre/buildroot/package/hwdata/hwdata.mk50
-rw-r--r--cleopatre/buildroot/package/i2c-tools/Config.in10
-rw-r--r--cleopatre/buildroot/package/i2c-tools/i2c-tools.mk53
-rw-r--r--cleopatre/buildroot/package/icu/Config.in4
-rw-r--r--cleopatre/buildroot/package/icu/icu-4c-3_8_1-lsupc++.patch67
-rw-r--r--cleopatre/buildroot/package/icu/icu-cross-compile.patch314
-rw-r--r--cleopatre/buildroot/package/icu/icu.mk76
-rw-r--r--cleopatre/buildroot/package/ifplugd/Config.in11
-rw-r--r--cleopatre/buildroot/package/ifplugd/ifplugd-cross.patch17
-rw-r--r--cleopatre/buildroot/package/ifplugd/ifplugd-fix-headers.patch24
-rw-r--r--cleopatre/buildroot/package/ifplugd/ifplugd.mk31
-rw-r--r--cleopatre/buildroot/package/imagemagick/Config.in14
-rw-r--r--cleopatre/buildroot/package/imagemagick/imagemagick-6.3.4-add-errno-h-if-argz-h-does-not-exist.patch11
-rw-r--r--cleopatre/buildroot/package/imagemagick/imagemagick.mk160
-rw-r--r--cleopatre/buildroot/package/input-tools/Config.in33
-rw-r--r--cleopatre/buildroot/package/input-tools/input-tools.mk66
-rw-r--r--cleopatre/buildroot/package/iostat/Config.in6
-rw-r--r--cleopatre/buildroot/package/iostat/iostat.mk46
-rw-r--r--cleopatre/buildroot/package/iostat/iostat.patch11
-rw-r--r--cleopatre/buildroot/package/iperf/Config.in8
-rw-r--r--cleopatre/buildroot/package/iperf/iperf.mk73
-rw-r--r--cleopatre/buildroot/package/ipkg/Config.in7
-rwxr-xr-xcleopatre/buildroot/package/ipkg/ipkg-build127
-rw-r--r--cleopatre/buildroot/package/ipkg/ipkg.mk19
-rw-r--r--cleopatre/buildroot/package/iproute2/Config.in7
-rw-r--r--cleopatre/buildroot/package/iproute2/iproute2.mk59
-rw-r--r--cleopatre/buildroot/package/ipsec-tools/Config.in63
-rw-r--r--cleopatre/buildroot/package/ipsec-tools/ipsec-tools-0.6.7.100-do_not_use_addr_as_truthval.patch45
-rw-r--r--cleopatre/buildroot/package/ipsec-tools/ipsec-tools-0.6.7.101-string_legacy.patch32
-rw-r--r--cleopatre/buildroot/package/ipsec-tools/ipsec-tools-0.6.7.102-GLOB_TILDE.patch15
-rw-r--r--cleopatre/buildroot/package/ipsec-tools/ipsec-tools.mk158
-rw-r--r--cleopatre/buildroot/package/iptables/Config.in6
-rw-r--r--cleopatre/buildroot/package/iptables/iptables.mk66
-rw-r--r--cleopatre/buildroot/package/irda-utils/Config.in43
-rw-r--r--cleopatre/buildroot/package/irda-utils/irda-utils-0.9.18-install_irnetd.patch12
-rw-r--r--cleopatre/buildroot/package/irda-utils/irda.mk57
-rw-r--r--cleopatre/buildroot/package/java/Config.in11
-rw-r--r--cleopatre/buildroot/package/java/classpath/Config.in11
-rw-r--r--cleopatre/buildroot/package/java/classpath/classpath.mk95
-rw-r--r--cleopatre/buildroot/package/java/concierge/Config.in10
-rw-r--r--cleopatre/buildroot/package/java/concierge/concierge.mk40
-rw-r--r--cleopatre/buildroot/package/java/concierge/files/concierge2
-rw-r--r--cleopatre/buildroot/package/java/concierge/files/init.xargs10
-rw-r--r--cleopatre/buildroot/package/java/jamvm/Config.in9
-rw-r--r--cleopatre/buildroot/package/java/jamvm/jamvm-1.5.0.patch.avr321473
-rw-r--r--cleopatre/buildroot/package/java/jamvm/jamvm.mk105
-rw-r--r--cleopatre/buildroot/package/java/java.mk1
-rw-r--r--cleopatre/buildroot/package/jpeg/Config.in6
-rw-r--r--cleopatre/buildroot/package/jpeg/jpeg-build.patch99
-rw-r--r--cleopatre/buildroot/package/jpeg/jpeg-libtool.patch66
-rw-r--r--cleopatre/buildroot/package/jpeg/jpeg.mk97
-rw-r--r--cleopatre/buildroot/package/kexec/Config.in14
-rw-r--r--cleopatre/buildroot/package/kexec/kexec-tools-001-smaller-reboot.patch27
-rw-r--r--cleopatre/buildroot/package/kexec/kexec-tools-002-add-arch-arm.patch398
-rw-r--r--cleopatre/buildroot/package/kexec/kexec-tools-003-build-util-using-host-gcc.patch17
-rw-r--r--cleopatre/buildroot/package/kexec/kexec.mk82
-rw-r--r--cleopatre/buildroot/package/kismet/Config.in17
-rw-r--r--cleopatre/buildroot/package/kismet/kismet.mk89
-rw-r--r--cleopatre/buildroot/package/l2tp/Config.in7
-rw-r--r--cleopatre/buildroot/package/l2tp/l2tp-legacy.patch14
-rw-r--r--cleopatre/buildroot/package/l2tp/l2tp-no-gnu-extensions.patch33
-rw-r--r--cleopatre/buildroot/package/l2tp/l2tp-sanity.patch49
-rw-r--r--cleopatre/buildroot/package/l2tp/l2tp.mk60
-rwxr-xr-xcleopatre/buildroot/package/l2tp/l2tpd27
-rw-r--r--cleopatre/buildroot/package/leafpad/Config.in6
-rw-r--r--cleopatre/buildroot/package/leafpad/leafpad.mk16
-rw-r--r--cleopatre/buildroot/package/less/Config.in7
-rw-r--r--cleopatre/buildroot/package/less/less.mk60
-rw-r--r--cleopatre/buildroot/package/libaio/Config.in4
-rw-r--r--cleopatre/buildroot/package/libaio/libaio.mk50
-rw-r--r--cleopatre/buildroot/package/libart/Config.in14
-rw-r--r--cleopatre/buildroot/package/libart/libart-art-config-cross.patch34
-rw-r--r--cleopatre/buildroot/package/libart/libart.mk20
-rw-r--r--cleopatre/buildroot/package/libcgi/Config.in11
-rw-r--r--cleopatre/buildroot/package/libcgi/libcgi.mk74
-rw-r--r--cleopatre/buildroot/package/libcgi/libcgi.patch109
-rw-r--r--cleopatre/buildroot/package/libcgicc/Config.in8
-rw-r--r--cleopatre/buildroot/package/libcgicc/libcgicc.mk71
-rw-r--r--cleopatre/buildroot/package/libdaemon/Config.in8
-rw-r--r--cleopatre/buildroot/package/libdaemon/libdaemon.mk100
-rw-r--r--cleopatre/buildroot/package/libdaemon/libdir-la.patch77
-rw-r--r--cleopatre/buildroot/package/libdaemon/xcompile-setpgrp.patch11
-rw-r--r--cleopatre/buildroot/package/libdrm/Config.in7
-rw-r--r--cleopatre/buildroot/package/libdrm/libdrm.mk80
-rw-r--r--cleopatre/buildroot/package/libeXosip2/Config.in10
-rw-r--r--cleopatre/buildroot/package/libeXosip2/libeXosip2.mk108
-rw-r--r--cleopatre/buildroot/package/libelf/Config.in15
-rw-r--r--cleopatre/buildroot/package/libelf/libelf-0.8.10-Elf64-fixups.patch12361
-rw-r--r--cleopatre/buildroot/package/libelf/libelf.mk87
-rw-r--r--cleopatre/buildroot/package/libevent/Config.in6
-rw-r--r--cleopatre/buildroot/package/libevent/libevent-time_h.patch11
-rw-r--r--cleopatre/buildroot/package/libevent/libevent.mk70
-rw-r--r--cleopatre/buildroot/package/libfloat/Config.in7
-rw-r--r--cleopatre/buildroot/package/libfloat/libfloat.mk65
-rw-r--r--cleopatre/buildroot/package/libfloat/libfloat.patch45
-rw-r--r--cleopatre/buildroot/package/libgcrypt/Config.in7
-rw-r--r--cleopatre/buildroot/package/libgcrypt/libgcrypt-00-ac_cv_sys_symbol_underscore.patch24
-rw-r--r--cleopatre/buildroot/package/libgcrypt/libgcrypt-01-reconfigure.patch17
-rw-r--r--cleopatre/buildroot/package/libgcrypt/libgcrypt.mk84
-rw-r--r--cleopatre/buildroot/package/libglib12/Config.in6
-rw-r--r--cleopatre/buildroot/package/libglib12/glib-1.2.10-gcc34-fix.patch41
-rw-r--r--cleopatre/buildroot/package/libglib12/libglib-libtool.patch.bz2bin0 -> 959 bytes-rw-r--r--cleopatre/buildroot/package/libglib12/libglib12.mk97
-rw-r--r--cleopatre/buildroot/package/libglib12/libglib_configure.patch1800
-rw-r--r--cleopatre/buildroot/package/libglib2/Config.in10
-rw-r--r--cleopatre/buildroot/package/libglib2/libglib2-2.15.4-mkenums-nowarn.patch8
-rw-r--r--cleopatre/buildroot/package/libglib2/libglib2-2.15.4-pkgconfig-cc.patch15
-rw-r--r--cleopatre/buildroot/package/libglib2/libglib2.mk58
-rw-r--r--cleopatre/buildroot/package/libgpg-error/Config.in7
-rw-r--r--cleopatre/buildroot/package/libgpg-error/libgpg-error.mk76
-rw-r--r--cleopatre/buildroot/package/libgtk12/Config.in8
-rw-r--r--cleopatre/buildroot/package/libgtk12/gtk+1.2-reconf.patch643
-rw-r--r--cleopatre/buildroot/package/libgtk12/libgtk12.mk105
-rw-r--r--cleopatre/buildroot/package/libgtk12/no-xwc.patch267
-rw-r--r--cleopatre/buildroot/package/libgtk12/timezone-fix.patch15
-rw-r--r--cleopatre/buildroot/package/libgtk12/update-libtool.patch50327
-rw-r--r--cleopatre/buildroot/package/libgtk2/Config.in16
-rw-r--r--cleopatre/buildroot/package/libgtk2/libgtk2-2.12.6-configure.patch256
-rw-r--r--cleopatre/buildroot/package/libgtk2/libgtk2-2.12.6-no-tests.patch11
-rw-r--r--cleopatre/buildroot/package/libgtk2/libgtk2.mk119
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/000_gtk+-2.0.6-exportsymbols.patch26
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/000_gtk+-2.2.0-buildfix-immodule.patch33
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/002_xpmico.patch18
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/007_password_char.patch33
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/0815_ia32-hack.patch123
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/automake-lossage.patch24
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/disable-print.patch50
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/disable-tooltips.patch11
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/gtk+-handhelds.patch149
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/gtklabel-resize.patch10
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/libdir-la.patch77
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/menu-deactivate.patch51
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/no-demos.patch10
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/no-xwc.patch151
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/odd-include-problem.patch84
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/run-iconcache.patch38
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/scroll-timings.patch11
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/single-click.patch56
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/small-gtkfilesel.patch267
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/spinbutton.patch130
-rw-r--r--cleopatre/buildroot/package/libgtk2/old_patches/xsettings.patch16
-rw-r--r--cleopatre/buildroot/package/libiconv/Config.in6
-rw-r--r--cleopatre/buildroot/package/libiconv/libiconv.mk18
-rw-r--r--cleopatre/buildroot/package/libid3tag/Config.in8
-rw-r--r--cleopatre/buildroot/package/libid3tag/libid3tag.mk68
-rw-r--r--cleopatre/buildroot/package/liblockfile/Config.in4
-rw-r--r--cleopatre/buildroot/package/liblockfile/liblockfile-install.patch16
-rw-r--r--cleopatre/buildroot/package/liblockfile/liblockfile.mk75
-rw-r--r--cleopatre/buildroot/package/libmad/Config.in14
-rw-r--r--cleopatre/buildroot/package/libmad/libmad-0.15.1b-optimization.patch.avr322922
-rw-r--r--cleopatre/buildroot/package/libmad/libmad.mk86
-rw-r--r--cleopatre/buildroot/package/libogg/Config.in6
-rw-r--r--cleopatre/buildroot/package/libogg/libogg.mk78
-rw-r--r--cleopatre/buildroot/package/libosip2/Config.in9
-rw-r--r--cleopatre/buildroot/package/libosip2/libosip2.mk87
-rw-r--r--cleopatre/buildroot/package/libpcap/Config.in7
-rw-r--r--cleopatre/buildroot/package/libpcap/libpcap.mk84
-rw-r--r--cleopatre/buildroot/package/libpcap/libpcap.patch11
-rw-r--r--cleopatre/buildroot/package/libpng/Config.in9
-rw-r--r--cleopatre/buildroot/package/libpng/libpng-remove-setjmp-error.patch17
-rw-r--r--cleopatre/buildroot/package/libpng/libpng.mk95
-rw-r--r--cleopatre/buildroot/package/libraw1394/Config.in10
-rw-r--r--cleopatre/buildroot/package/libraw1394/libraw1394.mk71
-rw-r--r--cleopatre/buildroot/package/libsexy/Config.in6
-rw-r--r--cleopatre/buildroot/package/libsexy/libsexy.mk15
-rw-r--r--cleopatre/buildroot/package/libsndfile/Config.in7
-rw-r--r--cleopatre/buildroot/package/libsndfile/libsndfile-srconly.patch11
-rw-r--r--cleopatre/buildroot/package/libsndfile/libsndfile.mk65
-rw-r--r--cleopatre/buildroot/package/libsysfs/Config.in7
-rw-r--r--cleopatre/buildroot/package/libsysfs/libsysfs.mk84
-rw-r--r--cleopatre/buildroot/package/libtool/Config.in7
-rw-r--r--cleopatre/buildroot/package/libtool/libtool.mk154
-rw-r--r--cleopatre/buildroot/package/libungif/Config.in6
-rw-r--r--cleopatre/buildroot/package/libungif/libungif.mk69
-rw-r--r--cleopatre/buildroot/package/libusb/Config.in7
-rw-r--r--cleopatre/buildroot/package/libusb/libusb-0.1.12-nocpp.patch20
-rw-r--r--cleopatre/buildroot/package/libusb/libusb.mk82
-rw-r--r--cleopatre/buildroot/package/libvorbis/Config.in25
-rw-r--r--cleopatre/buildroot/package/libvorbis/libvorbis.mk143
-rw-r--r--cleopatre/buildroot/package/libxml2/Config.in13
-rw-r--r--cleopatre/buildroot/package/libxml2/libxml2.mk36
-rw-r--r--cleopatre/buildroot/package/libxslt/Config.in17
-rw-r--r--cleopatre/buildroot/package/libxslt/libxslt-1.1.21-configure.patch18
-rw-r--r--cleopatre/buildroot/package/libxslt/libxslt.mk106
-rw-r--r--cleopatre/buildroot/package/lighttpd/Config.in47
-rw-r--r--cleopatre/buildroot/package/lighttpd/lighttpd-1.4.19-configure.patch11
-rw-r--r--cleopatre/buildroot/package/lighttpd/lighttpd.mk55
-rw-r--r--cleopatre/buildroot/package/links/Config.in6
-rw-r--r--cleopatre/buildroot/package/links/links.mk66
-rw-r--r--cleopatre/buildroot/package/lm-sensors/Config.in10
-rw-r--r--cleopatre/buildroot/package/lm-sensors/lm-sensors.mk60
-rw-r--r--cleopatre/buildroot/package/lockfile-progs/Config.in5
-rw-r--r--cleopatre/buildroot/package/lockfile-progs/lockfile-progs-0.1.11-sus3v-legacy.patch11
-rw-r--r--cleopatre/buildroot/package/lockfile-progs/lockfile-progs.mk45
-rw-r--r--cleopatre/buildroot/package/lrzsz/Config.in6
-rw-r--r--cleopatre/buildroot/package/lrzsz/lrzsz.mk86
-rw-r--r--cleopatre/buildroot/package/lsof/Config.in8
-rw-r--r--cleopatre/buildroot/package/lsof/lsof-makefile.patch14
-rw-r--r--cleopatre/buildroot/package/lsof/lsof-noportmap.patch18
-rw-r--r--cleopatre/buildroot/package/lsof/lsof-remove-susvlegacy-funcs.patch12
-rw-r--r--cleopatre/buildroot/package/lsof/lsof-uclibc.patch12
-rw-r--r--cleopatre/buildroot/package/lsof/lsof.mk70
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/Config.in6
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/ltp-testsuite-disable-ipv6-tests.patch123
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/ltp-testsuite-enable-openposix-for-nptl.patch33
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/ltp-testsuite-generate-needs-bash.patch8
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/ltp-testsuite-sh-is-not-C-code.patch11
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/ltp-testsuite.mk69
-rw-r--r--cleopatre/buildroot/package/ltp-testsuite/ltp-testsuite.patch73
-rw-r--r--cleopatre/buildroot/package/ltrace/Config.in8
-rw-r--r--cleopatre/buildroot/package/ltrace/ltrace-0.5-00-susv3-legacy.patch11
-rw-r--r--cleopatre/buildroot/package/ltrace/ltrace.mk87
-rw-r--r--cleopatre/buildroot/package/ltt/Config.in7
-rwxr-xr-xcleopatre/buildroot/package/ltt/S27tracer93
-rw-r--r--cleopatre/buildroot/package/ltt/ltt-gcc4.patch23
-rw-r--r--cleopatre/buildroot/package/ltt/ltt.mk121
-rw-r--r--cleopatre/buildroot/package/ltt/ltt.patch42
-rw-r--r--cleopatre/buildroot/package/lua/Config.in11
-rw-r--r--cleopatre/buildroot/package/lua/lua.mk81
-rw-r--r--cleopatre/buildroot/package/lvm2/Config.in7
-rw-r--r--cleopatre/buildroot/package/lvm2/lvm2.mk85
-rw-r--r--cleopatre/buildroot/package/lxdoom/Config.in9
-rw-r--r--cleopatre/buildroot/package/lxdoom/lxdoom-1.4.4-updated.patch173
-rw-r--r--cleopatre/buildroot/package/lxdoom/lxdoom-wad.mk35
-rw-r--r--cleopatre/buildroot/package/lxdoom/lxdoom.mk22
-rw-r--r--cleopatre/buildroot/package/lzma/Config.in20
-rw-r--r--cleopatre/buildroot/package/lzma/lzma.mk149
-rwxr-xr-xcleopatre/buildroot/package/lzma/lzmacheck.sh9
-rw-r--r--cleopatre/buildroot/package/lzo/Config.in6
-rw-r--r--cleopatre/buildroot/package/lzo/lzo-cross-compile.patch43
-rw-r--r--cleopatre/buildroot/package/lzo/lzo.mk70
-rw-r--r--cleopatre/buildroot/package/m4/Config.in6
-rw-r--r--cleopatre/buildroot/package/m4/m4-1.4.8-001-MB_CUR_MAX.patch13
-rw-r--r--cleopatre/buildroot/package/m4/m4.mk137
-rw-r--r--cleopatre/buildroot/package/madplay/Config.in17
-rw-r--r--cleopatre/buildroot/package/madplay/madplay.mk73
-rw-r--r--cleopatre/buildroot/package/magiccube4d/Config.in6
-rw-r--r--cleopatre/buildroot/package/magiccube4d/magiccube4d-2_2-add-installer.patch13
-rw-r--r--cleopatre/buildroot/package/magiccube4d/magiccube4d-2_2-no-warn-err.patch11
-rw-r--r--cleopatre/buildroot/package/magiccube4d/magiccube4d.mk17
-rw-r--r--cleopatre/buildroot/package/make/Config.in7
-rw-r--r--cleopatre/buildroot/package/make/make.mk75
-rw-r--r--cleopatre/buildroot/package/matchbox/Config.in40
-rw-r--r--cleopatre/buildroot/package/matchbox/matchbox.mk693
-rw-r--r--cleopatre/buildroot/package/matchbox/mb-applet-kbd-wrapper.sh8
-rw-r--r--cleopatre/buildroot/package/matchbox/mbdesktop_modules9
-rw-r--r--cleopatre/buildroot/package/mdadm/Config.in6
-rw-r--r--cleopatre/buildroot/package/mdadm/mdadm-2.6.1-001.uclibc-and-ftw-fixup.patch13
-rw-r--r--cleopatre/buildroot/package/mdadm/mdadm-2.6.1-002.uclibc-not-lfs-fixup.patch13
-rw-r--r--cleopatre/buildroot/package/mdadm/mdadm.mk65
-rw-r--r--cleopatre/buildroot/package/mdnsresponder/Config.in15
-rw-r--r--cleopatre/buildroot/package/mdnsresponder/mDNSResponder-107.6-bcopy.patch174
-rw-r--r--cleopatre/buildroot/package/mdnsresponder/mDNSResponderPosix.conf23
-rw-r--r--cleopatre/buildroot/package/mdnsresponder/mdnsresponder.mk96
-rw-r--r--cleopatre/buildroot/package/mdnsresponder/rc.mdnsresponder67
-rw-r--r--cleopatre/buildroot/package/memtester/Config.in6
-rw-r--r--cleopatre/buildroot/package/memtester/memtester.mk47
-rw-r--r--cleopatre/buildroot/package/metacity/Config.in6
-rwxr-xr-xcleopatre/buildroot/package/metacity/Xsession6
-rw-r--r--cleopatre/buildroot/package/metacity/metacity-gconf.patch18
-rw-r--r--cleopatre/buildroot/package/metacity/metacity-nopo.patch20
-rw-r--r--cleopatre/buildroot/package/metacity/metacity.mk155
-rw-r--r--cleopatre/buildroot/package/microcom/Config.in6
-rw-r--r--cleopatre/buildroot/package/microcom/microcom-102-001-speed-defines.patch34
-rw-r--r--cleopatre/buildroot/package/microcom/microcom-102-002-rename-variable-log.patch78
-rw-r--r--cleopatre/buildroot/package/microcom/microcom.mk78
-rw-r--r--cleopatre/buildroot/package/microperl/Config.in14
-rw-r--r--cleopatre/buildroot/package/microperl/microperl.mk88
-rw-r--r--cleopatre/buildroot/package/microwin/Config.in7
-rw-r--r--cleopatre/buildroot/package/microwin/microwin.mk61
-rw-r--r--cleopatre/buildroot/package/midori/Config.in13
-rw-r--r--cleopatre/buildroot/package/midori/midori-0.0.18-webkit.patch67
-rw-r--r--cleopatre/buildroot/package/midori/midori.mk21
-rw-r--r--cleopatre/buildroot/package/mii-diag/Config.in5
-rw-r--r--cleopatre/buildroot/package/mii-diag/mii-diag-strchr.patch20
-rw-r--r--cleopatre/buildroot/package/mii-diag/mii-diag.mk61
-rw-r--r--cleopatre/buildroot/package/mkdosfs/Config.in6
-rw-r--r--cleopatre/buildroot/package/mkdosfs/mkdosfs.mk53
-rw-r--r--cleopatre/buildroot/package/module-init-tools/Config.in9
-rw-r--r--cleopatre/buildroot/package/module-init-tools/module-init-tools-remove-index.patch12
-rw-r--r--cleopatre/buildroot/package/module-init-tools/module-init-tools.mk123
-rw-r--r--cleopatre/buildroot/package/module-init-tools/module-init-tools.patch77
-rw-r--r--cleopatre/buildroot/package/modutils/Config.in12
-rw-r--r--cleopatre/buildroot/package/modutils/modutils-01.patch98
-rw-r--r--cleopatre/buildroot/package/modutils/modutils-cross.patch548
-rw-r--r--cleopatre/buildroot/package/modutils/modutils.mk143
-rw-r--r--cleopatre/buildroot/package/mpatrol/Config.in11
-rw-r--r--cleopatre/buildroot/package/mpatrol/mpatrol-uclibc.patch552
-rw-r--r--cleopatre/buildroot/package/mpatrol/mpatrol-unwindcache.patch208
-rw-r--r--cleopatre/buildroot/package/mpatrol/mpatrol.mk91
-rw-r--r--cleopatre/buildroot/package/mpfr/Config.in18
-rw-r--r--cleopatre/buildroot/package/mpfr/mpfr.mk121
-rw-r--r--cleopatre/buildroot/package/mpg123/Config.in12
-rw-r--r--cleopatre/buildroot/package/mpg123/mpg123-0.59r-cross.patch44
-rw-r--r--cleopatre/buildroot/package/mpg123/mpg123.mk73
-rw-r--r--cleopatre/buildroot/package/mplayer/Config.in8
-rw-r--r--cleopatre/buildroot/package/mplayer/mplayer-1.0rc1-atmel.3.patch6444
-rw-r--r--cleopatre/buildroot/package/mplayer/mplayer-1.0rc1-index.patch22
-rw-r--r--cleopatre/buildroot/package/mplayer/mplayer.mk81
-rw-r--r--cleopatre/buildroot/package/mrouted/Config.in6
-rw-r--r--cleopatre/buildroot/package/mrouted/mrouted-sys_errlist.patch44
-rw-r--r--cleopatre/buildroot/package/mrouted/mrouted.mk53
-rw-r--r--cleopatre/buildroot/package/mtd/20050122/mtd.mk138
-rw-r--r--cleopatre/buildroot/package/mtd/20050122/mtd.patch45
-rw-r--r--cleopatre/buildroot/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch19
-rw-r--r--cleopatre/buildroot/package/mtd/20061007/mtd.mk119
-rw-r--r--cleopatre/buildroot/package/mtd/20061007/mtd_20061007.patch93
-rw-r--r--cleopatre/buildroot/package/mtd/20061007/mtd_acl.patch48
-rw-r--r--cleopatre/buildroot/package/mtd/Config.in193
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils.git/mtd-utils-all-targets.patch34
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils.git/mtd-utils-target-acl.patch48
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils.git/mtd-utils-target-llzo.patch10
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils.git/mtd-utils-target-lzo-header.patch14
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils.git/mtd.mk144
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils/mtd-utils-1.1.0-all-targets.patch34
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils/mtd-utils-1.1.0-target-acl.patch48
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils/mtd-utils-1.1.0-target-llzo.patch10
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils/mtd-utils-1.1.0-target-lzo-header.patch14
-rw-r--r--cleopatre/buildroot/package/mtd/mtd-utils/mtd.mk127
-rw-r--r--cleopatre/buildroot/package/mtd/mtd.mk12
-rw-r--r--cleopatre/buildroot/package/mutt/Config.in8
-rw-r--r--cleopatre/buildroot/package/mutt/mutt-1.5.16-makedoc-hostcc.patch32
-rw-r--r--cleopatre/buildroot/package/mutt/mutt.mk76
-rw-r--r--cleopatre/buildroot/package/nbd/Config.in11
-rw-r--r--cleopatre/buildroot/package/nbd/nbd.mk57
-rw-r--r--cleopatre/buildroot/package/ncftp/Config.in40
-rw-r--r--cleopatre/buildroot/package/ncftp/ncftp.mk83
-rw-r--r--cleopatre/buildroot/package/ncurses/Config.in31
-rw-r--r--cleopatre/buildroot/package/ncurses/ncurses.mk178
-rw-r--r--cleopatre/buildroot/package/neon/Config.in37
-rw-r--r--cleopatre/buildroot/package/neon/neon.mk25
-rw-r--r--cleopatre/buildroot/package/netcat/Config.in13
-rw-r--r--cleopatre/buildroot/package/netcat/netcat.mk59
-rw-r--r--cleopatre/buildroot/package/netkitbase/Config.in7
-rw-r--r--cleopatre/buildroot/package/netkitbase/netkitbase-gcc4.patch12
-rw-r--r--cleopatre/buildroot/package/netkitbase/netkitbase-remove-bcopy.patch31
-rw-r--r--cleopatre/buildroot/package/netkitbase/netkitbase.mk68
-rw-r--r--cleopatre/buildroot/package/netkittelnet/Config.in6
-rw-r--r--cleopatre/buildroot/package/netkittelnet/netkittelnet-bcopy.patch57
-rw-r--r--cleopatre/buildroot/package/netkittelnet/netkittelnet.mk68
-rw-r--r--cleopatre/buildroot/package/netkittelnet/netkittelnet.patch171
-rw-r--r--cleopatre/buildroot/package/netplug/Config.in7
-rwxr-xr-xcleopatre/buildroot/package/netplug/S29netplug69
-rwxr-xr-xcleopatre/buildroot/package/netplug/netplug-script57
-rw-r--r--cleopatre/buildroot/package/netplug/netplug-socklen-type.patch12
-rw-r--r--cleopatre/buildroot/package/netplug/netplug.mk53
-rw-r--r--cleopatre/buildroot/package/netsnmp/Config.in8
-rw-r--r--cleopatre/buildroot/package/netsnmp/net-snmp-5.1.2.patch185
-rw-r--r--cleopatre/buildroot/package/netsnmp/netsnmp.mk124
-rw-r--r--cleopatre/buildroot/package/netsnmp/netsnmp.patch33
-rw-r--r--cleopatre/buildroot/package/newt/Config.in6
-rw-r--r--cleopatre/buildroot/package/newt/newt.mk84
-rw-r--r--cleopatre/buildroot/package/nfs-utils/Config.in35
-rwxr-xr-xcleopatre/buildroot/package/nfs-utils/S60nfs89
-rw-r--r--cleopatre/buildroot/package/nfs-utils/nfs-utils-1.0.10-debian.patch2675
-rw-r--r--cleopatre/buildroot/package/nfs-utils/nfs-utils-disable-rpcgen.patch18
-rw-r--r--cleopatre/buildroot/package/nfs-utils/nfs-utils.mk96
-rw-r--r--cleopatre/buildroot/package/ng-spice-rework/Config.in6
-rw-r--r--cleopatre/buildroot/package/ng-spice-rework/ng-spice-rework-17-makeidx.patch12
-rw-r--r--cleopatre/buildroot/package/ng-spice-rework/ng-spice-rework.mk19
-rw-r--r--cleopatre/buildroot/package/ntfs-3g/Config.in7
-rw-r--r--cleopatre/buildroot/package/ntfs-3g/ntfs-3g.mk82
-rw-r--r--cleopatre/buildroot/package/ntp/Config.in13
-rw-r--r--cleopatre/buildroot/package/ntp/TODO33
-rw-r--r--cleopatre/buildroot/package/ntp/ntp.mk89
-rwxr-xr-xcleopatre/buildroot/package/ntp/ntp.sysvinit46
-rw-r--r--cleopatre/buildroot/package/olsr/Config.in11
-rwxr-xr-xcleopatre/buildroot/package/olsr/S50olsr21
-rw-r--r--cleopatre/buildroot/package/olsr/olsr.mk63
-rw-r--r--cleopatre/buildroot/package/openmotif/Config.in6
-rw-r--r--cleopatre/buildroot/package/openmotif/README2
-rw-r--r--cleopatre/buildroot/package/openmotif/openmotif-2.3.0-cross-compile.patch106
-rw-r--r--cleopatre/buildroot/package/openmotif/openmotif-2.3.0-legacy-bzero-must-die.patch758
-rw-r--r--cleopatre/buildroot/package/openmotif/openmotif.mk94
-rw-r--r--cleopatre/buildroot/package/openntpd/Config.in7
-rw-r--r--cleopatre/buildroot/package/openntpd/openntpd.mk81
-rw-r--r--cleopatre/buildroot/package/openssh/Config.in9
-rw-r--r--cleopatre/buildroot/package/openssh/S50sshd64
-rw-r--r--cleopatre/buildroot/package/openssh/openssh.002-SUSv-legacy.patch21
-rw-r--r--cleopatre/buildroot/package/openssh/openssh.mk88
-rw-r--r--cleopatre/buildroot/package/openssh/openssh.patch116
-rw-r--r--cleopatre/buildroot/package/openssl/Config.in15
-rw-r--r--cleopatre/buildroot/package/openssl/openssl-0.9.7m.patch.avr3211
-rw-r--r--cleopatre/buildroot/package/openssl/openssl-nodocs.patch13
-rw-r--r--cleopatre/buildroot/package/openssl/openssl.mk118
-rw-r--r--cleopatre/buildroot/package/openssl/openssl.patch250
-rw-r--r--cleopatre/buildroot/package/openswan/Config.in17
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20-openswan-2.4.7.kernel-2.6-klips.patch59334
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20-openswan-2.4.7.kernel-2.6-natt.patch158
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20-openswan-2.4.7.kernel-2.6-nfmark-rename.patch52
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20-openswan-2.4.7.kernel-2.6-zzz-crypto_alg_available.patch11
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20-openswan-2.4.7.kernel-2.6-zzz-void-sock_unregister.patch11
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20.4-openswan-2.4.7.kernel-2.6-klips.patch59334
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20.4-openswan-2.4.7.kernel-2.6-natt.patch158
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20.4-openswan-2.4.7.kernel-2.6-nfmark-rename.patch52
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20.4-openswan-2.4.7.kernel-2.6-zzz-crypto_alg_available.patch11
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.20.4-openswan-2.4.7.kernel-2.6-zzz-void-sock_unregister.patch11
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.21.5-openswan-2.4.8.kernel-2.6-klips.patch59382
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.21.5-openswan-2.4.8.kernel-2.6-natt.patch126
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.21.5-openswan-2.4.8.kernel-2.6-zzz00-fixup.patch156
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.22.6-openswan-2.4.9.kernel-2.6-klips.patch59387
-rw-r--r--cleopatre/buildroot/package/openswan/linux-2.6.22.6-openswan-2.4.9.kernel-2.6-natt.patch131
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-001-oswlog.patch30
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-002-oswlog.patch34
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-003-spi.patch12
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-004-alloc.patch12
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-005-pluto.patch148
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-006-linux-include.patch12
-rw-r--r--cleopatre/buildroot/package/openswan/openswan-2.4.9-010-susv3-legacy.patch22
-rw-r--r--cleopatre/buildroot/package/openswan/openswan.mk66
-rw-r--r--cleopatre/buildroot/package/openvpn/Config.in13
-rwxr-xr-xcleopatre/buildroot/package/openvpn/openvpn.init103
-rw-r--r--cleopatre/buildroot/package/openvpn/openvpn.mk86
-rw-r--r--cleopatre/buildroot/package/oprofile/Config.in19
-rw-r--r--cleopatre/buildroot/package/oprofile/oprofile-0.9.3-avr32.patch128
-rw-r--r--cleopatre/buildroot/package/oprofile/oprofile-dont-use-kill-s.patch65
-rw-r--r--cleopatre/buildroot/package/oprofile/oprofile-fix-autoconf-brain-damage.patch13
-rw-r--r--cleopatre/buildroot/package/oprofile/oprofile.mk74
-rw-r--r--cleopatre/buildroot/package/pango/Config.in14
-rw-r--r--cleopatre/buildroot/package/pango/pango-1.19.3-gtk-doc.patch59
-rw-r--r--cleopatre/buildroot/package/pango/pango-1.19.3-no-cairo-atsui.patch42
-rw-r--r--cleopatre/buildroot/package/pango/pango-1.19.3-no-libthai.patch10
-rw-r--r--cleopatre/buildroot/package/pango/pango-1.19.3-no-tests.patch22
-rw-r--r--cleopatre/buildroot/package/pango/pango.mk68
-rw-r--r--cleopatre/buildroot/package/patch/Config.in7
-rw-r--r--cleopatre/buildroot/package/patch/patch.mk70
-rw-r--r--cleopatre/buildroot/package/pciutils/Config.in7
-rw-r--r--cleopatre/buildroot/package/pciutils/pciutils.mk62
-rw-r--r--cleopatre/buildroot/package/pciutils/pciutils.patch12
-rw-r--r--cleopatre/buildroot/package/pcmanfm/Config.in10
-rw-r--r--cleopatre/buildroot/package/pcmanfm/pcmanfm.mk19
-rw-r--r--cleopatre/buildroot/package/pcmcia/Config.in7
-rw-r--r--cleopatre/buildroot/package/pcmcia/pcmcia.mk114
-rw-r--r--cleopatre/buildroot/package/pcmcia/pcmcia.patch123
-rw-r--r--cleopatre/buildroot/package/pcre/Config.in4
-rw-r--r--cleopatre/buildroot/package/pcre/pcre.mk18
-rw-r--r--cleopatre/buildroot/package/php/Config.ext166
-rw-r--r--cleopatre/buildroot/package/php/Config.in35
-rw-r--r--cleopatre/buildroot/package/php/php.mk204
-rw-r--r--cleopatre/buildroot/package/pkgconfig/Config.in9
-rw-r--r--cleopatre/buildroot/package/pkgconfig/pkg-config-0.23-fix-sysroot.patch34
-rw-r--r--cleopatre/buildroot/package/pkgconfig/pkgconfig.mk58
-rw-r--r--cleopatre/buildroot/package/popt/Config.in6
-rw-r--r--cleopatre/buildroot/package/popt/popt-1.14_no-wchar.patch12
-rw-r--r--cleopatre/buildroot/package/popt/popt.mk20
-rw-r--r--cleopatre/buildroot/package/portage/Config.in7
-rw-r--r--cleopatre/buildroot/package/portage/portage.mk160
-rw-r--r--cleopatre/buildroot/package/portmap/Config.in10
-rwxr-xr-xcleopatre/buildroot/package/portmap/S13portmap44
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-01-5beta.patch80
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-02-4.0-malloc.patch338
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-4.0-cleanup.patch85
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-4.0-rpc_user.patch59
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-4.0-sigpipe.patch12
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-5b-include-errno_h.patch18
-rw-r--r--cleopatre/buildroot/package/portmap/portmap-5b-optional-tcpd.patch38
-rw-r--r--cleopatre/buildroot/package/portmap/portmap.mk47
-rw-r--r--cleopatre/buildroot/package/pppd/Config.in6
-rw-r--r--cleopatre/buildroot/package/pppd/pppd.mk93
-rw-r--r--cleopatre/buildroot/package/pptp-linux/Config.in6
-rw-r--r--cleopatre/buildroot/package/pptp-linux/pptp-linux-1.7.0-001-susv3-legacy.patch24
-rw-r--r--cleopatre/buildroot/package/pptp-linux/pptp-linux.mk78
-rw-r--r--cleopatre/buildroot/package/procps/Config.in8
-rw-r--r--cleopatre/buildroot/package/procps/procps-mips-define-pagesize.patch29
-rw-r--r--cleopatre/buildroot/package/procps/procps-remove-flags.patch26
-rw-r--r--cleopatre/buildroot/package/procps/procps-remove-index.patch21
-rw-r--r--cleopatre/buildroot/package/procps/procps.mk53
-rw-r--r--cleopatre/buildroot/package/proftpd/Config.in5
-rwxr-xr-xcleopatre/buildroot/package/proftpd/S50proftpd47
-rw-r--r--cleopatre/buildroot/package/proftpd/proftpd-1.3.1-fix-kernel-header-capability-version.patch12
-rw-r--r--cleopatre/buildroot/package/proftpd/proftpd.mk85
-rw-r--r--cleopatre/buildroot/package/psmisc/Config.in7
-rw-r--r--cleopatre/buildroot/package/psmisc/psmisc.mk60
-rw-r--r--cleopatre/buildroot/package/python/Config.in98
-rw-r--r--cleopatre/buildroot/package/python/python-001-cross-compile.patch106
-rw-r--r--cleopatre/buildroot/package/python/python-002-cross-compile.patch36
-rw-r--r--cleopatre/buildroot/package/python/python-010-disable_modules_and_ssl.patch37
-rw-r--r--cleopatre/buildroot/package/python/python-020-gentoo_py_dontcompile.patch18
-rw-r--r--cleopatre/buildroot/package/python/python.mk182
-rw-r--r--cleopatre/buildroot/package/qte/Config.in260
-rw-r--r--cleopatre/buildroot/package/qte/qte.mk265
-rw-r--r--cleopatre/buildroot/package/qte/qtopia-2.1.1-no-programinvocation.patch24
-rw-r--r--cleopatre/buildroot/package/qtopia4/Config.in276
-rw-r--r--cleopatre/buildroot/package/qtopia4/Config.sql.in36
-rw-r--r--cleopatre/buildroot/package/qtopia4/qtopia4.mk323
-rw-r--r--cleopatre/buildroot/package/quagga/Config.in100
-rw-r--r--cleopatre/buildroot/package/quagga/quagga.mk185
-rw-r--r--cleopatre/buildroot/package/raidtools/Config.in6
-rw-r--r--cleopatre/buildroot/package/raidtools/raidtools.mk70
-rw-r--r--cleopatre/buildroot/package/rdesktop/Config.in11
-rw-r--r--cleopatre/buildroot/package/rdesktop/rdesktop-8bit-colors.patch21
-rw-r--r--cleopatre/buildroot/package/rdesktop/rdesktop.mk58
-rw-r--r--cleopatre/buildroot/package/readline/Config.in18
-rw-r--r--cleopatre/buildroot/package/readline/readline.mk101
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00130
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00249
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00337
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00470
-rw-r--r--cleopatre/buildroot/package/readline/readline52-005328
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00662
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00765
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00870
-rw-r--r--cleopatre/buildroot/package/readline/readline52-00945
-rw-r--r--cleopatre/buildroot/package/readline/readline52-01047
-rw-r--r--cleopatre/buildroot/package/readline/readline52-01132
-rw-r--r--cleopatre/buildroot/package/readline/readline52-012150
-rw-r--r--cleopatre/buildroot/package/rp-pppoe/Config.in6
-rw-r--r--cleopatre/buildroot/package/rp-pppoe/rp-pppoe-3.8-001-configure-bitfield.patch22
-rw-r--r--cleopatre/buildroot/package/rp-pppoe/rp-pppoe-3.8-002-autoreconf.patch8699
-rw-r--r--cleopatre/buildroot/package/rp-pppoe/rp-pppoe.mk80
-rw-r--r--cleopatre/buildroot/package/rpm/Config.in13
-rw-r--r--cleopatre/buildroot/package/rpm/rpm-dirty-ssl-hack.patch12
-rw-r--r--cleopatre/buildroot/package/rpm/rpm-uclibc-ifdefs.patch13
-rw-r--r--cleopatre/buildroot/package/rpm/rpm-uclibc-vs-cookie-seek-pointer.patch12
-rw-r--r--cleopatre/buildroot/package/rpm/rpm.mk29
-rw-r--r--cleopatre/buildroot/package/rsync/Config.in6
-rw-r--r--cleopatre/buildroot/package/rsync/rsync.mk59
-rw-r--r--cleopatre/buildroot/package/rubix/Config.in6
-rw-r--r--cleopatre/buildroot/package/rubix/rubix-1.0.5.patch135
-rw-r--r--cleopatre/buildroot/package/rubix/rubix.mk19
-rw-r--r--cleopatre/buildroot/package/ruby/Config.in6
-rw-r--r--cleopatre/buildroot/package/ruby/ruby-configure.patch29
-rw-r--r--cleopatre/buildroot/package/ruby/ruby.mk72
-rw-r--r--cleopatre/buildroot/package/rxvt/Config.in7
-rw-r--r--cleopatre/buildroot/package/rxvt/rxvt.mk84
-rw-r--r--cleopatre/buildroot/package/rxvt/rxvt_2.6.4-10.diff1132
-rw-r--r--cleopatre/buildroot/package/samba/Config.in180
-rwxr-xr-xcleopatre/buildroot/package/samba/S91smb79
-rw-r--r--cleopatre/buildroot/package/samba/samba-getgrouplist.patch42
-rw-r--r--cleopatre/buildroot/package/samba/samba-remove-legacy-index.patch21
-rw-r--r--cleopatre/buildroot/package/samba/samba-use-unsigned-enums.patch43
-rw-r--r--cleopatre/buildroot/package/samba/samba.mk136
-rw-r--r--cleopatre/buildroot/package/samba/simple.conf25
-rw-r--r--cleopatre/buildroot/package/screen/Config.in12
-rw-r--r--cleopatre/buildroot/package/screen/screen-4.0.2-cross_compile_fix.patch524
-rw-r--r--cleopatre/buildroot/package/screen/screen-4.0.2_install-fix.patch17
-rw-r--r--cleopatre/buildroot/package/screen/screen.mk17
-rw-r--r--cleopatre/buildroot/package/sdl/Config.in23
-rw-r--r--cleopatre/buildroot/package/sdl/sdl.mk111
-rw-r--r--cleopatre/buildroot/package/sdl_image/Config.in54
-rw-r--r--cleopatre/buildroot/package/sdl_image/sdl_image.mk157
-rw-r--r--cleopatre/buildroot/package/sdl_mixer/Config.in11
-rw-r--r--cleopatre/buildroot/package/sdl_mixer/sdl_mixer.mk68
-rw-r--r--cleopatre/buildroot/package/sdl_ttf/Config.in10
-rw-r--r--cleopatre/buildroot/package/sdl_ttf/sdl_ttf.mk79
-rw-r--r--cleopatre/buildroot/package/sed/Config.in9
-rw-r--r--cleopatre/buildroot/package/sed/configure.patch29
-rw-r--r--cleopatre/buildroot/package/sed/sed.mk179
-rwxr-xr-xcleopatre/buildroot/package/sed/sedcheck.sh11
-rw-r--r--cleopatre/buildroot/package/setserial/Config.in4
-rw-r--r--cleopatre/buildroot/package/setserial/setserial.mk82
-rw-r--r--cleopatre/buildroot/package/sfdisk/Config.in4
-rw-r--r--cleopatre/buildroot/package/sfdisk/sfdisk.001.include_sys_syscalls_h.patch12
-rw-r--r--cleopatre/buildroot/package/sfdisk/sfdisk.005.no-llseek-fix.patch21
-rw-r--r--cleopatre/buildroot/package/sfdisk/sfdisk.010.index-rindex-fix-2.patch45
-rw-r--r--cleopatre/buildroot/package/sfdisk/sfdisk.mk49
-rw-r--r--cleopatre/buildroot/package/slang/Config.in6
-rw-r--r--cleopatre/buildroot/package/slang/slang.mk57
-rw-r--r--cleopatre/buildroot/package/smartmontools/Config.in6
-rw-r--r--cleopatre/buildroot/package/smartmontools/smartmontools.mk78
-rw-r--r--cleopatre/buildroot/package/socat/Config.in6
-rw-r--r--cleopatre/buildroot/package/socat/socat.mk80
-rw-r--r--cleopatre/buildroot/package/speex/Config.in16
-rw-r--r--cleopatre/buildroot/package/speex/speex.mk109
-rw-r--r--cleopatre/buildroot/package/startup-notification/Config.in6
-rw-r--r--cleopatre/buildroot/package/startup-notification/startup-notification.mk18
-rw-r--r--cleopatre/buildroot/package/strace/Config.in8
-rw-r--r--cleopatre/buildroot/package/strace/strace-arch.patch.avr322101
-rw-r--r--cleopatre/buildroot/package/strace/strace-autoreconf.patch.avr3211103
-rw-r--r--cleopatre/buildroot/package/strace/strace-dont-use-REG_SYSCALL-for-sh.patch10
-rw-r--r--cleopatre/buildroot/package/strace/strace-fix-arm-bad-syscall.patch18
-rw-r--r--cleopatre/buildroot/package/strace/strace-fix-disabled-largefile-syscalls.patch21
-rw-r--r--cleopatre/buildroot/package/strace/strace-mips-sprintsigmask-fix.patch12
-rw-r--r--cleopatre/buildroot/package/strace/strace-statfs64-check.patch53
-rw-r--r--cleopatre/buildroot/package/strace/strace-superh-update.ac.patch22
-rw-r--r--cleopatre/buildroot/package/strace/strace-undef-CTL_PROC.patch12
-rw-r--r--cleopatre/buildroot/package/strace/strace-undef-PACKET_MEMBERSHIP.patch15
-rw-r--r--cleopatre/buildroot/package/strace/strace-undef-syscall.patch.avr3262
-rw-r--r--cleopatre/buildroot/package/strace/strace.mk86
-rw-r--r--cleopatre/buildroot/package/stunnel/Config.in4
-rw-r--r--cleopatre/buildroot/package/stunnel/stunnel-have-pty.patch15
-rw-r--r--cleopatre/buildroot/package/stunnel/stunnel.mk82
-rw-r--r--cleopatre/buildroot/package/sudo/Config.in7
-rw-r--r--cleopatre/buildroot/package/sudo/sudo-crosscompile.patch10219
-rw-r--r--cleopatre/buildroot/package/sudo/sudo.mk87
-rw-r--r--cleopatre/buildroot/package/sudo/sudo_1.6.8p12-1ubuntu6.patch3994
-rw-r--r--cleopatre/buildroot/package/sudo/sudo_1.6.8p12-2-no-cxx-configcheck.patch22
-rw-r--r--cleopatre/buildroot/package/sylpheed/Config.in7
-rw-r--r--cleopatre/buildroot/package/sylpheed/sylpheed-2.4.8-makefile.patch23
-rw-r--r--cleopatre/buildroot/package/sylpheed/sylpheed.mk20
-rw-r--r--cleopatre/buildroot/package/synergy/Config.in10
-rw-r--r--cleopatre/buildroot/package/synergy/synergy.mk19
-rw-r--r--cleopatre/buildroot/package/sysklogd/Config.in6
-rwxr-xr-xcleopatre/buildroot/package/sysklogd/S25syslog48
-rw-r--r--cleopatre/buildroot/package/sysklogd/sysklogd.mk57
-rw-r--r--cleopatre/buildroot/package/sysklogd/sysklogd.patch92
-rw-r--r--cleopatre/buildroot/package/sysklogd/syslog.conf7
-rw-r--r--cleopatre/buildroot/package/sysvinit/Config.in7
-rw-r--r--cleopatre/buildroot/package/sysvinit/sysvinit-2.86-gentoo.patch9
-rw-r--r--cleopatre/buildroot/package/sysvinit/sysvinit.mk50
-rw-r--r--cleopatre/buildroot/package/tar/Config.in9
-rw-r--r--cleopatre/buildroot/package/tar/tar.mk84
-rw-r--r--cleopatre/buildroot/package/tcl/Config.in23
-rw-r--r--cleopatre/buildroot/package/tcl/tcl-configure-syntax-error.patch42
-rw-r--r--cleopatre/buildroot/package/tcl/tcl-strstr.patch11
-rw-r--r--cleopatre/buildroot/package/tcl/tcl-strtod.patch11
-rw-r--r--cleopatre/buildroot/package/tcl/tcl.mk68
-rw-r--r--cleopatre/buildroot/package/tcpdump/Config.in19
-rw-r--r--cleopatre/buildroot/package/tcpdump/dhcpdump.mk62
-rw-r--r--cleopatre/buildroot/package/tcpdump/tcpdump.00-extern-inline-fixup.patch30
-rw-r--r--cleopatre/buildroot/package/tcpdump/tcpdump.mk78
-rw-r--r--cleopatre/buildroot/package/tftpd/Config.in5
-rwxr-xr-xcleopatre/buildroot/package/tftpd/S80tftpd-hpa81
-rw-r--r--cleopatre/buildroot/package/tftpd/tftpd.mk81
-rw-r--r--cleopatre/buildroot/package/thttpd/Config.in6
-rw-r--r--cleopatre/buildroot/package/thttpd/thttpd.mk82
-rw-r--r--cleopatre/buildroot/package/tiff/Config.in8
-rw-r--r--cleopatre/buildroot/package/tiff/tiff.mk88
-rw-r--r--cleopatre/buildroot/package/tinyhttpd/Config.in7
-rwxr-xr-xcleopatre/buildroot/package/tinyhttpd/S85tinyhttpd33
-rw-r--r--cleopatre/buildroot/package/tinyhttpd/tinyhttpd.mk56
-rw-r--r--cleopatre/buildroot/package/tinyhttpd/tinyhttpd.patch80
-rw-r--r--cleopatre/buildroot/package/tinylogin/Config.in8
-rw-r--r--cleopatre/buildroot/package/tinylogin/tinylogin.mk62
-rw-r--r--cleopatre/buildroot/package/tn5250/Config.in6
-rw-r--r--cleopatre/buildroot/package/tn5250/tn5250-0.16.4-001.patch28
-rw-r--r--cleopatre/buildroot/package/tn5250/tn5250.mk65
-rw-r--r--cleopatre/buildroot/package/torsmo/Config.in6
-rw-r--r--cleopatre/buildroot/package/torsmo/torsmo.mk18
-rw-r--r--cleopatre/buildroot/package/tslib/Config.in7
-rw-r--r--cleopatre/buildroot/package/tslib/ts.conf25
-rw-r--r--cleopatre/buildroot/package/tslib/tslib-1.0-absbit.patch11
-rw-r--r--cleopatre/buildroot/package/tslib/tslib-1.0-remove-bzero.patch11
-rw-r--r--cleopatre/buildroot/package/tslib/tslib-1.0-remove-return-on-error-from-check-df.patch11
-rw-r--r--cleopatre/buildroot/package/tslib/tslib.mk109
-rw-r--r--cleopatre/buildroot/package/tslib/tslib_add_finddef_and_inputattach_utils.patch718
-rw-r--r--cleopatre/buildroot/package/ttcp/Config.in6
-rw-r--r--cleopatre/buildroot/package/ttcp/ttcp.mk46
-rw-r--r--cleopatre/buildroot/package/udev/Config.in30
-rwxr-xr-xcleopatre/buildroot/package/udev/S10udev82
-rw-r--r--cleopatre/buildroot/package/udev/libvolume_id.la.tmpl35
-rw-r--r--cleopatre/buildroot/package/udev/udev.mk169
-rw-r--r--cleopatre/buildroot/package/udhcp/Config.in7
-rw-r--r--cleopatre/buildroot/package/udhcp/udhcp-gcc_complains.patch11
-rw-r--r--cleopatre/buildroot/package/udhcp/udhcp.mk74
-rw-r--r--cleopatre/buildroot/package/udpcast/Config.in24
-rw-r--r--cleopatre/buildroot/package/udpcast/udpcast.mk99
-rw-r--r--cleopatre/buildroot/package/usbmount/Config.in8
-rw-r--r--cleopatre/buildroot/package/usbmount/usbmount-0.0.14.1.patch57
-rw-r--r--cleopatre/buildroot/package/usbmount/usbmount.mk47
-rw-r--r--cleopatre/buildroot/package/usbutils/Config.in7
-rw-r--r--cleopatre/buildroot/package/usbutils/usbutils.mk61
-rw-r--r--cleopatre/buildroot/package/util-linux/Config.in8
-rw-r--r--cleopatre/buildroot/package/util-linux/util-linux-gcc41.patch28
-rw-r--r--cleopatre/buildroot/package/util-linux/util-linux-remove-deprecated-functions.patch325
-rw-r--r--cleopatre/buildroot/package/util-linux/util-linux.mk91
-rw-r--r--cleopatre/buildroot/package/valgrind/Config.in7
-rw-r--r--cleopatre/buildroot/package/valgrind/uclibc.supp212
-rw-r--r--cleopatre/buildroot/package/valgrind/valgrind.mk88
-rw-r--r--cleopatre/buildroot/package/valgrind/valgrind.patch205
-rwxr-xr-xcleopatre/buildroot/package/valgrind/valgrind.sh10
-rw-r--r--cleopatre/buildroot/package/vice/Config.in6
-rw-r--r--cleopatre/buildroot/package/vice/vice-1.22-remove-bzero.patch20
-rw-r--r--cleopatre/buildroot/package/vice/vice.mk18
-rw-r--r--cleopatre/buildroot/package/vlc/Config.in6
-rw-r--r--cleopatre/buildroot/package/vlc/vlc.mk18
-rw-r--r--cleopatre/buildroot/package/vpnc/Config.in15
-rw-r--r--cleopatre/buildroot/package/vpnc/vpnc-0.4.0.patch12
-rw-r--r--cleopatre/buildroot/package/vpnc/vpnc-0.5.1-susv3-legacy.patch12
-rw-r--r--cleopatre/buildroot/package/vpnc/vpnc.mk62
-rw-r--r--cleopatre/buildroot/package/vsftpd/Config.in6
-rw-r--r--cleopatre/buildroot/package/vsftpd/vsftpd-2.0.5-uclibc_lfs.patch19
-rw-r--r--cleopatre/buildroot/package/vsftpd/vsftpd.mk73
-rw-r--r--cleopatre/buildroot/package/vtun/Config.in11
-rw-r--r--cleopatre/buildroot/package/vtun/vtun.mk77
-rw-r--r--cleopatre/buildroot/package/vtun/vtun.patch186
-rw-r--r--cleopatre/buildroot/package/webif/Config.in26
-rw-r--r--cleopatre/buildroot/package/webif/files/etc/httpd.conf8
-rwxr-xr-xcleopatre/buildroot/package/webif/files/usr/lib/webif/apply.sh76
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/categories.awk27
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/common.awk38
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/form.awk100
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/ca/common.txt226
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/cz/common.txt225
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/de/common.txt228
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/dk/common.txt231
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/ee/common.txt230
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/es/common.txt227
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/fr/common.txt238
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/hr/common.txt199
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/hu/common.txt227
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/it/common.txt226
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/nl/common.txt224
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/no/common.txt230
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/pl/common.txt228
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/pt/common.txt454
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/ru/common.txt223
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/lang/se/common.txt223
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/languages.awk12
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/subcategories.awk12
-rw-r--r--cleopatre/buildroot/package/webif/files/usr/lib/webif/validate.awk151
-rwxr-xr-xcleopatre/buildroot/package/webif/files/usr/lib/webif/webif.sh286
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif.sh2
-rw-r--r--cleopatre/buildroot/package/webif/files/www/cgi-bin/webif/.categories2
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/about.sh31
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/config.sh46
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/index.sh8
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/info.sh44
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/ipkg.sh2
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/status-connection.sh29
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/status-dhcp.sh38
-rwxr-xr-xcleopatre/buildroot/package/webif/files/www/cgi-bin/webif/status-wireless.sh12
-rw-r--r--cleopatre/buildroot/package/webif/files/www/index.html16
-rw-r--r--cleopatre/buildroot/package/webif/files/www/webif.css296
-rw-r--r--cleopatre/buildroot/package/webif/files/www/webif.js33
-rw-r--r--cleopatre/buildroot/package/webif/src/bstrip.c75
-rw-r--r--cleopatre/buildroot/package/webif/src/webif-page.c289
-rw-r--r--cleopatre/buildroot/package/webif/webif.mk71
-rw-r--r--cleopatre/buildroot/package/webkit/Config.in13
-rw-r--r--cleopatre/buildroot/package/webkit/webkit-r30267-trunc.patch11
-rw-r--r--cleopatre/buildroot/package/webkit/webkit.mk19
-rw-r--r--cleopatre/buildroot/package/wget/Config.in6
-rw-r--r--cleopatre/buildroot/package/wget/wget.mk60
-rw-r--r--cleopatre/buildroot/package/which/Config.in7
-rw-r--r--cleopatre/buildroot/package/which/which.mk19
-rw-r--r--cleopatre/buildroot/package/wipe/Config.in8
-rw-r--r--cleopatre/buildroot/package/wipe/wipe.mk57
-rw-r--r--cleopatre/buildroot/package/wireless-tools/Config.in6
-rw-r--r--cleopatre/buildroot/package/wireless-tools/wireless-tools.mk58
-rw-r--r--cleopatre/buildroot/package/wireless-tools/wireless_tools.29-remove-bzero.patch29
-rw-r--r--cleopatre/buildroot/package/x11r7/Config.in322
-rw-r--r--cleopatre/buildroot/package/x11r7/libxcb/Config.in14
-rw-r--r--cleopatre/buildroot/package/x11r7/libxcb/libxcb.mk18
-rw-r--r--cleopatre/buildroot/package/x11r7/mcookie/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/mcookie/mcookie.c425
-rw-r--r--cleopatre/buildroot/package/x11r7/mcookie/mcookie.mk20
-rw-r--r--cleopatre/buildroot/package/x11r7/mesa3d/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/mesa3d/mesa3d-7.0.3-cleanup.patch436
-rw-r--r--cleopatre/buildroot/package/x11r7/mesa3d/mesa3d-7.0.3-gen_matypes.patch11
-rw-r--r--cleopatre/buildroot/package/x11r7/mesa3d/mesa3d.mk84
-rw-r--r--cleopatre/buildroot/package/x11r7/openchrome/Config.in15
-rw-r--r--cleopatre/buildroot/package/x11r7/openchrome/openchrome-0.2.902-cross-compile.patch36
-rw-r--r--cleopatre/buildroot/package/x11r7/openchrome/openchrome.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/pixman/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/pixman/pixman-0.10.0-no-tests.patch11
-rw-r--r--cleopatre/buildroot/package/x11r7/pixman/pixman.mk17
-rw-r--r--cleopatre/buildroot/package/x11r7/pthread-stubs/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/pthread-stubs/pthread-stubs.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/x11r7.mk3
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_appres/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_appres/xapp_appres.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_bdftopcf/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_beforelight/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_beforelight/xapp_beforelight.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_bitmap/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_bitmap/xapp_bitmap.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_editres/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_editres/xapp_editres.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_fonttosfnt/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_fonttosfnt/xapp_fonttosfnt.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_fslsfonts/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_fstobdf/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_fstobdf/xapp_fstobdf.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_iceauth/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_iceauth/xapp_iceauth.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_ico/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_ico/xapp_ico.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_lbxproxy/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_lbxproxy/xapp_lbxproxy.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_listres/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_listres/xapp_listres.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_luit/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_luit/xapp_luit.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_mkfontdir/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_mkfontdir/xapp_mkfontdir.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_mkfontscale/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_oclock/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_oclock/xapp_oclock.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_proxymngr/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_proxymngr/xapp_proxymngr.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_rgb/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_rgb/xapp_rgb.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_rstart/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_rstart/xapp_rstart.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_scripts/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_scripts/xapp_scripts.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_sessreg/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_sessreg/xapp_sessreg.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_setxkbmap/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_setxkbmap/xapp_setxkbmap.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_showfont/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_showfont/xapp_showfont.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_smproxy/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_smproxy/xapp_smproxy.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_twm/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_twm/xapp_twm.mk12
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_viewres/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_viewres/xapp_viewres.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_x11perf/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_x11perf/xapp_x11perf.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xauth/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xauth/xapp_xauth-1.0.2-xcb.patch11
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xauth/xapp_xauth.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xbiff/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xbiff/xapp_xbiff.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xcalc/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xcalc/xapp_xcalc.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xclipboard/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xclipboard/xapp_xclipboard.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xclock/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xclock/xapp_xclock.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xcmsdb/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xcmsdb/xapp_xcmsdb.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xcursorgen/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdbedizzy/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdbedizzy/xapp_xdbedizzy.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xditview/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xditview/xapp_xditview.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdm/Config.in15
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdm/xapp_xdm.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdpyinfo/Config.in21
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdpyinfo/xapp_xdpyinfo.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdriinfo/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xdriinfo/xapp_xdriinfo.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xedit/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xedit/xapp_xedit.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xev/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xev/xapp_xev.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xeyes/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xeyes/xapp_xeyes.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xf86dga/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xf86dga/xapp_xf86dga.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfd/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfd/xapp_xfd.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfindproxy/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfindproxy/xapp_xfindproxy.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfontsel/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfontsel/xapp_xfontsel.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfs/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfs/xapp_xfs.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfsinfo/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfwp/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xfwp/xapp_xfwp.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xgamma/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xgamma/xapp_xgamma.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xgc/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xgc/xapp_xgc.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xhost/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xhost/xapp_xhost.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xinit/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xinit/xapp_xinit.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbcomp/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbevd/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbevd/xapp_xkbevd.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbprint/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbprint/xapp_xkbprint.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbutils/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkbutils/xapp_xkbutils.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkill/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xkill/xapp_xkill.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xload/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xload/xapp_xload.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlogo/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlogo/xapp_xlogo.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlsatoms/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlsatoms/xapp_xlsatoms.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlsclients/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlsclients/xapp_xlsclients.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlsfonts/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xlsfonts/xapp_xlsfonts.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmag/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmag/xapp_xmag.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xman/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xman/xapp_xman.mk85
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmessage/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmessage/xapp_xmessage.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmh/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmh/xapp_xmh.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmodmap/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmodmap/xapp_xmodmap.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmore/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xmore/xapp_xmore.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xphelloworld/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xphelloworld/xapp_xphelloworld.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xplsprinters/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xplsprinters/xapp_xplsprinters.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xpr/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xpr/xapp_xpr.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xprehashprinterlist/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xprehashprinterlist/xapp_xprehashprinterlist.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xprop/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xprop/xapp_xprop.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrandr/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr-1.2.2-clone-redef.patch29
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrdb/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrdb/xapp_xrdb.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrefresh/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrefresh/xapp_xrefresh.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrx/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xrx/xapp_xrx.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xset/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xset/xapp_xset.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsetmode/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsetmode/xapp_xsetmode.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsetpointer/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsetpointer/xapp_xsetpointer.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsetroot/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsetroot/xapp_xsetroot.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsm/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xsm/xapp_xsm.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xstdcmap/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xstdcmap/xapp_xstdcmap.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xtrap/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xtrap/xapp_xtrap.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xvidtune/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xvidtune/xapp_xvidtune.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xvinfo/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xvinfo/xapp_xvinfo.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xwd/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xwd/xapp_xwd.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xwininfo/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xwininfo/xapp_xwininfo.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xwud/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xapp_xwud/xapp_xwud.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xcb-proto/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xcb-proto/xcb-proto.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xcb-util/Config.in0
-rw-r--r--cleopatre/buildroot/package/x11r7/xcb-util/xcb-util.mk11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdata_xbitmaps/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xdata_xbitmaps/xdata_xbitmaps.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdata_xcursor-themes/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xdata_xcursor-themes/xdata_xcursor-themes.mk87
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-acecad/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-acecad/xdriver_xf86-input-acecad.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-aiptek/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-aiptek/xdriver_xf86-input-aiptek.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-calcomp/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-calcomp/xdriver_xf86-input-calcomp.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-citron/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-citron/xdriver_xf86-input-citron.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-digitaledge/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-digitaledge/xdriver_xf86-input-digitaledge.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-dmc/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-dmc/xdriver_xf86-input-dmc.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-dynapro/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-dynapro/xdriver_xf86-input-dynapro.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-elo2300/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-elo2300/xdriver_xf86-input-elo2300.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-elographics/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-elographics/xdriver_xf86-input-elographics.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-10-bitfield-fixes.patch324
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-11-bitops-fixes.patch42
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-20-add-inotify-architectures.patch29
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-30-absolute-axis.patch31
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-40-close-fd.patch18
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev-1.1.2-50-xinput.patch21
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-fpit/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-fpit/xdriver_xf86-input-fpit.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-hyperpen/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-hyperpen/xdriver_xf86-input-hyperpen.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-jamstudio/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-jamstudio/xdriver_xf86-input-jamstudio.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-joystick/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-keyboard/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-magellan/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-magellan/xdriver_xf86-input-magellan.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-magictouch/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-magictouch/xdriver_xf86-input-magictouch.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-microtouch/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-microtouch/xdriver_xf86-input-microtouch.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-mouse/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-mutouch/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-mutouch/xdriver_xf86-input-mutouch.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-palmax/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-palmax/xdriver_xf86-input-palmax.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-penmount/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-penmount/xdriver_xf86-input-penmount.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-spaceorb/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-spaceorb/xdriver_xf86-input-spaceorb.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-summa/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-summa/xdriver_xf86-input-summa.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-synaptics/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics-0.14.7~git20070706-configure.patch8
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-tek4957/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-tek4957/xdriver_xf86-input-tek4957.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-ur98/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-ur98/xdriver_xf86-input-ur98.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-vmmouse/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-vmmouse/xdriver_xf86-input-vmmouse.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-void/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-apm/Config.in13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-apm/xdriver_xf86-video-apm.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ark/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ark/xdriver_xf86-video-ark.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ast/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ati/Config.in16
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati-cross-compile.patch27
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-chips/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-chips/xdriver_xf86-video-chips.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-cirrus/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-cyrix/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-cyrix/xdriver_xf86-video-cyrix-1.1.0-cross-compile.patch31
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-cyrix/xdriver_xf86-video-cyrix.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-dummy/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-dummy/xdriver_xf86-video-dummy.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-fbdev/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-fbdev/xdriver_xf86-video-fbdev.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-glint/Config.in16
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-glint/xdriver_xf86-video-glint-1.2.0-cross-compile.patch29
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-glint/xdriver_xf86-video-glint.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i128/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i128/xdriver_xf86-video-i128.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i740/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i740/xdriver_xf86-video-i740.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i810/Config.in15
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i810/xdriver_xf86-video-i810-1.7.4-cross-compile.patch21
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-i810/xdriver_xf86-video-i810.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-imstt/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-imstt/xdriver_xf86-video-imstt.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-intel/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel-2.3.2-cross-compile.patch30
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-mga/Config.in15
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga-1.4.8.patch21
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-neomagic/Config.in13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-newport/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-newport/xdriver_xf86-video-newport-0.2.1-cross-compile.patch31
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-newport/xdriver_xf86-video-newport.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-nsc/Config.in13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-nsc/xdriver_xf86-video-nsc.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-nv/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-nv/xdriver_xf86-video-nv.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-rendition/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-rendition/xdriver_xf86-video-rendition.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-s3/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-s3/xdriver_xf86-video-s3.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-s3virge/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-s3virge/xdriver_xf86-video-s3virge.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-savage/Config.in14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage-2.2.1-cross-compile.patch27
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-siliconmotion/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sis/Config.in17
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis-0.10.0.patch21
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sisusb/Config.in14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sisusb/xdriver_xf86-video-sisusb.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunbw2/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunbw2/xdriver_xf86-video-sunbw2.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suncg14/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suncg14/xdriver_xf86-video-suncg14.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suncg3/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suncg3/xdriver_xf86-video-suncg3.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suncg6/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suncg6/xdriver_xf86-video-suncg6.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunffb/Config.in13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunffb/xdriver_xf86-video-sunffb-1.1.0.patch24
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunffb/xdriver_xf86-video-sunffb.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunleo/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-sunleo/xdriver_xf86-video-sunleo.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suntcx/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-suntcx/xdriver_xf86-video-suntcx.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tdfx/Config.in14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx-1.4.0.patch24
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tga/Config.in13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tga/xdriver_xf86-video-tga-1.1.0-cross-compile.patch30
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tga/xdriver_xf86-video-tga.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-trident/Config.in13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-trident/xdriver_xf86-video-trident.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tseng/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-tseng/xdriver_xf86-video-tseng.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-v4l/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-v4l/xdriver_xf86-video-v4l.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vesa/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vesa/xdriver_xf86-video-vesa-1.3.0.patch13
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vesa/xdriver_xf86-video-vesa.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vga/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vga/xdriver_xf86-video-vga.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-via/Config.in16
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-via/xdriver_xf86-video-via-0.2.2.patch22
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-via/xdriver_xf86-video-via.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vmware/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-voodoo/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-xgi/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xdriver_xf86-video-xgi/xdriver_xf86-video-xgi.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_encodings/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_encodings/xfont_encodings-1.0.2-mkfontscale-bug.patch21
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_encodings/xfont_encodings.mk13
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-100dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-75dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-utopia-100dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-utopia-75dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-utopia-type1/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-alias/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-alias/xfont_font-alias.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-arabic-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-100dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-75dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-ttf/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-ttf/xfont_font-bh-ttf.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-type1/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-100dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-75dpi/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-speedo/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-speedo/xfont_font-bitstream-speedo.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-type1/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-cronyx-cyrillic/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-cursor-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-daewoo-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-dec-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-ibm-type1/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-isas-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-jis-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-micro-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-cyrillic/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-ethiopic/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-meltho/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-mutt-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-schumacher-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-screen-cyrillic/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-screen-cyrillic/xfont_font-screen-cyrillic.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-sony-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-sony-misc/xfont_font-sony-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-sun-misc/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-sun-misc/xfont_font-sun-misc.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-util/Config.in5
-rwxr-xr-xcleopatre/buildroot/package/x11r7/xfont_font-util/post-install.sh28
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-util/xfont_font-util.mk80
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-winitzki-cyrillic/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-winitzki-cyrillic/xfont_font-winitzki-cyrillic.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-xfree86-type1/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xfont_font-xfree86-type1/xfont_font-xfree86-type1.mk16
-rw-r--r--cleopatre/buildroot/package/x11r7/xkeyboard-config/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.mk19
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libFS/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libFS/xlib_libFS.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libICE/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libICE/xlib_libICE.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libSM/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libSM/xlib_libSM.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libX11/Config.in17
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libX11/xlib_libX11-1.1.3-makekeys-nocc.patch36
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libX11/xlib_libX11.mk18
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXScrnSaver/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXTrap/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXTrap/xlib_libXTrap.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXau/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXau/xlib_libXau.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXaw/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXaw/xlib_libXaw.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXcomposite/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXcomposite/xlib_libXcomposite.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXcursor/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXcursor/xlib_libXcursor.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXdamage/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXdamage/xlib_libXdamage.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXdmcp/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXevie/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXevie/xlib_libXevie.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXext/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXext/xlib_libXext.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfixes/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfont/Config.in12
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfont/xlib_libXfont-1.2.7-susv3-legacy.patch12
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfont/xlib_libXfont.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfontcache/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXfontcache/xlib_libXfontcache.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXft/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXft/xlib_libXft.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXi/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXi/xlib_libXi.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXinerama/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXinerama/xlib_libXinerama.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXmu/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXmu/xlib_libXmu.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXp/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXp/xlib_libXp.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXpm/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXpm/xlib_libXpm.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXprintAppUtil/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXprintAppUtil/xlib_libXprintAppUtil.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXprintUtil/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXprintUtil/xlib_libXprintUtil.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXrandr/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXrandr/xlib_libXrandr.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXrender/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXrender/xlib_libXrender.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXres/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXres/xlib_libXres.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXt/Config.in11
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXt/xlib_libXt-1.0.4-makestrs-nocc.patch47
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXt/xlib_libXt.mk20
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXtst/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXtst/xlib_libXtst.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXv/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXv/xlib_libXv.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXvMC/Config.in10
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXvMC/xlib_libXvMC.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXxf86dga/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXxf86dga/xlib_libXxf86dga.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXxf86misc/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXxf86misc/xlib_libXxf86misc.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXxf86vm/Config.in9
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libXxf86vm/xlib_libXxf86vm.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libdmx/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libdmx/xlib_libdmx.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libfontenc/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_liblbxutil/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_liblbxutil/xlib_liblbxutil-1.0.1-mk3gstates-nocc.patch46
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_liblbxutil/xlib_liblbxutil.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_liboldX/Config.in6
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_liboldX/xlib_liboldX.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libxkbfile/Config.in7
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libxkbui/Config.in8
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_libxkbui/xlib_libxkbui.mk15
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_xtrans/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xlib_xtrans/xlib_xtrans.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_applewmproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_applewmproto/xproto_applewmproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_bigreqsproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_bigreqsproto/xproto_bigreqsproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_compositeproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_compositeproto/xproto_compositeproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_damageproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_damageproto/xproto_damageproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_dmxproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_dmxproto/xproto_dmxproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_evieext/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_evieext/xproto_evieext.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_fixesproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_fixesproto/xproto_fixesproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_fontcacheproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_fontcacheproto/xproto_fontcacheproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_fontsproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_fontsproto/xproto_fontsproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_glproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_glproto/xproto_glproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_inputproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_kbproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_kbproto/xproto_kbproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_printproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_printproto/xproto_printproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_randrproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_randrproto/xproto_randrproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_recordproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_recordproto/xproto_recordproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_renderproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_renderproto/xproto_renderproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_resourceproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_resourceproto/xproto_resourceproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_scrnsaverproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_scrnsaverproto/xproto_scrnsaverproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_trapproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_trapproto/xproto_trapproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_videoproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_windowswmproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_windowswmproto/xproto_windowswmproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xcmiscproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xcmiscproto/xproto_xcmiscproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xextproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xextproto/xproto_xextproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86bigfontproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86bigfontproto/xproto_xf86bigfontproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86dgaproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86dgaproto/xproto_xf86dgaproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86driproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86driproto/xproto_xf86driproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86miscproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86miscproto/xproto_xf86miscproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86rushproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86rushproto/xproto_xf86rushproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86vidmodeproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xf86vidmodeproto/xproto_xf86vidmodeproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xineramaproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xineramaproto/xproto_xineramaproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xproto/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xproto/xproto_xproto.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xproxymanagementprotocol/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xproto_xproxymanagementprotocol/xproto_xproxymanagementprotocol.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xserver_xorg-server/Config.in54
-rw-r--r--cleopatre/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server-1.4-configure.patch28
-rw-r--r--cleopatre/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server-1.4-servermd-add-avr32.patch19
-rw-r--r--cleopatre/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server-1.4-tslib-fix.patch11
-rw-r--r--cleopatre/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk56
-rw-r--r--cleopatre/buildroot/package/x11r7/xutil_makedepend/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xutil_makedepend/xutil_makedepend.mk14
-rw-r--r--cleopatre/buildroot/package/x11r7/xutil_util-macros/Config.in5
-rw-r--r--cleopatre/buildroot/package/x11r7/xutil_util-macros/xutil_util-macros-1.1.5-linuxdoc.patch15
-rw-r--r--cleopatre/buildroot/package/x11r7/xutil_util-macros/xutil_util-macros-1.1.5.patch8
-rw-r--r--cleopatre/buildroot/package/x11r7/xutil_util-macros/xutil_util-macros.mk14
-rw-r--r--cleopatre/buildroot/package/x11vnc/Config.in4
-rw-r--r--cleopatre/buildroot/package/x11vnc/x11vnc.mk20
-rw-r--r--cleopatre/buildroot/package/xboard/Config.in6
-rw-r--r--cleopatre/buildroot/package/xboard/xboard-4.2.7-installer.patch55
-rw-r--r--cleopatre/buildroot/package/xboard/xboard.mk19
-rw-r--r--cleopatre/buildroot/package/xerces/Config.in6
-rw-r--r--cleopatre/buildroot/package/xerces/xerces.mk64
-rw-r--r--cleopatre/buildroot/package/xfsprogs/Config.in6
-rw-r--r--cleopatre/buildroot/package/xfsprogs/xfsprogs-2.7.11_susv3-legacy.patch1254
-rw-r--r--cleopatre/buildroot/package/xfsprogs/xfsprogs.mk101
-rw-r--r--cleopatre/buildroot/package/xfsprogs/xfsprogs.patch59
-rw-r--r--cleopatre/buildroot/package/xpdf/Config.in7
-rw-r--r--cleopatre/buildroot/package/xpdf/xpdf-3.02pl1.patch33
-rw-r--r--cleopatre/buildroot/package/xpdf/xpdf-3.02pl2.patch823
-rw-r--r--cleopatre/buildroot/package/xpdf/xpdf.mk31
-rw-r--r--cleopatre/buildroot/package/xstroke/Config.in7
-rw-r--r--cleopatre/buildroot/package/xstroke/xstroke.mk17
-rw-r--r--cleopatre/buildroot/package/xvkbd/Config.in6
-rw-r--r--cleopatre/buildroot/package/xvkbd/xvkbd-2.8-makefile.patch2405
-rw-r--r--cleopatre/buildroot/package/xvkbd/xvkbd.mk21
-rw-r--r--cleopatre/buildroot/package/zlib/Config.in13
-rw-r--r--cleopatre/buildroot/package/zlib/zlib-1.2.1-configure.patch103
-rw-r--r--cleopatre/buildroot/package/zlib/zlib-arflags.patch21
-rw-r--r--cleopatre/buildroot/package/zlib/zlib.mk91
-rw-r--r--cleopatre/buildroot/project/Config.in25
-rw-r--r--cleopatre/buildroot/project/Makefile.in76
-rw-r--r--cleopatre/buildroot/project/project.mk59
-rwxr-xr-xcleopatre/buildroot/scripts/add_new_package.wizard93
-rwxr-xr-xcleopatre/buildroot/scripts/build-ext3-img152
-rwxr-xr-xcleopatre/buildroot/scripts/copy.sh20
-rwxr-xr-xcleopatre/buildroot/scripts/create_ipkgs82
-rwxr-xr-xcleopatre/buildroot/scripts/get_linux_config.sh15
-rwxr-xr-xcleopatre/buildroot/scripts/setlocalversion68
-rw-r--r--cleopatre/buildroot/target/Config.in77
-rw-r--r--cleopatre/buildroot/target/Config.in.arch727
-rw-r--r--cleopatre/buildroot/target/Makefile.in37
-rw-r--r--cleopatre/buildroot/target/cloop/Config.in9
-rw-r--r--cleopatre/buildroot/target/cloop/Makefile.in3
-rw-r--r--cleopatre/buildroot/target/cloop/cloop.mk119
-rw-r--r--cleopatre/buildroot/target/cpio/Config.in50
-rw-r--r--cleopatre/buildroot/target/cpio/cpioroot.mk96
-rw-r--r--cleopatre/buildroot/target/cramfs/Config.in7
-rw-r--r--cleopatre/buildroot/target/cramfs/cramfs-01-devtable.patch1269
-rw-r--r--cleopatre/buildroot/target/cramfs/cramfs-02-endian.patch284
-rw-r--r--cleopatre/buildroot/target/cramfs/cramfs-03-cygwin_IO.patch13
-rw-r--r--cleopatre/buildroot/target/cramfs/cramfs.mk92
-rw-r--r--cleopatre/buildroot/target/device/AMD/Config.in19
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/Makefile.in22
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/busybox.config483
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/device_table.txt162
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/linux.config1050
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/linux26.mk109
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/bin/.empty0
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/dev/log1
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/dev/pts/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/fstab8
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/group14
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/hosts1
-rwxr-xr-xcleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/init.d/S20urandom54
-rwxr-xr-xcleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/init.d/S40network35
-rwxr-xr-xcleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/inittab47
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/issue4
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/passwd13
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/protocols31
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/random-seedbin0 -> 512 bytesl---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/securetty12
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/home/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/mnt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/opt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/proc/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/root/.bash_history0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/root/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/sbin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/tmp/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/usr/bin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/usr/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/usr/sbin/.empty0
-rwxr-xr-xcleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/usr/share/udhcpc/default.script39
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/lib/pcmcia1
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/lock1
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/log1
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/pcmcia1
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/run1
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/spool1
l---------cleopatre/buildroot/target/device/AMD/DBAu1500/target_skeleton/var/tmp1
-rw-r--r--cleopatre/buildroot/target/device/AMD/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/ARM/Config.in20
-rw-r--r--cleopatre/buildroot/target/device/ARM/Makefile.in47
-rw-r--r--cleopatre/buildroot/target/device/ARM/arm-linux.config1417
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/Config.in20
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/Makefile.in14
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/integrator926_defconfig563
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/integrator926_huge_defconfig543
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/linux26.integrator926.config1007
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/linux26.integrator926_huge.config1027
-rw-r--r--cleopatre/buildroot/target/device/ARMLTD/uClibc.integrator926.config212
-rw-r--r--cleopatre/buildroot/target/device/Atmel/AT91_Config.in288
-rw-r--r--cleopatre/buildroot/target/device/Atmel/AVR32_Config.in75
-rw-r--r--cleopatre/buildroot/target/device/Atmel/Config.in69
-rw-r--r--cleopatre/buildroot/target/device/Atmel/Config.in.linux.patches6
-rw-r--r--cleopatre/buildroot/target/device/Atmel/Config.in.mirrors27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/DataFlashBoot/Config.in23
-rw-r--r--cleopatre/buildroot/target/device/Atmel/DataFlashBoot/DataflashBoot.mk47
-rw-r--r--cleopatre/buildroot/target/device/Atmel/Makefile.in89
-rw-r--r--cleopatre/buildroot/target/device/Atmel/Makefile.in.linux3
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/Config.in.linux.patches72
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/Makefile.in12
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/arch-arm.mk4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.20.4/linux-2.6.20.4-atmel.patch26777
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.21.1/linux-2.6.21.1-at91-1-update.patch36
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.21.1/linux-2.6.21.1-at91.patch14630
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.21.5/linux-2.6.21.5-at91-1-update.patch36
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.21.5/linux-2.6.21.5-at91.patch14630
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.24/linux-2.6.24-at91.patch30343
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.25/linux-2.6.25-at91.patch.gzbin0 -> 132353 bytes-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-arm/kernel-patches-2.6.26-rc3/linux-2.6.26-rc3-at91.patch.gzbin0 -> 94190 bytes-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/Config.in.linux.patches83
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/arch-avr32.mk27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.22.10/linux-2.6.22.10-100-avr32-atmel.4.patch16955
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.22.10/linux-2.6.22.10-500-gpio_mouse-setup-for-atstk1000-board.patch130
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.22.10/linux-2.6.22.10-501-atmel_mci-minor-fixes-and-cleanups.patch290
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.22.10/linux-2.6.22.10-502-atmel_mci-fix-two-subtle-but-deadly-races.patch438
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.23/linux-2.6.23-100-avr32-atmel.2.patch19857
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.23/linux-2.6.23-200-fix-include-typo-for-atngw100-board.patch11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.24/linux-2.6.24-100-avr32-git.1.patch16922
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.24/linux-2.6.24-500-v4l-avr32-isi.patch.cond2954
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.24/linux-2.6.24-600-avr32-mmc.patch255
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.24/linux-2.6.24-avr32-ac97-reset.patch.cond289
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.24/linux-2.6.24-avr32-psif-2.patch.cond671
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.25.10/linux-2.6.25.10-no-localversion.patch5
-rw-r--r--cleopatre/buildroot/target/device/Atmel/arch-avr32/kernel-patches-2.6.25.10/linux-2.6.25.10.atmel.2.patch.bz2bin0 -> 273604 bytes-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91bootstrap/Config.in84
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91bootstrap/at91bootstrap-2.3.1.patch223
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91bootstrap/at91bootstrap-2.3.2.patch506
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91bootstrap/at91bootstrap-2.3.4.patch336
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91bootstrap/at91bootstrap.mk91
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/Makefile.in6
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/at91rm9200df-linux-2.6.21.1.config1361
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/at91rm9200df-linux-2.6.22.1.config1355
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/at91rm9200df_defconfig902
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/busybox-1.5.0-atmel.config0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/busybox-1.6.0.config690
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/busybox-1.7.1.config749
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91rm9200df/u-boot/at91rm9200df.h360
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/Makefile.in4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/at91sam9260dfc-linux-2.6.20.4.config1255
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/at91sam9260dfc-linux-2.6.21.1.config1457
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/at91sam9260dfc-linux-2.6.22.1.config1444
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/at91sam9260dfc-linux-2.6.24.3.config1417
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/at91sam9260dfc_defconfig832
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/busybox-1.6.0.config690
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/busybox-1.9.1.config690
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260dfc/u-boot/at91sam9260dfc.h371
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260pf/Makefile.in4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260pf/at91sam9260pf-linux-2.6.22.1.config1461
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260pf/at91sam9260pf_defconfig651
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260pf/busybox-1.6.0.config690
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9260pf/u-boot/at91sam9260pf.h370
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9261ek/Makefile.in3
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9261ek/at91sam9261ek-linux-2.6.21.1.config1460
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9261ek/at91sam9261ek-linux-2.6.22.1.config1460
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9261ek/at91sam9261ek_defconfig811
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9261ek/busybox-1.6.0.config690
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9261ek/u-boot/at91sam9261ek.h435
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9263ek/Makefile.in3
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9263ek/at91sam9263ek-linux-2.6.21.1.config1451
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9263ek/at91sam9263ek_defconfig776
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9263ek/busybox-1.6.0.config690
-rw-r--r--cleopatre/buildroot/target/device/Atmel/at91sam9263ek/u-boot/at91sam9263ek.h444
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/atngw100-base-linux-2.6.23.config858
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/atngw100-base-linux-2.6.24.config1153
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/atngw100-base_defconfig606
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/busybox-1.11.0.config767
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/busybox-1.9.1.config767
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/device_table.txt56
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/fstab3
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/group20
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/hosts12
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/K70sendsig1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/S00mountvirtfs74
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/S01hotplug14
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/S02hostname47
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/S08syslog24
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/S09klog16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/rcK6
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/init.d/rcS11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/inittab27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/mdev.conf49
l---------cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/network/interfaces7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/passwd17
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/protocols149
l---------cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/services2117
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/shadow17
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-base/target_skeleton/etc/shells8
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/atngw100-expanded-linux-2.6.23.config1290
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/atngw100-expanded-linux-2.6.24.config1201
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/atngw100-expanded-linux-2.6.25.10.config1271
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/atngw100-expanded_defconfig1110
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/busybox-1.11.0.config767
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/busybox-1.9.1.config767
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/device_table.txt181
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/jffs2_partitions.txt7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.24.4-100-atngw100-add-ac97.patch10
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.24.4-200-atngw100-video.patch148
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.24.4-300-avr32-psif-2.patch27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.24.4-400-atngw100-unlock-uboot-flash.patch11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.24.4-500-avr32-ac97-reset.patch289
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.24.4-600-atngw100-disable-psif1.patch11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/dev/.DEVICES69
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/dev/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/default/ntpdate6
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/dnsmasq.conf447
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/fstab14
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/group20
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/hosts11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/hosts.dnsmasq246
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/httpd.conf2
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/inetd.conf3
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/K70sendsig1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/K80netfs1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/K85network11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/K90localfs1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S00mountvirtfs76
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S01hotplug14
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S02hostname47
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S08syslog24
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S09klog16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S10modules-init21
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S20network11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S41inetd16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S42httpd16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S43ntp27
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S49netfs11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/S90firstboot21
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/rcK6
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/init.d/rcS11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/inittab27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/modules13
l---------cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/network/interfaces8
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/ntp.conf49
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/passwd18
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/proftpd.conf31
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/protocols149
l---------cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/samba/smb.conf287
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/samba/smbpasswd1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/services2117
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/shadow18
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/etc/shells8
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100-expanded/target_skeleton/usr/share/udhcpc/default.script19
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/atngw100-linux-2.6.22.1.config1169
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/atngw100-linux-2.6.22.10.config1170
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/atngw100-linux-2.6.23.config1114
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/atngw100-linux-2.6.24.config1153
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/atngw100_defconfig735
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/busybox-1.9.1.config767
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/device_table.txt181
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/jffs2_partitions.txt8
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/bin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/boot/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/config/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/dev/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/default/ntpdate6
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/dnsmasq.conf447
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/ethers0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/fstab4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/group20
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/hosts11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/hosts.dnsmasq246
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/httpd.conf2
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/inetd.conf3
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/K70sendsig1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/K80netfs1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/K85network11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/K90localfs1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S00mountvirtfs74
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S01hotplug14
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S02hostname47
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S08syslog24
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S09klog16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S10modules-init21
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S15localfs11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S20network11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S21dnsmasq18
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S22iptables43
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S40telnetd16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S41inetd16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S42httpd16
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S43ntp27
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S49netfs11
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/S99gpio142
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/rcK6
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/init.d/rcS11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/inittab27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/mdev.conf49
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/modules0
l---------cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/network/interfaces15
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/ntp.conf49
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/passwd18
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/proftpd.conf31
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/protocols149
l---------cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/samba/smb.conf287
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/samba/smbpasswd1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/services2117
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/shadow18
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/etc/shells8
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/home/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/mnt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/opt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/root/.bash_history0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/root/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/sbin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/tmp/resolv.conf0
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/usr/share/udhcpc/default.script19
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/cache/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/lib/pcmcia/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/lock/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/log/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/pcmcia/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/run/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/spool/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atngw100/target_skeleton/var/tmp/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/atstk1002-linux-2.6.22.1.config1102
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/atstk1002-linux-2.6.22.10.config1104
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/atstk1002-linux-2.6.23.config1050
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/atstk1002-linux-2.6.24.config1154
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/atstk1002-no-mplayer_defconfig785
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/atstk100x_defconfig936
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/busybox-1.9.1.config767
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/device_table.txt181
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/kernel-patches/linux-2.6.23-200-gpio_mouse-setup-for-atstk1000-board.patch130
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/asound.state108
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/default/ntpdate6
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/dnsmasq.conf385
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/fb.modes5
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/fstab3
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/group20
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/hosts12
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/hosts.dnsmasq246
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/httpd.conf2
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/inetd.conf3
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/K20alsa-utils14
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/K70sendsig1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/K80netfs1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/K85network11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/K90localfs1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S00mountvirtfs74
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S01hotplug14
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S02hostname47
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S03bootsplash25
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S08syslog24
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S09klog16
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S10modules-init21
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S15localfs11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S20network11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S40telnetd16
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S41inetd16
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S42httpd16
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S43ntp27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S49netfs11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S50alsa-utils19
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S99gpio142
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/S99splash17
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/rcK6
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/init.d/rcS11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/inittab28
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/mdev.conf49
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/modules4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/mplayer.conf129
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/network/interfaces11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/ntp.conf49
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/passwd18
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/proftpd.conf31
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/protocols149
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/samba/smb.conf287
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/samba/smbpasswd1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/services2117
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/shadow18
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/etc/shells8
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/device/Atmel/atstk100x/target_skeleton/usr/share/udhcpc/default.script19
-rw-r--r--cleopatre/buildroot/target/device/Atmel/misc-patches/README2
-rw-r--r--cleopatre/buildroot/target/device/Atmel/misc-patches/u-boot-1.3.0-200MHz-ngw100.patch20
-rw-r--r--cleopatre/buildroot/target/device/Atmel/misc-patches/u-boot-1.3.0-64MB-sdram-ngw100.patch11
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/busybox.config643
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/depmod.pl237
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/device_table.txt162
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/skel.patch71
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/skel.tar.gzbin0 -> 629 bytes-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/skel_busybox.patch215
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/fstab9
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/group16
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/hosts1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/init.d/S20urandom54
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/init.d/S40network35
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/inittab53
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/issue4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/passwd15
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/protocols31
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/random-seedbin0 -> 512 bytes-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/securetty12
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_busybox_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/bin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/boot/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/config/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/dev/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/fstab9
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/group16
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/hosts1
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/init.d/S20urandom54
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/init.d/S40network35
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/inittab47
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/issue4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/ld.so.conf1
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/ld.so.conf.d/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/passwd15
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/protocols31
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/random-seedbin0 -> 512 bytes-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/securetty12
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/home/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/mnt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/opt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/proc/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/root/.bash_history0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/root/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/sbin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/tmp/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/bin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/include/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/man/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/sbin/.empty0
-rwxr-xr-xcleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/share/udhcpc/default.script39
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/usr/src/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/cache/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/lib/pcmcia/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/lock/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/log/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/pcmcia/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/run/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/spool/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/target_skeleton/var/tmp/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Atmel/root/uClibc.config167
-rw-r--r--cleopatre/buildroot/target/device/Atmel/u-boot/Config.in43
-rw-r--r--cleopatre/buildroot/target/device/Atmel/u-boot/u-boot.mk282
-rw-r--r--cleopatre/buildroot/target/device/Atmel/uClibc.config.avr32200
-rw-r--r--cleopatre/buildroot/target/device/Config.in26
-rw-r--r--cleopatre/buildroot/target/device/Config.in.linux.patches13
-rw-r--r--cleopatre/buildroot/target/device/Config.in.mirrors53
-rw-r--r--cleopatre/buildroot/target/device/Config.in.toolchain190
-rw-r--r--cleopatre/buildroot/target/device/Hitachi/Config.in10
-rw-r--r--cleopatre/buildroot/target/device/Hitachi/MS7206SE01/Makefile.in1
-rw-r--r--cleopatre/buildroot/target/device/Hitachi/MS7206SE01/uClibc.config.sh2a_nofpueb144
-rw-r--r--cleopatre/buildroot/target/device/Hitachi/Makefile.in6
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/Config.in90
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/Makefile.in52
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/Makefile.in4
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/busybox.config829
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/device_table.txt164
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/kb9202-linux-2.6.20.config1218
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/kb9202-linux-2.6.24.config1208
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/kb9202_defconfig758
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/fstab11
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/group7
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/hostname1
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/init.d/rcS15
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/inittab33
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/issue7
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/issue.net6
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/ld.so.cachebin0 -> 669 bytes-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/ld.so.conf0
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/mdev.conf50
l---------cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/network/interfaces20
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/passwd13
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/profile2
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/protocols31
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/services302
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/etc/vsftpd.conf32
-rw-r--r--cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/root/.ash_history15
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/sbin/automount.script21
-rwxr-xr-xcleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/usr/share/udhcpc/default.script40
l---------cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/var/adm1
l---------cleopatre/buildroot/target/device/KwikByte/kb9202/target_skeleton/var/tmp1
-rw-r--r--cleopatre/buildroot/target/device/Makefile.in8
-rw-r--r--cleopatre/buildroot/target/device/Makefile.in.linux1
-rw-r--r--cleopatre/buildroot/target/device/Sharp/Config.in14
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/device_table.txt172
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/kernel-patches/001-patch-2.4.26-vrs189183
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/kernel-patches/002-patch-2.4.26-vrs1-lnode8014498
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/linux.config804
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/linux.mk117
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/fstab8
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/group10
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/hosts1
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/inittab48
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/issue4
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/passwd13
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/protocols31
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/securetty14
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/root/.empty0
-rw-r--r--cleopatre/buildroot/target/device/Sharp/LNode80/target_skeleton/usr/share/udhcpc/default.script39
-rw-r--r--cleopatre/buildroot/target/device/Sharp/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/Soekris/Config.in22
-rw-r--r--cleopatre/buildroot/target/device/Soekris/Makefile.in29
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/busybox.config466
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/002-2.4.29-hf7.diff.bz2bin0 -> 25891 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/003_kbuild_fixes.diff.bz2bin0 -> 1091 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/004_386_emu.diff.bz2bin0 -> 5288 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/005_modularize_vesafb.diff.bz2bin0 -> 710 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/006_init_unshare.diff.bz2bin0 -> 292 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/007-scsi_add_remove_single.bz2bin0 -> 3981 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/008-ieee1394-fix.bz2bin0 -> 390 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/009-always-inline.bz2bin0 -> 468 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/010-optimize-for-size.bz2bin0 -> 1192 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/012-x86-check_gcc.bz2bin0 -> 329 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/015_cramfs_initrd.diff.bz2bin0 -> 406 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/017-printk.bz2bin0 -> 336 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/018-slab-loop-init.bz2bin0 -> 268 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/041-changeloop.patch.bz2bin0 -> 2783 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/042-loopfixes.patch.bz2bin0 -> 640 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/044-streaming_io.bz2bin0 -> 1736 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/062-silence-blk-queue.bz2bin0 -> 374 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/063-silence.kbd.patch.bz2bin0 -> 494 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/064-shutup-md.bz2bin0 -> 501 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/067-squashfs3.0.patch.bz2bin0 -> 17286 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/076-nmap-freak.bz2bin0 -> 1576 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/077-orinoco-0.13e.bz2bin0 -> 7387 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/078-hostap.bz2bin0 -> 113714 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/079-jiffies64.bz2bin0 -> 4782 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/089-no-touch-makedep.bz2bin0 -> 858 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/kernel-patches/100_VERSION.bz2bin0 -> 227 bytes-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/linux.config889
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/linux.mk126
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4521/uClibc.config166
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4801/busybox.config675
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4801/linux.config951
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4801/linux26.config1912
-rw-r--r--cleopatre/buildroot/target/device/Soekris/net4801/uClibc.config166
-rw-r--r--cleopatre/buildroot/target/device/Soekris/soekris_gpio/Makefile43
-rw-r--r--cleopatre/buildroot/target/device/Soekris/soekris_gpio/soekris_gpio.mk67
-rw-r--r--cleopatre/buildroot/target/device/Via/Config.in7
-rw-r--r--cleopatre/buildroot/target/device/Via/Makefile.in10
-rw-r--r--cleopatre/buildroot/target/device/Via/epia-mii/linux.config1431
-rw-r--r--cleopatre/buildroot/target/device/Via/epia-mii/linux.mk115
-rw-r--r--cleopatre/buildroot/target/device/jp/Config.in10
-rw-r--r--cleopatre/buildroot/target/device/jp/Makefile.in7
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/Makefile.in10
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/busybox.config483
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/device_table.txt162
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.26/001-q5730
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.26/002-build_fixes81
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.26/004-correct_toolchain24
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.26/100-version11
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.29/001-q5420
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.29/004-correct_toolchain24
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.29/100-version11
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.32/001-q5342
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.32/005-dp83847162
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.32/006-cfi27
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.32/007-au100013
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.32/008-wbflush14
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/kernel-patches-2.4.32/100-version11
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/linux.config886
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/linux.mk129
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/bin/.empty0
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/dev/log1
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/dev/pts/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/fstab8
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/group10
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/hosts1
-rwxr-xr-xcleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/init.d/S20urandom54
-rwxr-xr-xcleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/init.d/S40network35
-rwxr-xr-xcleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/inittab47
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/issue4
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/passwd13
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/protocols31
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/securetty12
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/home/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/mnt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/opt/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/proc/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/root/.bash_history0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/root/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/sbin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/tmp/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/usr/bin/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/usr/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/target_skeleton/usr/sbin/.empty0
-rwxr-xr-xcleopatre/buildroot/target/device/jp/q5/target_skeleton/usr/share/udhcpc/default.script39
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/lib/pcmcia1
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/lock1
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/log1
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/pcmcia1
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/run1
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/spool1
l---------cleopatre/buildroot/target/device/jp/q5/target_skeleton/var/tmp1
-rw-r--r--cleopatre/buildroot/target/device/jp/q5/uClibc.config.mipsel163
-rw-r--r--cleopatre/buildroot/target/device/mips/Makefile.in26
-rw-r--r--cleopatre/buildroot/target/device/mips/linux26.config1567
-rw-r--r--cleopatre/buildroot/target/device/valka/Config.in32
-rw-r--r--cleopatre/buildroot/target/device/valka/Makefile.in24
-rw-r--r--cleopatre/buildroot/target/device/valka/device_table.txt86
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/crontab/root2
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/default/ntpdate6
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/default/rc.conf80
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/fonts/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/fstab3
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/group4
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/hostname0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/hosts10
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/inetd.conf23
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/init.d/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/inittab8
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/mdev.conf41
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/modules0
l---------cleopatre/buildroot/target/device/valka/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/network/if-down.d/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/network/if-post-down.d/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/network/if-pre-up.d/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/network/if-up.d/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/network/interfaces11
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/ntp.conf7
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/passwd4
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/protocols151
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc27
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.conf1
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/00.virtualfs24
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/01.mdev23
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/02.localfs22
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/03.hostname25
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/04.syslog24
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/05.klog24
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/06.modules31
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/10.network32
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/11.ntpdate24
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/crond27
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/dbus30
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/dropbear37
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/gpio34
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/gui39
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/inetd27
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/lighttpd17
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/ntpd24
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/onewire34
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.d/portmap31
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.local3
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.shutdown7
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/etc/rc.subr101
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/resolv.conf0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/services2393
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/shadow4
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/etc/shells8
-rwxr-xr-xcleopatre/buildroot/target/device/valka/target_skeleton/usr/share/udhcpc/default.script40
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/var/db/.empty0
l---------cleopatre/buildroot/target/device/valka/target_skeleton/var/lock1
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/var/run/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/target_skeleton/web/.empty0
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/busybox-1.9.0.config776
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/busybox-1.9.1.config776
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/kernel-patches/linux-2.6.24-100-avr32-git.1.patch16922
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/kernel-patches/linux-2.6.24-200-atngw100-video.patch175
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/kernel-patches/linux-2.6.24-300-avr32-psif.patch592
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/kernel-patches/linux-2.6.24-400-wire-up-avr32-mmc2.patch22
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/uClibc.config201
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2/v100sc2-linux-2.6.24.config1233
-rw-r--r--cleopatre/buildroot/target/device/valka/v100sc2_defconfig919
-rw-r--r--cleopatre/buildroot/target/device/x86/Config.in6
-rw-r--r--cleopatre/buildroot/target/device/x86/Makefile.in3
-rwxr-xr-xcleopatre/buildroot/target/device/x86/depmod.pl237
-rw-r--r--cleopatre/buildroot/target/device/x86/i386/Makefile.in20
-rw-r--r--cleopatre/buildroot/target/device/x86/i386/busybox.config719
-rw-r--r--cleopatre/buildroot/target/device/x86/i386/i686_defconfig750
-rw-r--r--cleopatre/buildroot/target/device/x86/i386/linux-2.6.21.5.config1980
-rw-r--r--cleopatre/buildroot/target/device/x86/i386/linux-2.6.22.1.config1927
-rw-r--r--cleopatre/buildroot/target/device/x86/i386/linux26.config1970
-rw-r--r--cleopatre/buildroot/target/ext2/Config.in75
-rw-r--r--cleopatre/buildroot/target/ext2/ext2root.mk160
-rw-r--r--cleopatre/buildroot/target/ext2/genext2fs-1.4-nosquash.patch14
-rw-r--r--cleopatre/buildroot/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch21
-rw-r--r--cleopatre/buildroot/target/generic/Config.in58
-rw-r--r--cleopatre/buildroot/target/generic/Makefile.in9
-rw-r--r--cleopatre/buildroot/target/generic/device_table.txt171
-rw-r--r--cleopatre/buildroot/target/generic/mini_device_table.txt177
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/fstab9
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/group16
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/hosts1
-rwxr-xr-xcleopatre/buildroot/target/generic/target_busybox_skeleton/etc/init.d/S20urandom54
-rwxr-xr-xcleopatre/buildroot/target/generic/target_busybox_skeleton/etc/init.d/S40network35
-rwxr-xr-xcleopatre/buildroot/target/generic/target_busybox_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/inittab54
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/issue4
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/passwd15
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/protocols31
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/random-seedbin0 -> 512 bytesl---------cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/securetty12
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/generic/target_busybox_skeleton/etc/shadow12
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/cache1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/lib/pcmcia1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/lock1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/log1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/pcmcia1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/run1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/spool1
l---------cleopatre/buildroot/target/generic/target_busybox_skeleton/var/tmp1
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/bin/.empty0
l---------cleopatre/buildroot/target/generic/target_skeleton/dev/log1
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/dev/pts/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/TZ1
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/fstab8
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/group16
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/hostname1
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/hosts1
-rwxr-xr-xcleopatre/buildroot/target/generic/target_skeleton/etc/init.d/S20urandom54
-rwxr-xr-xcleopatre/buildroot/target/generic/target_skeleton/etc/init.d/S40network35
-rwxr-xr-xcleopatre/buildroot/target/generic/target_skeleton/etc/init.d/rcS27
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/inittab47
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/inputrc44
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/issue4
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/ld.so.conf.d/.empty0
l---------cleopatre/buildroot/target/generic/target_skeleton/etc/mtab1
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/network/interfaces4
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/passwd15
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/profile48
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/protocols31
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/random-seedbin0 -> 512 bytesl---------cleopatre/buildroot/target/generic/target_skeleton/etc/resolv.conf1
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/securetty12
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/services302
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/etc/shadow12
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/home/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/mnt/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/opt/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/proc/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/root/.bash_history0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/root/.bash_logout7
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/root/.bash_profile15
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/root/.bashrc48
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/root/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/sbin/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/sys/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/tmp/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/usr/bin/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/usr/lib/.empty0
-rw-r--r--cleopatre/buildroot/target/generic/target_skeleton/usr/sbin/.empty0
-rwxr-xr-xcleopatre/buildroot/target/generic/target_skeleton/usr/share/udhcpc/default.script39
l---------cleopatre/buildroot/target/generic/target_skeleton/var/cache1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/lib/pcmcia1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/lock1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/log1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/pcmcia1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/run1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/spool1
l---------cleopatre/buildroot/target/generic/target_skeleton/var/tmp1
-rw-r--r--cleopatre/buildroot/target/hurd/Config.in11
-rw-r--r--cleopatre/buildroot/target/hurd/Makefile.in38
-rw-r--r--cleopatre/buildroot/target/initramfs/Config.in15
-rw-r--r--cleopatre/buildroot/target/initramfs/gen_initramfs_list.sh203
-rw-r--r--cleopatre/buildroot/target/initramfs/initramfs.mk49
-rw-r--r--cleopatre/buildroot/target/iso9660/Config.in18
-rw-r--r--cleopatre/buildroot/target/iso9660/iso9660.mk95
-rw-r--r--cleopatre/buildroot/target/iso9660/menu.lst11
-rw-r--r--cleopatre/buildroot/target/jffs2/Config.in132
-rw-r--r--cleopatre/buildroot/target/jffs2/jffs2root.mk119
-rw-r--r--cleopatre/buildroot/target/linux/Config.in33
-rw-r--r--cleopatre/buildroot/target/linux/Config.in.advanced586
-rw-r--r--cleopatre/buildroot/target/linux/Config.in.experimental345
-rw-r--r--cleopatre/buildroot/target/linux/Makefile.in248
-rw-r--r--cleopatre/buildroot/target/linux/Makefile.in.advanced513
-rw-r--r--cleopatre/buildroot/target/makedevs/makedevs.c534
-rw-r--r--cleopatre/buildroot/target/makedevs/makedevs.mk32
-rw-r--r--cleopatre/buildroot/target/powerpc/Makefile.in1
-rw-r--r--cleopatre/buildroot/target/powerpc/yaboot/Config.in5
-rw-r--r--cleopatre/buildroot/target/powerpc/yaboot/yaboot.mk44
-rw-r--r--cleopatre/buildroot/target/romfs/Config.in6
-rw-r--r--cleopatre/buildroot/target/romfs/romfs.mk79
-rw-r--r--cleopatre/buildroot/target/squashfs/Config.in6
-rw-r--r--cleopatre/buildroot/target/squashfs/squashfsroot.mk90
-rw-r--r--cleopatre/buildroot/target/tar/Config.in59
-rw-r--r--cleopatre/buildroot/target/tar/tarroot.mk77
-rw-r--r--cleopatre/buildroot/target/u-boot/Config.in82
-rw-r--r--cleopatre/buildroot/target/u-boot/Makefile.in176
-rw-r--r--cleopatre/buildroot/target/ubifs/Config.in102
-rw-r--r--cleopatre/buildroot/target/ubifs/ubifsroot.mk141
-rw-r--r--cleopatre/buildroot/target/x86/Makefile.in3
-rw-r--r--cleopatre/buildroot/target/x86/grub/Config.in146
-rw-r--r--cleopatre/buildroot/target/x86/grub/grub.100-autoreconf.patch1407
-rw-r--r--cleopatre/buildroot/target/x86/grub/grub.200-fix_mbr_handling.patch11
-rw-r--r--cleopatre/buildroot/target/x86/grub/grub.300-honor_UCLIBC_HAS_LFS.patch34
-rw-r--r--cleopatre/buildroot/target/x86/grub/grub.400-nic_update2.patch.bz2bin0 -> 328903 bytes-rw-r--r--cleopatre/buildroot/target/x86/grub/grub.mk137
-rw-r--r--cleopatre/buildroot/target/x86/grub/menu.lst7
-rw-r--r--cleopatre/buildroot/target/x86/grub/splash.xpm.gzbin0 -> 45185 bytes-rw-r--r--cleopatre/buildroot/target/x86/grub2/Config.in13
-rw-r--r--cleopatre/buildroot/target/x86/grub2/grub-1.95-001-fix-grub-install.patch23
-rw-r--r--cleopatre/buildroot/target/x86/grub2/grub2.mk134
-rw-r--r--cleopatre/buildroot/target/x86/syslinux/Config.in11
-rw-r--r--cleopatre/buildroot/target/x86/syslinux/syslinux-3.61-makefile.patch11
-rw-r--r--cleopatre/buildroot/target/x86/syslinux/syslinux.mk70
-rw-r--r--cleopatre/buildroot/toolchain/Config.in34
-rw-r--r--cleopatre/buildroot/toolchain/Config.in.276
-rw-r--r--cleopatre/buildroot/toolchain/Makefile.in49
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.14.90.0.8/001-debian.patch142
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.14.90.0.8/100-uclibc-conf.patch608
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.14.90.0.8/210-cflags.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.14.90.0.8/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.14.90.0.8/600-arm-textrel.patch63
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/100-uclibc-conf.patch749
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/210-cflags.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch52
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch39
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15.94.0.2.2/sh-flags-off-by-one.patch21
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15/100-uclibc-conf.patch692
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15/210-cflags.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15/600-arm-textrel.patch63
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.15/700-nios2-2.15.patch38957
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/100-uclibc-conf.patch586
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/110-uclibc-libtool-conf.patch218
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/300-001_ld_makefile_patch.patch52
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.1/sh-flags-off-by-one.patch21
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.90.0.3/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.90.0.3/300-001_ld_makefile_patch.patch52
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.90.0.3/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.90.0.3/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.90.0.3/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.90.0.3/sh-flags-off-by-one.patch21
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.5/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.5/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.5/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.5/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.5/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.6/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.6/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.6/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.6/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.6/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.7/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.7/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.7/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.7/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.7/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.16.91.0.7/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.10/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.10/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.10/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.10/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.12/100-makeinfo-version.patch16
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.12/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.12/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.12/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.12/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.12/320-mips-elf-reloc-regression.patch68
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.14/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.14/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.14/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.14/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.16/100-makeinfo-version.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.16/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.16/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.16/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.16/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.17/100-makeinfo-version.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.17/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.17/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.17/300-001_ld_makefile_patch.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.17/300-012_check_ldrunpath_length.patch21
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.2/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.2/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.2/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.2/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.2/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.2/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.3/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.3/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.3/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.3/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.3/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.4/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.4/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.4/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.4/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.4/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.5/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.5/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.5/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.5/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.5/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.6/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.6/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.6/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.6/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.6/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.7/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.7/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.7/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.7/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.8/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.8/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.9/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.9/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17/100-uclibc-conf.patch139
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17/300-001_ld_makefile_patch.patch50
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17/300-006_better_file_error.patch43
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17/300-012_check_ldrunpath_length.patch47
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.17/400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18.50.0.1/100-makeinfo-version.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18.50.0.1/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18.50.0.1/300-001_ld_makefile_patch.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18.50.0.1/300-012_check_ldrunpath_length.patch21
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18/100-makeinfo-version.patch32
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18/110-arm-eabi-conf.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18/300-001_ld_makefile_patch.patch24
-rw-r--r--cleopatre/buildroot/toolchain/binutils/2.18/300-012_check_ldrunpath_length.patch21
-rw-r--r--cleopatre/buildroot/toolchain/binutils/Config.in41
-rw-r--r--cleopatre/buildroot/toolchain/binutils/binutils.mk193
-rwxr-xr-xcleopatre/buildroot/toolchain/br2_autoreconf699
-rw-r--r--cleopatre/buildroot/toolchain/ccache/Config.in9
-rw-r--r--cleopatre/buildroot/toolchain/ccache/Config.in.27
-rw-r--r--cleopatre/buildroot/toolchain/ccache/ccache.mk201
-rwxr-xr-xcleopatre/buildroot/toolchain/dependencies/check-host-lzma.sh13
-rwxr-xr-xcleopatre/buildroot/toolchain/dependencies/check-host-sed.sh32
-rw-r--r--cleopatre/buildroot/toolchain/dependencies/dependencies.mk35
-rwxr-xr-xcleopatre/buildroot/toolchain/dependencies/dependencies.sh303
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/Config.in10
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt.mk52
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt.nios2.conditional47
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/.cvsignore3
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/CVS/Entries17
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/CVS/Repository1
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/CVS/Root1
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/LICENSE.TXT340
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/Makefile.in81
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/README62
-rwxr-xr-xcleopatre/buildroot/toolchain/elf2flt/elf2flt/config.guess1418
-rwxr-xr-xcleopatre/buildroot/toolchain/elf2flt/elf2flt/config.sub1577
-rwxr-xr-xcleopatre/buildroot/toolchain/elf2flt/elf2flt/configure4719
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/configure.in134
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/cygwin-elf.h2171
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/e1-elf2flt.ld161
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/elf2flt.c2152
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/elf2flt.ld179
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/flat.h111
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/flthdr.c382
-rwxr-xr-xcleopatre/buildroot/toolchain/elf2flt/elf2flt/install-sh251
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/ld-elf2flt.in219
-rwxr-xr-xcleopatre/buildroot/toolchain/elf2flt/elf2flt/maketarball.sh12
-rw-r--r--cleopatre/buildroot/toolchain/elf2flt/elf2flt/stubs.c6
-rw-r--r--cleopatre/buildroot/toolchain/external-toolchain/Config.in105
-rw-r--r--cleopatre/buildroot/toolchain/external-toolchain/ext-tool.mk56
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/100-uclibc-conf.patch470
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/200-uclibc-locale.patch3255
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/300-libstdc++-pic.patch51
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/600-gcc34-arm-ldm-peephole.patch65
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/601-gcc34-arm-ldm-peephole2.patch42
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/601-gcc34-arm-ldm.patch119
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/602-sdk-libstdc++-includes.patch22
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/700-pr15068-fix.patch44
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/71_all_sh-pr16665-fix.patch43
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/72_all_sh-no-reorder-blocks.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/73_all_sh-pr20617.patch28
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/800-arm-bigendian.patch68
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/800-powerpc-libc_stack_end-uclibc.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/810-mips-xgot.patch6
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/900-nios2.patch14377
-rw-r--r--cleopatre/buildroot/toolchain/gcc/3.4.6/arm-softfloat.patch.conditional270
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/100-uclibc-conf.patch553
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/200-uclibc-locale.patch3237
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/300-libstdc++-pic.patch45
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/302-c99-snprintf.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/303-c99-complex-ugly-hack.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/305-libmudflap-susv3-legacy.patch49
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/402-libbackend_dep_gcov-iov.h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/602-sdk-libstdc++-includes.patch22
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.0.4/800-arm-bigendian.patch67
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/100-uclibc-conf.patch544
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/110-arm-eabi.patch27
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/200-uclibc-locale.patch3239
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/300-libstdc++-pic.patch50
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/302-c99-snprintf.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/303-c99-complex-ugly-hack.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/402-libbackend_dep_gcov-iov.h.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/740-sh-pr24836.patch25
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/800-arm-bigendian.patch127
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/801-arm-bootstrap-libgcc.patch63
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.1.2/910-soft-float.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/103-uclibc-conf-noupstream.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/200-uclibc-locale.patch2790
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/203-uclibc-locale-no__x.patch213
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/204-uclibc-locale-wchar_fix.patch48
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/205-uclibc-locale-update.patch347
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/300-libstdc++-pic.patch50
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/302-c99-snprintf.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/303-c99-complex-ugly-hack.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/305-libmudflap-susv3-legacy.patch49
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/306-libstdc++-namespace.patch36
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/402-libbackend_dep_gcov-iov.h.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/800-arm-bigendian.patch67
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.0/904-flatten-switch-stmt-00.patch153
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/103-uclibc-conf-noupstream.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/104-gnuhurd-uclibc-conf.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/200-uclibc-locale.patch2790
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/203-uclibc-locale-no__x.patch213
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/204-uclibc-locale-wchar_fix.patch48
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/205-uclibc-locale-update.patch347
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/300-libstdc++-pic.patch50
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/302-c99-snprintf.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/303-c99-complex-ugly-hack.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/305-libmudflap-susv3-legacy.patch49
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/306-libstdc++-namespace.patch36
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/307-locale_facets.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/402-libbackend_dep_gcov-iov.h.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/800-arm-bigendian.patch67
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/904-flatten-switch-stmt-00.patch153
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/910-soft-float.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.1/920-soft-float.patch21
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/103-uclibc-conf-noupstream.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/104-gnuhurd-uclibc-conf.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/200-uclibc-locale.patch2790
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/203-uclibc-locale-no__x.patch213
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/204-uclibc-locale-wchar_fix.patch48
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/205-uclibc-locale-update.patch347
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/300-libstdc++-pic.patch50
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/302-c99-snprintf.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/303-c99-complex-ugly-hack.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/305-libmudflap-susv3-legacy.patch49
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/306-libstdc++-namespace.patch36
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/307-locale_facets.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/402-libbackend_dep_gcov-iov.h.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/800-arm-bigendian.patch67
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/904-flatten-switch-stmt-00.patch153
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/910-soft-float.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.3/920-soft-float.patch21
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/100-uclibc-conf.patch200
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/103-uclibc-conf-noupstream.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/104-gnuhurd-uclibc-conf.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/200-uclibc-locale.patch2790
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/203-uclibc-locale-no__x.patch213
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/204-uclibc-locale-wchar_fix.patch48
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/205-uclibc-locale-update.patch347
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/300-libstdc++-pic.patch50
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/302-c99-snprintf.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/303-c99-complex-ugly-hack.patch12
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/304-index_macro.patch24
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/305-libmudflap-susv3-legacy.patch49
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/306-libstdc++-namespace.patch36
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/307-locale_facets.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/402-libbackend_dep_gcov-iov.h.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/800-arm-bigendian.patch67
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/904-flatten-switch-stmt-00.patch153
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/910-soft-float.patch26
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.2.4/920-soft-float.patch21
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/100-uclibc-conf.patch33
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/104-gnuhurd-uclibc-conf.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/301-missing-execinfo_h.patch11
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/302-c99-snprintf.patch13
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/305-libmudflap-susv3-legacy.patch49
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/810-arm-softfloat-libgcc.patch29
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/993-arm_insn-opinit-RTX_CODE-fixup.patch41
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/995-short-enums.diff42
-rw-r--r--cleopatre/buildroot/toolchain/gcc/4.3.1/998-gcc-4.3.0-fix-header.00.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gcc/Config.in163
-rw-r--r--cleopatre/buildroot/toolchain/gcc/Config.in.214
-rw-r--r--cleopatre/buildroot/toolchain/gcc/Makefile.in107
-rw-r--r--cleopatre/buildroot/toolchain/gcc/ext_source/Atmel/avr32/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch16
-rw-r--r--cleopatre/buildroot/toolchain/gcc/gcc-uclibc-3.x.mk509
-rw-r--r--cleopatre/buildroot/toolchain/gcc/gcc-uclibc-4.x.mk530
-rw-r--r--cleopatre/buildroot/toolchain/gcc/i386-gcc-soft-float.patch61
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.2.1/100-uclibc-conf.patch290
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.2.1/200-uclibc-readline-conf.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.2.1/400-mips-coredump.patch-2.4.23-2928
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.2.1/500-thread-timeout.patch34
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/100-uclibc-conf.patch280
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/200-uclibc-readline-conf.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/400-mips-coredump.patch-2.4.23-2928
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/500-thread-timeout.patch34
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/600-debian_10.selected-frame.patch552
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/620-debian_static-thread-db.patch156
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/630-debian_24.tracepoint-segv.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/640-debian_dwarf2-frame-signal-unwinder.patch120
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/650-debian_vsyscall-gdb-support.patch245
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/660-debian_dwarf-cfa-restore.patch23
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/680-debian_sim-destdir.patch53
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/690-debian_member-field-symtab.patch35
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/700-debian_cp-pass-by-reference.patch464
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/710-debian_thread-db-multiple-libraries.patch593
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/720-debian_static-threads-test.patch36
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/730-debian_gdb-fix-tracefork-check.patch225
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/740-debian_make-cv-type-crash.patch132
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/750-debian_sparc-singlestep.patch37
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/760-debian_vsyscall-bfd-close-result.patch20
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/770-debian_vfork-done-spelling.patch31
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/780-debian_gdbserver-rdynamic.patch675
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/790-debian_dwarf2-cfi-warning.patch39
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/800-debian_linux-use-underscore-exit.patch22
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/810-debian_bfd-no-kylix-crash.patch47
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.3/820-debian_disable-linux-fork-messages.patch46
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.4/100-uclibc-conf.patch78
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.4/200-uclibc-readline-conf.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.4/400-mips-coredump.patch-2.4.23-2928
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.4/500-thread-timeout.patch34
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.4/600-fix-compile-flag-mismatch.patch87
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.5/100-uclibc-conf.patch78
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.5/200-uclibc-readline-conf.patch15
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.5/400-mips-coredump.patch-2.4.23-2928
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.5/500-thread-timeout.patch33
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.5/600-fix-compile-flag-mismatch.patch64
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.6/100-uclibc-conf.patch82
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.6/600-fix-compile-flag-mismatch.patch69
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.6/700-nios2-6.6.patch7978
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.7.1/600-fix-compile-flag-mismatch.patch31
-rw-r--r--cleopatre/buildroot/toolchain/gdb/6.8/600-fix-compile-flag-mismatch.patch31
-rw-r--r--cleopatre/buildroot/toolchain/gdb/Config.in70
-rw-r--r--cleopatre/buildroot/toolchain/gdb/Config.in.254
-rw-r--r--cleopatre/buildroot/toolchain/gdb/gdb.mk255
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/100-uclibc-conf.patch94
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/200-uclibc-readline-conf.patch16
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/400-mips-coredump.patch-2.4.23-2930
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/400-mips-nptl-support.patch143
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/500-thread-timeout.patch34
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/680-debian_sim-destdir.patch14
-rw-r--r--cleopatre/buildroot/toolchain/gdb/snapshot/690-debian_member-field-symtab.patch20
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/Config.in138
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/ipmi/linux-2.6.20.4-ipmisensors-20070314-1214.patch1914
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/ipmi/linux-2.6.21.5-007-ipmisensors-20070314-1214.patch1914
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/ipmi/linux-2.6.22.1-007-ipmisensors-20070314-1214.patch1914
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/ipmi/linux-2.6.22.9-007-ipmisensors-20070314-1214.patch1914
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/kernel-headers-new.makefile91
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/kernel-headers-old-versions.makefile103
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/kernel-headers-old.makefile87
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/kernel-headers.mk48
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-2.6.20.4-dwmw2-combined.01.diff460
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-2.6.21.5-001-add-linkage-header.patch18
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-2.6.21.5-006-wait-for-async-scanned-block-devices.patch55
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-2.6.23-nios2nommu.patch26567
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-2.6.25.9-export-linux-aout.patch24
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.11-nios2nommu.patch.conditional13527
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.11.0-mips-nptl.patch75
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.11.0.patch18
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-arm-eabi.patch166
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-config-base-small.patch30
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-i2c_msg.patch12
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch90
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.8-cleanup.patch8153
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.9-nios2nommu.patch.conditional12925
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/lzma/linux-2.6.21.5-001-lzma-vmlinuz.00.patch27017
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/lzma/linux-2.6.21.5-002-lzma-vmlinuz.01.patch54
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/lzma/linux-2.6.22.1-001-lzma-vmlinuz.00.patch26856
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/lzma/linux-2.6.22.1-002-lzma-vmlinuz.01.patch54
-rw-r--r--cleopatre/buildroot/toolchain/kernel-headers/lzma/linux-2.6.22.1-003-lzma-vmlinuz.patch44
-rw-r--r--cleopatre/buildroot/toolchain/mklibs/Config.in5
-rw-r--r--cleopatre/buildroot/toolchain/mklibs/mklibs.mk49
-rw-r--r--cleopatre/buildroot/toolchain/mklibs/mklibs.py597
-rwxr-xr-xcleopatre/buildroot/toolchain/patch-kernel.sh55
-rw-r--r--cleopatre/buildroot/toolchain/sstrip/Config.in9
-rw-r--r--cleopatre/buildroot/toolchain/sstrip/sstrip.c468
-rw-r--r--cleopatre/buildroot/toolchain/sstrip/sstrip.mk70
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/Config.in85
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/ext_source/Atmel/avr32/0.9.28.3-avr32-2.0/uClibc-0.9.28.3-avr32-2.0-001-libext.patch13
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/ext_source/Atmel/avr32/0.9.28.3-avr32-2.0/uClibc-0.9.28.3-avr32-2.0-002-rm-whitespace.patch77
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.28.3-arch.patch.avr327650
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.28.3-string-ops.patch.powerpc56
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.28.config179
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-001-fix-mmap.patch91
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-arch.patch.avr323546
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-conditional-sched_affinity.patch53
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-filter-gnu99-from-assembly-flags.patch12
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-fix-fget_putc.diff396
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-fix-gethostent_r-failure-retval.patch12
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-fix-internal_function-definition.patch51
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-fix-sa_onstack.patch.avr3231
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-linuxthreads.patch145
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-rm-whitespace.patch86
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29-wchar.config215
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-0.9.29.config219
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uClibc-snapshot.config201
-rw-r--r--cleopatre/buildroot/toolchain/uClibc/uclibc.mk625
-rwxr-xr-xcleopatre/buildroot/toolchain/wget-show-external-deps.sh6
3073 files changed, 1151511 insertions, 0 deletions
diff --git a/cleopatre/buildroot/.defconfig b/cleopatre/buildroot/.defconfig
new file mode 100644
index 0000000000..7da0e44180
--- /dev/null
+++ b/cleopatre/buildroot/.defconfig
@@ -0,0 +1,55 @@
+#
+# Automatically generated make config: don't edit
+# Mon Feb 18 09:11:56 2008
+#
+BR2_HAVE_DOT_CONFIG=y
+# BR2_alpha is not set
+# BR2_arm is not set
+# BR2_armeb is not set
+# BR2_avr32 is not set
+# BR2_cris is not set
+# BR2_ia64 is not set
+BR2_i386=y
+# BR2_m68k is not set
+# BR2_mips is not set
+# BR2_mipsel is not set
+# BR2_nios2 is not set
+# BR2_powerpc is not set
+# BR2_s390 is not set
+# BR2_sh is not set
+# BR2_sh64 is not set
+# BR2_sparc is not set
+# BR2_sparc64 is not set
+# BR2_x86_64 is not set
+# BR2_x86_i386 is not set
+# BR2_x86_i486 is not set
+# BR2_x86_i586 is not set
+BR2_x86_i686=y
+# BR2_x86_pentiumpro is not set
+# BR2_x86_pentium_mmx is not set
+# BR2_x86_pentium_m is not set
+# BR2_x86_pentium2 is not set
+# BR2_x86_pentium3 is not set
+# BR2_x86_pentium4 is not set
+# BR2_x86_prescott is not set
+# BR2_x86_nocona is not set
+# BR2_x86_core2 is not set
+# BR2_x86_k6 is not set
+# BR2_x86_k6_2 is not set
+# BR2_x86_athlon is not set
+# BR2_x86_athlon_4 is not set
+# BR2_x86_opteron is not set
+# BR2_x86_opteron_sse3 is not set
+# BR2_x86_barcelona is not set
+# BR2_x86_geode is not set
+# BR2_x86_c3 is not set
+# BR2_x86_winchip_c6 is not set
+# BR2_x86_winchip2 is not set
+BR2_ARCH="i686"
+BR2_ENDIAN="LITTLE"
+BR2_GCC_TARGET_TUNE="i686"
+BR2_GCC_TARGET_ARCH="i686"
+
+#
+# Target options
+#
diff --git a/cleopatre/buildroot/Config.in b/cleopatre/buildroot/Config.in
new file mode 100644
index 0000000000..b49425ce51
--- /dev/null
+++ b/cleopatre/buildroot/Config.in
@@ -0,0 +1,366 @@
+#
+
+mainmenu "Buildroot2 Configuration"
+
+config BR2_HAVE_DOT_CONFIG
+ bool
+ default y
+
+config BR2_VERSION
+ string
+ default "0.10.0-svn"
+
+source "target/Config.in.arch"
+source "target/device/Config.in"
+
+menu "Build options"
+
+config BR2_PRIMARY_SITE
+ string "Primary download site"
+ default ""
+ help
+ Primary site to download from. If this option is set then buildroot
+ will try to download package source first from this site and try the
+ default if the file is not found.
+ NOTE: This only works for packages using the Makefile.autotools.in
+
+config BR2_WGET
+ string "Wget command"
+ default "wget --passive-ftp -nd"
+
+config BR2_SVN_CO
+ string "Subversion (svn) command to download source tree"
+ default "svn co"
+
+config BR2_SVN_UP
+ string "Subversion (svn) command to update source tree"
+ default "svn up"
+
+config BR2_GIT
+ string "Git command to download source tree"
+ default "git clone"
+
+config BR2_ZCAT
+ string "zcat command"
+ default "gzip -d -c"
+ help
+ Command to be used to extract a gzip'ed file to stdout.
+ zcat is identical to gunzip -c except that the former may
+ not be available on your system.
+ Default is "gzip -d -c"
+ Other possible values include "gunzip -c" or "zcat".
+
+config BR2_BZCAT
+ string "bzcat command"
+ default "bzcat"
+ help
+ Command to be used to extract a bzip2'ed file to stdout.
+ bzcat is identical to bunzip2 -c except that the former may
+ not be available on your system.
+ Default is "bzcat"
+ Other possible values include "bunzip2 -c" or "bzip2 -d -c".
+
+config BR2_TAR_OPTIONS
+ string "Tar options"
+ default ""
+ help
+ Options to pass to tar when extracting the sources.
+ E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
+ and to be verbose.
+
+config BR2_DL_DIR
+ string "Download dir"
+ default "$(BASE_DIR)/dl"
+ help
+ Directory to store all the source files that we need to fetch.
+ If the Linux shell environment has defined the BUILDROOT_DL_DIR
+ environment variable, then this overrides this configuration item.
+
+ The default is $(BASE_DIR)/dl
+
+source "target/device/Config.in.mirrors"
+
+config BR2_STAGING_DIR
+ string "Toolchain and header file location?"
+ default "$(BUILD_DIR)/staging_dir"
+ help
+ This is the location where the toolchain will be installed. The
+ toolchain will not work if it is moved from this location.
+ Therefore, if you wish to package up a uClibc toolchain, it is
+ important that is is set to the final location where the toolchain
+ will be used.
+
+ Most people will leave this set to the default value of
+ "$(BUILD_DIR)/staging_dir".
+
+config BR2_FPU_SUFFIX
+ bool "Add '_nofpu' suffix for softfloat toolchains"
+ help
+ If the toolchain is configured to use softfloat, then
+ the "_nofpu" suffix will be added to the toolchain build
+ directory name and to any rootfs image name
+
+config BR2_TOPDIR_PREFIX
+ string "Custom build dir prefix"
+ default ""
+ help
+ Add a custom string to the beginning of the build directories.
+
+ build_ARCH -> [PREFIX]_build_ARCH
+ toolchain_build_ARCH -> [PREFIX]_toolchain_build_ARCH
+
+config BR2_TOPDIR_SUFFIX
+ string "Custom build dir suffix"
+ default ""
+ help
+ Add a custom string to the end of the build directories.
+
+ build_ARCH -> build_ARCH_[SUFFIX]
+ toolchain_build_ARCH -> toolchain_build_ARCH_[SUFFIX]
+
+config BR2_ROOTFS_PREFIX
+ string "Custom root fs prefix"
+ default "rootfs"
+ help
+ Add a custom string to the beginning of the root file system name.
+
+config BR2_ROOTFS_SUFFIX
+ string "Custom root fs suffix"
+ default "$(DATE)" if BR2_TARGET_ATMEL
+ default "" if !BR2_TARGET_ATMEL
+ help
+ Add a custom string to the end of the root file system name.
+
+config BR2_GNU_BUILD_SUFFIX
+ string "GNU build hostname suffix"
+ default "pc-linux-gnu"
+ help
+ The string used to pass to configure scripts via the
+ --build= option. Just specify the suffix here, the leading
+ arch will be filled in automatically.
+
+ Here's some copy and paste build host options for you:
+ linux: pc-linux-gnu
+ cygwin: pc-cygwin
+ os x: apple-darwin7 / apple-darwin8
+
+config BR2_GNU_TARGET_SUFFIX
+ string "GNU target suffix"
+ default "linux-uclibcgnueabi" if BR2_ARM_EABI
+ default "linux-uclibc"
+ help
+ The string used to pass to configure scripts via the
+ --target= option. Just specify the suffix here, the leading
+ arch will be filled in automatically.
+
+ Most users will want to stick with the default setting, though
+ other users (most notably ARM EABI) like to add on to this in
+ order to stay in line with gcc conventions.
+
+ Default options are:
+ linux-uclibcgnueabi for ARM EABI
+ linux-uclibc for the rest
+ gnuhurd-uclibc for the hurd
+
+config BR2_JLEVEL
+ int "Number of jobs to run simultaneously"
+ default "1"
+ help
+ Number of jobs to run simultaneously
+
+config BR2_PREFER_IMA
+ bool "prefer IMA compiles"
+ help
+ Where possible, compile package with Inter Module Analysis.
+ This potentially uses alot of system resources on your compile
+ host with the benefit of creating smaller binaries for the target.
+
+ If unsure, say No.
+
+ WARNING: This is highly experimental at the moment.
+
+config BR2_DEPRECATED
+ bool "Show packages that are deprecated or obsolete"
+ help
+ This option hides outdated/obsolete versions of packages.
+
+config BR2_RECENT
+ bool "Show packages that are of the latest major version"
+ default y
+ help
+ This option show recent versions of packages.
+
+config BR2_ENABLE_DEBUG
+ bool "build packages with debugging symbols"
+ select BR2_PACKAGE_GDB_SERVER
+ help
+ Build packages with debugging symbols
+ enabled
+
+if BR2_ENABLE_DEBUG
+choice
+ prompt "gcc debug level"
+ default BR2_DEBUG_2
+ help
+ Set the debug level for gcc
+
+config BR2_DEBUG_1
+ bool "debug level 1"
+ help
+ Debug level 1 produces minimal information, enough
+ for making backtraces in parts of the program that
+ you don't plan to debug. This includes descriptions
+ of functions and external variables, but no information
+ about local variables and no line numbers.
+
+config BR2_DEBUG_2
+ bool "debug level 2"
+ help
+ The default gcc debug level is 2
+
+config BR2_DEBUG_3
+ bool "debug level 3"
+ help
+ Level 3 includes extra information, such as all the
+ macro definitions present in the program. Some debuggers
+ support macro expansion when you use -g3.
+endchoice
+endif
+
+choice
+ prompt "strip"
+ default BR2_STRIP_strip
+ help
+ Select whether to strip binaries and libraries for the target
+ or not.
+ strip is the normal strip command
+ sstrip is a strip that discards more than the normal strip
+ none do not strip (only for debugging!)
+
+config BR2_STRIP_strip
+ bool "strip"
+ depends on !BR2_ENABLE_DEBUG
+ help
+ strip is the normal strip command
+
+config BR2_STRIP_sstrip
+ bool "sstrip"
+ select BR2_PACKAGE_SSTRIP_HOST
+ depends on !BR2_ENABLE_DEBUG
+ help
+ sstrip is a strip that discards more than the normal strip
+
+config BR2_STRIP_none
+ bool "none"
+ help
+ none do not strip (only for debugging!)
+endchoice
+
+choice
+ prompt "gcc optimization level"
+ default BR2_OPTIMIZE_S
+ help
+ Set the optimization level for gcc
+
+config BR2_OPTIMIZE_0
+ bool "optimization level 0"
+ depends on !BR2_PACKAGE_LINUX
+ help
+ Do not optimize. This is the default.
+
+config BR2_OPTIMIZE_1
+ bool "optimization level 1"
+ depends on !BR2_PACKAGE_LINUX
+ help
+ Optimize. Optimizing compilation takes somewhat more time,
+ and a lot more memory for a large function. With -O, the
+ compiler tries to reduce code size and execution time,
+ without performing any optimizations that take a great deal
+ of compilation time. -O turns on the following optimization
+ flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
+ -fcprop-registers -floop-optimize -fif-conversion
+ -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
+ -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
+ -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
+ -O also turns on -fomit-frame-pointer on machines where doing
+ so does not interfere with debugging.
+
+config BR2_OPTIMIZE_2
+ bool "optimization level 2"
+ help
+ Optimize even more. GCC performs nearly all supported optimizations
+ that do not involve a space-speed tradeoff. The compiler does not
+ perform loop unrolling or function inlining when you specify -O2.
+ As compared to -O, this option increases both compilation time and
+ the performance of the generated code. -O2 turns on all optimization
+ flags specified by -O. It also turns on the following optimization
+ flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
+ -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
+ -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
+ -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
+ -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
+ -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
+ -freorder-functions -falign-functions -falign-jumps -falign-loops
+ -falign-labels -ftree-vrp -ftree-pre
+ Please note the warning under -fgcse about invoking -O2 on programs
+ that use computed gotos.
+
+config BR2_OPTIMIZE_3
+ bool "optimization level 3"
+ help
+ Optimize yet more. -O3 turns on all optimizations specified by -O2
+ and also turns on the -finline-functions, -funswitch-loops and
+ -fgcse-after-reload options.
+
+config BR2_OPTIMIZE_S
+ bool "optimize for size"
+ help
+ Optimize for size. -Os enables all -O2 optimizations that do not
+ typically increase code size. It also performs further optimizations
+ designed to reduce code size. -Os disables the following optimization
+ flags: -falign-functions -falign-jumps -falign-loops -falign-labels
+ -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
+ -ftree-vect-loop-version
+
+endchoice
+
+config BR2_PREFER_STATIC_LIB
+ bool "prefer static libraries"
+ help
+ Where possible, build and use static libraries for the target.
+ This potentially increases your code size and should only be
+ used if you know what you do.
+ The default is to build dynamic libraries and use those on
+ the target filesystem.
+
+ WARNING: This is highly experimental at the moment.
+
+config BR2_HAVE_MANPAGES
+ bool "manpages on the target"
+ help
+ Leave the manpages on the target.
+ If you say n here, your target will not contain any
+ manpage.
+
+config BR2_HAVE_INFOPAGES
+ bool "infopages on the target"
+ help
+ Leave the infopages on the target.
+ If you say n here, your target will not contain any
+ infopage.
+
+config BR2_HAVE_DEVFILES
+ bool "development files in target filesystem"
+ help
+ Install headers and static libraries in the
+ target filesystem
+
+source package/gnuconfig/Config.in
+
+endmenu
+
+source "toolchain/Config.in"
+
+source "package/Config.in"
+
+source "target/Config.in"
diff --git a/cleopatre/buildroot/Makefile b/cleopatre/buildroot/Makefile
new file mode 100644
index 0000000000..8cadf5c3a3
--- /dev/null
+++ b/cleopatre/buildroot/Makefile
@@ -0,0 +1,515 @@
+# Makefile for buildroot2
+#
+# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+#--------------------------------------------------------------
+# Just run 'make menuconfig', configure stuff, then run 'make'.
+# You shouldn't need to mess with anything beyond this point...
+#--------------------------------------------------------------
+TOPDIR=./
+CONFIG_CONFIG_IN=Config.in
+CONFIG_DEFCONFIG=.defconfig
+CONFIG=package/config
+DATE:=$(shell date +%Y%m%d)
+
+noconfig_targets:=menuconfig config oldconfig randconfig \
+ defconfig allyesconfig allnoconfig release tags \
+ source-check help
+
+
+# Use shell variables, if defined
+ifneq ($(BUILDROOT_LOCAL),)
+BR2_LOCAL:=$(BUILDROOT_LOCAL)
+else
+BR2_LOCAL:=$(TOPDIR)/local
+endif
+
+# $(shell find . -name *_defconfig |sed 's/.*\///')
+# Pull in the user's configuration file
+ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
+ifeq ($(BOARD),)
+# if "make BOARD=xyz" command
+-include .config
+else
+# if "make" command
+-include $(BR2_LOCAL)/$(BOARD)/$(BOARD).config
+endif
+endif
+
+# Override BR2_DL_DIR if shell variable defined
+ifneq ($(BUILDROOT_DL_DIR),)
+BR2_DL_DIR:=$(BUILDROOT_DL_DIR)
+endif
+LOCAL:=$(BR2_LOCAL)
+
+# To put more focus on warnings, be less verbose as default
+# Use 'make V=1' to see the full commands
+ifdef V
+ ifeq ("$(origin V)", "command line")
+ KBUILD_VERBOSE=$(V)
+ endif
+endif
+ifndef KBUILD_VERBOSE
+ KBUILD_VERBOSE=0
+endif
+
+ifeq ($(KBUILD_VERBOSE),1)
+ quiet=
+ Q=
+ifndef VERBOSE
+ VERBOSE=1
+endif
+else
+ quiet=quiet_
+ Q=@
+endif
+
+CONFIG_SHELL:=$(shell if [ -x "$$BASH" ]; then echo $$BASH; \
+ else if [ -x /bin/bash ]; then echo /bin/bash; \
+ else echo sh; fi; fi)
+
+export CONFIG_SHELL quiet Q KBUILD_VERBOSE VERBOSE
+
+ifndef HOSTAR
+HOSTAR:=ar
+endif
+ifndef HOSTAS
+HOSTAS:=as
+endif
+ifndef HOSTCC
+HOSTCC:=gcc
+else
+endif
+ifndef HOSTCXX
+HOSTCXX:=g++
+endif
+ifndef HOSTFC
+HOSTFC:=gfortran
+endif
+ifndef HOSTCPP
+HOSTCPP:=cpp
+endif
+ifndef HOSTLD
+HOSTLD:=ld
+endif
+ifndef HOSTLN
+HOSTLN:=ln
+endif
+ifndef HOSTNM
+HOSTNM:=nm
+endif
+HOSTAR:=$(shell $(CONFIG_SHELL) -c "which $(HOSTAR)" || type -p $(HOSTAR) || echo ar)
+HOSTAS:=$(shell $(CONFIG_SHELL) -c "which $(HOSTAS)" || type -p $(HOSTAS) || echo as)
+HOSTCC:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCC)" || type -p $(HOSTCC) || echo gcc)
+HOSTCXX:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCXX)" || type -p $(HOSTCXX) || echo g++)
+HOSTFC:=$(shell $(CONFIG_SHELL) -c "which $(HOSTLD)" || type -p $(HOSTLD) || echo || which g77 || type -p g77 || echo gfortran)
+HOSTCPP:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCPP)" || type -p $(HOSTCPP) || echo cpp)
+HOSTLD:=$(shell $(CONFIG_SHELL) -c "which $(HOSTLD)" || type -p $(HOSTLD) || echo ld)
+HOSTLN:=$(shell $(CONFIG_SHELL) -c "which $(HOSTLN)" || type -p $(HOSTLN) || echo ln)
+HOSTNM:=$(shell $(CONFIG_SHELL) -c "which $(HOSTNM)" || type -p $(HOSTNM) || echo nm)
+HOST_GLIB_BIN:=`dirname $(shell $(CONFIG_SHELL) -c "which glib-genmarshal" || echo /usr/bin/glib-genmarshal)`
+HOST_GLIB:=$(shell $(CONFIG_SHELL) -c "dirname $(HOST_GLIB_BIN)" || echo /usr)
+
+
+ifndef CFLAGS_FOR_BUILD
+CFLAGS_FOR_BUILD:=-g -O2
+endif
+ifndef CXXFLAGS_FOR_BUILD
+CXXFLAGS_FOR_BUILD:=-g -O2
+endif
+ifndef FCFLAGS_FOR_BUILD
+FCFLAGS_FOR_BUILD:=-g -O2
+endif
+export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTFC HOSTLD
+
+
+ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+
+# cc-option
+# Usage: cflags-y+=$(call cc-option, -march=winchip-c6, -march=i586)
+# sets -march=winchip-c6 if supported else falls back to -march=i586
+# without checking the latter.
+cc-option=$(shell if $(TARGET_CC) $(TARGET_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
+ > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
+
+#############################################################
+#
+# Hide troublesome environment variables from sub processes
+#
+#############################################################
+unexport CROSS_COMPILE
+unexport ARCH
+
+#############################################################
+#
+# Setup the proper filename extensions for the host
+#
+##############################################################
+ifneq ($(findstring linux,$(BR2_GNU_BUILD_SUFFIX)),)
+HOST_EXEEXT:=
+HOST_LIBEXT:=.a
+HOST_SHREXT:=.so
+endif
+ifneq ($(findstring apple,$(BR2_GNU_BUILD_SUFFIX)),)
+HOST_EXEEXT:=
+HOST_LIBEXT:=.a
+HOST_SHREXT:=.dylib
+endif
+ifneq ($(findstring cygwin,$(BR2_GNU_BUILD_SUFFIX)),)
+HOST_EXEEXT:=.exe
+HOST_LIBEXT:=.lib
+HOST_SHREXT:=.dll
+HOST_LOADLIBES="-lcurses -lintl"
+export HOST_LOADLIBES
+endif
+ifneq ($(findstring mingw,$(BR2_GNU_BUILD_SUFFIX)),)
+HOST_EXEEXT:=.exe
+HOST_LIBEXT:=.lib
+HOST_SHREXT:=.dll
+endif
+
+# The preferred type of libs we build for the target
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+LIBTGTEXT=.a
+#PREFERRED_LIB_FLAGS:=--disable-shared --enable-static
+else
+LIBTGTEXT=.so
+#PREFERRED_LIB_FLAGS:=--disable-static --enable-shared
+endif
+PREFERRED_LIB_FLAGS:=--enable-static --enable-shared
+
+##############################################################
+#
+# The list of stuff to build for the target toolchain
+# along with the packages to build for the target.
+#
+##############################################################
+ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
+BASE_TARGETS:=uclibc-configured binutils cross_compiler uclibc-target-utils kernel-headers
+else
+BASE_TARGETS:=uclibc kernel-headers
+endif
+TARGETS:=
+
+# setup our pathes
+include project/Makefile.in
+
+BR2_DEPENDS_DIR=$(PROJECT_BUILD_DIR)/buildroot-config
+
+include toolchain/Makefile.in
+include package/Makefile.in
+
+#############################################################
+#
+# You should probably leave this stuff alone unless you know
+# what you are doing.
+#
+#############################################################
+
+all: world
+
+# In this section, we need .config
+include .config.cmd
+
+include project/*.mk
+
+# We also need the various per-package makefiles, which also add
+# each selected package to TARGETS if that package was selected
+# in the .config file.
+ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
+# avoid pulling in external toolchain which is broken for toplvl parallel builds
+# Explicit ordering:
+include toolchain/dependencies/dependencies.mk
+include toolchain/binutils/binutils.mk
+include toolchain/ccache/ccache.mk
+include toolchain/elf2flt/elf2flt.mk
+include toolchain/gcc/gcc-uclibc-3.x.mk
+include toolchain/gcc/gcc-uclibc-4.x.mk
+include toolchain/gdb/gdb.mk
+include toolchain/kernel-headers/kernel-headers.mk
+include toolchain/mklibs/mklibs.mk
+include toolchain/sstrip/sstrip.mk
+include toolchain/uClibc/uclibc.mk
+else
+include toolchain/*/*.mk
+endif
+
+ifeq ($(BR2_PACKAGE_LINUX),y)
+TARGETS+=linux26-modules
+endif
+
+include package/*/*.mk
+
+TARGETS+=target-devfiles
+
+# target stuff is last so it can override anything else
+include target/Makefile.in
+
+TARGETS+=erase-fakeroots
+
+TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
+TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
+TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
+TARGETS_ALL:=$(patsubst %,__real_tgt_%,$(TARGETS))
+# all targets depend on the crosscompiler and it's prerequisites
+$(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
+
+$(BR2_DEPENDS_DIR): .config
+ rm -rf $@
+ mkdir -p $(@D)
+ cp -dpRf $(CONFIG)/buildroot-config $@
+
+dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
+ $(BR2_DEPENDS_DIR) \
+ $(BINARIES_DIR) $(PROJECT_BUILD_DIR)
+
+$(BASE_TARGETS): dirs
+
+world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL)
+
+
+.PHONY: all world dirs clean dirclean distclean source \
+ $(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
+ $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
+ $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
+ $(BR2_DEPENDS_DIR) \
+ $(BINARIES_DIR) $(PROJECT_BUILD_DIR)
+
+#############################################################
+#
+# staging and target directories do NOT list these as
+# dependencies anywhere else
+#
+#############################################################
+$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) \
+ $(PROJECT_BUILD_DIR) $(BINARIES_DIR):
+ @mkdir -p $@
+
+$(STAGING_DIR):
+ @mkdir -p $(STAGING_DIR)/bin
+ @mkdir -p $(STAGING_DIR)/lib
+ifeq ($(BR2_TOOLCHAIN_SYSROOT),y)
+ @mkdir -p $(STAGING_DIR)/usr/lib
+else
+ifneq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+ @ln -snf . $(STAGING_DIR)/usr
+ @mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)
+ @ln -snf ../lib $(STAGING_DIR)/usr/lib
+ @ln -snf ../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
+endif
+endif
+ @mkdir -p $(STAGING_DIR)/usr/include
+
+$(PROJECT_BUILD_DIR)/.root:
+ mkdir -p $(TARGET_DIR)
+ if ! [ -d "$(TARGET_DIR)/bin" ]; then \
+ if [ -d "$(TARGET_SKELETON)" ]; then \
+ cp -fa $(TARGET_SKELETON)/* $(TARGET_DIR)/; \
+ fi; \
+ touch $(STAGING_DIR)/.fakeroot.00000; \
+ fi
+ -find $(TARGET_DIR) -type d -name CVS -o -name .svn | xargs rm -rf
+ -find $(TARGET_DIR) -type f -name .empty | xargs rm -rf
+ touch $@
+
+$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
+
+erase-fakeroots:
+ rm -f $(PROJECT_BUILD_DIR)/.fakeroot*
+
+target-devfiles:
+ifeq ($(BR2_HAVE_DEVFILES),y)
+ ( scripts/copy.sh $(STAGING_DIR) $(TARGET_DIR) )
+else
+ rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib/pkgconfig
+ find $(TARGET_DIR)/usr/lib -name '*.a' -delete
+ find $(TARGET_DIR)/lib -name '*.a' -delete
+ find $(TARGET_DIR)/usr/lib -name '*.la' -delete
+ find $(TARGET_DIR)/lib -name '*.la' -delete
+endif
+
+source: $(TARGETS_SOURCE) $(HOST_SOURCE)
+
+_source-check:
+ $(MAKE) SPIDER=--spider source
+
+external-deps:
+ @$(MAKE) -Bs BR2_WGET=$(TOPDIR)/toolchain/wget-show-external-deps.sh \
+ SPIDER=--spider source
+
+#############################################################
+#
+# Cleanup and misc junk
+#
+#############################################################
+clean: $(TARGETS_CLEAN)
+ rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
+
+dirclean: $(TARGETS_DIRCLEAN)
+ rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
+
+distclean:
+ifeq ($(DL_DIR),$(BASE_DIR)/dl)
+ rm -rf $(DL_DIR)
+endif
+ rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \
+ $(LINUX_KERNEL) $(BASE_DIR)/include \
+ .config.cmd
+ $(MAKE) -C $(CONFIG) clean
+
+sourceball:
+ rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR)
+ set -e; \
+ cd ..; \
+ rm -f buildroot.tar.bz2; \
+ tar -cvf buildroot.tar buildroot; \
+ bzip2 -9 buildroot.tar; \
+
+
+else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+
+all: menuconfig
+
+# configuration
+# ---------------------------------------------------------------------------
+
+HOSTCFLAGS=$(CFLAGS_FOR_BUILD)
+export HOSTCFLAGS
+
+$(CONFIG)/conf:
+ @mkdir -p $(CONFIG)/buildroot-config
+ $(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf
+ -@if [ ! -f .config ]; then \
+ cp $(CONFIG_DEFCONFIG) .config; \
+ fi
+$(CONFIG)/mconf:
+ @mkdir -p $(CONFIG)/buildroot-config
+ $(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf
+ -@if [ ! -f .config ]; then \
+ cp $(CONFIG_DEFCONFIG) .config; \
+ fi
+
+menuconfig: $(CONFIG)/mconf
+ @mkdir -p $(CONFIG)/buildroot-config
+ @if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/mconf $(CONFIG_CONFIG_IN); then \
+ test -f .config.cmd || rm -f .config; \
+ fi
+
+config: $(CONFIG)/conf
+ @mkdir -p $(CONFIG)/buildroot-config
+ @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/conf $(CONFIG_CONFIG_IN)
+
+oldconfig: $(CONFIG)/conf
+ @mkdir -p $(CONFIG)/buildroot-config
+ @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/conf -o $(CONFIG_CONFIG_IN)
+
+randconfig: $(CONFIG)/conf
+ @mkdir -p $(CONFIG)/buildroot-config
+ @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/conf -r $(CONFIG_CONFIG_IN)
+
+allyesconfig: $(CONFIG)/conf
+ cat $(CONFIG_DEFCONFIG) > .config
+ @mkdir -p $(CONFIG)/buildroot-config
+ @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
+ #sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config
+
+allnoconfig: $(CONFIG)/conf
+ @mkdir -p $(CONFIG)/buildroot-config
+ @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/conf -n $(CONFIG_CONFIG_IN)
+
+defconfig: $(CONFIG)/conf
+ @mkdir -p $(CONFIG)/buildroot-config
+ @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
+ $(CONFIG)/conf -d $(CONFIG_CONFIG_IN)
+
+# check if download URLs are outdated
+source-check: allyesconfig
+ $(MAKE) _source-check
+
+#############################################################
+#
+# Cleanup and misc junk
+#
+#############################################################
+clean:
+ rm -f .config .config.old .config.cmd .tmpconfig.h .lognr.*
+ -$(MAKE) -C $(CONFIG) clean
+
+distclean: clean
+ rm -rf sources/*
+
+endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+
+%_defconfig: $(CONFIG)/conf
+ cp $(shell find ./target/ -name $@) .config
+ -@$(MAKE) oldconfig
+
+update:
+ cp .config $(BOARD_PATH)/$(BOARD_NAME)_defconfig
+
+configured: dirs host-sed kernel-headers uclibc-config busybox-config linux26-config
+
+prepatch: gcc-patched binutils-patched gdb-patched uclibc-patched
+
+.lognr.$(PROJECT):
+ @echo "0" > .lognr.$(PROJECT)
+
+log: .lognr.$(PROJECT)
+ @expr `cat .lognr.$(PROJECT)` + 1 > .lognr.$(PROJECT)
+ @echo Creating $(PROJECT)-`cat .lognr.$(PROJECT)`.log
+ @$(MAKE) > $(PROJECT)-`cat .lognr.$(PROJECT)`.log 2>&1
+
+
+cross: $(BASE_TARGETS)
+
+help:
+ @echo 'Cleaning:'
+ @echo ' clean - delete temporary files created by build'
+ @echo ' distclean - delete all non-source files (including .config)'
+ @echo
+ @echo 'Build:'
+ @echo ' all - make world'
+ @echo
+ @echo 'Configuration:'
+ @echo ' menuconfig - interactive curses-based configurator'
+ @echo ' oldconfig - resolve any unresolved symbols in .config'
+ @echo
+ @echo 'Miscellaneous:'
+ @echo ' source - download all sources needed for offline-build'
+ @echo ' source-check - check all packages for valid download URLs'
+ @echo ' external-deps - list external packages used'
+ @echo
+ @echo 'See docs/README and docs/buildroot.html for further details'
+ @echo
+
+.PHONY: dummy subdirs release distclean clean config oldconfig \
+ menuconfig tags check test depend defconfig help
+
diff --git a/cleopatre/buildroot/TODO b/cleopatre/buildroot/TODO
new file mode 100644
index 0000000000..9b89c40c58
--- /dev/null
+++ b/cleopatre/buildroot/TODO
@@ -0,0 +1,14 @@
+Buildroot2 TODOs
+
+- fix packages/Makefile.autotools.in to use a package-imposed patchdir
+ (Ivan Kuten)
+- convert all packages that use autoconf to use the infrastructure of
+ packages/Makefile.autotools.in
+- fix setting of flags for packages
+
+- stabilize for a 0.10.0 release
+
+- think about using a common --config-cache for configure
+ Should take care of expanding TARGET_CONFIGURE_ARGS for cross compiles
+ to working presets.
+
diff --git a/cleopatre/buildroot/docs/Glibc_vs_uClibc.html b/cleopatre/buildroot/docs/Glibc_vs_uClibc.html
new file mode 100644
index 0000000000..c14eb8cf20
--- /dev/null
+++ b/cleopatre/buildroot/docs/Glibc_vs_uClibc.html
@@ -0,0 +1,240 @@
+<!--#include file="header.html" -->
+
+<h2>uClibc vs. glibc</h2>
+
+<p>
+ uClibc and Glibc are not the same -- there are a number of differences which
+ may or may not cause you problems. This document attempts to list these
+ differences and, when completed, will contain a full list of all relevant
+ differences.
+ <br><br></p>
+ <ol>
+ <li>uClibc is smaller than glibc. We attempt to maintain a glibc compatible
+ interface, allowing applications that compile with glibc to easily compile with
+ uClibc. However, we do not include _everything_ that glibc includes, and
+ therefore some applications may not compile. If this happens to you, please
+ report the failure to the uclibc mailing list, with detailed error messages.
+ </li><br>
+ <li>uClibc is much more configurable then glibc. This means that a developer
+ may have compiled uClibc in such a way that significant amounts of
+ functionality have been omitted.
+ </li><br>
+ <li>uClibc does not even attempt to ensure binary compatibility across releases.
+ When a new version of uClibc is released, you may or may not need to recompile
+ all your binaries.
+ </li><br>
+ <li><ul><li> malloc(0) in glibc returns a valid pointer to something(!?!?) while in
+ uClibc calling malloc(0) returns a NULL. The behavior of malloc(0) is listed
+ as implementation-defined by SuSv3, so both libraries are equally correct.
+ This difference also applies to realloc(NULL, 0). I personally feel glibc's
+ behavior is not particularly safe. To enable glibc behavior, one has to
+ explicitly enable the MALLOC_GLIBC_COMPAT option.
+ </li><br><li>
+ glibc's malloc() implementation has behavior that is tunable via the
+ MALLOC_CHECK_ environment variable. This is primarily used to provide extra
+ malloc debugging features. These extended malloc debugging features are not
+ available within uClibc. There are many good malloc debugging libraries
+ available for Linux (dmalloc, electric fence, valgrind, etc) that work much
+ better than the glibc extended malloc debugging. So our omitting this
+ functionality from uClibc is not a great loss.
+ </li><br>
+ </ul></li>
+ <li>uClibc does not provide a database library (libdb).
+ </li><br>
+ <li>uClibc does not support NSS (/lib/libnss_*), which allows glibc to easily
+ support various methods of authentication and DNS resolution. uClibc only
+ supports flat password files and shadow password files for storing
+ authentication information. If you need something more complex than this,
+ you can compile and install pam.
+ </li><br>
+ <li>uClibc's libresolv is only a stub. Some, but not all of the functionality
+ provided by glibc's libresolv is provided internal to uClibc. Other functions
+ are not at all implemented.
+ </li><br>
+ <li>libnsl provides support for Network Information Service (NIS) which was
+ originally called "Yellow Pages" or "YP", which is an extension of RPC invented
+ by Sun to share Unix password files over the network. I personally think NIS
+ is an evil abomination and should not be used. These days, using ldap is much
+ more effective mechanism for doing the same thing. uClibc provides a stub
+ libnsl, but has no actual support for Network Information Service (NIS).
+ We therefore, also do not provide any of the headers files provided by glibc
+ under /usr/include/rpcsvc.
+ </li><br>
+ <li>uClibc's locale support is not 100% complete yet. We are working on it.
+ </li><br>
+ <li>uClibc's math library only supports long double as inlines, and even
+ then the long double support is quite limited. Also, very few of the
+ float math functions are implemented. Stick with double and you should
+ be just fine.
+ </li><br>
+ <li>uClibc's libcrypt does not support the reentrant crypt_r, setkey_r and
+ encrypt_r, since these are not required by SuSv3.
+ </li><br>
+ <li>uClibc directly uses kernel types to define most opaque data types.
+ </li><br>
+ <li>uClibc directly uses the linux kernel's arch specific 'stuct stat'.
+ </li><br>
+ <li>uClibc's librt library currently lacks all aio routines, all clock
+ routines, and all shm routines (only the timer routines and the mq
+ routines are implemented).
+ </li><br>
+</ol>
+<hr>
+<h3>Manuel's Notes</h3>
+
+ Some general comments...<br>
+ <p>
+ The intended target for all my uClibc code is ANSI/ISO C99 and SUSv3
+ compliance. While some glibc extensions are present, many will eventually
+ be configurable. Also, even when present, the glibc-like extensions may
+ differ slightly or be more restrictive than the native glibc counterparts.
+ They are primarily meant to be porting _aides_ and not necessarily
+ drop-in replacements.
+ </p><br>
+Now for some details...<br><br>
+
+<u>time functions</u><br>
+<ol>
+<li>Leap seconds are not supported.</li><br>
+<li>/etc/timezone and the whole zoneinfo directory tree are not supported.
+ To set the timezone, set the TZ environment variable as specified in
+ http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html
+ or you may also create an /etc/TZ file of a single line, ending with a
+ newline, containing the TZ setting. For example
+ echo CST6CDT > /etc/TZ
+</li><br>
+<li>Currently, locale specific eras and alternate digits are not supported.
+ They are on my TODO list.
+</li>
+</ol><br>
+<u>wide char support</u><br>
+<ol>
+<li>The only multibyte encoding currently supported is UTF-8. The various
+ ISO-8859-* encodings are (optionally) supported. The internal
+ representation of wchar's is assumed to be 31 bit unicode values in
+ native endian representation. Also, the underlying char encoding is
+ assumed to match ASCII in the range 0-0x7f.
+</li>
+<li>In the next iteration of locale support, I plan to add support for
+ (at least some) other multibyte encodings.
+</li>
+</ol>
+<u>locale support</u><br>
+<ol>
+<li>The target for support is SUSv3 locale functionality. While nl_langinfo
+ has been extended, similar to glibc, it only returns values for related
+ locale entries.
+</li>
+<li>Currently, all SUSv3 libc locale functionality should be implemented
+ except for wcsftime and collating item support in regex.
+</li>
+</ol>
+<u>stdio</u><br>
+<ol>
+<li>Conversion of large magnitude floating-point values by printf suffers a loss
+ of precision due to the algorithm used.
+</li><br>
+<li>uClibc's printf is much stricter than glibcs, especially regarding positional
+ args. The entire format string is parsed first and an error is returned if
+ a problem is detected. In locales other than C, the format string is checked
+ to be a valid multibyte sequence as well. Also, currently at most 10 positional
+ args are allowed (although this is configurable).
+</li><br>
+<li>BUFSIZ is configurable, but no attempt is made at automatic tuning of internal
+ buffer sizes for stdio streams. In fact, the stdio code in general sacrifices
+ sophistication/performace for minimal size.
+</li><br>
+<li>uClibc allows glibc-like custom printf functions. However, while not
+ currently checked, the specifier must be <= 0x7f.
+</li><br>
+<li>uClibc allows glibc-like custom streams. However, no in-buffer seeking is
+ done.
+</li><br>
+<li>The functions fcloseall() and __fpending() can behave differently than their
+ glibc counterparts.
+</li><br>
+<li>uClibc's setvbuf is more restrictive about when it can be called than glibc's
+ is. The standards specify that setvbuf must occur before any other operations
+ take place on the stream.
+</li><br>
+<li>Right now, %m is not handled properly by printf when the format uses positional
+ args.
+</li><br>
+<li>The FILEs created by glibc's fmemopen(), open_memstream(), and fopencookie()
+ are not capable of wide orientation. The corresponding uClibc routines do
+ not have this limitation.
+</li><br>
+<li>For scanf, the C99 standard states "The fscanf function returns the value of
+ the macro EOF if an input failure occurs before any conversion." But glibc's
+ scanf does not respect conversions for which assignment was surpressed, even
+ though the standard states that the value is converted but not stored.
+</li></ol><br>
+<hr><h3>Glibc bugs</h3><br>
+glibc bugs that Ulrich Drepper has refused to acknowledge or comment on
+ ( <a href="http://sources.redhat.com/ml/libc-alpha/2003-09/">http://sources.redhat.com/ml/libc-alpha/2003-09/</a> )
+<br>
+<ol>
+<li>The C99 standard says that for printf, a %s conversion makes no special
+ provisions for multibyte characters. SUSv3 is even more clear, stating
+ that bytes are written and a specified precision is in bytes. Yet glibc
+ treats the arg as a multibyte string when a precision is specified and
+ not otherwise.
+</li><br>
+<li>Both C99 and C89 state that the %c conversion for scanf reads the exact
+ number of bytes specified by the optional field width (or 1 if not specified).
+ uClibc complies with the standard. There is an argument that perhaps the
+ specified width should be treated as an upper bound, based on some historical
+ use. However, such behavior should be mentioned in the Conformance document.
+</li><br>
+<li>glibc's scanf is broken regarding some numeric patterns. Some invalid
+ strings are accepted as valid ("0x.p", "1e", digit grouped strings).
+ In spite of my posting examples clearly illustrating the bugs, they remain
+ unacknowledged by the glibc developers.
+</li><br>
+<li>glibc's scanf seems to require a 'p' exponent for hexadecimal float strings.
+ According to the standard, this is optional.
+</li><br>
+<li>C99 requires that once an EOF is encountered, the stream should be treated
+ as if at end-of-file even if more data becomes available. Further reading
+ can be attempted by clearing the EOF flag though, via clearerr() or a file
+ positioning function. For details concerning the original change, see
+ Defect Report #141. glibc is currently non-compliant, and the developers
+ did not comment when I asked for their official position on this issue.
+</li><br>
+<li>glibc's collation routines and/or localedef are broken regarding implicit
+ and explicit UNDEFINED rules.
+</li><br></ol>
+More to follow as I think of it...
+<br><br><hr>
+<h3>Profiling:</h3>
+<p>
+uClibc no longer supports 'gcc -fprofile-arcs -pg' style profiling, which
+causes your application to generate a 'gmon.out' file that can then be analyzed
+by 'gprof'. Not only does this require explicit extra support in uClibc, it
+requires that you rebuild everything with profiling support. There is both a
+size and performance penalty to profiling your applications this way, as well
+as Heisenberg effects, where the act of measuring changes what is measured.
+</p>
+<p>
+There exist a number of less invasive alternatives that do not require you to
+specially instrument your application, and recompile and relink everything.
+</p><p>
+The OProfile system-wide profiler is an excellent alternative:
+ <a href="http://oprofile.sourceforge.net/">http://oprofile.sourceforge.net/</a>
+</p><p>
+Many people have had good results using the combination of Valgrind
+to generate profiling information and KCachegrind for analysis:
+ <a href="http://developer.kde.org/~sewardj/">http://developer.kde.org/~sewardj/</a>
+ <a href="http://kcachegrind.sourceforge.net/">http://kcachegrind.sourceforge.net/</a>
+</p><p>
+Prospect is another alternative based on OProfile:
+ <a href="http://prospect.sourceforge.net/">http://prospect.sourceforge.net/</a>
+</p><p>
+And the Linux Trace Toolkit (LTT) is also a fine tool:
+ <a href="http://www.opersys.com/LTT/">http://www.opersys.com/LTT/</a>
+</p><p>
+FunctionCheck:
+ <a href="http://www710.univ-lyon1.fr/~yperret/fnccheck/">http://www710.univ-lyon1.fr/~yperret/fnccheck/</a>
+</p>
+
+<!--#include file="footer.html" -->
diff --git a/cleopatre/buildroot/docs/README b/cleopatre/buildroot/docs/README
new file mode 100644
index 0000000000..d93987958d
--- /dev/null
+++ b/cleopatre/buildroot/docs/README
@@ -0,0 +1,51 @@
+To build and use the buildroot stuff, do the following:
+
+1) run 'make menuconfig'
+2) select the packages you wish to compile
+3) run 'make'
+4) wait while it compiles
+5) Use your shiny new root filesystem. Depending on which sortof
+ root filesystem you selected, you may want to loop mount it,
+ chroot into it, nfs mount it on your target device, burn it
+ to flash, or whatever is appropriate for your target system.
+
+You do not need to be root to build or run buildroot. Have fun!
+
+ -Erik
+
+Offline build:
+==============
+
+In order to do an offline-build (not connected to the net), fetch all
+selected source by issuing a
+$ make source
+
+before you disconnect.
+If your build-host is never connected, then you have to copy buildroot
+and your toplevel .config to a machine that has an internet-connection
+and issue "make source" there, then copy the content of your dl/ dir to
+the build-host.
+
+More finegrained configuration:
+===============================
+
+You can specify a config-file for uClibc:
+$ make UCLIBC_CONFIG_FILE=/my/uClibc.config
+
+And you can specify a config-file for busybox:
+$ make BUSYBOX_CONFIG_FILE=/my/busybox.config
+
+To use a non-standard host-compiler (if you do not have 'gcc'),
+make sure that the compiler is in your PATH and that the library paths are
+setup properly, if your compiler is built dynamically:
+$ make HOSTCC=gcc-4.3.orig HOSTCXX=gcc-4.3-mine
+
+Depending on your configuration, there are some targets you can use to
+use menuconfig of certain packages. This includes:
+$ make HOSTCC=gcc-4.3 linux26-menuconfig
+$ make HOSTCC=gcc-4.3 uclibc-menuconfig
+$ make HOSTCC=gcc-4.3 busybox-menuconfig
+
+Please feed suggestions, bug reports, insults, and bribes back to:
+ Erik Andersen <andersen@codepoet.org>
+or the buildroot mailing list.
diff --git a/cleopatre/buildroot/docs/README.diskimage b/cleopatre/buildroot/docs/README.diskimage
new file mode 100644
index 0000000000..67a0aad4f0
--- /dev/null
+++ b/cleopatre/buildroot/docs/README.diskimage
@@ -0,0 +1,37 @@
+# Sample for i386 to create a 6MB disk-image
+
+# create an image file
+dd if=/dev/zero bs=512 count=$((6*1024*1024/512)) of=img
+# create a partition (optional)
+echo -e "n\np\n1\n\nw\n" | \
+ ~/src/busybox/busybox fdisk -C 16065 -H 255 -S 63 ./img
+# as root, associate the image with a look-device:
+# The offset of 512 comes from the the layout of the image. See
+# ~/src/busybox/busybox fdisk -C 16065 -H 255 -S 63 -l ./img for the start
+# block and multiply this with the block size (==512).
+~/src/busybox/busybox losetup -o 512 /dev/loop/0 /path/to/the/img
+# create some filesystem on it, for example ext2
+mkfs.ext2 -m0 -Lslash /dev/loop/0
+# mount it and copy your stuff to it
+~/src/busybox/busybox mount -oloop,rw /dev/loop/0 /media/l0
+~/src/busybox/busybox mkdir -p /media/l0/boot/grub
+~/src/busybox/busybox cp -a project_build_i386/root/boot/grub/stage? /media/l0/boot/grub/
+~/src/busybox/busybox cp -a project_build_i386/root/boot/bzImage /media/l0/boot/
+~/src/busybox/busybox cat > /media/l0/boot/grub/menu.lst <<EOF
+title=GNU/Linux
+root (hd0,0)
+kernel /boot/bzImage
+EOF
+# finally unmount the dist and disassociate the loopdev
+~/src/busybox/busybox umount /media/l0
+~/src/busybox/busybox losetup -d /dev/loop/0
+# now install grub from the chroot
+~/src/busybox/busybox losetup /dev/loop/0 /path/to/the/img
+project_build_i386/root/usr/sbin/grub --device-map=/dev/null
+device (hd0) img
+geometry (hd0) 16065 255 63
+root (hd0,0)
+setup (hd0)
+quit
+# finally boot the thing
+/opt/qemu-trunk_ggi-2.2.2/bin/qemu -snapshot -hda img -boot c
diff --git a/cleopatre/buildroot/docs/about.html b/cleopatre/buildroot/docs/about.html
new file mode 100644
index 0000000000..583d97ff4f
--- /dev/null
+++ b/cleopatre/buildroot/docs/about.html
@@ -0,0 +1,26 @@
+<!--#include file="header.html" -->
+
+
+<!-- Begin Introduction section -->
+
+<h3>buildroot: making Embedded Linux easy</h3>
+
+
+Buildroot is a set of Makefiles and patches that makes it easy generate a
+cross-compilation toolchain and root filesystem for your target Linux
+system using the <a href= "http://www.uclibc.org/">uClibc C library</a>.
+Buildroot is useful mainly for people working with small or embedded
+systems. Embedded systems often use processors that are not the regular
+x86 processors everyone is used to using on their PC. It can be PowerPC
+processors, MIPS processors, ARM processors, etc. And to be extra safe,
+you do not need to be root to build or run buildroot.
+
+<p>
+
+buildroot is maintained by <a href=
+"http://codepoet.org/andersen/erik/erik.html">Erik Andersen</a>, and
+licensed under the
+<a href="http://www.gnu.org/copyleft/lgpl.html">GNU LIBRARY GENERAL PUBLIC LICENSE</a>.
+
+
+<!--#include file="footer.html" -->
diff --git a/cleopatre/buildroot/docs/buildroot.html b/cleopatre/buildroot/docs/buildroot.html
new file mode 100644
index 0000000000..511772e395
--- /dev/null
+++ b/cleopatre/buildroot/docs/buildroot.html
@@ -0,0 +1,1090 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Buildroot - Usage and documentation</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" />
+</head>
+
+<body>
+ <div class="main">
+ <div class="titre">
+ <h1>Buildroot</h1>
+ </div>
+
+ <p><a href="http://buildroot.uclibc.org/">Buildroot</a>
+ usage and documentation by Thomas Petazzoni. Contributions from
+ Karsten Kruse, Ned Ludd, Martin Herren and others. </p>
+
+ <p><small>$LastChangedDate: 2008-07-17 13:01:44 -0700 (Thu, 17 Jul 2008) $</small></p>
+
+ <ul>
+
+ <li><a href="#about">About Buildroot</a></li>
+ <li><a href="#download">Obtaining Buildroot</a></li>
+ <li><a href="#using">Using Buildroot</a></li>
+ <li><a href="#custom_targetfs">Customizing the target filesystem</a></li>
+ <li><a href="#custom_busybox">Customizing the Busybox
+ configuration</a></li>
+ <li><a href="#custom_uclibc">Customizing the uClibc
+ configuration</a></li>
+ <li><a href="#buildroot_innards">How Buildroot works</a></li>
+ <li><a href="#using_toolchain">Using the uClibc toolchain</a></li>
+ <li><a href="#toolchain_standalone">Using the uClibc toolchain
+ outside of Buildroot</a></li>
+ <li><a href="#downloaded_packages">Location of downloaded packages</a>
+ </li>
+ <li><a href="#add_software">Extending Buildroot with more
+ Software</a></li>
+ <li><a href="#links">Resources</a></li>
+ </ul>
+
+ <h2><a name="about" id="about"></a>About Buildroot</h2>
+
+ <p>Buildroot is a set of Makefiles and patches that allow to easily
+ generate both a cross-compilation toolchain and a root filesystem for your
+ target. The cross-compilation toolchain uses uClibc (<a href=
+ "http://www.uclibc.org/">http://www.uclibc.org/</a>), a tiny C standard
+ library. </p>
+
+ <p>Buildroot is useful mainly for people working with embedded systems.
+ Embedded systems often use processors that are not the regular x86
+ processors everyone is used to have on his PC. It can be PowerPC
+ processors, MIPS processors, ARM processors, etc. </p>
+
+ <p>A compilation toolchain is the set of tools that allows to
+ compile code for your system. It consists of a compiler (in our
+ case, <code>gcc</code>), binary utils like assembler and linker
+ (in our case, <code>binutils</code>) and a C standard library (for
+ example <a href="http://www.gnu.org/software/libc/libc.html">GNU
+ Libc</a>, <a href="http://www.uclibc.org/">uClibc</a> or <a
+ href="http://www.fefe.de/dietlibc/">dietlibc</a>). The system
+ installed on your development station certainly already has a
+ compilation toolchain that you can use to compile application that
+ runs on your system. If you're using a PC, your compilation
+ toolchain runs on an x86 processor and generates code for a x86
+ processor. Under most Linux systems, the compilation toolchain
+ uses the GNU libc as C standard library. This compilation
+ toolchain is called the &quot;host compilation toolchain&quot;, and more
+ generally, the machine on which it is running, and on which you're
+ working is called the &quot;host system&quot;. The compilation toolchain
+ is provided by your distribution, and Buildroot has nothing to do
+ with it. </p>
+
+ <p>As said above, the compilation toolchain that comes with your system
+ runs and generates code for the processor of your host system. As your
+ embedded system has a different processor, you need a cross-compilation
+ toolchain: it's a compilation toolchain that runs on your host system but
+ that generates code for your target system (and target processor). For
+ example, if your host system uses x86 and your target system uses ARM, the
+ regular compilation toolchain of your host runs on x86 and generates code
+ for x86, while the cross-compilation toolchain runs on x86 and generates
+ code for ARM. </p>
+
+ <p>Even if your embedded system uses a x86 processor, you might interested
+ in Buildroot, for two reasons:</p>
+
+ <ul>
+ <li>The compilation toolchain of your host certainly uses the GNU Libc
+ which is a complete but huge C standard library. Instead of using GNU
+ Libc on your target system, you can use uClibc which is a tiny C standard
+ library. If you want to use this C library, then you need a compilation
+ toolchain to generate binaries linked with it. Buildroot can do it for
+ you. </li>
+
+ <li>Buildroot automates the building of a root filesystem with all needed
+ tools like busybox. It makes it much easier than doing it by hand. </li>
+ </ul>
+
+ <p>You might wonder why such a tool is needed when you can compile
+ <code>gcc</code>, <code>binutils</code>, uClibc and all the tools by hand.
+ Of course, doing so is possible. But dealing with all configure options,
+ with all problems of every <code>gcc</code> or <code>binutils</code>
+ version it very time-consuming and uninteresting. Buildroot automates this
+ process through the use of Makefiles, and has a collection of patches for
+ each <code>gcc</code> and <code>binutils</code> version to make them work
+ on most architectures. </p>
+
+ <h2><a name="download" id="download"></a>Obtaining Buildroot</h2>
+
+ <p>Buildroot is available as daily SVN snapshots or directly using
+ SVN. </p>
+
+ <p>The latest snapshot is always available at <a
+ href="http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2">http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2</a>,
+ and previous snapshots are also available at <a
+ href="http://buildroot.uclibc.org/downloads/snapshots/">http://buildroot.uclibc.org/downloads/snapshots/</a>. </p>
+
+ <p>To download Buildroot using SVN, you can simply follow
+ the rules described on the &quot;Accessing SVN&quot;-page (<a href=
+ "http://buildroot.uclibc.org/subversion.html">http://buildroot.uclibc.org/subversion.html</a>)
+ of the uClibc buildroot website (<a href=
+ "http://buildroot.uclibc.org">http://buildroot.uclibc.org</a>), and download the
+ <code>buildroot</code> SVN module. For the impatient, here's a quick
+ recipe:</p>
+
+ <pre>
+ $ svn co svn://uclibc.org/trunk/buildroot
+</pre>
+
+ <h2><a name="using" id="using"></a>Using Buildroot</h2>
+
+ <p>Buildroot has a nice configuration tool similar to the one you can find
+ in the Linux Kernel (<a href=
+ "http://www.kernel.org/">http://www.kernel.org/</a>) or in Busybox
+ (<a href="http://www.busybox.org/">http://www.busybox.org/</a>). Note that
+ you can build everything as a normal user. There is no need to be root to
+ configure and use Buildroot. The first step is to run the configuration
+ assistant:</p>
+
+<pre>
+ $ make menuconfig
+</pre>
+
+ <p>For each entry of the configuration tool, you can find associated help
+ that describes the purpose of the entry. </p>
+
+ <p>One of the key configuration items is the <code>PROJECT</code> which
+ determines where some board specific packages are built and where the
+ results are stored. </p>
+
+ <p>Once everything is configured, the configuration tool has generated a
+ <code>.config</code> file that contains the description of your
+ configuration. It will be used by the Makefiles to do what's needed. </p>
+
+
+ <p>Let's go:</p>
+
+<pre>
+ $ make
+</pre>
+
+ <p>This command will download, configure and compile all the selected
+ tools, and finally generate a target filesystem. The target filesystem will
+ be named <code>root_fs_ARCH.EXT</code> where <code>ARCH</code> is your
+ architecture and <code>EXT</code> depends on the type of target filesystem
+ selected in the <code>Target options</code> section of the configuration
+ tool.
+ The file is stored in the "binaries/<code>$(PROJECT)</code>/" directory</p>
+
+ <h3><a name="local_board_support" id="local_board_support"></a>
+ Creating your own board support</h3>
+
+ <p>Once a package has been unpacked, it is possible to manually update
+ configuration files. Buildroot can automatically save the configuration
+ of buildroot, linux, busybox, uclibc and u-boot in "local/$(PROJECT) by
+ using the command:
+ </p>
+
+<pre>
+ $ make saveconfig
+</pre>
+
+ <p>Once a buildroot configuration has been created by saveconfig,
+ the default "$(TOPDIR)/.config" file can be overridden by</p>
+
+<pre>
+ $ make BOARD=&lt;project&gt;
+</pre>
+
+ <p>Buildroot will then use "local/&lt;project&gt;/&lt;project&gt;.config"
+ instead of ".config". </p>
+
+ <p>If you want to modify your board, you can copy the project configuration
+ file to ".config" by using the command:</p>
+
+<pre>
+ $ make BOARD=&lt;project&gt; getconfig
+</pre>
+
+ <p>You can share your custom board support directory between several buildroot trees
+ by setting the environment variable <code>BUILDROOT_LOCAL</code> to this directory,
+ </p>
+
+
+ <h3><a name="offline_builds" id="offline_builds"></a>
+ Offline builds</h3>
+
+ <p>If you intend to do an offline-build and just want to download all
+ sources that you previously selected in &quot;make menuconfig&quot; then
+ issue:</p>
+<pre>
+ $ make source
+</pre>
+ <p>You can now disconnect or copy the content of your <code>dl</code>
+ directory to the build-host. </p>
+
+ <h3><a name="environment_variables" id="environment_variables"></a>
+ Environment variables</h3>
+
+ <p>Buildroot optionally honors some environment variables that are passed
+ to <code>make</code> :</p>
+ <ul>
+ <li>HOSTCXX</li>
+ <li>HOSTCC</li>
+ <li>UCLIBC_CONFIG_FILE=&lt;path/to/.config&gt;</li>
+ <li>BUSYBOX_CONFIG_FILE=&lt;path/to/.config&gt;</li>
+ </ul>
+
+ <p>An example that uses config files located in the toplevel directory and
+ in your $HOME:</p>
+<pre>
+$ make UCLIBC_CONFIG_FILE=uClibc.config BUSYBOX_CONFIG_FILE=$HOME/bb.config
+</pre>
+
+ <p>If you want to use a compiler other than the default <code>gcc</code>
+ or <code>g++</code> for building helper-binaries on your host, then do</p>
+<pre>
+$ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD
+</pre>
+
+ <h3><a name="helper_completion" id="helper_completion"></a>
+ Using auto-completion</h3>
+
+ <p>If you are lazy enough that you don't want to type the entire <i>make
+ menuconfig</i> command line, you can enable auto-completion in your shell.
+ Here is how you can do that using <i>bash</i>:</p>
+<pre>
+$ complete -W menuconfig make
+</pre>
+
+ <p>Then just enter the beginning of the line, and ask <i>bash</i> to
+ complete it for you by pressing the <i>TAB</i> key:</p>
+<pre>
+$ make me&lt;TAB&gt;
+</pre>
+
+ <p>will result in <i>bash</i> to append <i>nuconfig</i> for you!</p>
+
+ <p>Alternatively, some distributions (of which Debian and Mandriva are but
+ an example) have more powerful make completion. Depending on you
+ distribution, you may have to install a package to enable completion. Under
+ Mandriva, this is <i>bash-completion</i>, while Debian ships it as part of
+ the <i>bash</i> package.</p>
+
+ <p>Other shells, such as <i>zsh</i>, also have completion facilities. See
+ the documentation for your shell.</p>
+
+ <h2><a name="custom_targetfs" id="custom_targetfs"></a>Customizing the
+ target filesystem</h2>
+
+ <p>There are a few ways to customize the resulting target filesystem:</p>
+
+ <ul>
+ <li>Customize the target filesystem directly, and rebuild the image. The
+ target filesystem is available under <code>project_build_ARCH/root/</code>
+ where <code>ARCH</code> is the chosen target architecture.
+ You can simply make your changes here, and run make afterwards, which will
+ rebuild the target filesystem image. This method allows to do everything
+ on the target filesystem, but if you decide to completely rebuild your
+ toolchain and tools, these changes will be lost. </li>
+
+ <li>Customize the target filesystem skeleton, available under
+ <code>target/generic/target_skeleton/</code>. You can customize
+ configuration files or other stuff here. However, the full file hierarchy
+ is not yet present, because it's created during the compilation process.
+ So you can't do everything on this target filesystem skeleton, but
+ changes to it remain even if you completely rebuild the cross-compilation
+ toolchain and the tools. <br />
+ You can also customize the <code>target/generic/device_table.txt</code>
+ file which is used by the tools that generate the target filesystem image
+ to properly set permissions and create device nodes. The
+ <code>target/generic/skel.tar.gz</code> file contains the main
+ directories of a root filesystem and there is no obvious reason for which
+ it should be changed. These main directories are in an tarball inside of
+ inside the skeleton because it contains symlinks that would be broken
+ otherwise. <br />
+ These customizations are deployed into
+ <code>project_build_ARCH/root/</code> just before the actual image
+ is made. So simply rebuilding the image by running
+ make should propagate any new changes to the image. </li>
+
+ <li>When configuring the build system, using <code>make menuconfig</code>,
+ you can specify the contents of the /etc/hostname and /etc/issue
+ (the welcome banner) in the <code>PROJECT</code> section</li>
+ </ul>
+
+ <h2><a name="custom_busybox" id="custom_busybox"></a>Customizing the
+ Busybox configuration</h2>
+
+ <p><a href="http://www.busybox.net/">Busybox</a> is very configurable, and
+ you may want to customize it. You can
+ follow these simple steps to do it. It's not an optimal way, but it's
+ simple and it works. </p>
+
+ <ol>
+ <li>Make a first compilation of buildroot with busybox without trying to
+ customize it. </li>
+
+ <li>Invoke <code>make busybox-menuconfig</code>.
+ The nice configuration tool appears and you can
+ customize everything. </li>
+
+ <li>Run the compilation of buildroot again. </li>
+ </ol>
+
+ <p>Otherwise, you can simply change the
+ <code>package/busybox/busybox-&lt;version&gt;.config</code> file if you
+ know the options you want to change without using the configuration tool.
+ </p>
+ <p>If you want to use an existing config file for busybox, then see
+ section <a href="#environment_variables">environment variables</a>. </p>
+
+ <h2><a name="custom_uclibc" id="custom_uclibc"></a>Customizing the uClibc
+ configuration</h2>
+
+ <p>Just like <a href="#custom_busybox">BusyBox</a>, <a
+ href="http://www.uclibc.org/">uClibc</a> offers a lot of
+ configuration options. They allow to select various
+ functionalities, depending on your needs and limitations. </p>
+
+ <p>The easiest way to modify the configuration of uClibc is to
+ follow these steps :</p>
+
+ <ol>
+
+ <li>Make a first compilation of buildroot without trying to
+ customize uClibc. </li>
+
+ <li>Invoke <code>make uclibc-menuconfig</code>.
+ The nice configuration assistant, similar to
+ the one used in the Linux Kernel or in Buildroot appears. Make
+ your configuration as appropriate. </li>
+
+ <li>Copy the <code>.config</code> file to
+ <code>toolchain/uClibc/uClibc.config</code> or
+ <code>toolchain/uClibc/uClibc.config-locale</code>. The former
+ is used if you haven't selected locale support in Buildroot
+ configuration, and the latter is used if you have selected
+ locale support. </li>
+
+ <li>Run the compilation of Buildroot again</li>
+
+ </ol>
+
+ <p>Otherwise, you can simply change
+ <code>toolchain/uClibc/uClibc.config</code> or
+ <code>toolchain/uClibc/uClibc.config-locale</code> without running
+ the configuration assistant. </p>
+
+ <p>If you want to use an existing config file for uclibc, then see
+ section <a href="#environment_variables">environment variables</a>. </p>
+
+ <h2><a name="buildroot_innards" id="buildroot_innards"></a>How Buildroot
+ works</h2>
+
+ <p>As said above, Buildroot is basically a set of Makefiles that download,
+ configure and compiles software with the correct options. It also includes
+ some patches for various software, mainly the ones involved in the
+ cross-compilation tool chain (<code>gcc</code>, <code>binutils</code> and
+ uClibc). </p>
+
+ <p>There is basically one Makefile per software, and they are named with
+ the <code>.mk</code> extension. Makefiles are split into four
+ sections:</p>
+
+ <ul>
+ <li><b>project</b> (in the <code>project/</code> directory) contains
+ the Makefiles and associated files for all software related to the
+ building several root file systems in the same buildroot tree. </li>
+
+ <li><b>toolchain</b> (in the <code>toolchain/</code> directory) contains
+ the Makefiles and associated files for all software related to the
+ cross-compilation toolchain : <code>binutils</code>, <code>ccache</code>,
+ <code>gcc</code>, <code>gdb</code>, <code>kernel-headers</code> and
+ <code>uClibc</code>. </li>
+
+ <li><b>package</b> (in the <code>package/</code> directory) contains the
+ Makefiles and associated files for all user-space tools that Buildroot
+ can compile and add to the target root filesystem. There is one
+ sub-directory per tool. </li>
+
+ <li><b>target</b> (in the <code>target</code> directory) contains the
+ Makefiles and associated files for software related to the generation of
+ the target root filesystem image. Four types of filesystems are supported
+ : ext2, jffs2, cramfs and squashfs. For each of them, there's a
+ sub-directory with the required files. There is also a
+ <code>default/</code> directory that contains the target filesystem
+ skeleton. </li>
+ </ul>
+
+ <p>Each directory contains at least 2 files :</p>
+
+ <ul>
+ <li><code>something.mk</code> is the Makefile that downloads, configures,
+ compiles and installs the software <code>something</code>. </li>
+
+ <li><code>Config.in</code> is a part of the configuration tool
+ description file. It describes the option related to the current
+ software. </li>
+
+ </ul>
+
+ <p>The main Makefile do the job through the following steps (once the
+ configuration is done):</p>
+
+ <ol>
+ <li>Create the download directory (<code>dl/</code> by default). This is
+ where the tarballs will be downloaded. It is interesting to know that the
+ tarballs are in this directory because it may be useful to save them
+ somewhere to avoid further downloads. </li>
+
+ <li>Create the shared build directory (<code>build_ARCH/</code> by
+ default, where <code>ARCH</code> is your architecture). This is where all
+ non configurable user-space tools will be compiled.When building two or
+ more targets using the same architecture, the first build will go through
+ the full download, configure, make process, but the second and later
+ builds will only copy the result from the first build to its project
+ specific target directory significantly speeding up the build process</li>
+
+ <li>Create the project specific build directory
+ (<code>project_build_ARCH/$(PROJECT)</code> by default, where
+ <code>ARCH</code> is your architecture). This is where all configurable
+ user-space tools will be compiled. The project specific build directory
+ is neccessary, if two different targets needs to use a specific package,
+ but the packages have different configuration for both targets. Some
+ examples of packages built in this directory are busybox and linux.
+ </li>
+
+ <li>Create the project specific result directory
+ (<code>binaries/$(PROJECT)</code> by default, where <code>ARCH</code>
+ is your architecture). This is where the root filesystem images are
+ stored, It is also used to store the linux kernel image and any
+ utilities, boot-loaders etc. needed for a target.
+ </li>
+
+ <li>Create the toolchain build directory
+ (<code>toolchain_build_ARCH/</code> by default, where <code>ARCH</code>
+ is your architecture). This is where the cross compilation toolchain will
+ be compiled. </li>
+
+ <li>Setup the staging directory (<code>build_ARCH/staging_dir/</code> by
+ default). This is where the cross-compilation toolchain will be
+ installed. If you want to use the same cross-compilation toolchain for
+ other purposes, such as compiling third-party applications, you can add
+ <code>build_ARCH/staging_dir/usr/bin</code> to your PATH, and then use
+ <code>arch-linux-gcc</code> to compile your application. In order to
+ setup this staging directory, it first removes it, and then it creates
+ various subdirectories and symlinks inside it. </li>
+
+ <li>Create the target directory (<code>project_build_ARCH/root/</code> by
+ default) and the target filesystem skeleton. This directory will contain
+ the final root filesystem. To setup it up, it first deletes it, then it
+ uncompress the <code>target/generic/skel.tar.gz</code> file to create the
+ main subdirectories and symlinks, copies the skeleton available in
+ <code>target/generic/target_skeleton</code> and then removes useless
+ <code>.svn/</code> directories. </li>
+
+ <li>Add the <code>TARGETS</code> dependency. This should generally check
+ if the configuration option for this package is enabled, and if so then
+ &quot;subscribe&quot; this package to be compiled by adding it to the
+ TARGETS global variable. </li>
+ </ol>
+
+ <h2><a name="multi_project" id="multi_project"></a>Building several
+ projects in the same buildroot source tree</h2>
+
+ <p><b>BACKGROUND</b></p>
+
+ <p>Buildroot has always supported building several projects in the same
+ tree if each project was for a different architecture. </p>
+
+ <p>The root file system has been created in the
+ <code>&quot;build_&lt;ARCH&gt;/root&quot;</code>
+ directory which is unique for each architecture.
+ Toolchains have been built in
+ <code>&quot;toolchain_build_&lt;ARCH&gt;&quot;</code>. </p>
+
+ <p> It the user wanted to build several root file systems for the same
+ architecture, a prefix or suffix could be added in the configuration file
+ so the root file system would be built in
+ <code>&quot;&lt;PREFIX&gt;_build_&lt;ARCH&gt;_&lt;SUFFIX&gt;/root&quot;</code>
+ By supplying <u>unique</u> combinations of
+ <code>&quot;&lt;PREFIX&gt;&quot;</code> and
+ <code>&quot;&lt;SUFFIX&gt;&quot;</code>
+ each project would get a <u>unique</u> root file system tree. </p>
+
+ <p>The disadvantage of this approach is that a new toolchain was
+ built for each project, adding considerable time to the build
+ process, even if it was two projects for the same chip. </p>
+
+ <p>This drawback has been somewhat lessened with
+ <code>gcc-4.x.y</code> which allows buildroot to use an external
+ toolchain. Certain packages requires special
+ features in the toolchain, and if an external toolchain is selected,
+ this may lack the neccessary features to complete the build of the root
+ file system.</p>
+
+ <p>A bigger problem was that the
+ <code>&quot;build_&lt;ARCH&gt;&quot;</code> tree
+ was also duplicated, so each </code>package</code> would also
+ be rebuilt once per project, resulting in even longer build times.</p>
+
+
+ <p><b>PROJECT TO SHARE TOOLCHAIN AND PACKAGE BUILDS</b></p>
+
+ <p>Work has started on a project which will allow the user to build
+ multiple root file systems for the same architecture in the same tree.
+ The toolchain and the package build directory will be shared, but each
+ project will have a dedicated directory tree for project specific
+ builds. </p>
+
+ <p>With this approach, most, if not all packages will be compiled
+ when the first project is built.
+ The process is almost identical to the original process.
+ Packages are downloaded and extracted to the shared
+ <code>&quot;build_&lt;ARCH&gt;/&lt;package&gt;&quot;</code>
+ directory. They are configured and compiled. </p>
+
+ <p>Package libraries and headers are installed in the shared $(STAGING_DIR),
+ and then the project specific root file system &quot;$(TARGET_DIR)&quot;
+ is populated. </p>
+
+ <p>At the end of the build, the root file system will be used
+ to generate the resulting root file system binaries. </p>
+
+ <p>Once the first project has been built, building other projects will
+ typically involve populating the new project's root file system directory
+ from the existing binaries generated in the shared
+ <code>&quot;build_&lt;ARCH&gt;/&lt;&gt;&quot;</code> directory. </p>
+
+ <p>Only packages, not used by the first project, will have to go
+ through the normal extract-configure-compile flow. </p>
+
+ <p><b>IMPLEMENTATION</b></p>
+
+ <p>The core of the solution is the introduction
+ of two new directories: </p>
+
+ <ul>
+ <li><code>project_build_&lt;ARCH&gt;</code></li>
+
+ <li><code>binaries;</code></li>
+ </ul>
+
+ <p>Each of the directories contain one subdirectory per project.
+ The name of the subdirectory is configured by the user in the
+ normal buildroot configuration, using the value of: </p>
+
+ <p><code>Project Options ---> Project name</code></p>
+
+ <p>The configuration defines the $(PROJECT) variable.</p>
+
+ <p>The default project name is <code>&quot;uclibc&quot;</code>.</p>
+
+ <p><code>&quot;package/Makefile.in&quot;</code> defines:
+ <pre>
+ <code>PROJECT_BUILD_DIR:=project_build_$(ARCH)/$(PROJECT)</code>
+ <code>BINARIES_DIR:=binaries/$(PROJECT)</code>
+ </pre>
+ </p>
+
+ <p>It also defines the location for the target root file system:
+ <pre>
+ <code>TARGET_DIR:=$(PROJECT_BUILD_DIR)/$(PROJECT)/root</code>
+ </pre>
+ </p>
+
+ <p>I.E: If the user has choosen
+ <code>&quot;myproject&quot;</code>
+ as the $(PROJECT) name:
+
+ <ul>
+ <li><code>&quot;project_build_&lt;ARCH&gt;/myproject&quot;</code></li>
+ <li><code>&quot;binaries/myproject&quot;</code></li>
+ </ul>
+
+ <p>will be created. </p>
+
+ <p>Currently, the <u>root file system</u>, <u>busybox</u> and an Atmel
+ customized version of
+ <u><code>U-Boot</code></u>, as well as some Atmel specific
+ bootloaders like <u>at91-bootstrap</u> and <u>dataflashboot.bin</u>
+ are built in
+ <code>&quot;$(PROJECT_BUILD_DIR)&quot;</code>
+
+ <p>The resulting binaries for all architectures are stored in the
+ <code>&quot;$(BINARIES_DIR)&quot;</code> directory. <p>
+
+ <p><b>SUMMARY</b></p>
+
+ <p>The project will share directories which can be share without
+ conflicts, but will use unique build directories, where the user
+ can configure the build. </p>
+
+ <p><b>THINGS TO DO</b></p>
+
+ <ol>
+
+ <li>Linux</li>
+
+ <p>The current Linux implementation is flawed. It only works
+ if the user chooses to use one of the few kernels selected
+ as base for the kernel-headers. While the Makefile seems to have
+ hooks, allowing the developer to specify whatever version he/she
+ wants in the target/device/*/* Makefiles, the build will fail
+ if another kernel version is choosen.</p>
+
+ <p>The reason for this is that the kernel patches are not
+ applied by the <code>&quot;target/linux/linux.mk&quot;</code>
+ build script fragment. They are only applied by the
+ <code>&quot;toolchain/kernel-headers/*.makefile&quot;</code>
+ build script fragments</p>
+
+ <p>If the kernel-header version and the linux version differs,
+ there will be two <code>&quot;linux-2.6.X.Y&quot;</code>
+ directories in
+ <code>&quot;build_&lt;ARCH&gt;/&lt;&gt;&quot;</code>,
+ each with its own set of patches. </p>
+
+ <p>The solution in the works, is to move the build of Linux to
+ <code>&quot;project_build_&lt;ARCH&gt;/&lt;project name&gt;/linux-2.6.X.Y&quot;</code> combined with method to configure
+ which patches can be applied. Possibly, the linux source tree
+ used to generate the kernel headers will be moved to the
+ <code>&quot;toolchain_build_&lt;ARCH&gt;&quot;</code>
+ directory
+ </p>
+
+ <p>The user will be able to select from three different
+ Linux strategies:
+
+ <ul>
+ <li>Conservative Strategy: Only use version ssupported by the kernel headers</li>
+ <li>Stable Linux Strategy: Allow any 2.6.X.Y combination.
+ (Minimum 2.6.19)</li>
+ <li>Power-User Strategy: Allow
+ <code>&quot;-git&quot;</code>, or
+ <code>&quot;-mm&quot;</code>, or user downloadable kernels</li>
+ </ul>
+
+ <p>The current kernel patches can be configured to be applied to the
+ linux source tree even if the version differs from the
+ kernel header version. </p>
+
+ <p>Since the user can select any kernel-patch
+ he/she will be able to select a non-working combination.
+ If the patch fails, the user will have to generate a new
+ proprietary kernel-patch or decide to not apply the kernel
+ patches</p>
+
+ <p>Other optional patches will be <u>board specific</u> or
+ <u>architecture specific</u> patches. </p>
+
+ <p>There will also be a way for the user to supply absolute
+ or relative paths to patches, possibly outside the main tree.
+ This can be used to apply custom kernel-header-patches, if
+ the versions available in buildroot cannot be applied to the
+ specific linux version used</p>
+
+ <p>Maybe, there will also be a possibility to supply an
+ <code>&quot;URL&quot;</code> to a patch available on Internet. </p>
+
+ <li>Configurable packages</li>
+
+ <p>Many packages can, on top of the simple
+ &quot;enable/disable build&quot;,
+ be further configured using Kconfig.
+ Currently these packages will be compiled using the
+ configuration specified in the
+ <code>&quot;.config&quot;</code> file of the <u>first</u>
+ project demanding the build of the package.</p>
+
+ <p>If <u>another</u> project uses the same packages, but with
+ a different configuration,these packages will <u>not</u> be rebuilt,
+ and the root file system for the new project will be populated
+ with files from the build of the <u>first</u> project</p>
+
+ <p>If multiple project are built, and a specific package
+ needs two different configuration, then the user must
+ delete the package from the
+ <code>&quot;build_&lt;ARCH&gt;&quot;</code> directory
+ before rebuilding the new project.<p>
+
+ <p>A long term solution is to edit the package makefile and move
+ the build of the configurable packages from
+ <code>&quot;build_&lt;ARCH&gt;&quot;</code> to
+ <code>&quot;project_build_&lt;ARCH&gt;/&lt;project name&gt;&quot;</code>
+ and send a patch to the buildroot mailing list.
+
+ <li>Naming conventions</li>
+
+ <p>Names of resulting binaries should reflect the
+ &quot;project name&quot;
+
+ <li>Generating File System binaries</li>
+ <p>
+ Packages which needs to be installed with the &quot;root&quot;
+ as owner, will generate a
+ <code>&quot;.fakeroot.&lt;package&gt;&quot;</code> file
+ which will be used for the final build of the root file system binary. </p>
+
+ <p>This was previously located in the
+ <code>&quot;$(STAGING_DIR)&quot;</code> directory, but was
+ recently moved to the
+ <code>&quot;$(PROJECT_BUILD_DIR)&quot;</code> directory. </p>
+
+ <p>Currently only three packages:
+ <code>&quot;at&quot;</code>,
+ <code>&quot;ltp-testsuite&quot;</code> and
+ <code>&quot;nfs-utils&quot;</code>
+ requests fakeroot. <p>
+
+ <p>The makefile fragments for each file system type like
+ <code>&quot;ext2&quot;</code>,
+ <code>&quot;jffs2&quot;</code> or
+ <code>&quot;squashfs&quot;</code>
+ will, when the file system binary is generated,
+ collect all present
+ <code>&quot;.fakeroot.&lt;package&gt;&quot;</code> files
+ to a single <code>&quot;_fakeroot.&lt;file system&gt;&quot;</code>
+ file and call fakeroot.</p>
+ <code>&quot;.fakeroot.&lt;package&gt;&quot;</code>
+ files are deleted as the last action of the Buildroot Makefile. </p>
+
+ <p>It needs to be evaluated if any further action for the
+ file system binary build is needed. </p>
+
+ </ol>
+
+ <h2><a name="using_toolchain" id="using_toolchain"></a>Using the
+ uClibc toolchain</h2>
+
+ <p>You may want to compile your own programs or other software
+ that are not packaged in Buildroot. In order to do this, you can
+ use the toolchain that was generated by Buildroot. </p>
+
+ <p>The toolchain generated by Buildroot by default is located in
+ <code>build_ARCH/staging_dir/</code>. The simplest way to use it
+ is to add <code>build_ARCH/staging_dir/usr/bin/</code> to your PATH
+ environnement variable, and then to use
+ <code>arch-linux-gcc</code>, <code>arch-linux-objdump</code>,
+ <code>arch-linux-ld</code>, etc. </p>
+
+ <p>For example, you may add the following to your
+ <code>.bashrc</code> (considering you're building for the MIPS
+ architecture and that Buildroot is located in
+ <code>~/buildroot/</code>) :</p>
+
+<pre>
+export PATH=&quot;$PATH:~/buildroot/build_mips/staging_dir/usr/bin/&quot;
+</pre>
+
+ <p>Then you can simply do :</p>
+
+<pre>
+mips-linux-gcc -o foo foo.c
+</pre>
+
+ <p><b>Important</b> : do not try to move a gcc-3.x toolchain to an other
+ directory, it won't work. There are some hardcoded paths in the
+ <i>gcc</i> configuration. If the default toolchain directory
+ doesn't suit your needs, please refer to the <a
+ href="#toolchain_standalone">Using the uClibc toolchain outside of
+ buildroot</a> section. </p>
+ <p>If you are using a current gcc-4.x, then use --sysroot and -isysroot
+ since these toolchains have fully functional sysroot support. No
+ hardcoded paths do exist in these configurations. </p>
+
+ <h2><a name="toolchain_standalone" id="toolchain_standalone"></a>Using the
+ uClibc toolchain outside of buildroot</h2>
+
+ <p>By default, the cross-compilation toolchain is generated inside
+ <code>build_ARCH/staging_dir/</code>. But sometimes, it may be useful to
+ install it somewhere else, so that it can be used to compile other programs
+ or by other users. Moving the <code>build_ARCH/staging_dir/</code>
+ directory elsewhere is <b>not possible if using gcc-3.x</b>, because there
+ are some hardcoded paths in the toolchain configuration. This works, thanks
+ to sysroot support, with current, stable gcc-4.x toolchains, of course. </p>
+
+ <p>If you want to use the generated gcc-3.x toolchain for other purposes,
+ you can configure Buildroot to generate it elsewhere using the
+ option of the configuration tool : <code>Build options -&gt;
+ Toolchain and header file location</code>, which defaults to
+ <code>$(BUILD_DIR)/staging_dir/</code>. </p>
+
+ <h2><a name="downloaded_packages"
+ id="downloaded_packages"></a>Location of downloaded packages</h2>
+
+ <p>It might be useful to know that the various tarballs that are
+ downloaded by the <i>Makefiles</i> are all stored in the
+ <code>DL_DIR</code> which by default is the <code>dl</code>
+ directory. It's useful for example if you want to keep a complete
+ version of Buildroot which is know to be working with the
+ associated tarballs. This will allow you to regenerate the
+ toolchain and the target filesystem with exactly the same
+ versions. </p>
+
+ <p>If you maintain several buildroot trees, it might be better to have
+ a shared download location. This can be accessed by creating a symbolic link
+ from the <code>dl</code> directory to the shared download location. </p>
+
+ <p>I.E:</p>
+
+<pre>
+ln -s &lt;shared download location&gt; dl
+</pre>
+
+ <p>Another way of accessing a shared download location is to
+ create the <code>BUILDROOT_DL_DIR</code> environment variable.
+ If this is set, then the value of DL_DIR in the project is
+ overridden. The following line should be added to
+ <code>&quot;~/.bashrc&quot;</code>. <p>
+
+<pre>
+export BUILDROOT_DL_DIR &lt;shared download location&gt;
+</pre>
+
+
+
+ <h2><a name="add_software" id="add_software"></a>Extending Buildroot with
+ more software</h2>
+
+ <p>This section will only consider the case in which you want to
+ add user-space software. </p>
+
+ <h3>Package directory</h3>
+
+ <p>First of all, create a directory under the <code>package</code>
+ directory for your software, for example <code>foo</code>. </p>
+
+ <h3><code>Config.in</code> file</h3>
+
+ <p>Then, create a file named <code>Config.in</code>. This file
+ will contain the portion of options description related to our
+ <code>foo</code> software that will be used and displayed in the
+ configuration tool. It should basically contain :</p>
+
+<pre>
+config BR2_PACKAGE_FOO
+ bool "foo"
+ help
+ This is a comment that explains what foo is.
+
+ http://foosoftware.org/foo/
+</pre>
+
+ <p>Of course, you can add other options to configure particular
+ things in your software. </p>
+
+ <h3>The real <i>Makefile</i></h3>
+
+ <p>Finally, here's the hardest part. Create a file named
+ <code>foo.mk</code>. It will contain the <i>Makefile</i> rules that
+ are in charge of downloading, configuring, compiling and installing
+ the software. Below is an example that we will comment
+ afterwards. </p>
+
+<pre>
+ <a name="line1" id="line1">1</a> #############################################################
+ <a name="line2" id="line2">2</a> #
+ <a name="line3" id="line3">3</a> # foo
+ <a name="line4" id="line4">4</a> #
+ <a name="line5" id="line5">5</a> #############################################################
+ <a name="line6" id="line6">6</a> FOO_VERSION:=1.0
+ <a name="line7" id="line7">7</a> FOO_SOURCE:=foo-$(FOO_VERSION).tar.gz
+ <a name="line8" id="line8">8</a> FOO_SITE:=http://www.foosoftware.org/downloads
+ <a name="line9" id="line9">9</a> FOO_DIR:=$(BUILD_DIR)/foo-$(FOO_VERSION)
+ <a name="line10" id="line10">10</a> FOO_BINARY:=foo
+ <a name="line11" id="line11">11</a> FOO_TARGET_BINARY:=usr/bin/foo
+ <a name="line12" id="line12">12</a>
+ <a name="line13" id="line13">13</a> $(DL_DIR)/$(FOO_SOURCE):
+ <a name="line14" id="line14">14</a> $(WGET) -P $(DL_DIR) $(FOO_SITE)/$(FOO_SOURCE)
+ <a name="line15" id="line15">15</a>
+ <a name="line16" id="line16">16</a> $(FOO_DIR)/.source: $(DL_DIR)/$(FOO_SOURCE)
+ <a name="line17" id="line17">17</a> $(ZCAT) $(DL_DIR)/$(FOO_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ <a name="line18" id="line18">18</a> touch $@
+ <a name="line19" id="line19">19</a>
+ <a name="line20" id="line20">20</a> $(FOO_DIR)/.configured: $(FOO_DIR)/.source
+ <a name="line21" id="line21">21</a> (cd $(FOO_DIR); rm -rf config.cache; \
+ <a name="line22" id="line22">22</a> $(TARGET_CONFIGURE_OPTS) \
+ <a name="line23" id="line23">23</a> $(TARGET_CONFIGURE_ARGS) \
+ <a name="line24" id="line24">24</a> ./configure \
+ <a name="line25" id="line25">25</a> --target=$(GNU_TARGET_NAME) \
+ <a name="line26" id="line26">26</a> --host=$(GNU_TARGET_NAME) \
+ <a name="line27" id="line27">27</a> --build=$(GNU_HOST_NAME) \
+ <a name="line28" id="line28">28</a> --prefix=/usr \
+ <a name="line29" id="line29">29</a> --sysconfdir=/etc \
+ <a name="line30" id="line30">30</a> )
+ <a name="line31" id="line31">31</a> touch $@
+ <a name="line32" id="line32">32</a>
+ <a name="line33" id="line33">33</a> $(FOO_DIR)/$(FOO_BINARY): $(FOO_DIR)/.configured
+ <a name="line34" id="line34">34</a> $(MAKE) CC=$(TARGET_CC) -C $(FOO_DIR)
+ <a name="line35" id="line35">35</a>
+ <a name="line36" id="line36">36</a> $(TARGET_DIR)/$(FOO_TARGET_BINARY): $(FOO_DIR)/$(FOO_BINARY)
+ <a name="line37" id="line37">37</a> $(MAKE) prefix=$(TARGET_DIR)/usr -C $(FOO_DIR) install
+ <a name="line38" id="line38">38</a> rm -Rf $(TARGET_DIR)/usr/man
+ <a name="line39" id="line39">39</a>
+ <a name="line40" id="line40">40</a> foo: uclibc ncurses $(TARGET_DIR)/$(FOO_TARGET_BINARY)
+ <a name="line41" id="line41">41</a>
+ <a name="line42" id="line42">42</a> foo-source: $(DL_DIR)/$(FOO_SOURCE)
+ <a name="line43" id="line43">43</a>
+ <a name="line44" id="line44">44</a> foo-clean:
+ <a name="line45" id="line45">45</a> $(MAKE) prefix=$(TARGET_DIR)/usr -C $(FOO_DIR) uninstall
+ <a name="line46" id="line46">46</a> -$(MAKE) -C $(FOO_DIR) clean
+ <a name="line47" id="line47">47</a>
+ <a name="line48" id="line48">48</a> foo-dirclean:
+ <a name="line49" id="line49">49</a> rm -rf $(FOO_DIR)
+ <a name="line50" id="line50">50</a>
+ <a name="line51" id="line51">51</a> #############################################################
+ <a name="line52" id="line52">52</a> #
+ <a name="line53" id="line53">53</a> # Toplevel Makefile options
+ <a name="line54" id="line54">54</a> #
+ <a name="line55" id="line55">55</a> #############################################################
+ <a name="line56" id="line56">56</a> ifeq ($(strip $(BR2_PACKAGE_FOO)),y)
+ <a name="line57" id="line57">57</a> TARGETS+=foo
+ <a name="line58" id="line58">58</a> endif
+
+</pre>
+
+ <p>First of all, this <i>Makefile</i> example works for a single
+ binary software. For other software such as libraries or more
+ complex stuff with multiple binaries, it should be adapted. Look at
+ the other <code>*.mk</code> files in the <code>package</code>
+ directory. </p>
+
+ <p>At lines <a href="#line6">6-11</a>, a couple of useful variables are
+ defined :</p>
+
+ <ul>
+
+ <li><code>FOO_VERSION</code> : The version of <i>foo</i> that
+ should be downloaded. </li>
+
+ <li><code>FOO_SOURCE</code> : The name of the tarball of
+ <i>foo</i> on the download website of FTP site. As you can see
+ <code>FOO_VERSION</code> is used. </li>
+
+ <li><code>FOO_SITE</code> : The HTTP or FTP site from which
+ <i>foo</i> archive is downloaded. It must include the complete
+ path to the directory where <code>FOO_SOURCE</code> can be
+ found. </li>
+
+ <li><code>FOO_DIR</code> : The directory into which the software
+ will be configured and compiled. Basically, it's a subdirectory
+ of <code>BUILD_DIR</code> which is created upon decompression of
+ the tarball. </li>
+
+ <li><code>FOO_BINARY</code> : Software binary name. As said
+ previously, this is an example for a single binary software. </li>
+
+ <li><code>FOO_TARGET_BINARY</code> : The full path of the binary
+ inside the target filesystem. </li>
+
+ </ul>
+
+ <p>Lines <a href="#line13">13-14</a> defines a target that downloads the
+ tarball from the remote site to the download directory
+ (<code>DL_DIR</code>). </p>
+
+ <p>Lines <a href="#line16">16-18</a> defines a target and associated rules
+ that uncompress the downloaded tarball. As you can see, this target
+ depends on the tarball file, so that the previous target (line
+ <a href="#line13">13-14</a>) is called before executing the rules of the
+ current target. Uncompressing is followed by <i>touching</i> a hidden file
+ to mark the software has having been uncompressed. This trick is
+ used everywhere in Buildroot <i>Makefile</i> to split steps
+ (download, uncompress, configure, compile, install) while still
+ having correct dependencies. </p>
+
+ <p>Lines <a href="#line20">20-31</a> defines a target and associated rules
+ that configures the software. It depends on the previous target (the
+ hidden <code>.source</code> file) so that we are sure the software has
+ been uncompressed. In order to configure it, it basically runs the
+ well-known <code>./configure</code> script. As we may be doing
+ cross-compilation, <code>target</code>, <code>host</code> and
+ <code>build</code> arguments are given. The prefix is also set to
+ <code>/usr</code>, not because the software will be installed in
+ <code>/usr</code> on your host system, but in the target
+ filesystem. Finally it creates a <code>.configured</code> file to
+ mark the software as configured. </p>
+
+ <p>Lines <a href="#line33">33-34</a> defines a target and a rule that
+ compiles the software. This target will create the binary file in the
+ compilation directory, and depends on the software being already
+ configured (hence the reference to the <code>.configured</code>
+ file). It basically runs <code>make</code> inside the source
+ directory. </p>
+
+ <p>Lines <a href="#line36">36-38</a> defines a target and associated rules
+ that install the software inside the target filesystem. It depends on the
+ binary file in the source directory, to make sure the software has
+ been compiled. It uses the <code>install</code> target of the
+ software <code>Makefile</code> by passing a <code>prefix</code>
+ argument, so that the <code>Makefile</code> doesn't try to install
+ the software inside host <code>/usr</code> but inside target
+ <code>/usr</code>. After the installation, the
+ <code>/usr/man</code> directory inside the target filesystem is
+ removed to save space. </p>
+
+ <p>Line <a href="#line40">40</a> defines the main target of the software,
+ the one that will be eventually be used by the top level
+ <code>Makefile</code> to download, compile, and then install
+ this package. This target should first of all depends on all
+ needed dependecies of the software (in our example,
+ <i>uclibc</i> and <i>ncurses</i>), and also depend on the
+ final binary. This last dependency will call all previous
+ dependencies in the correct order. </p>
+
+ <p>Line <a href="#line42">42</a> defines a simple target that only
+ downloads the code source. This is not used during normal operation of
+ Buildroot, but is needed if you intend to download all required sources at
+ once for later offline build. Note that if you add a new package providing
+ a <code>foo-source</code> target is <i>mandatory</i> to support
+ users that wish to do offline-builds. Furthermore it eases checking
+ if all package-sources are downloadable. </p>
+
+ <p>Lines <a href="#line44">44-46</a> define a simple target to clean the
+ software build by calling the <i>Makefiles</i> with the appropriate option.
+ The <code>-clean</code> target should run <code>make clean</code>
+ on $(BUILD_DIR)/package-version and MUST uninstall all files of the
+ package from $(STAGING_DIR) and from $(TARGET_DIR). </p>
+
+ <p>Lines <a href="#line48">48-49</a> define a simple target to completely
+ remove the directory in which the software was uncompressed, configured and
+ compiled. The <code>-dirclean</code> target MUST completely rm $(BUILD_DIR)/
+ package-version. </p>
+
+ <p>Lines <a href="#line51">51-58</a> adds the target <code>foo</code> to
+ the list of targets to be compiled by Buildroot by first checking if
+ the configuration option for this package has been enabled
+ using the configuration tool, and if so then &quot;subscribes&quot;
+ this package to be compiled by adding it to the TARGETS
+ global variable. The name added to the TARGETS global
+ variable is the name of this package's target, as defined on
+ line <a href="#line40">40</a>, which is used by Buildroot to download,
+ compile, and then install this package. </p>
+
+
+ <h3>Conclusion</h3>
+
+ <p>As you can see, adding a software to buildroot is simply a
+ matter of writing a <i>Makefile</i> using an already existing
+ example and to modify it according to the compilation process of
+ the software. </p>
+
+ <p>If you package software that might be useful for other persons,
+ don't forget to send a patch to Buildroot developers !</p>
+
+ <h2><a name="links" id="links"></a>Resources</h2>
+
+ <p>To learn more about Buildroot you can visit these
+ websites:</p>
+
+ <ul>
+ <li><a href="http://www.uclibc.org/">http://www.uclibc.org/</a></li>
+ <li><a href="http://www.busybox.net/">http://www.busybox.net/</a></li>
+ </ul>
+
+ </div>
+<!--
+ <a href="http://validator.w3.org/check?uri=referer"><img
+ border="0" height="31" width="88"
+ src="images/valid-html401.png"
+ alt="Valid HTML"></img></a>
+-->
+
+</body>
+</html>
diff --git a/cleopatre/buildroot/docs/copyright.txt b/cleopatre/buildroot/docs/copyright.txt
new file mode 100644
index 0000000000..7fde029ac7
--- /dev/null
+++ b/cleopatre/buildroot/docs/copyright.txt
@@ -0,0 +1,29 @@
+
+The code and graphics on this website (and it's mirror sites, if any) are
+Copyright (c) 1999-2005 by Erik Andersen. All rights reserved.
+
+Documents on this Web site including their graphical elements, design, and
+layout are protected by trade dress and other laws and MAY BE COPIED OR
+IMITATED IN WHOLE OR IN PART. THIS WEBSITE IS LICENSED FREE OF CHARGE, THERE
+IS NO WARRANTY FOR THE WEBSITE TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+SHOULD THIS WEBSITE PROVE DEFECTIVE, YOU MAY ASSUME THAT SOMEONE MIGHT GET
+AROUND TO SERVICING, REPAIRING OR CORRECTING IT SOMETIME WHEN THEY HAVE NOTHING
+BETTER TO DO. REGARDLESS, YOU GET TO KEEP BOTH PIECES.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
+COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS
+WEBSITE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE THIS WEBSITE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
+LOSS OF HAIR, LOSS OF LIFE, LOSS OF MEMORY, LOSS OF YOUR CARKEYS, MISPLACEMENT
+OF YOUR PAYCHECK, OR COMMANDER DATA BEING RENDERED UNABLE TO ASSIST THE
+STARFLEET OFFICERS ABORD THE STARSHIP ENTERPRISE TO RECALIBRATE THE MAIN
+DEFLECTOR ARRAY, LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+WEBSITE TO OPERATE WITH YOUR WEBBROWSER), EVEN IF SUCH HOLDER OR OTHER PARTY
+HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+You have been warned.
+
+You can contact the webmaster at <andersen@codepoet.org> if you have some sort
+of problem with this.
+
diff --git a/cleopatre/buildroot/docs/developer.html b/cleopatre/buildroot/docs/developer.html
new file mode 100644
index 0000000000..4903dd41c3
--- /dev/null
+++ b/cleopatre/buildroot/docs/developer.html
@@ -0,0 +1,71 @@
+<!--#include file="header.html" -->
+
+
+<h3>Subversion Read/Write Access</h3>
+
+If you want to be able to commit things to Subversion, first contribute some
+stuff to show you are serious. Then, very nicely ask <a
+href="mailto:andersen@codepoet.org">Erik Andersen</a> if he will set you up
+with an commit access to the Subversion repository. To access Subversion, you
+will want to add the following to set up your environment:
+
+<p>
+
+To obtain commit access, you will need to demonstrate you are serious by
+submitting a few good patches first. Then, you will need to select a username
+to use when committing changes to SVN, you will need to send me the username
+you have selected, you must send me your preferred contact email address, and
+finally, you must send me an ssh version 2 DSA key with 1024 bits (the default)
+or more. If you do not currently have an ssh version 2 DSA key, you can
+generate a key using the command<pre>ssh-keygen -t dsa</pre> This will
+create the files <pre>/home/&lt;USERNAME&gt;/ssh/id_dsa
+/home/&lt;USERNAME&gt;/.ssh/id_dsa.pub</pre>
+It is recommended that you generate a key with a "passphrase" for security reasons.
+
+<p>
+Make the file known to the system by running
+
+<pre>ssh-add ~/.ssh/id_dsa</pre>
+
+You must then send the content of 'id_dsa.pub' to me so I can setup your account.
+The content of 'id_dsa' should of course be kept secret.
+
+<p>
+
+Note that if you would prefer to keep your communications with me
+private, you can encrypt your email using my
+<a href="http://www.codepoet.org/andersen/erik/gpg.asc">public key</a>.
+
+<p>
+
+Once you are setup with an account, you will need to use your account to
+checkout a copy of buildroot from Subversion:
+
+<pre>
+svn list svn+ssh://username@svn.uclibc.org/svn/trunk/buildroot</pre>
+<br>
+It goes without saying you must change <em>username</em> to your own
+username...
+<p>
+
+You can then enter the newly checked out buildroot directory, make changes, check
+your changes, diff your changes, revert your changes, and and commit your
+changes usine commands such as:
+
+<pre>
+svn diff
+svn status
+svn revert
+svn commit</pre>
+
+<p>
+
+For additional detail on how to use Subversion, please visit the
+<a href="http://subversion.tigris.org/">the Subversion website</a>.
+You might also want to read online or buy a copy of <a
+href="http://svnbook.red-bean.com/">the Subversion Book</a>...
+
+
+<!--#include file="footer.html" -->
+
+
diff --git a/cleopatre/buildroot/docs/docs.html b/cleopatre/buildroot/docs/docs.html
new file mode 100644
index 0000000000..afc10f247c
--- /dev/null
+++ b/cleopatre/buildroot/docs/docs.html
@@ -0,0 +1,31 @@
+<!--#include file="header.html" -->
+
+
+<h3>Documentation</h3>
+Current documentation for buildroot includes:
+
+<ul>
+
+ <li>
+ <a href= "buildroot.html">Buildroot - Usage and
+ documentation</a> is where you want to start reading if you wish to
+ understand how buildroot work, or wish to change/extend/fix things. If you
+ find any errors (factual, grammatical, whatever) please report them.
+ </li>
+
+ <li>
+ <a href="README">README</a>. This is the README file included in the
+ buildroot source release.
+ </li>
+
+ <li>
+ If you find that you need help with buildroot, you can ask for help on the
+ <a href= "lists/uClibc/">buildroot mailing list</a> at buildroot at mail.uclibc.org.
+ In addition the BusyBox, uClibc, and buildroot developers are also known to
+ hang out on the uClibc IRC channel: #uclibc on irc.freenode.net.
+ </li>
+
+</ul>
+
+<!--#include file="footer.html" -->
+
diff --git a/cleopatre/buildroot/docs/download.html b/cleopatre/buildroot/docs/download.html
new file mode 100644
index 0000000000..14f8237514
--- /dev/null
+++ b/cleopatre/buildroot/docs/download.html
@@ -0,0 +1,31 @@
+<!--#include file="header.html" -->
+
+
+
+<h3>Download</h3>
+
+<p>
+
+The best way to obtain and update your own copy of buildroot is to fetch the
+latest version using <a href="subversion.html">Subversion</a>. You can also
+obtain <a href= "downloads/snapshots/">Daily Snapshots</a> of the latest
+buildroot source tree but cannot or do not wish to use Subversion (svn).
+
+<ul>
+ <li> Click here to <a href="downloads/snapshots/">Daily Snapshots</a>.
+ </li>
+
+ <li> Click here to <a href="/cgi-bin/viewcvs.cgi/trunk/buildroot/">browse the source tree</a>.
+ </li>
+
+ <li>Anonymous <a href="subversion.html">Subversion access</a> is available.
+ </li>
+
+ <li>For those that are actively contributing obtaining
+ <a href="developer.html">Subversion read/write access</a> is also possible.
+ </li>
+
+</ul>
+
+<!--#include file="footer.html" -->
+
diff --git a/cleopatre/buildroot/docs/footer.html b/cleopatre/buildroot/docs/footer.html
new file mode 100644
index 0000000000..f57c273af3
--- /dev/null
+++ b/cleopatre/buildroot/docs/footer.html
@@ -0,0 +1,20 @@
+<!-- Footer -->
+
+
+ </td>
+ </tr>
+ </table>
+
+<hr />
+
+ <p>
+ <font face="arial, helvetica, sans-serif" size="-1">
+ <a HREF="/copyright.txt">Copyright &copy; 1999-2005 Erik Andersen</a>
+ <br>
+ Mail all comments, insults, suggestions and bribes to
+ <br>
+ Erik Andersen <A HREF="mailto:andersen@codepoet.org">andersen@codepoet.org</A><BR>
+ </font>
+
+ </body>
+</html>
diff --git a/cleopatre/buildroot/docs/header.html b/cleopatre/buildroot/docs/header.html
new file mode 100644
index 0000000000..c90ebc769b
--- /dev/null
+++ b/cleopatre/buildroot/docs/header.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+"http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+ <head>
+ <title>Buildroot</title>
+ <style type="text/css">
+ body {
+ background-color: #DEE2DE;
+ color: #000000;
+ }
+ :link { color: #660000 }
+ :visited { color: #660000 }
+ :active { color: #660000 }
+ td.c2 {font-family: arial, helvetica, sans-serif; font-size: 80%}
+ td.c1 {font-family: lucida, helvetica; font-size: 248%}
+ </style>
+ </head>
+
+ <body>
+ <basefont face="lucida, helvetica, arial" size="3">
+
+
+
+
+<table border="0" cellpadding="0" cellspacing="0">
+
+
+<tr>
+<td>
+ <div class="c3">
+ <table border="0" cellspacing="1" cellpadding="2">
+ <tr>
+ <td class="c1">BUILDROOT</td>
+ </tr>
+ </table>
+ </div>
+
+ <a href="/"><IMG SRC="images/busybox1.png" alt="Buildroot" border="0"></a><BR>
+</td>
+</tr>
+
+<tr>
+
+<td valign="TOP">
+ <br><a href="/about.html">About</a>
+ <br><a href="/news.html">Latest News</a>
+ <br><a href="/download.html">Download</a>
+ <br><a href="/cgi-bin/viewcvs.cgi/trunk/buildroot/">Browse Source</a>
+ <br><a href="/subversion.html">Accessing Source</a>
+ <br><a href="http://bugs.uclibc.org/">Bug Tracking</a>
+ <br><a href="/docs.html">Documentation</a>
+ <br><a href="/lists.html">Mailing Lists</a>
+
+ <p><b>Related Sites</b>
+ <br><a href="http://busybox.net/">BusyBox</a>
+ <br><a href="http://uclibc.org/">uClibc.org</a>
+ <br><a href="http://cxx.uclibc.org/">uClibc++</a>
+ <br><a href="http://udhcp.busybox.net/">udhcp</a>
+ <br><a href="http://www.scratchbox.org/">Scratchbox</a>
+ <br><a href="http://openembedded.org/">OpenEmbedded</a>
+ <br><a href="http://www.ucdot.org/">uCdot</a>
+ <br><a href="http://www.linuxdevices.com/">LinuxDevices</a>
+ <br><a href="http://slashdot.org/">Slashdot</a>
+ <br><a href="http://freshmeat.net/">Freshmeat</a>
+ <br><a href="http://linuxtoday.com/">Linux Today</a>
+ <br><a href="http://lwn.net/">Linux Weekly News</a>
+ <br><a href="http://www.tldp.org/HOWTO">Linux HOWTOs</a>
+
+<!--
+ <a href="http://validator.w3.org/check/referer"><img
+ src="/images/valid-html401.png" height="31" width="88"
+ align="left" border="0" alt="Valid HTML"></a>
+-->
+
+</td>
+
+
+<td Valign="TOP">
+
diff --git a/cleopatre/buildroot/docs/images/busybox1.png b/cleopatre/buildroot/docs/images/busybox1.png
new file mode 100644
index 0000000000..4d3126a529
--- /dev/null
+++ b/cleopatre/buildroot/docs/images/busybox1.png
Binary files differ
diff --git a/cleopatre/buildroot/docs/images/valid-html401.png b/cleopatre/buildroot/docs/images/valid-html401.png
new file mode 100644
index 0000000000..ec9bc0ce00
--- /dev/null
+++ b/cleopatre/buildroot/docs/images/valid-html401.png
Binary files differ
diff --git a/cleopatre/buildroot/docs/index.html b/cleopatre/buildroot/docs/index.html
new file mode 100644
index 0000000000..1bab6b0693
--- /dev/null
+++ b/cleopatre/buildroot/docs/index.html
@@ -0,0 +1 @@
+<!--#include file="news.html" -->
diff --git a/cleopatre/buildroot/docs/lists.html b/cleopatre/buildroot/docs/lists.html
new file mode 100644
index 0000000000..b2971c1e11
--- /dev/null
+++ b/cleopatre/buildroot/docs/lists.html
@@ -0,0 +1,34 @@
+<!--#include file="header.html" -->
+
+<!-- Begin Introduction section -->
+
+<h3>Mailing List Information</h3>
+Buildroot has a <a href="/lists/buildroot/">mailing list</a> for discussion and
+development. You can subscribe by visiting
+<a href="/mailman/listinfo/buildroot">this page</a>.
+Only subscribers to the Buildroot mailing list are allowed to post
+to this list.
+
+<p>
+
+<h3>Search the List Archives</h3>
+Please search the mailing list archives before asking questions on the mailing
+list, since there is a good chance someone else has asked the same question
+before. Checking the archives is a great way to avoid annoying everyone on the
+list with frequently asked questions...
+<p>
+
+<center>
+<form method="GET" action="http://www.google.com/custom">
+<input type="hidden" name="domains" value="buildroot.uclibc.org">
+<input type="hidden" name="sitesearch" value="buildroot.uclibc.org">
+<input type="text" name="q" size="31" maxlength="255" value="">
+<br>
+<input type="submit" name="sa" value="search the mailing list archives">
+<br>
+<a href="http://www.google.com/"><img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" height="32" width="75" align="middle"></a>
+<br>
+</form>
+</center>
+
+<!--#include file="footer.html" -->
diff --git a/cleopatre/buildroot/docs/news.html b/cleopatre/buildroot/docs/news.html
new file mode 100644
index 0000000000..d2b18c66f2
--- /dev/null
+++ b/cleopatre/buildroot/docs/news.html
@@ -0,0 +1,37 @@
+<!--#include file="header.html" -->
+
+
+<ul>
+
+ <li><b>16 July 2006 -- Buildroot mailing list</b>
+ <p>Buildroot now has its own <a href=lists.html>mailing list</a>.</p>
+
+ <li><b>21 February 2005 -- Buildroot webpage added</b><p>
+
+ Buildroot is a set of Makefiles and patches that makes it easy generate a
+ cross-compilation toolchain and root filesystem for your target Linux
+ system using the <a href= "http://www.uclibc.org/">uClibc C library</a>.
+ Buildroot is useful mainly for people working with small or embedded
+ systems. Embedded systems often use processors that are not the regular
+ x86 processors everyone is used to using on their PC. It can be PowerPC
+ processors, MIPS processors, ARM processors, etc. And to be extra safe,
+ you do not need to be root to build or run buildroot.
+
+ <p>
+
+ And as of today buildroot even has its own webpage, making it a first class
+ citizen of uclibc.org and busybox.net, and more importantly, make it easy
+ to find and point to buildroot.
+
+ <p>
+
+ If you find a bug in buildroot, or wish to submit a patch to fix a problem
+ or add a shiny new feature, please use the <a
+ href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
+ the details, to make certain your work is not lost.
+
+
+</ul>
+
+<!--#include file="footer.html" -->
+
diff --git a/cleopatre/buildroot/docs/patches.html b/cleopatre/buildroot/docs/patches.html
new file mode 100644
index 0000000000..2d886e557e
--- /dev/null
+++ b/cleopatre/buildroot/docs/patches.html
@@ -0,0 +1,43 @@
+<!--#include file="header.html" -->
+
+<h2>Buildroot patch structure</h2>
+
+<p>
+<h4>Keeping track of applied patches</h4>
+Whenever a patch is applied to a source code directory in buildroot, a text file named .applied_patches_list is created inside that source directory.
+This file contains a list of all the patch filenames that were applied to that source code, just for reference.
+</p>
+
+<p>
+<h4>Linux kernel patches</h4>
+The Linux kernel has several patch levels available for it in the buildroot patch system.
+Buildroot first downloads the chosen kernel source from the mirror site, followed by any selected minor patch.
+Buildroot then extracts the kernel source from the compressed file and applies the minor patch, if one was chosen.
+After extracting the source and applying the official minor patch, buildroot looks for more patches in the following locations and in the order shown:
+
+<ol>
+<li> a custom, user downloaded kernel patch can be located in $(DL_DIR) and the filename is stored as $(LINUX26_BSP_PATCH) </li>
+<li> Atmel keeps their official kernel patches in target/device/Atmel/Linux/kernel-patches with subdirectories for each kernel release.
+They also keep any board-specific patches in $(BR2_BOARD_PATH) </li>
+<li> globally available patches are kept in toolchain/kernel-headers </li>
+<li> IPMI (<a href="http://www.intel.com/design/servers/ipmi/ipmi.htm">Intelligent Platform Management Interface</a>)
+kernel patches are kept in toolchain/kernel-headers/ipmi </li>
+<li> LZMA kernel compression support patches are kept in toolchain/kernel-headers/lzma </li>
+<li> <a href="http://www.realtimelinuxfoundation.org/downloads/downloads.html">Real-time Linux kernel</a> patches are kept in $(LINUX_RT_SOURCE) </li>
+<li> <a href="http://www.openswan.org/">Openswan</a> kernel patches are kept in package/openswan </li>
+</ol>
+</p>
+
+ <p>
+ <h4>Package source patches</h4>
+ Any patches for the Linux programs supported by buildroot are kept in that program's corresponding package/ directory.
+ </p>
+
+ <p>
+ <h4>How the patching is done</h4>
+Patches are applied in buildroot by running a shell script called toolchain/patch-kernel.sh with three arguments. The first argument is the target directory
+where the source code to be patched is saved. The second argument is the directory where the patch is saved. The third argument is the filename pattern
+to match when looking in the patch directory. The third argument can include wildcards to select multiple patch files.
+</p>
+
+<!--#include file="footer.html" -->
diff --git a/cleopatre/buildroot/docs/stylesheet.css b/cleopatre/buildroot/docs/stylesheet.css
new file mode 100644
index 0000000000..2c36417823
--- /dev/null
+++ b/cleopatre/buildroot/docs/stylesheet.css
@@ -0,0 +1,65 @@
+body {
+ margin: 0px 0px 0px 0px;
+ color: white;
+ background-color: #93c6f9;
+ font: 12pt/18pt georgia;
+}
+
+div.main {
+ margin: 10px 10px 10px 10px;
+ padding: 10px 10px 10px 10px;
+ color: black;
+ background-color: white;
+}
+
+div.titre {
+ text-align: center;
+ background-color: #336699;
+ color: white;
+ padding: 10px 10px 10px 10px;
+}
+
+h1 {
+ text-align: center;
+ font: 26pt georgia;
+ letter-spacing: 3px;
+}
+
+h2 {
+ padding: 5px 5px 5px 5px;
+ background-color: #c2e0ff;
+ color: #336699;
+}
+
+a:link, a:visited {
+ font-weight: bold;
+ text-decoration: none;
+ color: #336699;
+}
+
+a:hover, a:active {
+ text-decoration: underline;
+ color: #9685BA;
+}
+
+h3 {
+ font: italic normal 14pt georgia;
+ letter-spacing: 1px;
+ margin-bottom: 0px;
+ margin-left: 10px;
+ margin-right: 10px;
+ color: #336699;
+}
+
+p {
+ margin-left: 10px;
+ margin-right: 10px;
+ text-align: justify;
+}
+
+pre {
+ border-left: 3px #aaa solid;
+ margin-left: 1em;
+ padding: 0 1em;
+ color: #888;
+} \ No newline at end of file
diff --git a/cleopatre/buildroot/docs/subversion.html b/cleopatre/buildroot/docs/subversion.html
new file mode 100644
index 0000000000..55b0374d53
--- /dev/null
+++ b/cleopatre/buildroot/docs/subversion.html
@@ -0,0 +1,40 @@
+<!--#include file="header.html" -->
+
+
+<h3>Anonymous Subversion Access</h3>
+
+We allow anonymous (read-only) Subversion (svn) access to everyone. To
+grab a copy of the latest version of buildroot using anonymous svn access:
+
+<pre>
+svn co svn://uclibc.org/trunk/buildroot</pre>
+
+
+<p>
+
+If you are not already familiar with using Subversion, I recommend you visit <a
+href="http://subversion.tigris.org/">the Subversion website</a>. You might
+also want to read online or buy a copy of <a
+href="http://svnbook.red-bean.com/">the Subversion Book</a>. If you are
+already comfortable with using CVS, you may want to skip ahead to the <a
+href="http://svnbook.red-bean.com/en/1.1/apa.html">Subversion for CVS Users</a>
+part of the Subversion Book.
+
+<p>
+
+Once you've checked out a copy of the source tree, you can update your source
+tree at any time so it is in sync with the latest and greatest by entering your
+buildroot directory and running the command:
+
+<pre>
+svn update</pre>
+
+Because you've only been granted anonymous access to the tree, you won't be
+able to commit any changes. Changes can be submitted for inclusion by posting
+them to the buildroot mailing list or to the <a
+href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
+For those that are actively contributing <a
+href="developer.html">Subversion commit access</a> can be made available.
+
+<!--#include file="footer.html" -->
+
diff --git a/cleopatre/buildroot/package/Config.in b/cleopatre/buildroot/package/Config.in
new file mode 100644
index 0000000000..e8339682ca
--- /dev/null
+++ b/cleopatre/buildroot/package/Config.in
@@ -0,0 +1,495 @@
+menu "Package Selection for the target"
+
+source "package/busybox/Config.in"
+
+comment "The minimum needed to build a uClibc development system"
+
+source "package/bash/Config.in"
+source "package/bzip2/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/coreutils/Config.in"
+endif
+source "package/diffutils/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/findutils/Config.in"
+endif
+source "package/flex/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/gawk/Config.in"
+endif
+source "toolchain/gcc/Config.in.2"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/grep/Config.in"
+endif
+source "package/make/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/patch/Config.in"
+source "package/sed/Config.in"
+source "package/tar/Config.in"
+endif
+
+#menuconfig BR2_APPLICATION_SUPPORT
+# bool "Common Applications"
+# default y
+# help
+# A set of applications, utilities and libraries for
+# text processing, toolchain generation and other things.
+
+
+#if BR2_APPLICATION_SUPPORT
+comment "Other development stuff"
+source "package/autoconf/Config.in"
+source "package/automake/Config.in"
+source "package/bison/Config.in"
+source "toolchain/ccache/Config.in.2"
+source "package/cvs/Config.in"
+source "package/distcc/Config.in"
+source "package/dmalloc/Config.in"
+source "package/fakeroot/Config.in"
+source "package/gettext/Config.in"
+source "package/gmp/Config.in"
+source "package/gperf/Config.in"
+source "package/mpfr/Config.in"
+source "package/libtool/Config.in"
+source "package/m4/Config.in"
+source "package/mpatrol/Config.in"
+source "package/oprofile/Config.in"
+source "package/pkgconfig/Config.in"
+source "package/readline/Config.in"
+source "package/valgrind/Config.in"
+source "package/pcre/Config.in"
+
+comment "Other stuff"
+source "package/at/Config.in"
+source "package/beecrypt/Config.in"
+source "package/berkeleydb/Config.in"
+source "package/bsdiff/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/bootutils/Config.in"
+endif
+source "package/cups/Config.in"
+source "package/customize/Config.in"
+source "package/dash/Config.in"
+source "package/file/Config.in"
+source "package/gamin/Config.in"
+source "package/icu/Config.in"
+source "package/ipkg/Config.in"
+source "package/kexec/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/less/Config.in"
+endif
+source "package/libdaemon/Config.in"
+source "package/libelf/Config.in"
+source "package/libevent/Config.in"
+source "package/libfloat/Config.in"
+source "package/libgcrypt/Config.in"
+source "package/libgpg-error/Config.in"
+source "package/libiconv/Config.in"
+source "package/liblockfile/Config.in"
+source "package/libsysfs/Config.in"
+source "package/lockfile-progs/Config.in"
+source "package/lsof/Config.in"
+source "package/ltp-testsuite/Config.in"
+source "package/ltrace/Config.in"
+source "package/ltt/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/module-init-tools/Config.in"
+source "package/modutils/Config.in"
+endif
+source "package/ng-spice-rework/Config.in"
+source "package/popt/Config.in"
+source "package/portage/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/procps/Config.in"
+endif
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/psmisc/Config.in"
+endif
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/rpm/Config.in"
+endif
+source "package/screen/Config.in"
+source "package/startup-notification/Config.in"
+source "package/strace/Config.in"
+source "package/sudo/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/sysklogd/Config.in"
+# busybox has init and the runit stuff
+source "package/sysvinit/Config.in"
+endif
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/tinylogin/Config.in"
+endif
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/util-linux/Config.in"
+endif
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/which/Config.in"
+endif
+
+source "package/database/Config.in"
+
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+# busybox has an editor
+
+# text editors
+source "package/editors/Config.in"
+
+endif
+
+menuconfig BR2_NETWORK_SUPPORT
+ bool "Networking"
+ default y
+ help
+ Support for communication, networking and related packages
+
+if BR2_NETWORK_SUPPORT
+comment "Networking applications"
+source "package/argus/Config.in"
+source "package/avahi/Config.in"
+source "package/axel/Config.in"
+source "package/boa/Config.in"
+source "package/bind/Config.in"
+source "package/bridge-utils/Config.in"
+source "package/curl/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/dhcp/Config.in"
+endif
+source "package/dnsmasq/Config.in"
+source "package/dropbear/Config.in"
+source "package/ethtool/Config.in"
+source "package/haserl/Config.in"
+source "package/hostap/Config.in"
+source "package/ifplugd/Config.in"
+source "package/irda-utils/Config.in"
+source "package/iperf/Config.in"
+source "package/iproute2/Config.in"
+source "package/ipsec-tools/Config.in"
+source "package/iptables/Config.in"
+source "package/kismet/Config.in"
+source "package/l2tp/Config.in"
+source "package/libcgi/Config.in"
+source "package/libcgicc/Config.in"
+source "package/libeXosip2/Config.in"
+source "package/libosip2/Config.in"
+source "package/libpcap/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/lighttpd/Config.in"
+endif
+source "package/links/Config.in"
+source "package/lrzsz/Config.in"
+source "package/mdnsresponder/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS || !BR2_PACKAGE_BUSYBOX_SNAPSHOT
+source "package/microcom/Config.in"
+endif
+source "package/mii-diag/Config.in"
+source "package/mrouted/Config.in"
+source "package/mutt/Config.in"
+source "package/nbd/Config.in"
+source "package/ncftp/Config.in"
+source "package/neon/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/netcat/Config.in"
+endif
+source "package/netkitbase/Config.in"
+source "package/netkittelnet/Config.in"
+source "package/netplug/Config.in"
+source "package/netsnmp/Config.in"
+source "package/nfs-utils/Config.in"
+source "package/ntp/Config.in"
+source "package/olsr/Config.in"
+source "package/openntpd/Config.in"
+source "package/openssh/Config.in"
+source "package/openssl/Config.in"
+source "package/openvpn/Config.in"
+source "package/openswan/Config.in"
+source "package/portmap/Config.in"
+source "package/pppd/Config.in"
+source "package/rp-pppoe/Config.in"
+source "package/pptp-linux/Config.in"
+source "package/proftpd/Config.in"
+source "package/quagga/Config.in"
+source "package/rsync/Config.in"
+source "package/samba/Config.in"
+source "package/socat/Config.in"
+source "package/stunnel/Config.in"
+source "package/tcpdump/Config.in"
+source "package/tftpd/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/thttpd/Config.in"
+source "package/tinyhttpd/Config.in"
+endif
+source "package/tn5250/Config.in"
+source "package/ttcp/Config.in"
+#if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+# ATTENTION! This was merged into busybox!
+#source "package/udhcp/Config.in"
+#endif
+source "package/udpcast/Config.in"
+source "package/vpnc/Config.in"
+source "package/vsftpd/Config.in"
+source "package/vtun/Config.in"
+source "package/webif/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/wget/Config.in"
+endif
+source "package/wireless-tools/Config.in"
+
+endif
+
+menuconfig BR2_BLOCKDEV_SUPPORT
+ bool "Hardware handling / blockdevices and filesystem maintenance"
+ default y
+ help
+ Support for hardware handling and maintenance, block devices,
+ filesystem creation and maintenance.
+
+if BR2_BLOCKDEV_SUPPORT
+source "package/acpid/Config.in"
+source "package/dbus/Config.in"
+source "package/dbus-glib/Config.in"
+source "package/devmem2/Config.in"
+source "package/dm/Config.in"
+source "package/dmraid/Config.in"
+source "package/e2fsprogs/Config.in"
+source "package/fconfig/Config.in"
+source "package/fis/Config.in"
+source "package/fuse/Config.in"
+source "package/gadgetfs-test/Config.in"
+source "package/hal/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/hdparm/Config.in"
+source "package/hotplug/Config.in"
+endif
+source "package/hwdata/Config.in"
+source "package/i2c-tools/Config.in"
+source "package/input-tools/Config.in"
+source "package/iostat/Config.in"
+source "package/libaio/Config.in"
+source "package/libraw1394/Config.in"
+source "package/libusb/Config.in"
+source "package/lm-sensors/Config.in"
+source "package/lvm2/Config.in"
+source "package/mdadm/Config.in"
+source "package/memtester/Config.in"
+source "package/mkdosfs/Config.in"
+source "package/mtd/Config.in"
+source "package/ntfs-3g/Config.in"
+source "package/pciutils/Config.in"
+source "package/pcmcia/Config.in"
+source "package/raidtools/Config.in"
+source "package/setserial/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+# busybox has fdisk
+source "package/sfdisk/Config.in"
+endif
+source "package/smartmontools/Config.in"
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+# mdev
+source "package/udev/Config.in"
+endif
+source "package/usbmount/Config.in"
+source "package/usbutils/Config.in"
+source "package/wipe/Config.in"
+source "package/xfsprogs/Config.in"
+endif
+
+menuconfig BR2_AUDIO_SUPPORT
+ bool "Audio libraries and applications"
+ default y
+ help
+ Support for audio libraries and applications
+
+if BR2_AUDIO_SUPPORT
+source "package/alsa-lib/Config.in"
+source "package/alsa-utils/Config.in"
+source "package/asterisk/Config.in"
+source "package/aumix/Config.in"
+source "package/libid3tag/Config.in"
+source "package/libmad/Config.in"
+source "package/libogg/Config.in"
+source "package/libsndfile/Config.in"
+source "package/libvorbis/Config.in"
+source "package/madplay/Config.in"
+source "package/mpg123/Config.in"
+source "package/speex/Config.in"
+source "package/festival/Config.in"
+endif
+
+menuconfig BR2_GRAPHIC_SUPPORT
+ bool "Graphic libraries and applications (graphic/text)"
+ default y
+ help
+ Support for graphic libraries, X Window system and related
+ packages, graphical toolkits, etc.
+
+if BR2_GRAPHIC_SUPPORT
+comment "text rendering libraries"
+source "package/ncurses/Config.in"
+source "package/newt/Config.in"
+source "package/slang/Config.in"
+
+comment "text rendering applications"
+source "package/dialog/Config.in"
+
+comment "graphic libraries"
+source "package/directfb/Config.in"
+source "package/fusion/Config.in"
+source "package/imagemagick/Config.in"
+source "package/jpeg/Config.in"
+source "package/libart/Config.in"
+source "package/libpng/Config.in"
+source "package/libungif/Config.in"
+source "package/sdl/Config.in"
+source "package/sdl_image/Config.in"
+source "package/sdl_mixer/Config.in"
+source "package/sdl_ttf/Config.in"
+source "package/tiff/Config.in"
+
+comment "busybox graphic applications"
+comment "--> May be broken in busybox"
+source "package/fbv/Config.in"
+source "package/fbset/Config.in"
+
+comment "other GUIs"
+source "package/qte/Config.in"
+source "package/qtopia4/Config.in"
+
+#source "package/microwin/Config.in"
+
+
+menu "X Window System server"
+config BR2_PACKAGE_XSERVER_none
+ bool "none"
+ default y
+config BR2_PACKAGE_XSERVER_xorg
+ bool "modular xorg"
+ depends on !BR2_PACKAGE_XSERVER_none
+config BR2_PACKAGE_XSERVER_tinyx
+ bool "tinyx"
+ depends on !BR2_PACKAGE_XSERVER_none
+endmenu
+
+config BR2_X11_PREFIX
+ string
+ default "/usr/X11R6" if BR2_PACKAGE_XSERVER_xorg || BR2_PACKAGE_XSERVER_tinyx
+ default "/usr" if !BR2_PACKAGE_XSERVER_xorg && !BR2_PACKAGE_XSERVER_tinyx
+ help
+ X11 apps root location
+
+if !BR2_PACKAGE_XSERVER_none
+source "package/x11r7/Config.in"
+endif
+
+comment "X libraries and helper libraries"
+#XXX: maybe some of these should depend on !BR2_PACKAGE_XSERVER_none
+source "package/atk/Config.in"
+source "package/cairo/Config.in"
+source "package/pango/Config.in"
+source "package/libdrm/Config.in"
+source "package/libglib12/Config.in"
+source "package/libglib2/Config.in"
+source "package/libgtk12/Config.in"
+source "package/libgtk2/Config.in"
+source "package/gtk2-engines/Config.in"
+source "package/gtk2-themes/Config.in"
+source "package/libsexy/Config.in"
+source "package/fltk/Config.in"
+source "package/openmotif/Config.in"
+source "package/fontconfig/Config.in"
+source "package/freetype/Config.in"
+source "package/tslib/Config.in"
+source "package/webkit/Config.in"
+
+comment "X Window managers"
+source "package/matchbox/Config.in"
+source "package/metacity/Config.in"
+source "package/blackbox/Config.in"
+
+comment "X applications"
+source "package/alsamixergui/Config.in"
+source "package/dillo/Config.in"
+source "package/docker/Config.in"
+source "package/gqview/Config.in"
+source "package/leafpad/Config.in"
+source "package/midori/Config.in"
+source "package/pcmanfm/Config.in"
+source "package/rdesktop/Config.in"
+source "package/rxvt/Config.in"
+source "package/sylpheed/Config.in"
+source "package/synergy/Config.in"
+source "package/torsmo/Config.in"
+source "package/x11vnc/Config.in"
+source "package/xpdf/Config.in"
+source "package/xstroke/Config.in"
+source "package/xvkbd/Config.in"
+
+comment "Video libraries/codecs and applications"
+source "package/mplayer/Config.in"
+source "package/vlc/Config.in"
+endif
+
+menuconfig BR2_COMPRESSOR_SUPPORT
+ bool "Compressors / decompressors"
+ default y
+ help
+ Support for compressors and decompressors like lzo, lzma, bzip2
+
+if BR2_COMPRESSOR_SUPPORT
+if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+source "package/gzip/Config.in"
+endif
+source "package/lzo/Config.in"
+source "package/lzma/Config.in"
+source "package/zlib/Config.in"
+endif
+
+menuconfig BR2_SCRIPTING_SUPPORT
+ bool "Interpreter languages / Scripting"
+ default y
+ help
+ Support for scripting languages, interpreter languages.
+
+if BR2_SCRIPTING_SUPPORT
+source "package/lua/Config.in"
+source "package/microperl/Config.in"
+source "package/python/Config.in"
+source "package/ruby/Config.in"
+source "package/tcl/Config.in"
+source "package/php/Config.in"
+endif
+
+menuconfig BR2_XML_SUPPORT
+ bool "XML handling"
+ default y
+ help
+ Support for XML handling
+
+if BR2_XML_SUPPORT
+source "package/expat/Config.in"
+source "package/ezxml/Config.in"
+source "package/libxml2/Config.in"
+source "package/libxslt/Config.in"
+source "package/xerces/Config.in"
+endif
+
+# java support
+source "package/java/Config.in"
+
+menuconfig BR2_GAMES
+ bool "Games"
+ default y
+ help
+ Support for games
+
+if BR2_GAMES
+source "package/lxdoom/Config.in"
+source "package/ace_of_penguins/Config.in"
+source "package/gnuchess/Config.in"
+source "package/xboard/Config.in"
+source "package/rubix/Config.in"
+source "package/magiccube4d/Config.in"
+source "package/vice/Config.in"
+endif
+
+endmenu
diff --git a/cleopatre/buildroot/package/Makefile.autotools.in b/cleopatre/buildroot/package/Makefile.autotools.in
new file mode 100644
index 0000000000..5e94b447ed
--- /dev/null
+++ b/cleopatre/buildroot/package/Makefile.autotools.in
@@ -0,0 +1,397 @@
+################################################################################
+#
+# Makefile.autotools.in --
+#
+# Implicit and Generated Rules for easily creating autotools-compatible
+# buildroot packages
+#
+## Example minimal makefile for a package named 'foo'
+#
+# | FOO_VERSION = 1.0
+# | FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
+# | FOO_SITE = http://www.libfoo.org/dist
+# | $(eval $(call AUTOTARGETS,foo))
+#
+## The following targets can be called from the shell:
+#
+# foo, foo-source, foo-patch, foo-configure, foo-build, foo-install,
+# foo-install-target, foo-install-staging, foo-uninstall, foo-clean,
+# foo-dirclean
+#
+## The following variables which can be (re)defined in the package makefile:
+#
+# FOO_VERSION [mandatory]
+# version string of the package
+# FOO_SOURCE [default foo-$(FOO_VERSION).tar.gz]
+# file name of the package source
+# FOO_SITE [default sourceforge project "foo"]
+# URL under wich $(FOO_SOURCE) can be found
+# FOO_DEPENDENCIES [default empty]
+# list of (package) targets that must be built before foo
+# FOO_AUTORECONF [YES/NO, default NO]
+# run <autoreconf> before <configure>
+# FOO_CONF_ENV [default empty]
+# environment passed to the <configure> script
+# FOO_CONF_OPT [default empty]
+# arguments passed to the <configure> script
+# FOO_MAKE_ENV [default empty]
+# environment passed to all calls to <make> in the package source
+# directory
+# FOO_MAKE_OPT [default empty]
+# arguments passed to <make> while building
+# FOO_INSTALL_STAGING [YES/NO, default NO]
+# install the package to the staging directory
+# FOO_INSTALL_TARGET [YES/NO, default YES]
+# install the package to the target directory
+# FOO_INSTALL_STAGING_OPT [default DESTDIR=$(STAGING_DIR)/usr install]
+# arguments passed to <make> while installing to the staging directory
+# FOO_INSTALL_TARGET_OPT [default DESTDIR=$(TARGET_DIR)/usr install-exec]
+# arguments passed to <make> while installing to the target directory
+# FOO_CLEAN_OPT [default clean]
+# arguments passed to <make> while installing to the staging directory
+# FOO_UNINSTALL_STAGING_OPT [default DESTDIR=$(STAGING_DIR)/usr uninstall]
+# arguments passed to <make> while uninstalling from the staging
+# directory
+# FOO_UNINSTALL_TARGET_OPT [default DESTDIR=$(STAGING_DIR)/usr uninstall]
+# arguments passed to <make> while uninstalling from the target
+# directory
+# FOO_SUBDIR [default empty]
+# relative path in the package source from which to run configure and
+# make
+# FOO_DIR_PREFIX [default empty]
+# toplevel relative path to package *.mk file and corresponding patches
+#
+## The following variables contain hook target names
+## by default they do nothing, they can be overriden in package makefiles
+#
+# FOO_HOOK_POST_BUILD, FOO_HOOK_POST_INSTALL
+#
+## The following variables contain targets that can be overriden
+#
+# FOO_TARGET_INSTALL_TARGET FOO_TARGET_INSTALL_STAGING FOO_TARGET_BUILD
+# FOO_TARGET_CONFIGURE FOO_TARGET_PATCH FOO_TARGET_EXTRACT FOO_TARGET_SOURCE
+# FOO_TARGET_UNINSTALL FOO_TARGET_CLEAN FOO_TARGET_DIRCLEAN
+#
+# E.g. if your package has a no <configure> script you can place the following
+# in your package makefile:
+#
+# | $(FOO_TARGET_INSTALL):
+# | touch $@
+#
+## The following variables are defined automatically and can be used in
+## overriden targets:
+#
+# PKG
+# is always the current package name ("foo" in the example)
+# FOO_DIR
+# the directory in which the package source is extracted.
+# the base name will always be foo-$(FOO_VERSION), no matter what the
+# archive name or the directory-in-archive name are.
+# MESSAGE
+# macro that outputs a pretty message to stdout, e.g. use
+# $(call MESSAGE,"Hello World")
+# in a target.
+#
+# Caveats:
+# - the 'eval' line (final line in the example) must be placed
+# after all variable settings, but before all target re-definition
+# (including hooks)
+################################################################################
+
+# UPPERCASE Macro -- transform its argument to uppercase and replace dots and
+# hyphens to underscores
+UPPERCASE = $(shell echo $(1) | tr "a-z.-" "A-Z__")
+
+# Define extrators for different archive suffixes
+INFLATE.bz2 = $(BZCAT)
+INFLATE.gz = $(ZCAT)
+INFLATE.tbz = $(BZCAT)
+INFLATE.tgz = $(ZCAT)
+INFLATE.tar = cat
+
+# MESSAGE Macro -- display a message in bold type
+MESSAGE = @echo $(TERM_BOLD); \
+ echo ">>> $($(PKG)_NAME) $($(PKG)_VERSION) $(1)"; \
+ echo $(TERM_RESET)
+TERM_BOLD = #$(shell tput bold)
+TERM_RESET = #$(shell tput rmso)
+
+# Utility programs used to build packages
+TAR ?= tar
+#ACLOCAL_STAGING_DIR ?= $(STAGING_DIR)/usr/share/aclocal
+#ACLOCAL ?= aclocal -I $(ACLOCAL_STAGING_DIR)
+#AUTORECONF ?= autoreconf -v -i -f -I $(ACLOCAL_STAGING_DIR)
+# ACLOCAL="$(ACLOCAL)"
+
+
+################################################################################
+# Implicit targets -- produce a stamp file for each step of a package build
+################################################################################
+
+# Retrieve and unpack the archive
+$(BUILD_DIR)/%/.stamp_downloaded:
+# support make source-check/external-deps
+ifneq ($(SPIDER),)
+ $(WGET) -P $(DL_DIR) $($(PKG)_SITE)/$($(PKG)_SOURCE)
+ $(if $($(PKG)_PATCH),$(WGET) -P $(DL_DIR) $($(PKG)_SITE)/$($(PKG)_PATCH))
+else
+ $(call MESSAGE,"Downloading")
+ifneq ($(strip $(subst ",,$(BR2_PRIMARY_SITE))),)
+#"))
+ -$(Q)test -e $(DL_DIR)/$($(PKG)_SOURCE) || $(WGET) -P $(DL_DIR) $(BR2_PRIMARY_SITE)/$($(PKG)_SOURCE)
+endif
+ $(Q)test -e $(DL_DIR)/$($(PKG)_SOURCE) || $(WGET) -P $(DL_DIR) $($(PKG)_SITE)/$($(PKG)_SOURCE)
+ $(if $($(PKG)_PATCH),$(Q)test -e $(DL_DIR)/$($(PKG)_PATCH) || $(WGET) -P $(DL_DIR) $($(PKG)_SITE)/$($(PKG)_PATCH))
+ $(Q)mkdir -p $(@D)
+ $(Q)touch $@
+endif
+
+# Retrieve and unpack the archive
+$(BUILD_DIR)/%/.stamp_extracted:
+ $(call MESSAGE,"Extracting")
+ $(Q)mkdir -p $(@D)
+ $(Q)$(INFLATE$(suffix $($(PKG)_SOURCE))) $(DL_DIR)/$($(PKG)_SOURCE) | \
+ $(TAR) --strip-components=1 -C $(@D) $(TAR_OPTIONS) -
+# some packages have messed up permissions inside
+ $(Q)chmod -R ug+rw $(@D)
+# if the package uses libtool, patch it for cross-compiling in buildroot
+ for i in `find $(@D) -name ltmain.sh`; do \
+ toolchain/patch-kernel.sh $${i%/*} package buildroot-libtool.patch; \
+ done
+ $(Q)touch $@
+
+# Patch
+# XXX: FIXME: This has to be done differently and path-independent, i.e. use
+# XXX: FIXME: the dir-part of the stem as base-dir (instead of hardcoding
+# XXX: FIXME: "package/".
+$(BUILD_DIR)/%/.stamp_patched: NAMEVER = $($(PKG)_NAME)-$($(PKG)_VERSION)
+$(BUILD_DIR)/%/.stamp_patched:
+ $(call MESSAGE,"Patching $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)")
+ $(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
+ $(Q)( \
+ if test -d $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME); then \
+ if test "$(wildcard $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER)*.patch*)"; then \
+ toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) $(NAMEVER)\*.patch $(NAMEVER)\*.patch.$(ARCH) || exit 1; \
+ else \
+ toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch $($(PKG)_NAME)\*.patch.$(ARCH) || exit 1; \
+ if test -d package/$($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER); then \
+ toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) \*.patch \*.patch.$(ARCH) || exit 1; \
+ fi; \
+ fi; \
+ fi; \
+ )
+ifeq ($(strip $(BR2_UPDATE_CONFIG)),y)
+ $(Q)(for file in config.guess config.sub; do \
+ for i in $$(find $(@D) -name $$file); do \
+ cp package/gnuconfig/$$file $$i; \
+ done; \
+ done)
+endif
+ $(Q)touch $@
+
+# Running autoreconf
+$(BUILD_DIR)/%/.stamp_autoconfigured:
+ $(call MESSAGE,"Running autoreconf")
+ $(Q)cd $(@D)/$($(PKG)_SUBDIR) && $(AUTORECONF)
+ $(Q)touch $@
+
+# Configuring
+$(BUILD_DIR)/%/.stamp_configured:
+ $(call MESSAGE,"Configuring")
+ $(Q)if test "$($(PKG)_AUTORECONF)" = "YES"; then \
+ cd $(@D)/$($(PKG)_SUBDIR) && $(AUTORECONF); \
+ for i in `find $(@D)/$($(PKG)_SUBDIR) -name ltmain.sh`; do \
+ ../../toolchain/patch-kernel.sh $${i%/*} ../../package buildroot-libtool.patch; \
+ done \
+ fi
+ cd $(@D)/$($(PKG)_SUBDIR) && rm -f config.cache && \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ $($(PKG)_CONF_ENV) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --sysconfdir=/etc \
+ $($(PKG)_CONF_OPT)
+ $(Q)touch $@
+
+# Build
+$(BUILD_DIR)/%/.stamp_built:
+ $(call MESSAGE,"Building")
+ $($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_MAKE_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+ $(Q)touch $@
+
+# Install to staging dir
+$(BUILD_DIR)/%/.stamp_staging_installed:
+ $(call MESSAGE,'Installing to host (staging directory)')
+ $($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_INSTALL_STAGING_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+# toolchain/replace.sh $(STAGING_DIR)/usr/lib ".*\.la" "\(['= ]\)/usr" "\\1$(STAGING_DIR)/usr"
+ for i in $$(find $(STAGING_DIR)/usr/lib/ -name "*.la"); do \
+ cp $$i $$i~; \
+ $(SED) "s:\(['= ]\)/usr:\\1$(STAGING_DIR)/usr:g" $$i; \
+ done
+ touch $@
+
+# Install to target dir
+$(BUILD_DIR)/%/.stamp_target_installed:
+ $(call MESSAGE,"Installing to target")
+ $($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_INSTALL_TARGET_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+ $(if $(BR2_HAVE_MANPAGES),,for d in man share/man; do \
+ rm -rf $(TARGET_DIR)/$$d $(TARGET_DIR)/usr/$$d; \
+ done)
+ $(if $(BR2_HAVE_INFOPAGES),,for d in info share/info; do \
+ rm -rf $(TARGET_DIR)/$$d $(TARGET_DIR)/usr/$$d; \
+ done)
+ $(if $(BR2_HAVE_INCLUDES),,for d in include; do \
+ rm -rf $(TARGET_DIR)/$$d $(TARGET_DIR)/usr/$$d; \
+ done)
+ touch $@
+
+$(BUILD_DIR)/%/.stamp_cleaned:
+ $(call MESSAGE,"Cleaning up")
+ -$($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_UNINSTALL_STAGING_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+ -$($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_UNINSTALL_TARGET_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+ -$($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_CLEAN_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+
+$(BUILD_DIR)/%/.stamp_uninstalled:
+ $(call MESSAGE,"Uninstalling")
+ $($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_UNINSTALL_STAGING_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+ $($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_UNINSTALL_TARGET_OPT) -C $(@D)/$($(PKG)_SUBDIR)
+
+$(BUILD_DIR)/%/.stamp_dircleaned:
+ rm -Rf $(@D)
+
+
+################################################################################
+# AUTOTARGETS -- the target generator macro; define a set of human-readable
+# make targets, stamps, and default per-package variables.
+# Argument 1 is the package directory prefix.
+# Argument 2 is the (lowercase) package name.
+################################################################################
+
+define AUTOTARGETS
+$(call AUTOTARGETS_INNER,$(2),$(call UPPERCASE,$(2)),$(1))
+endef
+
+# AUTOTARGETS_INNER -- does the job for AUTOTARGETS; argument 1 is the
+# lowercase package name, argument 2 the uppercase package name,
+# argument 3 the package directory prefix
+define AUTOTARGETS_INNER
+
+# define package-specific variables to default values
+$(2)_NAME = $(1)
+$(2)_VERSION ?= undefined
+$(2)_DIR = $$(BUILD_DIR)/$(1)-$$($(2)_VERSION)
+$(2)_SOURCE ?= $(1)-$$($(2)_VERSION).tar.gz
+$(2)_SITE ?= \
+ http://$$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/$(1)
+$(2)_DEPENDENCIES ?=
+$(2)_AUTORECONF ?= NO
+$(2)_CONF_ENV ?=
+$(2)_CONF_OPT ?=
+$(2)_MAKE_ENV ?=
+$(2)_MAKE_OPT ?=
+$(2)_INSTALL_STAGING ?= NO
+$(2)_INSTALL_TARGET ?= YES
+$(2)_INSTALL_STAGING_OPT ?= DESTDIR=$$(STAGING_DIR) install
+$(2)_INSTALL_TARGET_OPT ?= DESTDIR=$$(TARGET_DIR) install-exec
+$(2)_CLEAN_OPT ?= clean
+$(2)_UNINSTALL_STAGING_OPT ?= DESTDIR=$$(STAGING_DIR) uninstall
+$(2)_UNINSTALL_TARGET_OPT ?= DESTDIR=$$(TARGET_DIR) uninstall
+$(2)_SUBDIR ?=
+$(2)_DIR_PREFIX = $(if $(3),$(3),$(TOP_SRCDIR)/package)
+
+
+# define sub-target stamps
+$(2)_TARGET_INSTALL_TARGET = $$($(2)_DIR)/.stamp_target_installed
+$(2)_TARGET_INSTALL_STAGING = $$($(2)_DIR)/.stamp_staging_installed
+$(2)_TARGET_BUILD = $$($(2)_DIR)/.stamp_built
+$(2)_TARGET_CONFIGURE = $$($(2)_DIR)/.stamp_configured
+$(2)_TARGET_AUTORECONF = $$($(2)_DIR)/.stamp_autoconfigured
+$(2)_TARGET_PATCH = $$($(2)_DIR)/.stamp_patched
+$(2)_TARGET_EXTRACT = $$($(2)_DIR)/.stamp_extracted
+$(2)_TARGET_SOURCE = $$($(2)_DIR)/.stamp_downloaded
+$(2)_TARGET_UNINSTALL = $$($(2)_DIR)/.stamp_uninstalled
+$(2)_TARGET_CLEAN = $$($(2)_DIR)/.stamp_cleaned
+$(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned
+
+$(2)_HOOK_POST_BUILD = $$($(2)_DIR)/.stamp_hook_post_build
+$(2)_HOOK_POST_INSTALL = $$($(2)_DIR)/.stamp_hook_post_install
+
+# human-friendly targets and target sequencing
+$(1): $(1)-install
+$(1)-install: $(1)-install-staging $(1)-install-target \
+ $$($(2)_HOOK_POST_INSTALL)
+
+ifeq ($$($(2)_INSTALL_TARGET),YES)
+$(1)-install-target: $(1)-build $$($(2)_TARGET_INSTALL_TARGET)
+else
+$(1)-install-target:
+endif
+
+ifeq ($$($(2)_INSTALL_STAGING),YES)
+$(1)-install-staging: $(1)-build $$($(2)_TARGET_INSTALL_STAGING)
+else
+$(1)-install-staging:
+endif
+
+$(1)-build: $(1)-configure \
+ $$($(2)_TARGET_BUILD) \
+ $$($(2)_HOOK_POST_BUILD)
+
+$(1)-configure: $(1)-autoreconf $$($(2)_TARGET_CONFIGURE)
+
+ifeq ($$($(2)_AUTORECONF),YES)
+$(1)-autoreconf: $(1)-patch $$($(2)_TARGET_AUTORECONF)
+$(2)_DEPENDENCIES += host-automake host-autoconf host-libtool
+else
+$(1)-autoreconf: $(1)-patch
+endif
+
+$(1)-patch: $(1)-extract $$($(2)_TARGET_PATCH)
+
+$(1)-extract: $(1)-depends $$($(2)_TARGET_EXTRACT)
+
+$(1)-depends: $(1)-source $$($(2)_DEPENDENCIES)
+
+$(1)-source: $$($(2)_TARGET_SOURCE)
+
+# non-build targets
+$(1)-uninstall: $(1)-configure $$($(2)_TARGET_UNINSTALL)
+
+$(1)-clean: $$($(2)_TARGET_CLEAN)
+
+$(1)-dirclean: $$($(2)_TARGET_DIRCLEAN)
+
+# define the PKG variable for all targets, containing the
+# uppercase package variable prefix
+$$($(2)_TARGET_INSTALL_TARGET): PKG=$(2)
+$$($(2)_TARGET_INSTALL_STAGING): PKG=$(2)
+$$($(2)_TARGET_BUILD): PKG=$(2)
+$$($(2)_TARGET_CONFIGURE): PKG=$(2)
+$$($(2)_TARGET_AUTORECONF): PKG=$(2)
+$$($(2)_TARGET_PATCH): PKG=$(2)
+$$($(2)_TARGET_EXTRACT): PKG=$(2)
+$$($(2)_TARGET_SOURCE): PKG=$(2)
+$$($(2)_TARGET_UNINSTALL): PKG=$(2)
+$$($(2)_TARGET_CLEAN): PKG=$(2)
+$$($(2)_TARGET_DIRCLEAN): PKG=$(2)
+$$($(2)_HOOK_POST_BUILD): PKG=$(2)
+$$($(2)_HOOK_POST_INSTALL): PKG=$(2)
+
+# define hook targets
+# default hook behaviour: do nothing
+$$($(2)_HOOK_POST_BUILD):
+$$($(2)_HOOK_POST_INSTALL):
+
+# add package to the general list of targets if requested by the buildroot
+# configuration
+ifeq ($$(BR2_PACKAGE_$(2)),y)
+TARGETS += $(1)
+endif
+endef
+
+# :mode=makefile:
diff --git a/cleopatre/buildroot/package/Makefile.in b/cleopatre/buildroot/package/Makefile.in
new file mode 100644
index 0000000000..86df3f2e64
--- /dev/null
+++ b/cleopatre/buildroot/package/Makefile.in
@@ -0,0 +1,357 @@
+ifndef MAKE
+MAKE:=make
+endif
+ifndef HOSTMAKE
+HOSTMAKE=$(MAKE)
+endif
+HOSTMAKE :=$(shell $(CONFIG_SHELL) -c "which $(HOSTMAKE)" || type -p $(HOSTMAKE) || echo make)
+
+MAKE1:=$(HOSTMAKE) -j1
+MAKE:=$(HOSTMAKE) -j$(BR2_JLEVEL)
+
+ifeq ($(BR2_OPTIMIZE_0),y)
+TARGET_OPTIMIZATION=-O0
+endif
+ifeq ($(BR2_OPTIMIZE_1),y)
+TARGET_OPTIMIZATION=-O1
+endif
+ifeq ($(BR2_OPTIMIZE_2),y)
+TARGET_OPTIMIZATION=-O2
+endif
+ifeq ($(BR2_OPTIMIZE_3),y)
+TARGET_OPTIMIZATION=-O3
+endif
+ifeq ($(BR2_OPTIMIZE_S),y)
+TARGET_OPTIMIZATION=-Os
+endif
+ifeq ($(BR2_DEBUG_1),y)
+TARGET_DEBUGGING=-g1
+endif
+ifeq ($(BR2_DEBUG_2),y)
+TARGET_DEBUGGING=-g2
+endif
+ifeq ($(BR2_DEBUG_3),y)
+TARGET_DEBUGGING=-g3
+endif
+
+
+#########################################################################
+ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
+TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) \
+ -I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include
+TARGET_LDFLAGS+=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
+ifeq ($(BR2_TOOLCHAIN_SYSROOT),y)
+TARGET_CFLAGS+= $(BR2_SYSROOT) $(BR2_ISYSROOT)
+TARGET_LDFLAGS+= $(BR2_SYSROOT)
+endif
+
+CC_TARGET_TUNE_:=$(strip $(subst ",,$(BR2_GCC_TARGET_TUNE)))
+#"))
+CC_TARGET_ARCH_:=$(strip $(subst ",,$(BR2_GCC_TARGET_ARCH)))
+#"))
+CC_TARGET_ABI_:=$(strip $(subst ",,$(BR2_GCC_TARGET_ABI)))
+#"))
+ifneq ($(CC_TARGET_TUNE_),)
+TARGET_CFLAGS+=-mtune=$(CC_TARGET_TUNE_)
+endif
+ifneq ($(CC_TARGET_ARCH_),)
+TARGET_CFLAGS+=-march=$(CC_TARGET_ARCH_)
+endif
+ifneq ($(CC_TARGET_ABI_),)
+TARGET_CFLAGS+=-mabi=$(CC_TARGET_ABI_)
+endif
+
+ifneq ($(BR2_PREFER_STATIC_LIB),y)
+ifeq ($(BR2_x86_64),y)
+TARGET_CFLAGS+=-fPIC -DPIC
+endif # PIC for dynamic objects on x86_64
+endif
+
+ifeq ($(BR2_SOFT_FLOAT),y)
+TARGET_CFLAGS+=-msoft-float
+endif
+
+# enable VIS for v9a and v9b
+ifeq ($(findstring y,$(BR2_sparc_v9a)$(BR2_sparc64_v9a)$(BR2_sparc_v9b)$(BR2_sparc64_v9b)),y)
+TARGET_CFLAGS+=-mvis
+endif
+
+ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy)
+TARGET_CFLAGS+=-fno-pic -mno-abicalls
+endif
+
+TARGET_CXXFLAGS=$(TARGET_CFLAGS)
+
+# else it's an external toolchain
+#########################################################################
+else
+TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include
+TARGET_CXXFLAGS=$(TARGET_CFLAGS)
+TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
+endif
+#########################################################################
+#ifeq ($(BR2_ROOTFS_SUFFIX),)
+ROOTFS_SUFFIX:=$(strip $(subst ",, $(BR2_ROOTFS_SUFFIX)))
+ifeq ($(ROOTFS_SUFFIX),)
+ROOTFS_SUFFIX:=
+else
+XXXX=xxxx
+ROOTFS_SUFFIX:=-$(BR2_ROOTFS_SUFFIX)
+endif
+
+ifeq ($(strip $(subst ",, $(BR2_FPU_SUFFIX))),y)
+COND_ARCH_FPU_SUFFIX:=$(ARCH_FPU_SUFFIX)
+else
+COND_ARCH_FPU_SUFFIX:=
+endif
+
+ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
+TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
+
+# Quotes are needed for spaces et al in path components.
+TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
+IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
+GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
+REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
+TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
+KERNEL_CROSS=$(TARGET_CROSS)
+else
+TOOLCHAIN_EXTERNAL_PREFIX:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
+#"))
+TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
+#"))
+#TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
+TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
+#IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX)
+IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
+
+REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
+GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
+KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
+TARGET_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
+endif
+TARGET_AR=$(TARGET_CROSS)ar
+TARGET_AS=$(TARGET_CROSS)as
+TARGET_CC=$(TARGET_CROSS)gcc
+TARGET_CPP=$(TARGET_CROSS)cpp
+TARGET_CXX=$(TARGET_CROSS)g++
+ifeq ($(BR2_GCC_VERSION_3_4_6),y)
+TARGET_FC=$(TARGET_CROSS)g77
+else
+TARGET_FC=$(TARGET_CROSS)gfortran
+endif
+TARGET_LD=$(TARGET_CROSS)ld
+TARGET_NM=$(TARGET_CROSS)nm
+TARGET_RANLIB=$(TARGET_CROSS)ranlib
+TARGET_OBJCOPY=$(TARGET_CROSS)objcopy
+TARGET_OBJDUMP=$(TARGET_CROSS)objdump
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+TARGET_LDCONFIG=/sbin/ldconfig
+else
+TARGET_LDCONFIG=$(TARGET_CROSS)ldconfig
+endif
+ifeq ($(BR2_STRIP_strip),y)
+STRIP_DISCARD_ALL:=--discard-all
+STRIP_STRIP_UNNEEDED:=--strip-unneeded
+STRIP_STRIP_ALL:=--strip-all
+REMOVE_SECTION_COMMENT:=--remove-section=.comment
+REMOVE_SECTION_NOTE:=--remove-section=.note
+TARGET_STRIP=$(TARGET_CROSS)strip
+STRIPCMD=$(TARGET_CROSS)strip $(REMOVE_SECTION_COMMENT) $(REMOVE_SECTION_NOTE)
+endif
+ifeq ($(BR2_STRIP_sstrip),y)
+STRIP_DISCARD_ALL:=
+STRIP_STRIP_UNNEEDED:=
+STRIP_STRIP_ALL:=
+REMOVE_SECTION_COMMENT:=
+REMOVE_SECTION_NOTE:=
+TARGET_STRIP=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip
+STRIPCMD=$(TARGET_STRIP)
+endif
+ifeq ($(BR2_STRIP_none),y)
+TARGET_STRIP=true -Not_stripping
+STRIPCMD=$(TARGET_STRIP)
+endif
+INSTALL=/usr/bin/install
+
+HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
+ -e 's/sparc.*/sparc/' \
+ -e 's/arm.*/arm/g' \
+ -e 's/m68k.*/m68k/' \
+ -e 's/ppc/powerpc/g' \
+ -e 's/v850.*/v850/g' \
+ -e 's/sh[234]/sh/' \
+ -e 's/mips-.*/mips/' \
+ -e 's/mipsel-.*/mipsel/' \
+ -e 's/cris.*/cris/' \
+ -e 's/i[3-9]86/i386/' \
+ )
+GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
+#")
+TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
+ AR="$(TARGET_AR)" \
+ AS="$(TARGET_AS)" \
+ LD="$(TARGET_LD) $(TARGET_LDFLAGS)" \
+ NM="$(TARGET_NM)" \
+ CC="$(TARGET_CC) $(TARGET_CFLAGS)" \
+ GCC="$(TARGET_CC) $(TARGET_CFLAGS)" \
+ CPP="$(TARGET_CPP) $(TARGET_CFLAGS)" \
+ CXX="$(TARGET_CXX) $(TARGET_CXXFLAGS)" \
+ FC="$(TARGET_FC) $(TARGET_FCFLAGS)" \
+ RANLIB="$(TARGET_RANLIB)" \
+ STRIP="$(TARGET_STRIP)" \
+ OBJCOPY="$(TARGET_OBJCOPY)" \
+ AR_FOR_BUILD="$(HOSTAR)" \
+ AS_FOR_BUILD="$(HOSTAS)" \
+ CC_FOR_BUILD="$(HOSTCC)" \
+ GCC_FOR_BUILD="$(HOSTCC)" \
+ CXX_FOR_BUILD="$(HOSTCXX)" \
+ FC_FOR_BUILD="$(HOSTFC)" \
+ LD_FOR_BUILD="$(HOSTLD)" \
+ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
+ CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \
+ LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
+ FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \
+ AR_FOR_TARGET="$(TARGET_AR)" \
+ AS_FOR_TARGET="$(TARGET_AS)" \
+ CC_FOR_TARGET="$(TARGET_CC)" \
+ LD_FOR_TARGET="$(TARGET_LD)" \
+ NM_FOR_TARGET="$(TARGET_NM)" \
+ DEFAULT_ASSEMBLER="$(TARGET_AS)" \
+ DEFAULT_LINKER="$(TARGET_LD)" \
+ PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
+ PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config" \
+ PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
+ STAGING_DIR="$(STAGING_DIR)"
+
+HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
+ AR="$(HOSTAR)" \
+ AS="$(HOSTAS)" \
+ LD="$(HOSTLD) $(HOST_LDFLAGS)" \
+ NM="$(HOSTNM)" \
+ CC="$(HOSTCC) $(HOST_CFLAGS)" \
+ GCC="$(HOSTCC) $(HOST_CFLAGS)" \
+ CXX="$(HOSTCXX) $(HOST_CXXFLAGS)" \
+ CPP="$(HOSTCPP) $(HOST_CFLAGS)" \
+ AR_FOR_BUILD="$(HOSTAR)" \
+ AS_FOR_BUILD="$(HOSTAS)" \
+ CC_FOR_BUILD="$(HOSTCC)" \
+ GCC_FOR_BUILD="$(HOSTCC)" \
+ CXX_FOR_BUILD="$(HOSTCXX)" \
+ LD_FOR_BUILD="$(HOSTLD)" \
+ FC_FOR_BUILD="$(HOSTFC)" \
+ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
+ CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \
+ LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
+ FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \
+ AR_FOR_TARGET="$(TARGET_AR)" \
+ AS_FOR_TARGET="$(TARGET_AS)" \
+ CC_FOR_TARGET="$(TARGET_CC)" \
+ LD_FOR_TARGET="$(TARGET_LD)" \
+ NM_FOR_TARGET="$(TARGET_NM)" \
+ RANLIB_FOR_TARGET="$(TARGET_RANLIB)" \
+ STRIP_FOR_TARGET="$(TARGET_STRIP)" \
+ OBJCOPY_FOR_TARGET="$(TARGET_OBJCOPY)" \
+ OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \
+ DEFAULT_ASSEMBLER="$(TARGET_AS)" \
+ DEFAULT_LINKER="$(TARGET_LD)" \
+ ORIGINAL_AS_FOR_TARGET="$(TARGET_AS)" \
+ ORIGINAL_LD_FOR_TARGET="$(TARGET_LD)" \
+ ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \
+ ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)"
+
+#######################################################################
+# settings we need to pass to configure
+
+# does unaligned access trap?
+BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=yes
+ifeq ($(BR2_i386),y)
+BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
+endif
+ifeq ($(BR2_x86_64),y)
+BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
+endif
+ifeq ($(BR2_m68k),y)
+BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
+endif
+ifeq ($(BR2_s390),y)
+BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
+endif
+ifeq ($(BR2_powerpc)$(BR2_ENDIAN),yBIG)
+BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
+endif
+
+ifeq ($(BR2_ENDIAN),"BIG")
+BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=yes
+else
+BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=no
+endif
+
+# XXX: FIXME: We would need to grab MALLOC_GLIBC_COMPAT from the uClibc.config
+# Including it doesn't seem wise, grepping is ugly.. Suggestions?
+# Does malloc return live pointer for malloc(0) ?
+ifeq ($(MALLOC_GLIBC_COMPAT),y)
+BR2_AC_CV_FUNC_MALLOC_0_NONNULL=ac_cv_func_malloc_0_nonnull=yes \
+ gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes
+else
+BR2_AC_CV_FUNC_MALLOC_0_NONNULL=ac_cv_func_malloc_0_nonnull=no \
+ gl_cv_func_malloc_0_nonnull=no \
+ ac_cv_func_realloc_0_nonnull=no
+endif
+
+
+TARGET_CONFIGURE_ARGS= \
+ $(BR2_AC_CV_TRAP_CHECK) \
+ ac_cv_func_mmap_fixed_mapped=yes \
+ ac_cv_func_memcmp_working=yes \
+ $(BR2_AC_CV_C_BIGENDIAN)
+
+#######################################################################
+
+ifeq ($(BR2_ENABLE_LOCALE),y)
+DISABLE_NLS:=
+else
+DISABLE_NLS:=--disable-nls
+endif
+
+ifneq ($(BR2_LARGEFILE),y)
+DISABLE_LARGEFILE= --disable-largefile
+endif
+
+ifneq ($(BR2_INET_IPV6),y)
+DISABLE_IPV6= --disable-ipv6
+endif
+
+ifneq ($(BR2_GCC_CROSS_CXX),y)
+TARGET_CONFIGURE_OPTS+=CXX=""
+endif
+
+ifeq ($(BR2_ENABLE_DEBUG),y)
+ENABLE_DEBUG:=--enable-debug
+else
+ENABLE_DEBUG:=
+endif
+
+
+# X Windowing system
+
+XSERVER:=
+ifeq ($(strip $(BR2_PACKAGE_TINYX)),y)
+XSERVER+=tinyx
+endif
+ifeq ($(strip $(BR2_PACKAGE_XORG)),y)
+XSERVER+=xorg
+endif
+ifeq ($(strip $(BR2_PACKAGE_XORG7)),y)
+XSERVER+=xserver_xorg-server
+endif
+ifeq ($(strip $(BR2_PACKAGE_XGGI)),y)
+XSERVER+=xggi
+endif
+
+X11_PREFIX:=$(strip $(subst ",, $(BR2_X11_PREFIX)))
+#"))
+
+include package/Makefile.autotools.in
diff --git a/cleopatre/buildroot/package/ace_of_penguins/Config.in b/cleopatre/buildroot/package/ace_of_penguins/Config.in
new file mode 100644
index 0000000000..3e1a9db2fb
--- /dev/null
+++ b/cleopatre/buildroot/package/ace_of_penguins/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_ACE_OF_PENGUINS
+ bool "ace_of_penguins"
+ select BR2_PACKAGE_LIBPNG
+ depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
+ help
+ The Ace of Penguins is a set of Unix/X solitaire games based
+ on the ones available for Windows but with a number of
+ enhancements.
+
+ http://www.delorie.com/store/ace/
+
diff --git a/cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins-1.2-update.patch b/cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins-1.2-update.patch
new file mode 100644
index 0000000000..180863f5e6
--- /dev/null
+++ b/cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins-1.2-update.patch
@@ -0,0 +1,10493 @@
+diff -rup ace-1.2-orig/games/golf.c ace-1.2/games/golf.c
+--- ace-1.2-orig/games/golf.c 2001-04-15 02:26:57.000000000 -0400
++++ ace-1.2/games/golf.c 2008-02-07 12:23:56.000000000 -0500
+@@ -31,7 +31,7 @@ Picture *arrow, *no_arrow;
+
+ Stack *deck, *discard, *stacks[7];
+
+-static int table_width, table_height;
++int table_width, table_height;
+
+ int supress_arrows = 0;
+
+diff -rup ace-1.2-orig/games/solitaire.c ace-1.2/games/solitaire.c
+--- ace-1.2-orig/games/solitaire.c 2001-05-05 22:57:49.000000000 -0400
++++ ace-1.2/games/solitaire.c 2008-02-07 12:25:12.000000000 -0500
+@@ -337,7 +337,7 @@ auto_move()
+ return something_moved;
+ }
+
+-static void
++void
+ check_for_end_of_game()
+ {
+ while (auto_move());
+Only in ace-1.2: libtool
+diff -rup ace-1.2-orig/ltconfig ace-1.2/ltconfig
+--- ace-1.2-orig/ltconfig 2001-04-07 23:19:19.000000000 -0400
++++ ace-1.2/ltconfig 2007-06-11 04:53:14.000000000 -0400
+@@ -1,3078 +0,0 @@
+-#! /bin/sh
+-
+-# ltconfig - Create a system-specific libtool.
+-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-#
+-# This file is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful, but
+-# WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-# General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-#
+-# As a special exception to the GNU General Public License, if you
+-# distribute this file as part of a program that contains a
+-# configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# A lot of this script is taken from autoconf-2.10.
+-
+-# Check that we are running under the correct shell.
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-echo=echo
+-if test "X$1" = X--no-reexec; then
+- # Discard the --no-reexec flag, and continue.
+- shift
+-elif test "X$1" = X--fallback-echo; then
+- # Avoid inline document here, it may be left over
+- :
+-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+- # Yippee, $echo works!
+- :
+-else
+- # Restart under the correct shell.
+- exec "$SHELL" "$0" --no-reexec ${1+"$@"}
+-fi
+-
+-if test "X$1" = X--fallback-echo; then
+- # used as fallback echo
+- shift
+- cat <<EOF
+-$*
+-EOF
+- exit 0
+-fi
+-
+-# Find the correct PATH separator. Usually this is `:', but
+-# DJGPP uses `;' like DOS.
+-if test "X${PATH_SEPARATOR+set}" != Xset; then
+- UNAME=${UNAME-`uname 2>/dev/null`}
+- case X$UNAME in
+- *-DOS) PATH_SEPARATOR=';' ;;
+- *) PATH_SEPARATOR=':' ;;
+- esac
+-fi
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-if test "X${echo_test_string+set}" != Xset; then
+- # find a string as large as possible, as long as the shell can cope with it
+- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+- if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+- echo_test_string="`eval $cmd`" &&
+- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
+- break
+- fi
+- done
+-fi
+-
+-if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
+- test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
+- # The Solaris, AIX, and Digital Unix default echo programs unquote
+- # backslashes. This makes it impossible to quote backslashes using
+- # echo "$something" | sed 's/\\/\\\\/g'
+- #
+- # So, first we look for a working echo in the user's PATH.
+-
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+- for dir in $PATH /usr/ucb; do
+- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+- test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+- echo="$dir/echo"
+- break
+- fi
+- done
+- IFS="$save_ifs"
+-
+- if test "X$echo" = Xecho; then
+- # We didn't find a better echo, so look for alternatives.
+- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+- test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+- # This shell has a builtin print -r that does the trick.
+- echo='print -r'
+- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+- test "X$CONFIG_SHELL" != X/bin/ksh; then
+- # If we have ksh, try running ltconfig again with it.
+- ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
+- export ORIGINAL_CONFIG_SHELL
+- CONFIG_SHELL=/bin/ksh
+- export CONFIG_SHELL
+- exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
+- else
+- # Try using printf.
+- echo='printf "%s\n"'
+- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+- test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+- # Cool, printf works
+- :
+- elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+- test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+- CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
+- export CONFIG_SHELL
+- SHELL="$CONFIG_SHELL"
+- export SHELL
+- echo="$CONFIG_SHELL $0 --fallback-echo"
+- elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+- test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+- echo="$CONFIG_SHELL $0 --fallback-echo"
+- else
+- # maybe with a smaller string...
+- prev=:
+-
+- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
+- break
+- fi
+- prev="$cmd"
+- done
+-
+- if test "$prev" != 'sed 50q "$0"'; then
+- echo_test_string=`eval $prev`
+- export echo_test_string
+- exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
+- else
+- # Oops. We lost completely, so just stick with echo.
+- echo=echo
+- fi
+- fi
+- fi
+- fi
+-fi
+-
+-# Sed substitution that helps us do robust quoting. It backslashifies
+-# metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e s/^X//'
+-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+-
+-# Same as above, but do not quote variable references.
+-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+-
+-# Sed substitution to delay expansion of an escaped shell variable in a
+-# double_quote_subst'ed string.
+-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+-
+-# The name of this program.
+-progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
+-
+-# Constants:
+-PROGRAM=ltconfig
+-PACKAGE=libtool
+-VERSION=1.3.4
+-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-rm="rm -f"
+-
+-help="Try \`$progname --help' for more information."
+-
+-# Global variables:
+-default_ofile=libtool
+-can_build_shared=yes
+-enable_shared=yes
+-# All known linkers require a `.a' archive for static linking (except M$VC,
+-# which needs '.lib').
+-enable_static=yes
+-enable_fast_install=yes
+-enable_dlopen=unknown
+-enable_win32_dll=no
+-ltmain=
+-silent=
+-srcdir=
+-ac_config_guess=
+-ac_config_sub=
+-host=
+-nonopt=
+-ofile="$default_ofile"
+-verify_host=yes
+-with_gcc=no
+-with_gnu_ld=no
+-need_locks=yes
+-ac_ext=c
+-objext=o
+-libext=a
+-exeext=
+-cache_file=
+-
+-old_AR="$AR"
+-old_CC="$CC"
+-old_CFLAGS="$CFLAGS"
+-old_CPPFLAGS="$CPPFLAGS"
+-old_LDFLAGS="$LDFLAGS"
+-old_LD="$LD"
+-old_LN_S="$LN_S"
+-old_LIBS="$LIBS"
+-old_NM="$NM"
+-old_RANLIB="$RANLIB"
+-old_DLLTOOL="$DLLTOOL"
+-old_OBJDUMP="$OBJDUMP"
+-old_AS="$AS"
+-
+-# Parse the command line options.
+-args=
+-prev=
+-for option
+-do
+- case "$option" in
+- -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+- *) optarg= ;;
+- esac
+-
+- # If the previous option needs an argument, assign it.
+- if test -n "$prev"; then
+- eval "$prev=\$option"
+- prev=
+- continue
+- fi
+-
+- case "$option" in
+- --help) cat <<EOM
+-Usage: $progname [OPTION]... [HOST [LTMAIN]]
+-
+-Generate a system-specific libtool script.
+-
+- --debug enable verbose shell tracing
+- --disable-shared do not build shared libraries
+- --disable-static do not build static libraries
+- --disable-fast-install do not optimize for fast installation
+- --enable-dlopen enable dlopen support
+- --enable-win32-dll enable building dlls on win32 hosts
+- --help display this help and exit
+- --no-verify do not verify that HOST is a valid host type
+--o, --output=FILE specify the output file [default=$default_ofile]
+- --quiet same as \`--silent'
+- --silent do not print informational messages
+- --srcdir=DIR find \`config.guess' in DIR
+- --version output version information and exit
+- --with-gcc assume that the GNU C compiler will be used
+- --with-gnu-ld assume that the C compiler uses the GNU linker
+- --disable-lock disable file locking
+- --cache-file=FILE configure cache file
+-
+-LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
+-that provides basic libtool functionality.
+-
+-HOST is the canonical host system name [default=guessed].
+-EOM
+- exit 0
+- ;;
+-
+- --debug)
+- echo "$progname: enabling shell trace mode"
+- set -x
+- ;;
+-
+- --disable-shared) enable_shared=no ;;
+-
+- --disable-static) enable_static=no ;;
+-
+- --disable-fast-install) enable_fast_install=no ;;
+-
+- --enable-dlopen) enable_dlopen=yes ;;
+-
+- --enable-win32-dll) enable_win32_dll=yes ;;
+-
+- --quiet | --silent) silent=yes ;;
+-
+- --srcdir) prev=srcdir ;;
+- --srcdir=*) srcdir="$optarg" ;;
+-
+- --no-verify) verify_host=no ;;
+-
+- --output | -o) prev=ofile ;;
+- --output=*) ofile="$optarg" ;;
+-
+- --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
+-
+- --with-gcc) with_gcc=yes ;;
+- --with-gnu-ld) with_gnu_ld=yes ;;
+-
+- --disable-lock) need_locks=no ;;
+-
+- --cache-file=*) cache_file="$optarg" ;;
+-
+- -*)
+- echo "$progname: unrecognized option \`$option'" 1>&2
+- echo "$help" 1>&2
+- exit 1
+- ;;
+-
+- *)
+- if test -z "$ltmain"; then
+- ltmain="$option"
+- elif test -z "$host"; then
+-# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
+-# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
+-# echo "$progname: warning \`$option' is not a valid host type" 1>&2
+-# fi
+- host="$option"
+- else
+- echo "$progname: too many arguments" 1>&2
+- echo "$help" 1>&2
+- exit 1
+- fi ;;
+- esac
+-done
+-
+-if test -z "$ltmain"; then
+- echo "$progname: you must specify a LTMAIN file" 1>&2
+- echo "$help" 1>&2
+- exit 1
+-fi
+-
+-if test ! -f "$ltmain"; then
+- echo "$progname: \`$ltmain' does not exist" 1>&2
+- echo "$help" 1>&2
+- exit 1
+-fi
+-
+-# Quote any args containing shell metacharacters.
+-ltconfig_args=
+-for arg
+-do
+- case "$arg" in
+- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+- ltconfig_args="$ltconfig_args '$arg'" ;;
+- *) ltconfig_args="$ltconfig_args $arg" ;;
+- esac
+-done
+-
+-# A relevant subset of AC_INIT.
+-
+-# File descriptor usage:
+-# 0 standard input
+-# 1 file creation
+-# 2 errors and warnings
+-# 3 some systems may open it to /dev/tty
+-# 4 used on the Kubota Titan
+-# 5 compiler messages saved in config.log
+-# 6 checking for... messages and results
+-if test "$silent" = yes; then
+- exec 6>/dev/null
+-else
+- exec 6>&1
+-fi
+-exec 5>>./config.log
+-
+-# NLS nuisances.
+-# Only set LANG and LC_ALL to C if already set.
+-# These must not be set unconditionally because not all systems understand
+-# e.g. LANG=C (notably SCO).
+-if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
+-if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi
+-
+-if test -n "$cache_file" && test -r "$cache_file"; then
+- echo "loading cache $cache_file within ltconfig"
+- . $cache_file
+-fi
+-
+-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+- ac_n= ac_c='
+-' ac_t=' '
+- else
+- ac_n=-n ac_c= ac_t=
+- fi
+-else
+- ac_n= ac_c='\c' ac_t=
+-fi
+-
+-if test -z "$srcdir"; then
+- # Assume the source directory is the same one as the path to LTMAIN.
+- srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
+- test "$srcdir" = "$ltmain" && srcdir=.
+-fi
+-
+-trap "$rm conftest*; exit 1" 1 2 15
+-if test "$verify_host" = yes; then
+- # Check for config.guess and config.sub.
+- ac_aux_dir=
+- for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+- if test -f $ac_dir/config.guess; then
+- ac_aux_dir=$ac_dir
+- break
+- fi
+- done
+- if test -z "$ac_aux_dir"; then
+- echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
+- echo "$help" 1>&2
+- exit 1
+- fi
+- ac_config_guess=$ac_aux_dir/config.guess
+- ac_config_sub=$ac_aux_dir/config.sub
+-
+- # Make sure we can run config.sub.
+- if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
+- else
+- echo "$progname: cannot run $ac_config_sub" 1>&2
+- echo "$help" 1>&2
+- exit 1
+- fi
+-
+- echo $ac_n "checking host system type""... $ac_c" 1>&6
+-
+- host_alias=$host
+- case "$host_alias" in
+- "")
+- if host_alias=`$SHELL $ac_config_guess`; then :
+- else
+- echo "$progname: cannot guess host type; you must specify one" 1>&2
+- echo "$help" 1>&2
+- exit 1
+- fi ;;
+- esac
+- host=`$SHELL $ac_config_sub $host_alias`
+- echo "$ac_t$host" 1>&6
+-
+- # Make sure the host verified.
+- test -z "$host" && exit 1
+-
+-elif test -z "$host"; then
+- echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
+- echo "$help" 1>&2
+- exit 1
+-else
+- host_alias=$host
+-fi
+-
+-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+-case "$host_os" in
+-linux-gnu*) ;;
+-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+-esac
+-
+-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-
+-case "$host_os" in
+-aix3*)
+- # AIX sometimes has problems with the GCC collect2 program. For some
+- # reason, if we set the COLLECT_NAMES environment variable, the problems
+- # vanish in a puff of smoke.
+- if test "X${COLLECT_NAMES+set}" != Xset; then
+- COLLECT_NAMES=
+- export COLLECT_NAMES
+- fi
+- ;;
+-esac
+-
+-# Determine commands to create old-style static archives.
+-old_archive_cmds='$AR cru $oldlib$oldobjs'
+-old_postinstall_cmds='chmod 644 $oldlib'
+-old_postuninstall_cmds=
+-
+-# Set a sane default for `AR'.
+-test -z "$AR" && AR=ar
+-
+-# Set a sane default for `OBJDUMP'.
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-
+-# If RANLIB is not set, then run the test.
+-if test "${RANLIB+set}" != "set"; then
+- result=no
+-
+- echo $ac_n "checking for ranlib... $ac_c" 1>&6
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+- for dir in $PATH; do
+- test -z "$dir" && dir=.
+- if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
+- RANLIB="ranlib"
+- result="ranlib"
+- break
+- fi
+- done
+- IFS="$save_ifs"
+-
+- echo "$ac_t$result" 1>&6
+-fi
+-
+-if test -n "$RANLIB"; then
+- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+-fi
+-
+-# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
+-test -z "$DLLTOOL" && DLLTOOL=dlltool
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-test -z "$AS" && AS=as
+-
+-# Check to see if we are using GCC.
+-if test "$with_gcc" != yes || test -z "$CC"; then
+- # If CC is not set, then try to find GCC or a usable CC.
+- if test -z "$CC"; then
+- echo $ac_n "checking for gcc... $ac_c" 1>&6
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+- for dir in $PATH; do
+- test -z "$dir" && dir=.
+- if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
+- CC="gcc"
+- break
+- fi
+- done
+- IFS="$save_ifs"
+-
+- if test -n "$CC"; then
+- echo "$ac_t$CC" 1>&6
+- else
+- echo "$ac_t"no 1>&6
+- fi
+- fi
+-
+- # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
+- if test -z "$CC"; then
+- echo $ac_n "checking for cc... $ac_c" 1>&6
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+- cc_rejected=no
+- for dir in $PATH; do
+- test -z "$dir" && dir=.
+- if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
+- if test "$dir/cc" = "/usr/ucb/cc"; then
+- cc_rejected=yes
+- continue
+- fi
+- CC="cc"
+- break
+- fi
+- done
+- IFS="$save_ifs"
+- if test $cc_rejected = yes; then
+- # We found a bogon in the path, so make sure we never use it.
+- set dummy $CC
+- shift
+- if test $# -gt 0; then
+- # We chose a different compiler from the bogus one.
+- # However, it has the same name, so the bogon will be chosen
+- # first if we set CC to just the name; use the full file name.
+- shift
+- set dummy "$dir/cc" "$@"
+- shift
+- CC="$@"
+- fi
+- fi
+-
+- if test -n "$CC"; then
+- echo "$ac_t$CC" 1>&6
+- else
+- echo "$ac_t"no 1>&6
+- fi
+-
+- if test -z "$CC"; then
+- echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
+- exit 1
+- fi
+- fi
+-
+- # Now see if the compiler is really GCC.
+- with_gcc=no
+- echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
+- echo "$progname:581: checking whether we are using GNU C" >&5
+-
+- $rm conftest.c
+- cat > conftest.c <<EOF
+-#ifdef __GNUC__
+- yes;
+-#endif
+-EOF
+- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+- with_gcc=yes
+- fi
+- $rm conftest.c
+- echo "$ac_t$with_gcc" 1>&6
+-fi
+-
+-# Allow CC to be a program name with arguments.
+-set dummy $CC
+-compiler="$2"
+-
+-echo $ac_n "checking for object suffix... $ac_c" 1>&6
+-$rm conftest*
+-echo 'int i = 1;' > conftest.c
+-echo "$progname:603: checking for object suffix" >& 5
+-if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
+- # Append any warnings to the config.log.
+- cat conftest.err 1>&5
+-
+- for ac_file in conftest.*; do
+- case $ac_file in
+- *.c) ;;
+- *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
+- esac
+- done
+-else
+- cat conftest.err 1>&5
+- echo "$progname: failed program was:" >&5
+- cat conftest.c >&5
+-fi
+-$rm conftest*
+-echo "$ac_t$objext" 1>&6
+-
+-echo $ac_n "checking for executable suffix... $ac_c" 1>&6
+-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- ac_cv_exeext="no"
+- $rm conftest*
+- echo 'main () { return 0; }' > conftest.c
+- echo "$progname:629: checking for executable suffix" >& 5
+- if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
+- # Append any warnings to the config.log.
+- cat conftest.err 1>&5
+-
+- for ac_file in conftest.*; do
+- case $ac_file in
+- *.c | *.err | *.$objext ) ;;
+- *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
+- esac
+- done
+- else
+- cat conftest.err 1>&5
+- echo "$progname: failed program was:" >&5
+- cat conftest.c >&5
+- fi
+- $rm conftest*
+-fi
+-if test "X$ac_cv_exeext" = Xno; then
+- exeext=""
+-else
+- exeext="$ac_cv_exeext"
+-fi
+-echo "$ac_t$ac_cv_exeext" 1>&6
+-
+-echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
+-pic_flag=
+-special_shlib_compile_flags=
+-wl=
+-link_static_flag=
+-no_builtin_flag=
+-
+-if test "$with_gcc" = yes; then
+- wl='-Wl,'
+- link_static_flag='-static'
+-
+- case "$host_os" in
+- beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
+- # PIC is the default for these OSes.
+- ;;
+- aix*)
+- # Below there is a dirty hack to force normal static linking with -ldl
+- # The problem is because libdl dynamically linked with both libc and
+- # libC (AIX C++ library), which obviously doesn't included in libraries
+- # list by gcc. This cause undefined symbols with -static flags.
+- # This hack allows C programs to be linked with "-static -ldl", but
+- # we not sure about C++ programs.
+- link_static_flag="$link_static_flag ${wl}-lC"
+- ;;
+- cygwin* | mingw* | os2*)
+- # We can build DLLs from non-PIC.
+- ;;
+- amigaos*)
+- # FIXME: we need at least 68020 code to build shared libraries, but
+- # adding the `-m68020' flag to GCC prevents building anything better,
+- # like `-m68040'.
+- pic_flag='-m68020 -resident32 -malways-restore-a4'
+- ;;
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- pic_flag=-Kconform_pic
+- fi
+- ;;
+- *)
+- pic_flag='-fPIC'
+- ;;
+- esac
+-else
+- # PORTME Check for PIC flags for the system compiler.
+- case "$host_os" in
+- aix3* | aix4*)
+- # All AIX code is PIC.
+- link_static_flag='-bnso -bI:/lib/syscalls.exp'
+- ;;
+-
+- hpux9* | hpux10* | hpux11*)
+- # Is there a better link_static_flag that works with the bundled CC?
+- wl='-Wl,'
+- link_static_flag="${wl}-a ${wl}archive"
+- pic_flag='+Z'
+- ;;
+-
+- irix5* | irix6*)
+- wl='-Wl,'
+- link_static_flag='-non_shared'
+- # PIC (with -KPIC) is the default.
+- ;;
+-
+- cygwin* | mingw* | os2*)
+- # We can build DLLs from non-PIC.
+- ;;
+-
+- osf3* | osf4* | osf5*)
+- # All OSF/1 code is PIC.
+- wl='-Wl,'
+- link_static_flag='-non_shared'
+- ;;
+-
+- sco3.2v5*)
+- pic_flag='-Kpic'
+- link_static_flag='-dn'
+- special_shlib_compile_flags='-belf'
+- ;;
+-
+- solaris*)
+- pic_flag='-KPIC'
+- link_static_flag='-Bstatic'
+- wl='-Wl,'
+- ;;
+-
+- sunos4*)
+- pic_flag='-PIC'
+- link_static_flag='-Bstatic'
+- wl='-Qoption ld '
+- ;;
+-
+- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- pic_flag='-KPIC'
+- link_static_flag='-Bstatic'
+- wl='-Wl,'
+- ;;
+-
+- uts4*)
+- pic_flag='-pic'
+- link_static_flag='-Bstatic'
+- ;;
+- sysv4*MP*)
+- if test -d /usr/nec ;then
+- pic_flag='-Kconform_pic'
+- link_static_flag='-Bstatic'
+- fi
+- ;;
+- *)
+- can_build_shared=no
+- ;;
+- esac
+-fi
+-
+-if test -n "$pic_flag"; then
+- echo "$ac_t$pic_flag" 1>&6
+-
+- # Check to make sure the pic_flag actually works.
+- echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
+- $rm conftest*
+- echo "int some_variable = 0;" > conftest.c
+- save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS $pic_flag -DPIC"
+- echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
+- if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
+- # Append any warnings to the config.log.
+- cat conftest.err 1>&5
+-
+- case "$host_os" in
+- hpux9* | hpux10* | hpux11*)
+- # On HP-UX, both CC and GCC only warn that PIC is supported... then they
+- # create non-PIC objects. So, if there were any warnings, we assume that
+- # PIC is not supported.
+- if test -s conftest.err; then
+- echo "$ac_t"no 1>&6
+- can_build_shared=no
+- pic_flag=
+- else
+- echo "$ac_t"yes 1>&6
+- pic_flag=" $pic_flag"
+- fi
+- ;;
+- *)
+- echo "$ac_t"yes 1>&6
+- pic_flag=" $pic_flag"
+- ;;
+- esac
+- else
+- # Append any errors to the config.log.
+- cat conftest.err 1>&5
+- can_build_shared=no
+- pic_flag=
+- echo "$ac_t"no 1>&6
+- fi
+- CFLAGS="$save_CFLAGS"
+- $rm conftest*
+-else
+- echo "$ac_t"none 1>&6
+-fi
+-
+-# Check to see if options -o and -c are simultaneously supported by compiler
+-echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
+-$rm -r conftest 2>/dev/null
+-mkdir conftest
+-cd conftest
+-$rm conftest*
+-echo "int some_variable = 0;" > conftest.c
+-mkdir out
+-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+-# that will create temporary files in the current directory regardless of
+-# the output directory. Thus, making CWD read-only will cause this test
+-# to fail, enabling locking or at least warning the user not to do parallel
+-# builds.
+-chmod -w .
+-save_CFLAGS="$CFLAGS"
+-CFLAGS="$CFLAGS -o out/conftest2.o"
+-echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
+-if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
+-
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test -s out/conftest.err; then
+- echo "$ac_t"no 1>&6
+- compiler_c_o=no
+- else
+- echo "$ac_t"yes 1>&6
+- compiler_c_o=yes
+- fi
+-else
+- # Append any errors to the config.log.
+- cat out/conftest.err 1>&5
+- compiler_c_o=no
+- echo "$ac_t"no 1>&6
+-fi
+-CFLAGS="$save_CFLAGS"
+-chmod u+w .
+-$rm conftest* out/*
+-rmdir out
+-cd ..
+-rmdir conftest
+-$rm -r conftest 2>/dev/null
+-
+-if test x"$compiler_c_o" = x"yes"; then
+- # Check to see if we can write to a .lo
+- echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
+- $rm conftest*
+- echo "int some_variable = 0;" > conftest.c
+- save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -c -o conftest.lo"
+- echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
+-if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
+-
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test -s conftest.err; then
+- echo "$ac_t"no 1>&6
+- compiler_o_lo=no
+- else
+- echo "$ac_t"yes 1>&6
+- compiler_o_lo=yes
+- fi
+- else
+- # Append any errors to the config.log.
+- cat conftest.err 1>&5
+- compiler_o_lo=no
+- echo "$ac_t"no 1>&6
+- fi
+- CFLAGS="$save_CFLAGS"
+- $rm conftest*
+-else
+- compiler_o_lo=no
+-fi
+-
+-# Check to see if we can do hard links to lock some files if needed
+-hard_links="nottested"
+-if test "$compiler_c_o" = no && test "$need_locks" != no; then
+- # do not overwrite the value of need_locks provided by the user
+- echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
+- hard_links=yes
+- $rm conftest*
+- ln conftest.a conftest.b 2>/dev/null && hard_links=no
+- touch conftest.a
+- ln conftest.a conftest.b 2>&5 || hard_links=no
+- ln conftest.a conftest.b 2>/dev/null && hard_links=no
+- echo "$ac_t$hard_links" 1>&6
+- $rm conftest*
+- if test "$hard_links" = no; then
+- echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
+- need_locks=warn
+- fi
+-else
+- need_locks=no
+-fi
+-
+-if test "$with_gcc" = yes; then
+- # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+- echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
+- $rm conftest*
+- echo "int some_variable = 0;" > conftest.c
+- save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
+- echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+- if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+-
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test -s conftest.err; then
+- echo "$ac_t"no 1>&6
+- compiler_rtti_exceptions=no
+- else
+- echo "$ac_t"yes 1>&6
+- compiler_rtti_exceptions=yes
+- fi
+- else
+- # Append any errors to the config.log.
+- cat conftest.err 1>&5
+- compiler_rtti_exceptions=no
+- echo "$ac_t"no 1>&6
+- fi
+- CFLAGS="$save_CFLAGS"
+- $rm conftest*
+-
+- if test "$compiler_rtti_exceptions" = "yes"; then
+- no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+- else
+- no_builtin_flag=' -fno-builtin'
+- fi
+-
+-fi
+-
+-# Check for any special shared library compilation flags.
+-if test -n "$special_shlib_compile_flags"; then
+- echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
+- if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then :
+- else
+- echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
+- can_build_shared=no
+- fi
+-fi
+-
+-echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
+-$rm conftest*
+-echo 'main(){return(0);}' > conftest.c
+-save_LDFLAGS="$LDFLAGS"
+-LDFLAGS="$LDFLAGS $link_static_flag"
+-echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
+-if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+- echo "$ac_t$link_static_flag" 1>&6
+-else
+- echo "$ac_t"none 1>&6
+- link_static_flag=
+-fi
+-LDFLAGS="$save_LDFLAGS"
+-$rm conftest*
+-
+-if test -z "$LN_S"; then
+- # Check to see if we can use ln -s, or we need hard links.
+- echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
+- $rm conftest.dat
+- if ln -s X conftest.dat 2>/dev/null; then
+- $rm conftest.dat
+- LN_S="ln -s"
+- else
+- LN_S=ln
+- fi
+- if test "$LN_S" = "ln -s"; then
+- echo "$ac_t"yes 1>&6
+- else
+- echo "$ac_t"no 1>&6
+- fi
+-fi
+-
+-# Make sure LD is an absolute path.
+-if test -z "$LD"; then
+- ac_prog=ld
+- if test "$with_gcc" = yes; then
+- # Check if gcc -print-prog-name=ld gives a path.
+- echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
+- echo "$progname:991: checking for ld used by GCC" >&5
+- ac_prog=`($CC -print-prog-name=ld) 2>&5`
+- case "$ac_prog" in
+- # Accept absolute paths.
+- [\\/]* | [A-Za-z]:[\\/]*)
+- re_direlt='/[^/][^/]*/\.\./'
+- # Canonicalize the path of ld
+- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+- done
+- test -z "$LD" && LD="$ac_prog"
+- ;;
+- "")
+- # If it fails, then pretend we are not using GCC.
+- ac_prog=ld
+- ;;
+- *)
+- # If it is relative, then search for the first ld in PATH.
+- with_gnu_ld=unknown
+- ;;
+- esac
+- elif test "$with_gnu_ld" = yes; then
+- echo $ac_n "checking for GNU ld... $ac_c" 1>&6
+- echo "$progname:1015: checking for GNU ld" >&5
+- else
+- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+- echo "$progname:1018: checking for non-GNU ld" >&5
+- fi
+-
+- if test -z "$LD"; then
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+- for ac_dir in $PATH; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+- LD="$ac_dir/$ac_prog"
+- # Check to see if the program is GNU ld. I'd rather use --version,
+- # but apparently some GNU ld's only accept -v.
+- # Break only if it was the GNU/non-GNU ld that we prefer.
+- if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+- test "$with_gnu_ld" != no && break
+- else
+- test "$with_gnu_ld" != yes && break
+- fi
+- fi
+- done
+- IFS="$ac_save_ifs"
+- fi
+-
+- if test -n "$LD"; then
+- echo "$ac_t$LD" 1>&6
+- else
+- echo "$ac_t"no 1>&6
+- fi
+-
+- if test -z "$LD"; then
+- echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
+- exit 1
+- fi
+-fi
+-
+-# Check to see if it really is or is not GNU ld.
+-echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
+-# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+- with_gnu_ld=yes
+-else
+- with_gnu_ld=no
+-fi
+-echo "$ac_t$with_gnu_ld" 1>&6
+-
+-# See if the linker supports building shared libraries.
+-echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
+-
+-allow_undefined_flag=
+-no_undefined_flag=
+-need_lib_prefix=unknown
+-need_version=unknown
+-# when you set need_version to no, make sure it does not cause -set_version
+-# flags to be left without arguments
+-archive_cmds=
+-archive_expsym_cmds=
+-old_archive_from_new_cmds=
+-export_dynamic_flag_spec=
+-whole_archive_flag_spec=
+-thread_safe_flag_spec=
+-hardcode_libdir_flag_spec=
+-hardcode_libdir_separator=
+-hardcode_direct=no
+-hardcode_minus_L=no
+-hardcode_shlibpath_var=unsupported
+-runpath_var=
+-always_export_symbols=no
+-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+-# include_expsyms should be a list of space-separated symbols to be *always*
+-# included in the symbol list
+-include_expsyms=
+-# exclude_expsyms can be an egrep regular expression of symbols to exclude
+-# it will be wrapped by ` (' and `)$', so one must not match beginning or
+-# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+-# as well as any symbol that contains `d'.
+-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+-# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+-# platforms (ab)use it in PIC code, but their linkers get confused if
+-# the symbol is explicitly referenced. Since portable code cannot
+-# rely on this symbol name, it's probably fine to never include it in
+-# preloaded symbol tables.
+-
+-case "$host_os" in
+-cygwin* | mingw*)
+- # FIXME: the MSVC++ port hasn't been tested in a loooong time
+- # When not using gcc, we currently assume that we are using
+- # Microsoft Visual C++.
+- if test "$with_gcc" != yes; then
+- with_gnu_ld=no
+- fi
+- ;;
+-
+-esac
+-
+-ld_shlibs=yes
+-if test "$with_gnu_ld" = yes; then
+- # If archive_cmds runs LD, not CC, wlarc should be empty
+- wlarc='${wl}'
+-
+- # See if GNU ld supports shared libraries.
+- case "$host_os" in
+- aix3* | aix4*)
+- # On AIX, the GNU linker is very broken
+- ld_shlibs=no
+- cat <<EOF 1>&2
+-
+-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+-*** to be unable to reliably create shared libraries on AIX.
+-*** Therefore, libtool is disabling shared libraries support. If you
+-*** really care for shared libraries, you may want to modify your PATH
+-*** so that a non-GNU linker is found, and then restart.
+-
+-EOF
+- ;;
+-
+- amigaos*)
+- archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_minus_L=yes
+-
+- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+- # that the semantics of dynamic libraries on AmigaOS, at least up
+- # to version 4, is to share data among multiple programs linked
+- # with the same dynamic library. Since this doesn't match the
+- # behavior of shared libraries on other platforms, we can use
+- # them.
+- ld_shlibs=no
+- ;;
+-
+- beos*)
+- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+- allow_undefined_flag=unsupported
+- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+- # support --undefined. This deserves some investigation. FIXME
+- archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+- else
+- ld_shlibs=no
+- fi
+- ;;
+-
+- cygwin* | mingw*)
+- # hardcode_libdir_flag_spec is actually meaningless, as there is
+- # no search path for DLLs.
+- hardcode_libdir_flag_spec='-L$libdir'
+- allow_undefined_flag=unsupported
+- always_export_symbols=yes
+-
+- # Extract the symbol export list from an `--export-all' def file,
+- # then regenerate the def file from the symbol export list, so that
+- # the compiled dll only exports the symbol export list.
+- export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+- test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+- $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~
+- sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols'
+-
+- archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
+- _lt_hint=1;
+- for symbol in `cat $export_symbols`; do
+- echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
+- _lt_hint=`expr 1 + \$_lt_hint`;
+- done~
+- test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+- test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+- $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+- $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+- $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+- $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+- $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
+-
+- old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
+- ;;
+-
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
+- # can we support soname and/or expsyms with a.out? -oliva
+- fi
+- ;;
+-
+- solaris* | sysv5*)
+- if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+- ld_shlibs=no
+- cat <<EOF 1>&2
+-
+-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+-*** create shared libraries on Solaris systems. Therefore, libtool
+-*** is disabling shared libraries support. We urge you to upgrade GNU
+-*** binutils to release 2.9.1 or newer. Another option is to modify
+-*** your PATH or compiler configuration so that the native linker is
+-*** used, and then restart.
+-
+-EOF
+- elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- ld_shlibs=no
+- fi
+- ;;
+-
+- sunos4*)
+- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
+- wlarc=
+- hardcode_direct=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- *)
+- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- ld_shlibs=no
+- fi
+- ;;
+- esac
+-
+- if test "$ld_shlibs" = yes; then
+- runpath_var=LD_RUN_PATH
+- hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+- export_dynamic_flag_spec='${wl}--export-dynamic'
+- case $host_os in
+- cygwin* | mingw*)
+- # dlltool doesn't understand --whole-archive et. al.
+- whole_archive_flag_spec=
+- ;;
+- *)
+- # ancient GNU ld didn't support --whole-archive et. al.
+- if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+- else
+- whole_archive_flag_spec=
+- fi
+- ;;
+- esac
+- fi
+-else
+- # PORTME fill in a description of your system's linker (not GNU ld)
+- case "$host_os" in
+- aix3*)
+- allow_undefined_flag=unsupported
+- always_export_symbols=yes
+- archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
+- # Note: this linker hardcodes the directories in LIBPATH if there
+- # are no directories specified by -L.
+- hardcode_minus_L=yes
+- if test "$with_gcc" = yes && test -z "$link_static_flag"; then
+- # Neither direct hardcoding nor static linking is supported with a
+- # broken collect2.
+- hardcode_direct=unsupported
+- fi
+- ;;
+-
+- aix4*)
+- hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
+- hardcode_libdir_separator=':'
+- if test "$with_gcc" = yes; then
+- collect2name=`${CC} -print-prog-name=collect2`
+- if test -f "$collect2name" && \
+- strings "$collect2name" | grep resolve_lib_name >/dev/null
+- then
+- # We have reworked collect2
+- hardcode_direct=yes
+- else
+- # We have old collect2
+- hardcode_direct=unsupported
+- # It fails to find uninstalled libraries when the uninstalled
+- # path is not listed in the libpath. Setting hardcode_minus_L
+- # to unsupported forces relinking
+- hardcode_minus_L=yes
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_libdir_separator=
+- fi
+- shared_flag='-shared'
+- else
+- shared_flag='${wl}-bM:SRE'
+- hardcode_direct=yes
+- fi
+- allow_undefined_flag=' ${wl}-berok'
+- archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
+- archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
+- case "$host_os" in aix4.[01]|aix4.[01].*)
+- # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
+- always_export_symbols=yes ;;
+- esac
+- ;;
+-
+- amigaos*)
+- archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_minus_L=yes
+- # see comment about different semantics on the GNU ld section
+- ld_shlibs=no
+- ;;
+-
+- cygwin* | mingw*)
+- # When not using gcc, we currently assume that we are using
+- # Microsoft Visual C++.
+- # hardcode_libdir_flag_spec is actually meaningless, as there is
+- # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib /OUT:$oldlib$oldobjs'
+- fix_srcfile_path='`cygpath -w $srcfile`'
+- ;;
+-
+- freebsd1*)
+- ld_shlibs=no
+- ;;
+-
+- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+- # support. Future versions do this automatically, but an explicit c++rt0.o
+- # does not break anything, and helps significantly (at the cost of a little
+- # extra space).
+- freebsd2.2*)
+- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
+- hardcode_libdir_flag_spec='-R$libdir'
+- hardcode_direct=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+- freebsd2*)
+- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+- hardcode_direct=yes
+- hardcode_minus_L=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+- freebsd*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
+- hardcode_libdir_flag_spec='-R$libdir'
+- hardcode_direct=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- hpux9* | hpux10* | hpux11*)
+- case "$host_os" in
+- hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
+- *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
+- esac
+- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+- hardcode_libdir_separator=:
+- hardcode_direct=yes
+- hardcode_minus_L=yes # Not in the search PATH, but as the default
+- # location of the library.
+- export_dynamic_flag_spec='${wl}-E'
+- ;;
+-
+- irix5* | irix6*)
+- if test "$with_gcc" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+- else
+- archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+- fi
+- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+- hardcode_libdir_separator=:
+- ;;
+-
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
+- else
+- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
+- fi
+- hardcode_libdir_flag_spec='${wl}-R$libdir'
+- hardcode_direct=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- openbsd*)
+- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+- hardcode_libdir_flag_spec='-R$libdir'
+- hardcode_direct=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- os2*)
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_minus_L=yes
+- allow_undefined_flag=unsupported
+- archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
+- old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
+- ;;
+-
+- osf3*)
+- if test "$with_gcc" = yes; then
+- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+- else
+- allow_undefined_flag=' -expect_unresolved \*'
+- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+- fi
+- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+- hardcode_libdir_separator=:
+- ;;
+-
+- osf4* | osf5*) # As osf3* with the addition of the -msym flag
+- if test "$with_gcc" = yes; then
+- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+- else
+- allow_undefined_flag=' -expect_unresolved \*'
+- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+- fi
+- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+- hardcode_libdir_separator=:
+- ;;
+-
+- sco3.2v5*)
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- hardcode_shlibpath_var=no
+- runpath_var=LD_RUN_PATH
+- hardcode_runpath_var=yes
+- ;;
+-
+- solaris*)
+- no_undefined_flag=' -z text'
+- # $CC -shared without GNU ld will not create a library from C++
+- # object files and a static libstdc++, better avoid it by now
+- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+- hardcode_libdir_flag_spec='-R$libdir'
+- hardcode_shlibpath_var=no
+- case "$host_os" in
+- solaris2.[0-5] | solaris2.[0-5].*) ;;
+- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+- esac
+- ;;
+-
+- sunos4*)
+- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_direct=yes
+- hardcode_minus_L=yes
+- hardcode_shlibpath_var=no
+- ;;
+-
+- sysv4)
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- runpath_var='LD_RUN_PATH'
+- hardcode_shlibpath_var=no
+- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+- ;;
+-
+- sysv4.3*)
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- hardcode_shlibpath_var=no
+- export_dynamic_flag_spec='-Bexport'
+- ;;
+-
+- sysv5*)
+- no_undefined_flag=' -z text'
+- # $CC -shared without GNU ld will not create a library from C++
+- # object files and a static libstdc++, better avoid it by now
+- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+- hardcode_libdir_flag_spec=
+- hardcode_shlibpath_var=no
+- runpath_var='LD_RUN_PATH'
+- ;;
+-
+- uts4*)
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_shlibpath_var=no
+- ;;
+-
+- dgux*)
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- hardcode_libdir_flag_spec='-L$libdir'
+- hardcode_shlibpath_var=no
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- hardcode_shlibpath_var=no
+- runpath_var=LD_RUN_PATH
+- hardcode_runpath_var=yes
+- ld_shlibs=yes
+- fi
+- ;;
+-
+- sysv4.2uw2*)
+- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
+- hardcode_direct=yes
+- hardcode_minus_L=no
+- hardcode_shlibpath_var=no
+- hardcode_runpath_var=yes
+- runpath_var=LD_RUN_PATH
+- ;;
+-
+- unixware7*)
+- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+- runpath_var='LD_RUN_PATH'
+- hardcode_shlibpath_var=no
+- ;;
+-
+- *)
+- ld_shlibs=no
+- ;;
+- esac
+-fi
+-echo "$ac_t$ld_shlibs" 1>&6
+-test "$ld_shlibs" = no && can_build_shared=no
+-
+-if test -z "$NM"; then
+- echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
+- case "$NM" in
+- [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
+- *)
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+- for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
+- # Check to see if the nm accepts a BSD-compat flag.
+- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+- # nm: unknown option "B" ignored
+- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+- NM="$ac_dir/nm -B"
+- break
+- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+- NM="$ac_dir/nm -p"
+- break
+- else
+- NM=${NM="$ac_dir/nm"} # keep the first match, but
+- continue # so that we can try to find one that supports BSD flags
+- fi
+- fi
+- done
+- IFS="$ac_save_ifs"
+- test -z "$NM" && NM=nm
+- ;;
+- esac
+- echo "$ac_t$NM" 1>&6
+-fi
+-
+-# Check for command to grab the raw symbol name followed by C symbol from nm.
+-echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
+-
+-# These are sane defaults that work on at least a few old systems.
+-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+-
+-# Character class describing NM global symbol codes.
+-symcode='[BCDEGRST]'
+-
+-# Regexp to match symbols that can be accessed directly from C.
+-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+-
+-# Transform the above into a raw symbol and a C symbol.
+-symxfrm='\1 \2\3 \3'
+-
+-# Transform an extracted symbol line into a proper C declaration
+-global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+-
+-# Define system-specific variables.
+-case "$host_os" in
+-aix*)
+- symcode='[BCDT]'
+- ;;
+-cygwin* | mingw*)
+- symcode='[ABCDGISTW]'
+- ;;
+-hpux*) # Its linker distinguishes data from code symbols
+- global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
+- ;;
+-irix*)
+- symcode='[BCDEGRST]'
+- ;;
+-solaris*)
+- symcode='[BDT]'
+- ;;
+-sysv4)
+- symcode='[DFNSTU]'
+- ;;
+-esac
+-
+-# If we're using GNU nm, then use its standard symbol codes.
+-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+- symcode='[ABCDGISTW]'
+-fi
+-
+-# Try without a prefix undercore, then with it.
+-for ac_symprfx in "" "_"; do
+-
+- # Write the raw and C identifiers.
+- global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
+-
+- # Check to see that the pipe works correctly.
+- pipe_works=no
+- $rm conftest*
+- cat > conftest.c <<EOF
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-char nm_test_var;
+-void nm_test_func(){}
+-#ifdef __cplusplus
+-}
+-#endif
+-main(){nm_test_var='a';nm_test_func();return(0);}
+-EOF
+-
+- echo "$progname:1635: checking if global_symbol_pipe works" >&5
+- if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+- # Now try to grab the symbols.
+- nlist=conftest.nm
+- if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+-
+- # Try sorting and uniquifying the output.
+- if sort "$nlist" | uniq > "$nlist"T; then
+- mv -f "$nlist"T "$nlist"
+- else
+- rm -f "$nlist"T
+- fi
+-
+- # Make sure that we snagged all the symbols we need.
+- if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+- if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+- cat <<EOF > conftest.c
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-EOF
+- # Now generate the symbol file.
+- eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
+-
+- cat <<EOF >> conftest.c
+-#if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
+-#else
+-# define lt_ptr_t char *
+-# define const
+-#endif
+-
+-/* The mapping between symbol names and symbols. */
+-const struct {
+- const char *name;
+- lt_ptr_t address;
+-}
+-lt_preloaded_symbols[] =
+-{
+-EOF
+- sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
+- cat <<\EOF >> conftest.c
+- {0, (lt_ptr_t) 0}
+-};
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-EOF
+- # Now try linking the two files.
+- mv conftest.$objext conftstm.$objext
+- save_LIBS="$LIBS"
+- save_CFLAGS="$CFLAGS"
+- LIBS="conftstm.$objext"
+- CFLAGS="$CFLAGS$no_builtin_flag"
+- if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+- pipe_works=yes
+- else
+- echo "$progname: failed program was:" >&5
+- cat conftest.c >&5
+- fi
+- LIBS="$save_LIBS"
+- else
+- echo "cannot find nm_test_func in $nlist" >&5
+- fi
+- else
+- echo "cannot find nm_test_var in $nlist" >&5
+- fi
+- else
+- echo "cannot run $global_symbol_pipe" >&5
+- fi
+- else
+- echo "$progname: failed program was:" >&5
+- cat conftest.c >&5
+- fi
+- $rm conftest* conftst*
+-
+- # Do not use the global_symbol_pipe unless it works.
+- if test "$pipe_works" = yes; then
+- break
+- else
+- global_symbol_pipe=
+- fi
+-done
+-if test "$pipe_works" = yes; then
+- echo "${ac_t}ok" 1>&6
+-else
+- echo "${ac_t}failed" 1>&6
+-fi
+-
+-if test -z "$global_symbol_pipe"; then
+- global_symbol_to_cdecl=
+-fi
+-
+-# Check hardcoding attributes.
+-echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
+-hardcode_action=
+-if test -n "$hardcode_libdir_flag_spec" || \
+- test -n "$runpath_var"; then
+-
+- # We can hardcode non-existant directories.
+- if test "$hardcode_direct" != no &&
+- # If the only mechanism to avoid hardcoding is shlibpath_var, we
+- # have to relink, otherwise we might link with an installed library
+- # when we should be linking with a yet-to-be-installed one
+- ## test "$hardcode_shlibpath_var" != no &&
+- test "$hardcode_minus_L" != no; then
+- # Linking always hardcodes the temporary library directory.
+- hardcode_action=relink
+- else
+- # We can link without hardcoding, and we can hardcode nonexisting dirs.
+- hardcode_action=immediate
+- fi
+-else
+- # We cannot hardcode anything, or else we can only hardcode existing
+- # directories.
+- hardcode_action=unsupported
+-fi
+-echo "$ac_t$hardcode_action" 1>&6
+-
+-
+-reload_flag=
+-reload_cmds='$LD$reload_flag -o $output$reload_objs'
+-echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
+-# PORTME Some linkers may need a different reload flag.
+-reload_flag='-r'
+-echo "$ac_t$reload_flag" 1>&6
+-test -n "$reload_flag" && reload_flag=" $reload_flag"
+-
+-# PORTME Fill in your ld.so characteristics
+-library_names_spec=
+-libname_spec='lib$name'
+-soname_spec=
+-postinstall_cmds=
+-postuninstall_cmds=
+-finish_cmds=
+-finish_eval=
+-shlibpath_var=
+-shlibpath_overrides_runpath=unknown
+-version_type=none
+-dynamic_linker="$host_os ld.so"
+-sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-file_magic_cmd=
+-file_magic_test_file=
+-deplibs_check_method='unknown'
+-# Need to set the preceding variable on all platforms that support
+-# interlibrary dependencies.
+-# 'none' -- dependencies not supported.
+-# `unknown' -- same as none, but documents that we really don't know.
+-# 'pass_all' -- all dependencies passed with no checks.
+-# 'test_compile' -- check by making test program.
+-# 'file_magic [regex]' -- check by looking for files in library path
+-# which responds to the $file_magic_cmd with a given egrep regex.
+-# If you have `file' or equivalent on your system and you're not sure
+-# whether `pass_all' will *always* work, you probably want this one.
+-echo $ac_n "checking dynamic linker characteristics for $host_os ... $ac_c" 1>&6
+-case "$host_os" in
+-aix3*)
+- version_type=linux
+- library_names_spec='${libname}${release}.so$versuffix $libname.a'
+- shlibpath_var=LIBPATH
+-
+- # AIX has no versioning support, so we append a major version to the name.
+- soname_spec='${libname}${release}.so$major'
+- ;;
+-
+-aix4*)
+- version_type=linux
+- # AIX has no versioning support, so currently we can not hardcode correct
+- # soname into executable. Probably we can add versioning support to
+- # collect2, so additional links can be useful in future.
+- # We preserve .a as extension for shared libraries though AIX4.2
+- # and later linker supports .so
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
+- shlibpath_var=LIBPATH
+- deplibs_check_method=pass_all
+- ;;
+-
+-amigaos*)
+- library_names_spec='$libname.ixlibrary $libname.a'
+- # Create ${libname}_ixlibrary.a entries in /sys/libs.
+- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+- ;;
+-
+-beos*)
+- library_names_spec='${libname}.so'
+- dynamic_linker="$host_os ld.so"
+- shlibpath_var=LIBRARY_PATH
+- deplibs_check_method=pass_all
+- lt_cv_dlopen="load_add_on"
+- lt_cv_dlopen_libs=
+- lt_cv_dlopen_self=yes
+- ;;
+-
+-bsdi4*)
+- version_type=linux
+- need_version=no
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- soname_spec='${libname}${release}.so$major'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=/shlib/libc.so
+- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+- export_dynamic_flag_spec=-rdynamic
+- # the default ld.so.conf also contains /usr/contrib/lib and
+- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+- # libtool to hard-code these into programs
+- ;;
+-
+-cygwin* | mingw*)
+- version_type=windows
+- need_version=no
+- need_lib_prefix=no
+- if test "$with_gcc" = yes; then
+- library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
+- else
+- library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+- fi
+- dynamic_linker='Win32 ld.exe'
+- deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+- file_magic_cmd='${OBJDUMP} -f'
+- # FIXME: first we should search . and the directory the executable is in
+- shlibpath_var=PATH
+- lt_cv_dlopen="LoadLibrary"
+- lt_cv_dlopen_libs=
+- ;;
+-
+-freebsd1*)
+- dynamic_linker=no
+- ;;
+-
+-freebsd*)
+- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+- version_type=freebsd-$objformat
+- case "$version_type" in
+- freebsd-elf*)
+- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=`echo /usr/lib/libc.so*`
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+- need_version=no
+- need_lib_prefix=no
+- ;;
+- freebsd-*)
+- deplibs_check_method=unknown
+- library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+- need_version=yes
+- ;;
+- esac
+- shlibpath_var=LD_LIBRARY_PATH
+- case "$host_os" in
+- freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
+- shlibpath_overrides_runpath=yes
+- ;;
+- *) # from 3.2 on
+- shlibpath_overrides_runpath=no
+- ;;
+- esac
+- ;;
+-
+-gnu*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+- soname_spec='${libname}${release}.so$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-hpux9* | hpux10* | hpux11*)
+- # Give a soname corresponding to the major version so that dld.sl refuses to
+- # link against other versions.
+- dynamic_linker="$host_os dld.sl"
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- shlibpath_var=SHLIB_PATH
+- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+- library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+- soname_spec='${libname}${release}.sl$major'
+- # HP-UX runs *really* slowly unless shared libraries are mode 555.
+- postinstall_cmds='chmod 555 $lib'
+- ;;
+-
+-irix5* | irix6*)
+- version_type=irix
+- need_lib_prefix=no
+- need_version=no
+- soname_spec='${libname}${release}.so.$major'
+- library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
+- case "$host_os" in
+- irix5*)
+- libsuff= shlibsuff=
+- # this will be overridden with pass_all, but let us keep it just in case
+- deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+- ;;
+- *)
+- case "$LD" in # libtool.m4 will add one of these switches to LD
+- *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+- *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+- *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+- *) libsuff= shlibsuff= libmagic=never-match;;
+- esac
+- ;;
+- esac
+- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+- shlibpath_overrides_runpath=no
+- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+- deplibs_check_method='pass_all'
+- ;;
+-
+-# No shared lib support for Linux oldld, aout, or coff.
+-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+- dynamic_linker=no
+- ;;
+-
+-# This must be Linux ELF.
+-linux-gnu* | *-linux)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- soname_spec='${libname}${release}.so$major'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=no
+- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+-
+- if test -f /lib/ld.so.1; then
+- dynamic_linker='GNU ld.so'
+- else
+- # Only the GNU ld.so supports shared libraries on MkLinux.
+- case "$host_cpu" in
+- powerpc*) dynamic_linker=no ;;
+- *) dynamic_linker='Linux ld.so' ;;
+- esac
+- fi
+- ;;
+-
+-netbsd*)
+- version_type=sunos
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+- dynamic_linker='NetBSD (a.out) ld.so'
+- else
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+- soname_spec='${libname}${release}.so$major'
+- dynamic_linker='NetBSD ld.elf_so'
+- fi
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-openbsd*)
+- version_type=sunos
+- if test "$with_gnu_ld" = yes; then
+- need_lib_prefix=no
+- need_version=no
+- fi
+- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-os2*)
+- libname_spec='$name'
+- need_lib_prefix=no
+- library_names_spec='$libname.dll $libname.a'
+- dynamic_linker='OS/2 ld.exe'
+- shlibpath_var=LIBPATH
+- ;;
+-
+-osf3* | osf4* | osf5*)
+- version_type=osf
+- need_version=no
+- soname_spec='${libname}${release}.so'
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+- shlibpath_var=LD_LIBRARY_PATH
+- # this will be overridden with pass_all, but let us keep it just in case
+- deplibs_check_method='file_magic COFF format alpha shared library'
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=/shlib/libc.so
+- deplibs_check_method='pass_all'
+- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+- ;;
+-
+-sco3.2v5*)
+- version_type=osf
+- soname_spec='${libname}${release}.so$major'
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-solaris*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- soname_spec='${libname}${release}.so$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- # ldd complains unless libraries are executable
+- postinstall_cmds='chmod +x $lib'
+- deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=/lib/libc.so
+- ;;
+-
+-sunos4*)
+- version_type=sunos
+- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- if test "$with_gnu_ld" = yes; then
+- need_lib_prefix=no
+- fi
+- need_version=yes
+- ;;
+-
+-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- version_type=linux
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- soname_spec='${libname}${release}.so$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- case "$host_vendor" in
+- ncr)
+- deplibs_check_method='pass_all'
+- ;;
+- motorola)
+- need_lib_prefix=no
+- need_version=no
+- shlibpath_overrides_runpath=no
+- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+- file_magic_cmd=/usr/bin/file
+- file_magic_test_file=`echo /usr/lib/libc.so*`
+- ;;
+- esac
+- ;;
+-
+-uts4*)
+- version_type=linux
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- soname_spec='${libname}${release}.so$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-dgux*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+- soname_spec='${libname}${release}.so$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-sysv4*MP*)
+- if test -d /usr/nec ;then
+- version_type=linux
+- library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+- soname_spec='$libname.so.$major'
+- shlibpath_var=LD_LIBRARY_PATH
+- fi
+- ;;
+-
+-*)
+- dynamic_linker=no
+- ;;
+-esac
+-echo "$ac_t$dynamic_linker" 1>&6
+-test "$dynamic_linker" = no && can_build_shared=no
+-
+-# Report the final consequences.
+-echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
+-
+-# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
+-# configure.in, otherwise build static only libraries.
+-case "$host_os" in
+-cygwin* | mingw* | os2*)
+- if test x$can_build_shared = xyes; then
+- test x$enable_win32_dll = xno && can_build_shared=no
+- echo "checking if package supports dlls... $can_build_shared" 1>&6
+- fi
+-;;
+-esac
+-
+-if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
+- case "$deplibs_check_method" in
+- "file_magic "*)
+- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+- egrep "$file_magic_regex" > /dev/null; then
+- :
+- else
+- cat <<EOF 1>&2
+-
+-*** Warning: the command libtool uses to detect shared libraries,
+-*** $file_magic_cmd, produces output that libtool cannot recognize.
+-*** The result is that libtool may fail to recognize shared libraries
+-*** as such. This will affect the creation of libtool libraries that
+-*** depend on shared libraries, but programs linked with such libtool
+-*** libraries will work regardless of this problem. Nevertheless, you
+-*** may want to report the problem to your system manager and/or to
+-*** bug-libtool@gnu.org
+-
+-EOF
+- fi ;;
+- esac
+-fi
+-
+-echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
+-test "$can_build_shared" = "no" && enable_shared=no
+-
+-# On AIX, shared libraries and static libraries use the same namespace, and
+-# are all built from PIC.
+-case "$host_os" in
+-aix3*)
+- test "$enable_shared" = yes && enable_static=no
+- if test -n "$RANLIB"; then
+- archive_cmds="$archive_cmds~\$RANLIB \$lib"
+- postinstall_cmds='$RANLIB $lib'
+- fi
+- ;;
+-
+-aix4*)
+- test "$enable_shared" = yes && enable_static=no
+- ;;
+-esac
+-
+-echo "$ac_t$enable_shared" 1>&6
+-
+-# Make sure either enable_shared or enable_static is yes.
+-test "$enable_shared" = yes || enable_static=yes
+-
+-echo "checking whether to build static libraries... $enable_static" 1>&6
+-
+-if test "$hardcode_action" = relink; then
+- # Fast installation is not supported
+- enable_fast_install=no
+-elif test "$shlibpath_overrides_runpath" = yes ||
+- test "$enable_shared" = no; then
+- # Fast installation is not necessary
+- enable_fast_install=needless
+-fi
+-
+-echo $ac_n "checking for objdir... $ac_c" 1>&6
+-rm -f .libs 2>/dev/null
+-mkdir .libs 2>/dev/null
+-if test -d .libs; then
+- objdir=.libs
+-else
+- # MS-DOS does not allow filenames that begin with a dot.
+- objdir=_libs
+-fi
+-rmdir .libs 2>/dev/null
+-echo "$ac_t$objdir" 1>&6
+-
+-if test "x$enable_dlopen" != xyes; then
+- enable_dlopen=unknown
+- enable_dlopen_self=unknown
+- enable_dlopen_self_static=unknown
+-else
+-if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
+- lt_cv_dlopen=no lt_cv_dlopen_libs=
+-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+-echo "$progname:2212: checking for dlopen in -ldl" >&5
+-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- ac_save_LIBS="$LIBS"
+-LIBS="-ldl $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 2220 "ltconfig"
+-/* Override any gcc2 internal prototype to avoid an error. */
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char dlopen();
+-
+-int main() {
+-dlopen()
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+- rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+-else
+- echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+-echo "$progname:2252: checking for dlopen" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- cat > conftest.$ac_ext <<EOF
+-#line 2257 "ltconfig"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char dlopen(); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char dlopen();
+-
+-int main() {
+-
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_dlopen) || defined (__stub___dlopen)
+-choke me
+-#else
+-dlopen();
+-#endif
+-
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+- rm -rf conftest*
+- eval "ac_cv_func_dlopen=yes"
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- eval "ac_cv_func_dlopen=no"
+-fi
+-rm -f conftest*
+-fi
+-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+- lt_cv_dlopen="dlopen"
+-else
+- echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+-echo "$progname:2299: checking for dld_link in -ldld" >&5
+-ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- ac_save_LIBS="$LIBS"
+-LIBS="-ldld $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 2307 "ltconfig"
+-/* Override any gcc2 internal prototype to avoid an error. */
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char dld_link();
+-
+-int main() {
+-dld_link()
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+- rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+-else
+- echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+-echo "$progname:2339: checking for shl_load" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- cat > conftest.$ac_ext <<EOF
+-#line 2344 "ltconfig"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char shl_load(); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char shl_load();
+-
+-int main() {
+-
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_shl_load) || defined (__stub___shl_load)
+-choke me
+-#else
+-shl_load();
+-#endif
+-
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+- rm -rf conftest*
+- eval "ac_cv_func_shl_load=yes"
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- eval "ac_cv_func_shl_load=no"
+-fi
+-rm -f conftest*
+-fi
+-
+-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+- lt_cv_dlopen="shl_load"
+-else
+- echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+-echo "$progname:2387: checking for shl_load in -ldld" >&5
+-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- ac_save_LIBS="$LIBS"
+-LIBS="-ldld $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 2395 "ltconfig"
+-#include "confdefs.h"
+-/* Override any gcc2 internal prototype to avoid an error. */
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char shl_load();
+-
+-int main() {
+-shl_load()
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+- rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+-else
+- echo "$ac_t""no" 1>&6
+-fi
+-
+-
+-fi
+-
+-
+-fi
+-
+-
+-fi
+-
+-
+-fi
+-
+-fi
+-
+- if test "x$lt_cv_dlopen" != xno; then
+- enable_dlopen=yes
+- fi
+-
+- case "$lt_cv_dlopen" in
+- dlopen)
+-for ac_hdr in dlfcn.h; do
+-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "$progname:2452: checking for $ac_hdr" >&5
+-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- cat > conftest.$ac_ext <<EOF
+-#line 2457 "ltconfig"
+-#include <$ac_hdr>
+-int fnord = 0;
+-EOF
+-ac_try="$ac_compile >/dev/null 2>conftest.out"
+-{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+- rm -rf conftest*
+- eval "ac_cv_header_$ac_safe=yes"
+-else
+- echo "$ac_err" >&5
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- eval "ac_cv_header_$ac_safe=no"
+-fi
+-rm -f conftest*
+-fi
+-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+- echo "$ac_t""yes" 1>&6
+-else
+- echo "$ac_t""no" 1>&6
+-fi
+-done
+-
+- if test "x$ac_cv_header_dlfcn_h" = xyes; then
+- CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+- fi
+- eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+- LIBS="$lt_cv_dlopen_libs $LIBS"
+-
+- echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+-echo "$progname:2490: checking whether a program can dlopen itself" >&5
+-if test "${lt_cv_dlopen_self+set}" = set; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- if test "$cross_compiling" = yes; then
+- lt_cv_dlopen_self=cross
+- else
+- cat > conftest.c <<EOF
+-#line 2498 "ltconfig"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-# define LTDL_GLOBAL RTLD_GLOBAL
+-#else
+-# ifdef DL_GLOBAL
+-# define LTDL_GLOBAL DL_GLOBAL
+-# else
+-# define LTDL_GLOBAL 0
+-# endif
+-#endif
+-
+-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+- find out it does not work in some platform. */
+-#ifndef LTDL_LAZY_OR_NOW
+-# ifdef RTLD_LAZY
+-# define LTDL_LAZY_OR_NOW RTLD_LAZY
+-# else
+-# ifdef DL_LAZY
+-# define LTDL_LAZY_OR_NOW DL_LAZY
+-# else
+-# ifdef RTLD_NOW
+-# define LTDL_LAZY_OR_NOW RTLD_NOW
+-# else
+-# ifdef DL_NOW
+-# define LTDL_LAZY_OR_NOW DL_NOW
+-# else
+-# define LTDL_LAZY_OR_NOW 0
+-# endif
+-# endif
+-# endif
+-# endif
+-#endif
+-
+-fnord() { int i=42;}
+-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+- if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
+-
+-EOF
+-if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+-then
+- lt_cv_dlopen_self=yes
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -fr conftest*
+- lt_cv_dlopen_self=no
+-fi
+-rm -fr conftest*
+-fi
+-
+-fi
+-
+-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+-
+- if test "$lt_cv_dlopen_self" = yes; then
+- LDFLAGS="$LDFLAGS $link_static_flag"
+- echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+-echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5
+-if test "${lt_cv_dlopen_self_static+set}" = set; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- if test "$cross_compiling" = yes; then
+- lt_cv_dlopen_self_static=cross
+- else
+- cat > conftest.c <<EOF
+-#line 2571 "ltconfig"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-# define LTDL_GLOBAL RTLD_GLOBAL
+-#else
+-# ifdef DL_GLOBAL
+-# define LTDL_GLOBAL DL_GLOBAL
+-# else
+-# define LTDL_GLOBAL 0
+-# endif
+-#endif
+-
+-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+- find out it does not work in some platform. */
+-#ifndef LTDL_LAZY_OR_NOW
+-# ifdef RTLD_LAZY
+-# define LTDL_LAZY_OR_NOW RTLD_LAZY
+-# else
+-# ifdef DL_LAZY
+-# define LTDL_LAZY_OR_NOW DL_LAZY
+-# else
+-# ifdef RTLD_NOW
+-# define LTDL_LAZY_OR_NOW RTLD_NOW
+-# else
+-# ifdef DL_NOW
+-# define LTDL_LAZY_OR_NOW DL_NOW
+-# else
+-# define LTDL_LAZY_OR_NOW 0
+-# endif
+-# endif
+-# endif
+-# endif
+-#endif
+-
+-fnord() { int i=42;}
+-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+- if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
+-
+-EOF
+-if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+-then
+- lt_cv_dlopen_self_static=yes
+-else
+- echo "$progname: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -fr conftest*
+- lt_cv_dlopen_self_static=no
+-fi
+-rm -fr conftest*
+-fi
+-
+-fi
+-
+-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+-fi
+- ;;
+- esac
+-
+- case "$lt_cv_dlopen_self" in
+- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+- *) enable_dlopen_self=unknown ;;
+- esac
+-
+- case "$lt_cv_dlopen_self_static" in
+- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+- *) enable_dlopen_self_static=unknown ;;
+- esac
+-fi
+-
+-# Copy echo and quote the copy, instead of the original, because it is
+-# used later.
+-ltecho="$echo"
+-if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+- ltecho="$CONFIG_SHELL \$0 --fallback-echo"
+-fi
+-LTSHELL="$SHELL"
+-
+-LTCONFIG_VERSION="$VERSION"
+-
+-# Only quote variables if we're using ltmain.sh.
+-case "$ltmain" in
+-*.sh)
+- # Now quote all the things that may contain metacharacters.
+- for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
+- old_LD old_LDFLAGS old_LIBS \
+- old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
+- AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
+- reload_flag reload_cmds wl \
+- pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+- thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+- library_names_spec soname_spec \
+- RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+- old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
+- file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
+- finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+- hardcode_libdir_flag_spec hardcode_libdir_separator \
+- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+- compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+-
+- case "$var" in
+- reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+- old_postinstall_cmds | old_postuninstall_cmds | \
+- export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+- postinstall_cmds | postuninstall_cmds | \
+- finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+- # Double-quote double-evaled strings.
+- eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+- ;;
+- *)
+- eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+- ;;
+- esac
+- done
+-
+- case "$ltecho" in
+- *'\$0 --fallback-echo"')
+- ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+- ;;
+- esac
+-
+- trap "$rm \"$ofile\"; exit 1" 1 2 15
+- echo "creating $ofile"
+- $rm "$ofile"
+- cat <<EOF > "$ofile"
+-#! $SHELL
+-
+-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+-# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
+-#
+-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-#
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful, but
+-# WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-# General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-#
+-# As a special exception to the GNU General Public License, if you
+-# distribute this file as part of a program that contains a
+-# configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+-Xsed="sed -e s/^X//"
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-### BEGIN LIBTOOL CONFIG
+-EOF
+- cfgfile="$ofile"
+- ;;
+-
+-*)
+- # Double-quote the variables that need it (for aesthetics).
+- for var in old_CC old_CFLAGS old_CPPFLAGS \
+- old_LD old_LDFLAGS old_LIBS \
+- old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
+- eval "$var=\\\"\$var\\\""
+- done
+-
+- # Just create a config file.
+- cfgfile="$ofile.cfg"
+- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+- echo "creating $cfgfile"
+- $rm "$cfgfile"
+- cat <<EOF > "$cfgfile"
+-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
+-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+-EOF
+- ;;
+-esac
+-
+-cat <<EOF >> "$cfgfile"
+-# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+-#
+-# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
+-# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
+-# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
+-# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
+-# $0$ltconfig_args
+-#
+-# Compiler and other test output produced by $progname, useful for
+-# debugging $progname, is in ./config.log if it exists.
+-
+-# The version of $progname that generated this script.
+-LTCONFIG_VERSION=$LTCONFIG_VERSION
+-
+-# Shell to use when invoking shell scripts.
+-SHELL=$LTSHELL
+-
+-# Whether or not to build shared libraries.
+-build_libtool_libs=$enable_shared
+-
+-# Whether or not to build static libraries.
+-build_old_libs=$enable_static
+-
+-# Whether or not to optimize for fast installation.
+-fast_install=$enable_fast_install
+-
+-# The host system.
+-host_alias=$host_alias
+-host=$host
+-
+-# An echo program that does not interpret backslashes.
+-echo=$ltecho
+-
+-# The archiver.
+-AR=$AR
+-
+-# The default C compiler.
+-CC=$CC
+-
+-# The linker used to build libraries.
+-LD=$LD
+-
+-# Whether we need hard or soft links.
+-LN_S=$LN_S
+-
+-# A BSD-compatible nm program.
+-NM=$NM
+-
+-# Used on cygwin: DLL creation program.
+-DLLTOOL="$DLLTOOL"
+-
+-# Used on cygwin: object dumper.
+-OBJDUMP="$OBJDUMP"
+-
+-# Used on cygwin: assembler.
+-AS="$AS"
+-
+-# The name of the directory that contains temporary libtool files.
+-objdir=$objdir
+-
+-# How to create reloadable object files.
+-reload_flag=$reload_flag
+-reload_cmds=$reload_cmds
+-
+-# How to pass a linker flag through the compiler.
+-wl=$wl
+-
+-# Object file suffix (normally "o").
+-objext="$objext"
+-
+-# Old archive suffix (normally "a").
+-libext="$libext"
+-
+-# Executable file suffix (normally "").
+-exeext="$exeext"
+-
+-# Additional compiler flags for building library objects.
+-pic_flag=$pic_flag
+-
+-# Does compiler simultaneously support -c and -o options?
+-compiler_c_o=$compiler_c_o
+-
+-# Can we write directly to a .lo ?
+-compiler_o_lo=$compiler_o_lo
+-
+-# Must we lock files when doing compilation ?
+-need_locks=$need_locks
+-
+-# Do we need the lib prefix for modules?
+-need_lib_prefix=$need_lib_prefix
+-
+-# Do we need a version for libraries?
+-need_version=$need_version
+-
+-# Whether dlopen is supported.
+-dlopen=$enable_dlopen
+-
+-# Whether dlopen of programs is supported.
+-dlopen_self=$enable_dlopen_self
+-
+-# Whether dlopen of statically linked programs is supported.
+-dlopen_self_static=$enable_dlopen_self_static
+-
+-# Compiler flag to prevent dynamic linking.
+-link_static_flag=$link_static_flag
+-
+-# Compiler flag to turn off builtin functions.
+-no_builtin_flag=$no_builtin_flag
+-
+-# Compiler flag to allow reflexive dlopens.
+-export_dynamic_flag_spec=$export_dynamic_flag_spec
+-
+-# Compiler flag to generate shared objects directly from archives.
+-whole_archive_flag_spec=$whole_archive_flag_spec
+-
+-# Compiler flag to generate thread-safe objects.
+-thread_safe_flag_spec=$thread_safe_flag_spec
+-
+-# Library versioning type.
+-version_type=$version_type
+-
+-# Format of library name prefix.
+-libname_spec=$libname_spec
+-
+-# List of archive names. First name is the real one, the rest are links.
+-# The last name is the one that the linker finds with -lNAME.
+-library_names_spec=$library_names_spec
+-
+-# The coded name of the library, if different from the real name.
+-soname_spec=$soname_spec
+-
+-# Commands used to build and install an old-style archive.
+-RANLIB=$RANLIB
+-old_archive_cmds=$old_archive_cmds
+-old_postinstall_cmds=$old_postinstall_cmds
+-old_postuninstall_cmds=$old_postuninstall_cmds
+-
+-# Create an old-style archive from a shared archive.
+-old_archive_from_new_cmds=$old_archive_from_new_cmds
+-
+-# Commands used to build and install a shared archive.
+-archive_cmds=$archive_cmds
+-archive_expsym_cmds=$archive_expsym_cmds
+-postinstall_cmds=$postinstall_cmds
+-postuninstall_cmds=$postuninstall_cmds
+-
+-# Method to check whether dependent libraries are shared objects.
+-deplibs_check_method=$deplibs_check_method
+-
+-# Command to use when deplibs_check_method == file_magic.
+-file_magic_cmd=$file_magic_cmd
+-
+-# Flag that allows shared libraries with undefined symbols to be built.
+-allow_undefined_flag=$allow_undefined_flag
+-
+-# Flag that forces no undefined symbols.
+-no_undefined_flag=$no_undefined_flag
+-
+-# Commands used to finish a libtool library installation in a directory.
+-finish_cmds=$finish_cmds
+-
+-# Same as above, but a single script fragment to be evaled but not shown.
+-finish_eval=$finish_eval
+-
+-# Take the output of nm and produce a listing of raw symbols and C names.
+-global_symbol_pipe=$global_symbol_pipe
+-
+-# Transform the output of nm in a proper C declaration
+-global_symbol_to_cdecl=$global_symbol_to_cdecl
+-
+-# This is the shared library runtime path variable.
+-runpath_var=$runpath_var
+-
+-# This is the shared library path variable.
+-shlibpath_var=$shlibpath_var
+-
+-# Is shlibpath searched before the hard-coded library search path?
+-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+-
+-# How to hardcode a shared library path into an executable.
+-hardcode_action=$hardcode_action
+-
+-# Flag to hardcode \$libdir into a binary during linking.
+-# This must work even if \$libdir does not exist.
+-hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
+-
+-# Whether we need a single -rpath flag with a separated argument.
+-hardcode_libdir_separator=$hardcode_libdir_separator
+-
+-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_direct=$hardcode_direct
+-
+-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_minus_L=$hardcode_minus_L
+-
+-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+-# the resulting binary.
+-hardcode_shlibpath_var=$hardcode_shlibpath_var
+-
+-# Compile-time system search path for libraries
+-sys_lib_search_path_spec=$sys_lib_search_path_spec
+-
+-# Run-time system search path for libraries
+-sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
+-
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path"
+-
+-# Set to yes if exported symbols are required.
+-always_export_symbols=$always_export_symbols
+-
+-# The commands to list exported symbols.
+-export_symbols_cmds=$export_symbols_cmds
+-
+-# Symbols that should not be listed in the preloaded symbols.
+-exclude_expsyms=$exclude_expsyms
+-
+-# Symbols that must always be exported.
+-include_expsyms=$include_expsyms
+-
+-EOF
+-
+-case "$ltmain" in
+-*.sh)
+- echo '### END LIBTOOL CONFIG' >> "$ofile"
+- echo >> "$ofile"
+- case "$host_os" in
+- aix3*)
+- cat <<\EOF >> "$ofile"
+-
+-# AIX sometimes has problems with the GCC collect2 program. For some
+-# reason, if we set the COLLECT_NAMES environment variable, the problems
+-# vanish in a puff of smoke.
+-if test "X${COLLECT_NAMES+set}" != Xset; then
+- COLLECT_NAMES=
+- export COLLECT_NAMES
+-fi
+-EOF
+- ;;
+- esac
+-
+- # Append the ltmain.sh script.
+- sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+- # We use sed instead of cat because bash on DJGPP gets confused if
+- # if finds mixed CR/LF and LF-only lines. Since sed operates in
+- # text mode, it properly converts lines to CR/LF. This bash problem
+- # is reportedly fixed, but why not run on old versions too?
+-
+- chmod +x "$ofile"
+- ;;
+-
+-*)
+- # Compile the libtool program.
+- echo "FIXME: would compile $ltmain"
+- ;;
+-esac
+-
+-test -n "$cache_file" || exit 0
+-
+-# AC_CACHE_SAVE
+-trap '' 1 2 15
+-cat > confcache <<\EOF
+-# This file is a shell script that caches the results of configure
+-# tests run on this system so they can be shared between configure
+-# scripts and configure runs. It is not useful on other systems.
+-# If it contains results you don't want to keep, you may remove or edit it.
+-#
+-# By default, configure uses ./config.cache as the cache file,
+-# creating it if it does not exist already. You can give configure
+-# the --cache-file=FILE option to use a different cache file; that is
+-# what configure does when it calls configure scripts in
+-# subdirectories, so they share the cache.
+-# Giving --cache-file=/dev/null disables caching, for debugging configure.
+-# config.status only pays attention to the cache file if you give it the
+-# --recheck option to rerun configure.
+-#
+-EOF
+-# The following way of writing the cache mishandles newlines in values,
+-# but we know of no workaround that is simple, portable, and efficient.
+-# So, don't put newlines in cache variables' values.
+-# Ultrix sh set writes to stderr and can't be redirected directly,
+-# and sets the high bit in the cache file unless we assign to the vars.
+-(set) 2>&1 |
+- case `(ac_space=' '; set | grep ac_space) 2>&1` in
+- *ac_space=\ *)
+- # `set' does not quote correctly, so add quotes (double-quote substitution
+- # turns \\\\ into \\, and sed turns \\ into \).
+- sed -n \
+- -e "s/'/'\\\\''/g" \
+- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+- ;;
+- *)
+- # `set' quotes correctly as required by POSIX, so do not add quotes.
+- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+- ;;
+- esac >> confcache
+-if cmp -s $cache_file confcache; then
+- :
+-else
+- if test -w $cache_file; then
+- echo "updating cache $cache_file"
+- cat confcache > $cache_file
+- else
+- echo "not updating unwritable cache $cache_file"
+- fi
+-fi
+-rm -f confcache
+-
+-exit 0
+-
+-# Local Variables:
+-# mode:shell-script
+-# sh-indentation:2
+-# End:
+diff -rup ace-1.2-orig/ltmain.sh ace-1.2/ltmain.sh
+--- ace-1.2-orig/ltmain.sh 2001-04-07 23:19:19.000000000 -0400
++++ ace-1.2/ltmain.sh 2006-11-25 06:04:27.000000000 -0500
+@@ -1,7 +1,8 @@
+ # ltmain.sh - Provide generalized library-building support services.
+-# NOTE: Changing this file will not affect anything until you rerun ltconfig.
++# NOTE: Changing this file will not affect anything until you rerun configure.
+ #
+-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
++# Free Software Foundation, Inc.
+ # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -16,13 +17,41 @@
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
++basename="s,^.*/,,g"
++
++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
++# is ksh but when the shell is invoked as "sh" and the current value of
++# the _XPG environment variable is not equal to 1 (one), the special
++# positional parameter $0, within a function call, is the name of the
++# function.
++progpath="$0"
++
++# The name of this program:
++progname=`echo "$progpath" | $SED $basename`
++modename="$progname"
++
++# Global variables:
++EXIT_SUCCESS=0
++EXIT_FAILURE=1
++
++PROGRAM=ltmain.sh
++PACKAGE=libtool
++VERSION=1.5.22
++TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
++
++# See if we are running on zsh, and set the options which allow our
++# commands through without removal of \ escapes.
++if test -n "${ZSH_VERSION+set}" ; then
++ setopt NO_GLOB_SUBST
++fi
++
+ # Check that we have a working $echo.
+ if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+@@ -35,7 +64,7 @@ elif test "X`($echo '\t') 2>/dev/null`"
+ :
+ else
+ # Restart under the correct shell, and then maybe $echo will work.
+- exec $SHELL "$0" --no-reexec ${1+"$@"}
++ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+ fi
+
+ if test "X$1" = X--fallback-echo; then
+@@ -44,19 +73,9 @@ if test "X$1" = X--fallback-echo; then
+ cat <<EOF
+ $*
+ EOF
+- exit 0
++ exit $EXIT_SUCCESS
+ fi
+
+-# The name of this program.
+-progname=`$echo "$0" | sed 's%^.*/%%'`
+-modename="$progname"
+-
+-# Constants.
+-PROGRAM=ltmain.sh
+-PACKAGE=libtool
+-VERSION=1.3.4
+-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
+-
+ default_mode=
+ help="Try \`$progname --help' for more information."
+ magic="%%%MAGIC variable%%%"
+@@ -66,10 +85,20 @@ rm="rm -f"
+
+ # Sed substitution that helps us do robust quoting. It backslashifies
+ # metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e 1s/^X//'
++Xsed="${SED}"' -e 1s/^X//'
+ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+-SP2NL='tr \040 \012'
+-NL2SP='tr \015\012 \040\040'
++# test EBCDIC or ASCII
++case `echo X|tr X '\101'` in
++ A) # ASCII based system
++ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
++ SP2NL='tr \040 \012'
++ NL2SP='tr \015\012 \040\040'
++ ;;
++ *) # EBCDIC based system
++ SP2NL='tr \100 \n'
++ NL2SP='tr \r\n \100\100'
++ ;;
++esac
+
+ # NLS nuisances.
+ # Only set LANG and LC_ALL to C if already set.
+@@ -83,16 +112,15 @@ if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+ fi
+
+-if test "$LTCONFIG_VERSION" != "$VERSION"; then
+- echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
+- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+- exit 1
+-fi
++# Make sure IFS has a sensible default
++lt_nl='
++'
++IFS=" $lt_nl"
+
+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+- echo "$modename: not configured to build any kind of library" 1>&2
+- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+- exit 1
++ $echo "$modename: not configured to build any kind of library" 1>&2
++ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
++ exit $EXIT_FAILURE
+ fi
+
+ # Global variables.
+@@ -104,25 +132,310 @@ run=
+ show="$echo"
+ show_help=
+ execute_dlfiles=
++duplicate_deps=no
++preserve_args=
+ lo2o="s/\\.lo\$/.${objext}/"
+ o2lo="s/\\.${objext}\$/.lo/"
+
++#####################################
++# Shell function definitions:
++# This seems to be the best place for them
++
++# func_mktempdir [string]
++# Make a temporary directory that won't clash with other running
++# libtool processes, and avoids race conditions if possible. If
++# given, STRING is the basename for that directory.
++func_mktempdir ()
++{
++ my_template="${TMPDIR-/tmp}/${1-$progname}"
++
++ if test "$run" = ":"; then
++ # Return a directory name, but don't create it in dry-run mode
++ my_tmpdir="${my_template}-$$"
++ else
++
++ # If mktemp works, use that first and foremost
++ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
++
++ if test ! -d "$my_tmpdir"; then
++ # Failing that, at least try and use $RANDOM to avoid a race
++ my_tmpdir="${my_template}-${RANDOM-0}$$"
++
++ save_mktempdir_umask=`umask`
++ umask 0077
++ $mkdir "$my_tmpdir"
++ umask $save_mktempdir_umask
++ fi
++
++ # If we're not in dry-run mode, bomb out on failure
++ test -d "$my_tmpdir" || {
++ $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
++ exit $EXIT_FAILURE
++ }
++ fi
++
++ $echo "X$my_tmpdir" | $Xsed
++}
++
++
++# func_win32_libid arg
++# return the library type of file 'arg'
++#
++# Need a lot of goo to handle *both* DLLs and import libs
++# Has to be a shell function in order to 'eat' the argument
++# that is supplied when $file_magic_command is called.
++func_win32_libid ()
++{
++ win32_libid_type="unknown"
++ win32_fileres=`file -L $1 2>/dev/null`
++ case $win32_fileres in
++ *ar\ archive\ import\ library*) # definitely import
++ win32_libid_type="x86 archive import"
++ ;;
++ *ar\ archive*) # could be an import, or static
++ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
++ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
++ win32_nmres=`eval $NM -f posix -A $1 | \
++ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
++ case $win32_nmres in
++ import*) win32_libid_type="x86 archive import";;
++ *) win32_libid_type="x86 archive static";;
++ esac
++ fi
++ ;;
++ *DLL*)
++ win32_libid_type="x86 DLL"
++ ;;
++ *executable*) # but shell scripts are "executable" too...
++ case $win32_fileres in
++ *MS\ Windows\ PE\ Intel*)
++ win32_libid_type="x86 DLL"
++ ;;
++ esac
++ ;;
++ esac
++ $echo $win32_libid_type
++}
++
++
++# func_infer_tag arg
++# Infer tagged configuration to use if any are available and
++# if one wasn't chosen via the "--tag" command line option.
++# Only attempt this if the compiler in the base compile
++# command doesn't match the default compiler.
++# arg is usually of the form 'gcc ...'
++func_infer_tag ()
++{
++ if test -n "$available_tags" && test -z "$tagname"; then
++ CC_quoted=
++ for arg in $CC; do
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ CC_quoted="$CC_quoted $arg"
++ done
++ case $@ in
++ # Blanks in the command may have been stripped by the calling shell,
++ # but not from the CC environment variable when configure was run.
++ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
++ # Blanks at the start of $base_compile will cause this to fail
++ # if we don't check for them as well.
++ *)
++ for z in $available_tags; do
++ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
++ # Evaluate the configuration.
++ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
++ CC_quoted=
++ for arg in $CC; do
++ # Double-quote args containing other shell metacharacters.
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ CC_quoted="$CC_quoted $arg"
++ done
++ case "$@ " in
++ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
++ # The compiler in the base compile command matches
++ # the one in the tagged configuration.
++ # Assume this is the tagged configuration we want.
++ tagname=$z
++ break
++ ;;
++ esac
++ fi
++ done
++ # If $tagname still isn't set, then no tagged configuration
++ # was found and let the user know that the "--tag" command
++ # line option must be used.
++ if test -z "$tagname"; then
++ $echo "$modename: unable to infer tagged configuration"
++ $echo "$modename: specify a tag with \`--tag'" 1>&2
++ exit $EXIT_FAILURE
++# else
++# $echo "$modename: using $tagname tagged configuration"
++ fi
++ ;;
++ esac
++ fi
++}
++
++
++# func_extract_an_archive dir oldlib
++func_extract_an_archive ()
++{
++ f_ex_an_ar_dir="$1"; shift
++ f_ex_an_ar_oldlib="$1"
++
++ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
++ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
++ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
++ :
++ else
++ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
++ exit $EXIT_FAILURE
++ fi
++}
++
++# func_extract_archives gentop oldlib ...
++func_extract_archives ()
++{
++ my_gentop="$1"; shift
++ my_oldlibs=${1+"$@"}
++ my_oldobjs=""
++ my_xlib=""
++ my_xabs=""
++ my_xdir=""
++ my_status=""
++
++ $show "${rm}r $my_gentop"
++ $run ${rm}r "$my_gentop"
++ $show "$mkdir $my_gentop"
++ $run $mkdir "$my_gentop"
++ my_status=$?
++ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
++ exit $my_status
++ fi
++
++ for my_xlib in $my_oldlibs; do
++ # Extract the objects.
++ case $my_xlib in
++ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
++ *) my_xabs=`pwd`"/$my_xlib" ;;
++ esac
++ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
++ my_xdir="$my_gentop/$my_xlib"
++
++ $show "${rm}r $my_xdir"
++ $run ${rm}r "$my_xdir"
++ $show "$mkdir $my_xdir"
++ $run $mkdir "$my_xdir"
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
++ exit $exit_status
++ fi
++ case $host in
++ *-darwin*)
++ $show "Extracting $my_xabs"
++ # Do not bother doing anything if just a dry run
++ if test -z "$run"; then
++ darwin_orig_dir=`pwd`
++ cd $my_xdir || exit $?
++ darwin_archive=$my_xabs
++ darwin_curdir=`pwd`
++ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
++ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
++ if test -n "$darwin_arches"; then
++ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
++ darwin_arch=
++ $show "$darwin_base_archive has multiple architectures $darwin_arches"
++ for darwin_arch in $darwin_arches ; do
++ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
++ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
++ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
++ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
++ cd "$darwin_curdir"
++ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
++ done # $darwin_arches
++ ## Okay now we have a bunch of thin objects, gotta fatten them up :)
++ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
++ darwin_file=
++ darwin_files=
++ for darwin_file in $darwin_filelist; do
++ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
++ lipo -create -output "$darwin_file" $darwin_files
++ done # $darwin_filelist
++ ${rm}r unfat-$$
++ cd "$darwin_orig_dir"
++ else
++ cd "$darwin_orig_dir"
++ func_extract_an_archive "$my_xdir" "$my_xabs"
++ fi # $darwin_arches
++ fi # $run
++ ;;
++ *)
++ func_extract_an_archive "$my_xdir" "$my_xabs"
++ ;;
++ esac
++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
++ done
++ func_extract_archives_result="$my_oldobjs"
++}
++# End of Shell function definitions
++#####################################
++
++# Darwin sucks
++eval std_shrext=\"$shrext_cmds\"
++
++disable_libs=no
++
+ # Parse our command line options once, thoroughly.
+-while test $# -gt 0
++while test "$#" -gt 0
+ do
+ arg="$1"
+ shift
+
+- case "$arg" in
++ case $arg in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+- case "$prev" in
++ case $prev in
+ execute_dlfiles)
+- eval "$prev=\"\$$prev \$arg\""
++ execute_dlfiles="$execute_dlfiles $arg"
++ ;;
++ tag)
++ tagname="$arg"
++ preserve_args="${preserve_args}=$arg"
++
++ # Check whether tagname contains only valid characters
++ case $tagname in
++ *[!-_A-Za-z0-9,/]*)
++ $echo "$progname: invalid tag name: $tagname" 1>&2
++ exit $EXIT_FAILURE
++ ;;
++ esac
++
++ case $tagname in
++ CC)
++ # Don't test for the "default" C tag, as we know, it's there, but
++ # not specially marked.
++ ;;
++ *)
++ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
++ taglist="$taglist $tagname"
++ # Evaluate the configuration.
++ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
++ else
++ $echo "$progname: ignoring unknown tag $tagname" 1>&2
++ fi
++ ;;
++ esac
+ ;;
+ *)
+ eval "$prev=\$arg"
+@@ -135,24 +448,33 @@ do
+ fi
+
+ # Have we seen a non-optional argument yet?
+- case "$arg" in
++ case $arg in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+- echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+- exit 0
++ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
++ $echo
++ $echo "Copyright (C) 2005 Free Software Foundation, Inc."
++ $echo "This is free software; see the source for copying conditions. There is NO"
++ $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++ exit $?
+ ;;
+
+ --config)
+- sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
+- exit 0
++ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
++ # Now print the configurations for the tags.
++ for tagname in $taglist; do
++ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
++ done
++ exit $?
+ ;;
+
+ --debug)
+- echo "$progname: enabling shell trace mode"
++ $echo "$progname: enabling shell trace mode"
+ set -x
++ preserve_args="$preserve_args $arg"
+ ;;
+
+ --dry-run | -n)
+@@ -160,18 +482,18 @@ do
+ ;;
+
+ --features)
+- echo "host: $host"
++ $echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+- echo "enable shared libraries"
++ $echo "enable shared libraries"
+ else
+- echo "disable shared libraries"
++ $echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+- echo "enable static libraries"
++ $echo "enable static libraries"
+ else
+- echo "disable static libraries"
++ $echo "disable static libraries"
+ fi
+- exit 0
++ exit $?
+ ;;
+
+ --finish) mode="finish" ;;
+@@ -179,8 +501,23 @@ do
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
++ --preserve-dup-deps) duplicate_deps="yes" ;;
++
+ --quiet | --silent)
+ show=:
++ preserve_args="$preserve_args $arg"
++ ;;
++
++ --tag)
++ prevopt="--tag"
++ prev=tag
++ preserve_args="$preserve_args --tag"
++ ;;
++ --tag=*)
++ set tag "$optarg" ${1+"$@"}
++ shift
++ prev=tag
++ preserve_args="$preserve_args --tag"
+ ;;
+
+ -dlopen)
+@@ -191,7 +528,7 @@ do
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+
+ *)
+@@ -204,19 +541,38 @@ done
+ if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
++case $disable_libs in
++no)
++ ;;
++shared)
++ build_libtool_libs=no
++ build_old_libs=yes
++ ;;
++static)
++ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
++ ;;
++esac
++
++# If this variable is set in any of the actions, the command in it
++# will be execed at the end. This prevents here-documents from being
++# left over by shells.
++exec_cmd=
++
+ if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+- case "$nonopt" in
+- *cc | *++ | gcc* | *-gcc*)
++ $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
++ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
++ case $nonopt in
++ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+ mode=link
+ for arg
+ do
+- case "$arg" in
++ case $arg in
+ -c)
+ mode=compile
+ break
+@@ -253,7 +609,7 @@ if test -z "$show_help"; then
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+@@ -261,140 +617,233 @@ if test -z "$show_help"; then
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+- case "$mode" in
++ case $mode in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+- lastarg=
+- srcfile="$nonopt"
++ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
++ suppress_opt=yes
+ suppress_output=
++ arg_mode=normal
++ libobj=
++ later=
+
+- user_target=no
+ for arg
+ do
+- # Accept any command-line options.
+- case "$arg" in
+- -o)
+- if test "$user_target" != "no"; then
+- $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+- exit 1
+- fi
+- user_target=next
+- ;;
+-
+- -static)
+- build_old_libs=yes
+- continue
++ case $arg_mode in
++ arg )
++ # do not "continue". Instead, add this to base_compile
++ lastarg="$arg"
++ arg_mode=normal
+ ;;
+- esac
+
+- case "$user_target" in
+- next)
+- # The next one is the -o target name
+- user_target=yes
+- continue
+- ;;
+- yes)
+- # We got the output file
+- user_target=set
++ target )
+ libobj="$arg"
++ arg_mode=normal
+ continue
+ ;;
+- esac
+
+- # Accept the current argument as the source file.
+- lastarg="$srcfile"
+- srcfile="$arg"
++ normal )
++ # Accept any command-line options.
++ case $arg in
++ -o)
++ if test -n "$libobj" ; then
++ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ arg_mode=target
++ continue
++ ;;
+
+- # Aesthetically quote the previous argument.
++ -static | -prefer-pic | -prefer-non-pic)
++ later="$later $arg"
++ continue
++ ;;
+
+- # Backslashify any backslashes, double quotes, and dollar signs.
+- # These are the only characters that are still specially
+- # interpreted inside of double-quoted scrings.
++ -no-suppress)
++ suppress_opt=no
++ continue
++ ;;
++
++ -Xcompiler)
++ arg_mode=arg # the next one goes into the "base_compile" arg list
++ continue # The current "srcfile" will either be retained or
++ ;; # replaced later. I would guess that would be a bug.
++
++ -Wc,*)
++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
++ lastarg=
++ save_ifs="$IFS"; IFS=','
++ for arg in $args; do
++ IFS="$save_ifs"
++
++ # Double-quote args containing other shell metacharacters.
++ # Many Bourne shells cannot handle close brackets correctly
++ # in scan sets, so we specify it separately.
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ lastarg="$lastarg $arg"
++ done
++ IFS="$save_ifs"
++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
++
++ # Add the arguments to base_compile.
++ base_compile="$base_compile $lastarg"
++ continue
++ ;;
++
++ * )
++ # Accept the current argument as the source file.
++ # The previous "srcfile" becomes the current argument.
++ #
++ lastarg="$srcfile"
++ srcfile="$arg"
++ ;;
++ esac # case $arg
++ ;;
++ esac # case $arg_mode
++
++ # Aesthetically quote the previous argument.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
++ case $lastarg in
+ # Double-quote args containing other shell metacharacters.
+- # Many Bourne shells cannot handle close brackets correctly in scan
+- # sets, so we specify it separately.
+- case "$lastarg" in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ # Many Bourne shells cannot handle close brackets correctly
++ # in scan sets, and some SunOS ksh mistreat backslash-escaping
++ # in scan sets (worked around with variable expansion),
++ # and furthermore cannot handle '|' '&' '(' ')' in scan sets
++ # at all, so we specify them separately.
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+- # Add the previous argument to base_compile.
+- if test -z "$base_compile"; then
+- base_compile="$lastarg"
+- else
+- base_compile="$base_compile $lastarg"
+- fi
+- done
++ base_compile="$base_compile $lastarg"
++ done # for arg
+
+- case "$user_target" in
+- set)
++ case $arg_mode in
++ arg)
++ $echo "$modename: you must specify an argument for -Xcompile"
++ exit $EXIT_FAILURE
+ ;;
+- no)
+- # Get the name of the library object.
+- libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
++ target)
++ $echo "$modename: you must specify a target with \`-o'" 1>&2
++ exit $EXIT_FAILURE
+ ;;
+ *)
+- $echo "$modename: you must specify a target with \`-o'" 1>&2
+- exit 1
++ # Get the name of the library object.
++ [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+- xform='[cCFSfmso]'
+- case "$libobj" in
++ xform='[cCFSifmso]'
++ case $libobj in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
++ *.ii) xform=ii ;;
++ *.class) xform=class ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.f90) xform=f90 ;;
+ *.for) xform=for ;;
++ *.java) xform=java ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+- case "$libobj" in
++ case $libobj in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
++ func_infer_tag $base_compile
++
++ for arg in $later; do
++ case $arg in
++ -static)
++ build_old_libs=yes
++ continue
++ ;;
++
++ -prefer-pic)
++ pic_mode=yes
++ continue
++ ;;
++
++ -prefer-non-pic)
++ pic_mode=no
++ continue
++ ;;
++ esac
++ done
++
++ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
++ case $qlibobj in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ qlibobj="\"$qlibobj\"" ;;
++ esac
++ test "X$libobj" != "X$qlibobj" \
++ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
++ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
++ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$obj"; then
++ xdir=
++ else
++ xdir=$xdir/
++ fi
++ lobj=${xdir}$objdir/$objname
++
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+- removelist="$obj $libobj"
++ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+- removelist="$libobj"
++ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ $run $rm $removelist
+- trap "$run $rm $removelist; exit 1" 1 2 15
++ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
++
++ # On Cygwin there's no "real" PIC flag so we must build both object types
++ case $host_os in
++ cygwin* | mingw* | pw32* | os2*)
++ pic_mode=default
++ ;;
++ esac
++ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
++ # non-PIC code in shared libraries is not supported
++ pic_mode=default
++ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+- trap "$run $rm $removelist; exit 1" 1 2 15
++ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+ else
++ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+@@ -402,13 +851,13 @@ if test -z "$show_help"; then
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+- until ln "$0" "$lockfile" 2>/dev/null; do
++ until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+- echo "\
++ $echo "\
+ *** ERROR, $lockfile exists and contains:
+ `cat $lockfile 2>/dev/null`
+
+@@ -420,63 +869,72 @@ avoid parallel builds (make -j) in this
+ compiler."
+
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+- echo $srcfile > "$lockfile"
++ $echo "$srcfile" > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
++ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
++ case $qsrcfile in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ qsrcfile="\"$qsrcfile\"" ;;
++ esac
++
++ $run $rm "$libobj" "${libobj}T"
++
++ # Create a libtool object file (analogous to a ".la" file),
++ # but don't create it if we're doing a dry run.
++ test -z "$run" && cat > ${libobj}T <<EOF
++# $libobj - a libtool object file
++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
++#
++# Please DO NOT delete this file!
++# It is necessary for linking the library.
++
++# Name of the PIC object.
++EOF
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+- # All platforms use -DPIC, to notify preprocessed assembler code.
+- command="$base_compile $srcfile $pic_flag -DPIC"
+- if test "$build_old_libs" = yes; then
+- lo_libobj="$libobj"
+- dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$dir" = "X$libobj"; then
+- dir="$objdir"
+- else
+- dir="$dir/$objdir"
+- fi
+- libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
++ if test "$pic_mode" != no; then
++ command="$base_compile $qsrcfile $pic_flag"
++ else
++ # Don't build PIC code
++ command="$base_compile $qsrcfile"
++ fi
+
+- if test -d "$dir"; then
+- $show "$rm $libobj"
+- $run $rm $libobj
+- else
+- $show "$mkdir $dir"
+- $run $mkdir $dir
+- status=$?
+- if test $status -ne 0 && test ! -d $dir; then
+- exit $status
+- fi
++ if test ! -d "${xdir}$objdir"; then
++ $show "$mkdir ${xdir}$objdir"
++ $run $mkdir ${xdir}$objdir
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
++ exit $exit_status
+ fi
+ fi
+- if test "$compiler_o_lo" = yes; then
+- output_obj="$libobj"
+- command="$command -o $output_obj"
+- elif test "$compiler_c_o" = yes; then
+- output_obj="$obj"
+- command="$command -o $output_obj"
++
++ if test -z "$output_obj"; then
++ # Place PIC objects in $objdir
++ command="$command -o $lobj"
+ fi
+
+- $run $rm "$output_obj"
++ $run $rm "$lobj" "$output_obj"
++
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+- test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+- echo "\
++ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
++ $echo "\
+ *** ERROR, $lockfile contains:
+ `cat $lockfile 2>/dev/null`
+
+@@ -491,13 +949,13 @@ avoid parallel builds (make -j) in this
+ compiler."
+
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+- if test x"$output_obj" != x"$libobj"; then
+- $show "$mv $output_obj $libobj"
+- if $run $mv $output_obj $libobj; then :
++ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
++ $show "$mv $output_obj $lobj"
++ if $run $mv $output_obj $lobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+@@ -505,66 +963,50 @@ compiler."
+ fi
+ fi
+
+- # If we have no pic_flag, then copy the object into place and finish.
+- if test -z "$pic_flag" && test "$build_old_libs" = yes; then
+- # Rename the .lo from within objdir to obj
+- if test -f $obj; then
+- $show $rm $obj
+- $run $rm $obj
+- fi
++ # Append the name of the PIC object to the libtool object file.
++ test -z "$run" && cat >> ${libobj}T <<EOF
++pic_object='$objdir/$objname'
+
+- $show "$mv $libobj $obj"
+- if $run $mv $libobj $obj; then :
+- else
+- error=$?
+- $run $rm $removelist
+- exit $error
+- fi
++EOF
+
+- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$xdir" = "X$obj"; then
+- xdir="."
+- else
+- xdir="$xdir"
+- fi
+- baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
+- libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+- # Now arrange that obj and lo_libobj become the same file
+- $show "(cd $xdir && $LN_S $baseobj $libobj)"
+- if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
+- exit 0
+- else
+- error=$?
+- $run $rm $removelist
+- exit $error
+- fi
++ # Allow error messages only from the first compilation.
++ if test "$suppress_opt" = yes; then
++ suppress_output=' >/dev/null 2>&1'
+ fi
++ else
++ # No PIC object so indicate it doesn't exist in the libtool
++ # object file.
++ test -z "$run" && cat >> ${libobj}T <<EOF
++pic_object=none
+
+- # Allow error messages only from the first compilation.
+- suppress_output=' >/dev/null 2>&1'
++EOF
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+- command="$base_compile $srcfile"
++ if test "$pic_mode" != yes; then
++ # Don't build PIC code
++ command="$base_compile $qsrcfile"
++ else
++ command="$base_compile $qsrcfile $pic_flag"
++ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+- output_obj="$obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+- $run $rm "$output_obj"
++ $run $rm "$obj" "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+- test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+- echo "\
++ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
++ $echo "\
+ *** ERROR, $lockfile contains:
+ `cat $lockfile 2>/dev/null`
+
+@@ -579,11 +1021,11 @@ avoid parallel builds (make -j) in this
+ compiler."
+
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+- if test x"$output_obj" != x"$obj"; then
++ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+@@ -593,40 +1035,42 @@ compiler."
+ fi
+ fi
+
+- # Create an invalid libtool object if no PIC, so that we do not
+- # accidentally link it into a program.
+- if test "$build_libtool_libs" != yes; then
+- $show "echo timestamp > $libobj"
+- $run eval "echo timestamp > \$libobj" || exit $?
+- else
+- # Move the .lo from within objdir
+- $show "$mv $libobj $lo_libobj"
+- if $run $mv $libobj $lo_libobj; then :
+- else
+- error=$?
+- $run $rm $removelist
+- exit $error
+- fi
+- fi
++ # Append the name of the non-PIC object the libtool object file.
++ # Only append if the libtool object file exists.
++ test -z "$run" && cat >> ${libobj}T <<EOF
++# Name of the non-PIC object.
++non_pic_object='$objname'
++
++EOF
++ else
++ # Append the name of the non-PIC object the libtool object file.
++ # Only append if the libtool object file exists.
++ test -z "$run" && cat >> ${libobj}T <<EOF
++# Name of the non-PIC object.
++non_pic_object=none
++
++EOF
+ fi
+
++ $run $mv "${libobj}T" "${libobj}"
++
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+- $rm "$lockfile"
++ $run $rm "$lockfile"
+ fi
+
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool link mode
+- link)
++ link | relink)
+ modename="$modename: link"
+- case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2*)
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+- # flag for every libtool invokation.
++ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+@@ -635,179 +1079,13 @@ compiler."
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+-
+- # This is a source program that is used to create dlls on Windows
+- # Don't remove nor modify the starting and closing comments
+-# /* ltdll.c starts here */
+-# #define WIN32_LEAN_AND_MEAN
+-# #include <windows.h>
+-# #undef WIN32_LEAN_AND_MEAN
+-# #include <stdio.h>
+-#
+-# #ifndef __CYGWIN__
+-# # ifdef __CYGWIN32__
+-# # define __CYGWIN__ __CYGWIN32__
+-# # endif
+-# #endif
+-#
+-# #ifdef __cplusplus
+-# extern "C" {
+-# #endif
+-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+-# #ifdef __cplusplus
+-# }
+-# #endif
+-#
+-# #ifdef __CYGWIN__
+-# #include <cygwin/cygwin_dll.h>
+-# DECLARE_CYGWIN_DLL( DllMain );
+-# #endif
+-# HINSTANCE __hDllInstance_base;
+-#
+-# BOOL APIENTRY
+-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+-# {
+-# __hDllInstance_base = hInst;
+-# return TRUE;
+-# }
+-# /* ltdll.c ends here */
+- # This is a source program that is used to create import libraries
+- # on Windows for dlls which lack them. Don't remove nor modify the
+- # starting and closing comments
+-# /* impgen.c starts here */
+-# /* Copyright (C) 1999 Free Software Foundation, Inc.
+-#
+-# This file is part of GNU libtool.
+-#
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-# GNU General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-# */
+-#
+-# #include <stdio.h> /* for printf() */
+-# #include <unistd.h> /* for open(), lseek(), read() */
+-# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+-# #include <string.h> /* for strdup() */
+-#
+-# static unsigned int
+-# pe_get16 (fd, offset)
+-# int fd;
+-# int offset;
+-# {
+-# unsigned char b[2];
+-# lseek (fd, offset, SEEK_SET);
+-# read (fd, b, 2);
+-# return b[0] + (b[1]<<8);
+-# }
+-#
+-# static unsigned int
+-# pe_get32 (fd, offset)
+-# int fd;
+-# int offset;
+-# {
+-# unsigned char b[4];
+-# lseek (fd, offset, SEEK_SET);
+-# read (fd, b, 4);
+-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+-# }
+-#
+-# static unsigned int
+-# pe_as32 (ptr)
+-# void *ptr;
+-# {
+-# unsigned char *b = ptr;
+-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+-# }
+-#
+-# int
+-# main (argc, argv)
+-# int argc;
+-# char *argv[];
+-# {
+-# int dll;
+-# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+-# unsigned long export_rva, export_size, nsections, secptr, expptr;
+-# unsigned long name_rvas, nexp;
+-# unsigned char *expdata, *erva;
+-# char *filename, *dll_name;
+-#
+-# filename = argv[1];
+-#
+-# dll = open(filename, O_RDONLY|O_BINARY);
+-# if (!dll)
+-# return 1;
+-#
+-# dll_name = filename;
+-#
+-# for (i=0; filename[i]; i++)
+-# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+-# dll_name = filename + i +1;
+-#
+-# pe_header_offset = pe_get32 (dll, 0x3c);
+-# opthdr_ofs = pe_header_offset + 4 + 20;
+-# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+-#
+-# if (num_entries < 1) /* no exports */
+-# return 1;
+-#
+-# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+-# export_size = pe_get32 (dll, opthdr_ofs + 100);
+-# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+-# secptr = (pe_header_offset + 4 + 20 +
+-# pe_get16 (dll, pe_header_offset + 4 + 16));
+-#
+-# expptr = 0;
+-# for (i = 0; i < nsections; i++)
+-# {
+-# char sname[8];
+-# unsigned long secptr1 = secptr + 40 * i;
+-# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+-# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+-# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+-# lseek(dll, secptr1, SEEK_SET);
+-# read(dll, sname, 8);
+-# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+-# {
+-# expptr = fptr + (export_rva - vaddr);
+-# if (export_rva + export_size > vaddr + vsize)
+-# export_size = vsize - (export_rva - vaddr);
+-# break;
+-# }
+-# }
+-#
+-# expdata = (unsigned char*)malloc(export_size);
+-# lseek (dll, expptr, SEEK_SET);
+-# read (dll, expdata, export_size);
+-# erva = expdata - export_rva;
+-#
+-# nexp = pe_as32 (expdata+24);
+-# name_rvas = pe_as32 (expdata+32);
+-#
+-# printf ("EXPORTS\n");
+-# for (i = 0; i<nexp; i++)
+-# {
+-# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+-# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+-# }
+-#
+-# return 0;
+-# }
+-# /* impgen.c ends here */
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
++ libtool_args="$nonopt"
++ base_compile="$nonopt $@"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+@@ -818,18 +1096,13 @@ compiler."
+ convenience=
+ old_convenience=
+ deplibs=
+- linkopts=
++ old_deplibs=
++ compiler_flags=
++ linker_flags=
++ dllsearchpath=
++ lib_search_path=`pwd`
++ inst_prefix_dir=
+
+- if test -n "$shlibpath_var"; then
+- # get the directories listed in $shlibpath_var
+- eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+- else
+- lib_search_path=
+- fi
+- # now prepend the system-specific ones
+- eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
+- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+-
+ avoid_version=no
+ dlfiles=
+ dlprefiles=
+@@ -839,10 +1112,13 @@ compiler."
+ export_symbols_regex=
+ generated=
+ libobjs=
+- link_against_libtool_libs=
+ ltlibs=
+ module=no
++ no_install=no
+ objs=
++ non_pic_objects=
++ notinst_path= # paths that contain not-installed libtool libraries
++ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+@@ -854,11 +1130,14 @@ compiler."
+ temp_rpath=
+ thread_safe=no
+ vinfo=
++ vinfo_number=no
++
++ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+- case "$arg" in
++ case $arg in
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+@@ -867,14 +1146,15 @@ compiler."
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
++ prefer_static_libs=yes
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
++ prefer_static_libs=built
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+- prefer_static_libs=yes
+ break
+ ;;
+ esac
+@@ -884,20 +1164,27 @@ compiler."
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+- while test $# -gt 0; do
++ while test "$#" -gt 0; do
+ arg="$1"
+ shift
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
++ ;;
++ *) qarg=$arg ;;
++ esac
++ libtool_args="$libtool_args $qarg"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+- case "$prev" in
++ case $prev in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+- case "$prev" in
++ case $prev in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+@@ -905,7 +1192,7 @@ compiler."
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+- case "$arg" in
++ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+@@ -934,6 +1221,7 @@ compiler."
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
++ continue
+ ;;
+ esac
+ ;;
+@@ -941,7 +1229,7 @@ compiler."
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ prev=
+ continue
+@@ -951,18 +1239,140 @@ compiler."
+ prev=
+ continue
+ ;;
++ inst_prefix)
++ inst_prefix_dir="$arg"
++ prev=
++ continue
++ ;;
++ precious_regex)
++ precious_files_regex="$arg"
++ prev=
++ continue
++ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
++ objectlist)
++ if test -f "$arg"; then
++ save_arg=$arg
++ moreargs=
++ for fil in `cat $save_arg`
++ do
++# moreargs="$moreargs $fil"
++ arg=$fil
++ # A libtool-controlled object.
++
++ # Check to see that this really is a libtool object.
++ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ pic_object=
++ non_pic_object=
++
++ # Read the .lo file
++ # If there is no directory component, then add one.
++ case $arg in
++ */* | *\\*) . $arg ;;
++ *) . ./$arg ;;
++ esac
++
++ if test -z "$pic_object" || \
++ test -z "$non_pic_object" ||
++ test "$pic_object" = none && \
++ test "$non_pic_object" = none; then
++ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
++ exit $EXIT_FAILURE
++ fi
++
++ # Extract subdirectory from the argument.
++ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$arg"; then
++ xdir=
++ else
++ xdir="$xdir/"
++ fi
++
++ if test "$pic_object" != none; then
++ # Prepend the subdirectory the object is found in.
++ pic_object="$xdir$pic_object"
++
++ if test "$prev" = dlfiles; then
++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
++ dlfiles="$dlfiles $pic_object"
++ prev=
++ continue
++ else
++ # If libtool objects are unsupported, then we need to preload.
++ prev=dlprefiles
++ fi
++ fi
++
++ # CHECK ME: I think I busted this. -Ossama
++ if test "$prev" = dlprefiles; then
++ # Preload the old-style object.
++ dlprefiles="$dlprefiles $pic_object"
++ prev=
++ fi
++
++ # A PIC object.
++ libobjs="$libobjs $pic_object"
++ arg="$pic_object"
++ fi
++
++ # Non-PIC object.
++ if test "$non_pic_object" != none; then
++ # Prepend the subdirectory the object is found in.
++ non_pic_object="$xdir$non_pic_object"
++
++ # A standard non-PIC object
++ non_pic_objects="$non_pic_objects $non_pic_object"
++ if test -z "$pic_object" || test "$pic_object" = none ; then
++ arg="$non_pic_object"
++ fi
++ else
++ # If the PIC object exists, use it instead.
++ # $xdir was prepended to $pic_object above.
++ non_pic_object="$pic_object"
++ non_pic_objects="$non_pic_objects $non_pic_object"
++ fi
++ else
++ # Only an error if not doing a dry-run.
++ if test -z "$run"; then
++ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
++ exit $EXIT_FAILURE
++ else
++ # Dry-run case.
++
++ # Extract subdirectory from the argument.
++ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$arg"; then
++ xdir=
++ else
++ xdir="$xdir/"
++ fi
++
++ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
++ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
++ libobjs="$libobjs $pic_object"
++ non_pic_objects="$non_pic_objects $non_pic_object"
++ fi
++ fi
++ done
++ else
++ $echo "$modename: link input file \`$save_arg' does not exist"
++ exit $EXIT_FAILURE
++ fi
++ arg=$save_arg
++ prev=
++ continue
++ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+- case "$arg" in
++ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ if test "$prev" = rpath; then
+@@ -979,17 +1389,52 @@ compiler."
+ prev=
+ continue
+ ;;
++ xcompiler)
++ compiler_flags="$compiler_flags $qarg"
++ prev=
++ compile_command="$compile_command $qarg"
++ finalize_command="$finalize_command $qarg"
++ continue
++ ;;
++ xlinker)
++ linker_flags="$linker_flags $qarg"
++ compiler_flags="$compiler_flags $wl$qarg"
++ prev=
++ compile_command="$compile_command $wl$qarg"
++ finalize_command="$finalize_command $wl$qarg"
++ continue
++ ;;
++ xcclinker)
++ linker_flags="$linker_flags $qarg"
++ compiler_flags="$compiler_flags $qarg"
++ prev=
++ compile_command="$compile_command $qarg"
++ finalize_command="$finalize_command $qarg"
++ continue
++ ;;
++ shrext)
++ shrext_cmds="$arg"
++ prev=
++ continue
++ ;;
++ darwin_framework|darwin_framework_skip)
++ test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ prev=
++ continue
++ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+- fi
++ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+- case "$arg" in
++ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+@@ -1026,8 +1471,8 @@ compiler."
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+- $echo "$modename: not more than one -exported-symbols argument allowed"
+- exit 1
++ $echo "$modename: more than one -exported-symbols argument is not allowed"
++ exit $EXIT_FAILURE
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+@@ -1037,58 +1482,129 @@ compiler."
+ continue
+ ;;
+
++ -framework|-arch|-isysroot)
++ case " $CC " in
++ *" ${arg} ${1} "* | *" ${arg} ${1} "*)
++ prev=darwin_framework_skip ;;
++ *) compiler_flags="$compiler_flags $arg"
++ prev=darwin_framework ;;
++ esac
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ continue
++ ;;
++
++ -inst-prefix-dir)
++ prev=inst_prefix
++ continue
++ ;;
++
++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
++ # so, if we see these flags be careful not to treat them like -L
++ -L[A-Z][A-Z]*:*)
++ case $with_gcc/$host in
++ no/*-*-irix* | /*-*-irix*)
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ ;;
++ esac
++ continue
++ ;;
++
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+- case "$dir" in
++ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
++ notinst_path="$notinst_path $dir"
+ fi
+ dir="$absdir"
+ ;;
+ esac
+- case " $deplibs " in
+- *" $arg "*) ;;
+- *) deplibs="$deplibs $arg";;
+- esac
+- case " $lib_search_path " in
+- *" $dir "*) ;;
+- *) lib_search_path="$lib_search_path $dir";;
++ case "$deplibs " in
++ *" -L$dir "*) ;;
++ *)
++ deplibs="$deplibs -L$dir"
++ lib_search_path="$lib_search_path $dir"
++ ;;
+ esac
+- case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2*)
+- dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
+- case ":$dllsearchpath:" in
+- ::) dllsearchpath="$dllsearchdir";;
+- *":$dllsearchdir:"*) ;;
+- *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
++ case :$dllsearchpath: in
++ *":$dir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$dir";;
++ esac
++ case :$dllsearchpath: in
++ *":$testbindir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$testbindir";;
+ esac
+ ;;
+ esac
++ continue
+ ;;
+
+ -l*)
+- if test "$arg" = "-lc"; then
+- case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+- # These systems don't actually have c library (as such)
++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
++ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+- esac
+- elif test "$arg" = "-lm"; then
+- case "$host" in
+- *-*-cygwin* | *-*-beos*)
+- # These systems don't actually have math library (as such)
++ *-*-os2*)
++ # These systems don't actually have a C library (as such)
++ test "X$arg" = "X-lc" && continue
++ ;;
++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
++ # Do not include libc due to us having libc/libc_r.
++ test "X$arg" = "X-lc" && continue
++ ;;
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # Rhapsody C and math libraries are in the System framework
++ deplibs="$deplibs -framework System"
+ continue
+ ;;
++ *-*-sco3.2v5* | *-*-sco5v6*)
++ # Causes problems with __ctype
++ test "X$arg" = "X-lc" && continue
++ ;;
++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
++ # Compiler inserts libc in the correct place for threads to work
++ test "X$arg" = "X-lc" && continue
++ ;;
+ esac
++ elif test "X$arg" = "X-lc_r"; then
++ case $host in
++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
++ # Do not include libc_r directly, use -pthread flag.
++ continue
++ ;;
++ esac
+ fi
+ deplibs="$deplibs $arg"
++ continue
++ ;;
++
++ # Tru64 UNIX uses -model [arg] to determine the layout of C++
++ # classes, name mangling, and exception handling.
++ -model)
++ compile_command="$compile_command $arg"
++ compiler_flags="$compiler_flags $arg"
++ finalize_command="$finalize_command $arg"
++ prev=xcompiler
++ continue
++ ;;
++
++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
++ compiler_flags="$compiler_flags $arg"
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ continue
+ ;;
+
+ -module)
+@@ -1096,13 +1612,74 @@ compiler."
+ continue
+ ;;
+
++ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
++ # -r[0-9][0-9]* specifies the processor on the SGI compiler
++ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
++ # +DA*, +DD* enable 64-bit mode on the HP compiler
++ # -q* pass through compiler args for the IBM compiler
++ # -m* pass through architecture-specific compiler args for GCC
++ # -m*, -t[45]*, -txscale* pass through architecture-specific
++ # compiler args for GCC
++ # -pg pass through profiling flag for GCC
++ # @file GCC response files
++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
++ -t[45]*|-txscale*|@*)
++
++ # Unknown arguments in both finalize_command and compile_command need
++ # to be aesthetically quoted because they are evaled later.
++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ compiler_flags="$compiler_flags $arg"
++ continue
++ ;;
++
++ -shrext)
++ prev=shrext
++ continue
++ ;;
++
++ -no-fast-install)
++ fast_install=no
++ continue
++ ;;
++
++ -no-install)
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ # The PATH hackery in wrapper scripts is required on Windows
++ # in order for the loader to find any dlls it needs.
++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
++ fast_install=no
++ ;;
++ *) no_install=yes ;;
++ esac
++ continue
++ ;;
++
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
++ -objectlist)
++ prev=objectlist
++ continue
++ ;;
++
+ -o) prev=output ;;
+
++ -precious-files-regex)
++ prev=precious_regex
++ continue
++ ;;
++
+ -release)
+ prev=release
+ continue
+@@ -1121,11 +1698,11 @@ compiler."
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+- case "$dir" in
++ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ case "$xrpath " in
+@@ -1136,11 +1713,11 @@ compiler."
+ ;;
+
+ -static)
+- # If we have no pic_flag, then this is the same as -all-static.
+- if test -z "$pic_flag" && test -n "$link_static_flag"; then
+- compile_command="$compile_command $link_static_flag"
+- finalize_command="$finalize_command $link_static_flag"
+- fi
++ # The effects of -static are defined in a previous loop.
++ # We used to do the same as -all-static on platforms that
++ # didn't have a PIC flag, but the assumption that the effects
++ # would be equivalent was wrong. It would break on at least
++ # Digital Unix and AIX.
+ continue
+ ;;
+
+@@ -1153,388 +1730,1332 @@ compiler."
+ prev=vinfo
+ continue
+ ;;
++ -version-number)
++ prev=vinfo
++ vinfo_number=yes
++ continue
++ ;;
++
++ -Wc,*)
++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
++ arg=
++ save_ifs="$IFS"; IFS=','
++ for flag in $args; do
++ IFS="$save_ifs"
++ case $flag in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ flag="\"$flag\""
++ ;;
++ esac
++ arg="$arg $wl$flag"
++ compiler_flags="$compiler_flags $flag"
++ done
++ IFS="$save_ifs"
++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
++ ;;
++
++ -Wl,*)
++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
++ arg=
++ save_ifs="$IFS"; IFS=','
++ for flag in $args; do
++ IFS="$save_ifs"
++ case $flag in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ flag="\"$flag\""
++ ;;
++ esac
++ arg="$arg $wl$flag"
++ compiler_flags="$compiler_flags $wl$flag"
++ linker_flags="$linker_flags $flag"
++ done
++ IFS="$save_ifs"
++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
++ ;;
++
++ -Xcompiler)
++ prev=xcompiler
++ continue
++ ;;
++
++ -Xlinker)
++ prev=xlinker
++ continue
++ ;;
++
++ -XCClinker)
++ prev=xcclinker
++ continue
++ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+- case "$arg" in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+- *.o | *.obj | *.a | *.lib)
++ *.$objext)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
+
+ *.lo)
+- # A library object.
+- if test "$prev" = dlfiles; then
+- dlfiles="$dlfiles $arg"
+- if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
+- prev=
+- continue
++ # A libtool-controlled object.
++
++ # Check to see that this really is a libtool object.
++ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ pic_object=
++ non_pic_object=
++
++ # Read the .lo file
++ # If there is no directory component, then add one.
++ case $arg in
++ */* | *\\*) . $arg ;;
++ *) . ./$arg ;;
++ esac
++
++ if test -z "$pic_object" || \
++ test -z "$non_pic_object" ||
++ test "$pic_object" = none && \
++ test "$non_pic_object" = none; then
++ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
++ exit $EXIT_FAILURE
++ fi
++
++ # Extract subdirectory from the argument.
++ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$arg"; then
++ xdir=
++ else
++ xdir="$xdir/"
++ fi
++
++ if test "$pic_object" != none; then
++ # Prepend the subdirectory the object is found in.
++ pic_object="$xdir$pic_object"
++
++ if test "$prev" = dlfiles; then
++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
++ dlfiles="$dlfiles $pic_object"
++ prev=
++ continue
++ else
++ # If libtool objects are unsupported, then we need to preload.
++ prev=dlprefiles
++ fi
++ fi
++
++ # CHECK ME: I think I busted this. -Ossama
++ if test "$prev" = dlprefiles; then
++ # Preload the old-style object.
++ dlprefiles="$dlprefiles $pic_object"
++ prev=
++ fi
++
++ # A PIC object.
++ libobjs="$libobjs $pic_object"
++ arg="$pic_object"
++ fi
++
++ # Non-PIC object.
++ if test "$non_pic_object" != none; then
++ # Prepend the subdirectory the object is found in.
++ non_pic_object="$xdir$non_pic_object"
++
++ # A standard non-PIC object
++ non_pic_objects="$non_pic_objects $non_pic_object"
++ if test -z "$pic_object" || test "$pic_object" = none ; then
++ arg="$non_pic_object"
++ fi
+ else
+- # If libtool objects are unsupported, then we need to preload.
+- prev=dlprefiles
++ # If the PIC object exists, use it instead.
++ # $xdir was prepended to $pic_object above.
++ non_pic_object="$pic_object"
++ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+- fi
++ else
++ # Only an error if not doing a dry-run.
++ if test -z "$run"; then
++ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
++ exit $EXIT_FAILURE
++ else
++ # Dry-run case.
+
+- if test "$prev" = dlprefiles; then
+- # Preload the old-style object.
+- dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
+- prev=
++ # Extract subdirectory from the argument.
++ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$xdir" = "X$arg"; then
++ xdir=
++ else
++ xdir="$xdir/"
++ fi
++
++ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
++ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
++ libobjs="$libobjs $pic_object"
++ non_pic_objects="$non_pic_objects $non_pic_object"
++ fi
+ fi
+- libobjs="$libobjs $arg"
++ ;;
++
++ *.$libext)
++ # An archive.
++ deplibs="$deplibs $arg"
++ old_deplibs="$old_deplibs $arg"
++ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+- dlname=
+- libdir=
+- library_names=
+- old_library=
++ if test "$prev" = dlfiles; then
++ # This library was specified with -dlopen.
++ dlfiles="$dlfiles $arg"
++ prev=
++ elif test "$prev" = dlprefiles; then
++ # The library was specified with -dlpreopen.
++ dlprefiles="$dlprefiles $arg"
++ prev=
++ else
++ deplibs="$deplibs $arg"
++ fi
++ continue
++ ;;
++
++ # Some other compiler argument.
++ *)
++ # Unknown arguments in both finalize_command and compile_command need
++ # to be aesthetically quoted because they are evaled later.
++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ arg="\"$arg\""
++ ;;
++ esac
++ ;;
++ esac # arg
++
++ # Now actually substitute the argument into the commands.
++ if test -n "$arg"; then
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ fi
++ done # argument parsing loop
++
++ if test -n "$prev"; then
++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
++ $echo "$help" 1>&2
++ exit $EXIT_FAILURE
++ fi
++
++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
++ eval arg=\"$export_dynamic_flag_spec\"
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ fi
++
++ oldlibs=
++ # calculate the name of the file, without its directory
++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
++ libobjs_save="$libobjs"
++
++ if test -n "$shlibpath_var"; then
++ # get the directories listed in $shlibpath_var
++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
++ else
++ shlib_search_path=
++ fi
++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
++
++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
++ if test "X$output_objdir" = "X$output"; then
++ output_objdir="$objdir"
++ else
++ output_objdir="$output_objdir/$objdir"
++ fi
++ # Create the object directory.
++ if test ! -d "$output_objdir"; then
++ $show "$mkdir $output_objdir"
++ $run $mkdir $output_objdir
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
++ exit $exit_status
++ fi
++ fi
++
++ # Determine the type of output
++ case $output in
++ "")
++ $echo "$modename: you must specify an output file" 1>&2
++ $echo "$help" 1>&2
++ exit $EXIT_FAILURE
++ ;;
++ *.$libext) linkmode=oldlib ;;
++ *.lo | *.$objext) linkmode=obj ;;
++ *.la) linkmode=lib ;;
++ *) linkmode=prog ;; # Anything else should be a program.
++ esac
++
++ case $host in
++ *cygwin* | *mingw* | *pw32*)
++ # don't eliminate duplications in $postdeps and $predeps
++ duplicate_compiler_generated_deps=yes
++ ;;
++ *)
++ duplicate_compiler_generated_deps=$duplicate_deps
++ ;;
++ esac
++ specialdeplibs=
++
++ libs=
++ # Find all interdependent deplibs by searching for libraries
++ # that are linked more than once (e.g. -la -lb -la)
++ for deplib in $deplibs; do
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ libs="$libs $deplib"
++ done
++
++ if test "$linkmode" = lib; then
++ libs="$predeps $libs $compiler_lib_search_path $postdeps"
++
++ # Compute libraries that are listed more than once in $predeps
++ # $postdeps and mark them as special (i.e., whose duplicates are
++ # not to be eliminated).
++ pre_post_deps=
++ if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
++ for pre_post_dep in $predeps $postdeps; do
++ case "$pre_post_deps " in
++ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
++ esac
++ pre_post_deps="$pre_post_deps $pre_post_dep"
++ done
++ fi
++ pre_post_deps=
++ fi
++
++ deplibs=
++ newdependency_libs=
++ newlib_search_path=
++ need_relink=no # whether we're linking any uninstalled libtool libraries
++ notinst_deplibs= # not-installed libtool libraries
++ case $linkmode in
++ lib)
++ passes="conv link"
++ for file in $dlfiles $dlprefiles; do
++ case $file in
++ *.la) ;;
++ *)
++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
++ exit $EXIT_FAILURE
++ ;;
++ esac
++ done
++ ;;
++ prog)
++ compile_deplibs=
++ finalize_deplibs=
++ alldeplibs=no
++ newdlfiles=
++ newdlprefiles=
++ passes="conv scan dlopen dlpreopen link"
++ ;;
++ *) passes="conv"
++ ;;
++ esac
++ for pass in $passes; do
++ if test "$linkmode,$pass" = "lib,link" ||
++ test "$linkmode,$pass" = "prog,scan"; then
++ libs="$deplibs"
++ deplibs=
++ fi
++ if test "$linkmode" = prog; then
++ case $pass in
++ dlopen) libs="$dlfiles" ;;
++ dlpreopen) libs="$dlprefiles" ;;
++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
++ esac
++ fi
++ if test "$pass" = dlopen; then
++ # Collect dlpreopened libraries
++ save_deplibs="$deplibs"
++ deplibs=
++ fi
++ for deplib in $libs; do
++ lib=
++ found=no
++ case $deplib in
++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
++ if test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ compiler_flags="$compiler_flags $deplib"
++ fi
++ continue
++ ;;
++ -l*)
++ if test "$linkmode" != lib && test "$linkmode" != prog; then
++ $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
++ continue
++ fi
++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
++ for search_ext in .la $std_shrext .so .a; do
++ # Search the libtool library
++ lib="$searchdir/lib${name}${search_ext}"
++ if test -f "$lib"; then
++ if test "$search_ext" = ".la"; then
++ found=yes
++ else
++ found=no
++ fi
++ break 2
++ fi
++ done
++ done
++ if test "$found" != yes; then
++ # deplib doesn't seem to be a libtool library
++ if test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ deplibs="$deplib $deplibs"
++ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
++ fi
++ continue
++ else # deplib is a libtool library
++ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
++ # We need to do some special things here, and not later.
++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
++ case " $predeps $postdeps " in
++ *" $deplib "*)
++ if (${SED} -e '2q' $lib |
++ grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ library_names=
++ old_library=
++ case $lib in
++ */* | *\\*) . $lib ;;
++ *) . ./$lib ;;
++ esac
++ for l in $old_library $library_names; do
++ ll="$l"
++ done
++ if test "X$ll" = "X$old_library" ; then # only static version available
++ found=no
++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$ladir" = "X$lib" && ladir="."
++ lib=$ladir/$old_library
++ if test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ deplibs="$deplib $deplibs"
++ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
++ fi
++ continue
++ fi
++ fi
++ ;;
++ *) ;;
++ esac
++ fi
++ fi
++ ;; # -l
++ -L*)
++ case $linkmode in
++ lib)
++ deplibs="$deplib $deplibs"
++ test "$pass" = conv && continue
++ newdependency_libs="$deplib $newdependency_libs"
++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
++ ;;
++ prog)
++ if test "$pass" = conv; then
++ deplibs="$deplib $deplibs"
++ continue
++ fi
++ if test "$pass" = scan; then
++ deplibs="$deplib $deplibs"
++ else
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ fi
++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
++ ;;
++ *)
++ $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
++ ;;
++ esac # linkmode
++ continue
++ ;; # -L
++ -R*)
++ if test "$pass" = link; then
++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
++ # Make sure the xrpath contains only unique directories.
++ case "$xrpath " in
++ *" $dir "*) ;;
++ *) xrpath="$xrpath $dir" ;;
++ esac
++ fi
++ deplibs="$deplib $deplibs"
++ continue
++ ;;
++ *.la) lib="$deplib" ;;
++ *.$libext)
++ if test "$pass" = conv; then
++ deplibs="$deplib $deplibs"
++ continue
++ fi
++ case $linkmode in
++ lib)
++ valid_a_lib=no
++ case $deplibs_check_method in
++ match_pattern*)
++ set dummy $deplibs_check_method
++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
++ if eval $echo \"$deplib\" 2>/dev/null \
++ | $SED 10q \
++ | $EGREP "$match_pattern_regex" > /dev/null; then
++ valid_a_lib=yes
++ fi
++ ;;
++ pass_all)
++ valid_a_lib=yes
++ ;;
++ esac
++ if test "$valid_a_lib" != yes; then
++ $echo
++ $echo "*** Warning: Trying to link with static lib archive $deplib."
++ $echo "*** I have the capability to make that library automatically link in when"
++ $echo "*** you link to this library. But I can only do this if you have a"
++ $echo "*** shared version of the library, which you do not appear to have"
++ $echo "*** because the file extensions .$libext of this argument makes me believe"
++ $echo "*** that it is just a static archive that I should not used here."
++ else
++ $echo
++ $echo "*** Warning: Linking the shared library $output against the"
++ $echo "*** static library $deplib is not portable!"
++ deplibs="$deplib $deplibs"
++ fi
++ continue
++ ;;
++ prog)
++ if test "$pass" != link; then
++ deplibs="$deplib $deplibs"
++ else
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ fi
++ continue
++ ;;
++ esac # linkmode
++ ;; # *.$libext
++ *.lo | *.$objext)
++ if test "$pass" = conv; then
++ deplibs="$deplib $deplibs"
++ elif test "$linkmode" = prog; then
++ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
++ # If there is no dlopen support or we're linking statically,
++ # we need to preload.
++ newdlprefiles="$newdlprefiles $deplib"
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ newdlfiles="$newdlfiles $deplib"
++ fi
++ fi
++ continue
++ ;;
++ %DEPLIBS%)
++ alldeplibs=yes
++ continue
++ ;;
++ esac # case $deplib
++ if test "$found" = yes || test -f "$lib"; then :
++ else
++ $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
++ exit $EXIT_FAILURE
++ fi
+
+ # Check to see that this really is a libtool archive.
+- if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++ if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+- $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
+- exit 1
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ exit $EXIT_FAILURE
+ fi
+
++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$ladir" = "X$lib" && ladir="."
++
++ dlname=
++ dlopen=
++ dlpreopen=
++ libdir=
++ library_names=
++ old_library=
+ # If the library was installed with an old release of libtool,
+- # it will not redefine variable installed.
++ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
++ shouldnotlink=no
++ avoidtemprpath=
++
+
+ # Read the .la file
+- # If there is no directory component, then add one.
+- case "$arg" in
+- */* | *\\*) . $arg ;;
+- *) . ./$arg ;;
++ case $lib in
++ */* | *\\*) . $lib ;;
++ *) . ./$lib ;;
+ esac
+
++ if test "$linkmode,$pass" = "lib,link" ||
++ test "$linkmode,$pass" = "prog,scan" ||
++ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
++ fi
++
++ if test "$pass" = conv; then
++ # Only check for convenience libraries
++ deplibs="$lib $deplibs"
++ if test -z "$libdir"; then
++ if test -z "$old_library"; then
++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ # It is a libtool convenience library, so add in its objects.
++ convenience="$convenience $ladir/$objdir/$old_library"
++ old_convenience="$old_convenience $ladir/$objdir/$old_library"
++ tmp_libs=
++ for deplib in $dependency_libs; do
++ deplibs="$deplib $deplibs"
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done
++ elif test "$linkmode" != prog && test "$linkmode" != lib; then
++ $echo "$modename: \`$lib' is not a convenience library" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ continue
++ fi # $pass = conv
++
++
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+-
+ if test -z "$linklib"; then
+- $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
+- exit 1
++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
++ exit $EXIT_FAILURE
+ fi
+
+- # Find the relevant object directory and library name.
+- name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
++ # This library was specified with -dlopen.
++ if test "$pass" = dlopen; then
++ if test -z "$libdir"; then
++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ if test -z "$dlname" ||
++ test "$dlopen_support" != yes ||
++ test "$build_libtool_libs" = no; then
++ # If there is no dlname, no dlopen support or we're linking
++ # statically, we need to preload. We also need to preload any
++ # dependent libraries so libltdl's deplib preloader doesn't
++ # bomb out in the load deplibs phase.
++ dlprefiles="$dlprefiles $lib $dependency_libs"
++ else
++ newdlfiles="$newdlfiles $lib"
++ fi
++ continue
++ fi # $pass = dlopen
++
++ # We need an absolute path.
++ case $ladir in
++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
++ *)
++ abs_ladir=`cd "$ladir" && pwd`
++ if test -z "$abs_ladir"; then
++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
++ abs_ladir="$ladir"
++ fi
++ ;;
++ esac
++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
++ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+- dir="$libdir"
++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
++ $echo "$modename: warning: library \`$lib' was moved." 1>&2
++ dir="$ladir"
++ absdir="$abs_ladir"
++ libdir="$abs_ladir"
++ else
++ dir="$libdir"
++ absdir="$libdir"
++ fi
++ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+- dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$dir" = "X$arg"; then
+- dir="$objdir"
++ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
++ dir="$ladir"
++ absdir="$abs_ladir"
++ # Remove this search path later
++ notinst_path="$notinst_path $abs_ladir"
+ else
+- dir="$dir/$objdir"
++ dir="$ladir/$objdir"
++ absdir="$abs_ladir/$objdir"
++ # Remove this search path later
++ notinst_path="$notinst_path $abs_ladir"
++ fi
++ fi # $installed = yes
++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
++
++ # This library was specified with -dlpreopen.
++ if test "$pass" = dlpreopen; then
++ if test -z "$libdir"; then
++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
++ exit $EXIT_FAILURE
+ fi
++ # Prefer using a static library (so that no silly _DYNAMIC symbols
++ # are required to link).
++ if test -n "$old_library"; then
++ newdlprefiles="$newdlprefiles $dir/$old_library"
++ # Otherwise, use the dlname, so that lt_dlopen finds it.
++ elif test -n "$dlname"; then
++ newdlprefiles="$newdlprefiles $dir/$dlname"
++ else
++ newdlprefiles="$newdlprefiles $dir/$linklib"
++ fi
++ fi # $pass = dlpreopen
++
++ if test -z "$libdir"; then
++ # Link the convenience library
++ if test "$linkmode" = lib; then
++ deplibs="$dir/$old_library $deplibs"
++ elif test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$dir/$old_library $compile_deplibs"
++ finalize_deplibs="$dir/$old_library $finalize_deplibs"
++ else
++ deplibs="$lib $deplibs" # used for prog,scan pass
++ fi
++ continue
+ fi
+
+- if test -n "$dependency_libs"; then
+- # Extract -R and -L from dependency_libs
+- temp_deplibs=
++
++ if test "$linkmode" = prog && test "$pass" != link; then
++ newlib_search_path="$newlib_search_path $ladir"
++ deplibs="$lib $deplibs"
++
++ linkalldeplibs=no
++ if test "$link_all_deplibs" != no || test -z "$library_names" ||
++ test "$build_libtool_libs" = no; then
++ linkalldeplibs=yes
++ fi
++
++ tmp_libs=
+ for deplib in $dependency_libs; do
+- case "$deplib" in
+- -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+- case " $rpath $xrpath " in
+- *" $temp_xrpath "*) ;;
+- *) xrpath="$xrpath $temp_xrpath";;
+- esac;;
+- -L*) case "$compile_command $temp_deplibs " in
+- *" $deplib "*) ;;
+- *) temp_deplibs="$temp_deplibs $deplib";;
+- esac
+- temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+- case " $lib_search_path " in
+- *" $temp_dir "*) ;;
+- *) lib_search_path="$lib_search_path $temp_dir";;
+- esac
+- ;;
+- *) temp_deplibs="$temp_deplibs $deplib";;
++ case $deplib in
++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+ esac
+- done
+- dependency_libs="$temp_deplibs"
+- fi
+-
+- if test -z "$libdir"; then
+- # It is a libtool convenience library, so add in its objects.
+- convenience="$convenience $dir/$old_library"
+- old_convenience="$old_convenience $dir/$old_library"
+- deplibs="$deplibs$dependency_libs"
+- compile_command="$compile_command $dir/$old_library$dependency_libs"
+- finalize_command="$finalize_command $dir/$old_library$dependency_libs"
++ # Need to link against all dependency_libs?
++ if test "$linkalldeplibs" = yes; then
++ deplibs="$deplib $deplibs"
++ else
++ # Need to hardcode shared library paths
++ # or/and link against static libraries
++ newdependency_libs="$deplib $newdependency_libs"
++ fi
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done # for deplib
+ continue
+- fi
++ fi # $linkmode = prog...
+
+- # This library was specified with -dlopen.
+- if test "$prev" = dlfiles; then
+- dlfiles="$dlfiles $arg"
+- if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
+- # If there is no dlname, no dlopen support or we're linking statically,
+- # we need to preload.
+- prev=dlprefiles
+- else
+- # We should not create a dependency on this library, but we
+- # may need any libraries it requires.
+- compile_command="$compile_command$dependency_libs"
+- finalize_command="$finalize_command$dependency_libs"
+- prev=
++ if test "$linkmode,$pass" = "prog,link"; then
++ if test -n "$library_names" &&
++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
++ # We need to hardcode the library path
++ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
++ # Make sure the rpath contains only unique directories.
++ case "$temp_rpath " in
++ *" $dir "*) ;;
++ *" $absdir "*) ;;
++ *) temp_rpath="$temp_rpath $absdir" ;;
++ esac
++ fi
++
++ # Hardcode the library path.
++ # Skip directories that are in the system default run-time
++ # search path.
++ case " $sys_lib_dlsearch_path " in
++ *" $absdir "*) ;;
++ *)
++ case "$compile_rpath " in
++ *" $absdir "*) ;;
++ *) compile_rpath="$compile_rpath $absdir"
++ esac
++ ;;
++ esac
++ case " $sys_lib_dlsearch_path " in
++ *" $libdir "*) ;;
++ *)
++ case "$finalize_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_rpath="$finalize_rpath $libdir"
++ esac
++ ;;
++ esac
++ fi # $linkmode,$pass = prog,link...
++
++ if test "$alldeplibs" = yes &&
++ { test "$deplibs_check_method" = pass_all ||
++ { test "$build_libtool_libs" = yes &&
++ test -n "$library_names"; }; }; then
++ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+- # The library was specified with -dlpreopen.
+- if test "$prev" = dlprefiles; then
+- # Prefer using a static library (so that no silly _DYNAMIC symbols
+- # are required to link).
+- if test -n "$old_library"; then
+- dlprefiles="$dlprefiles $dir/$old_library"
+- else
+- dlprefiles="$dlprefiles $dir/$linklib"
+- fi
+- prev=
++ link_static=no # Whether the deplib will be linked statically
++ use_static_libs=$prefer_static_libs
++ if test "$use_static_libs" = built && test "$installed" = yes ; then
++ use_static_libs=no
+ fi
+-
+ if test -n "$library_names" &&
+- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+- link_against_libtool_libs="$link_against_libtool_libs $arg"
+- if test -n "$shlibpath_var"; then
+- # Make sure the rpath contains only unique directories.
+- case "$temp_rpath " in
+- *" $dir "*) ;;
+- *) temp_rpath="$temp_rpath $dir" ;;
+- esac
+- fi
+-
+- # We need an absolute path.
+- case "$dir" in
+- [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+- *)
+- absdir=`cd "$dir" && pwd`
+- if test -z "$absdir"; then
+- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+- absdir="$dir"
++ { test "$use_static_libs" = no || test -z "$old_library"; }; then
++ if test "$installed" = no; then
++ notinst_deplibs="$notinst_deplibs $lib"
++ need_relink=yes
++ fi
++ # This is a shared library
++
++ # Warn about portability, can't link against -module's on
++ # some systems (darwin)
++ if test "$shouldnotlink" = yes && test "$pass" = link ; then
++ $echo
++ if test "$linkmode" = prog; then
++ $echo "*** Warning: Linking the executable $output against the loadable module"
++ else
++ $echo "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+- ;;
+- esac
+-
+- # This is the magic to use -rpath.
+- # Skip directories that are in the system default run-time
+- # search path, unless they have been requested with -R.
+- case " $sys_lib_dlsearch_path " in
+- *" $absdir "*) ;;
+- *)
+- case "$compile_rpath " in
++ $echo "*** $linklib is not portable!"
++ fi
++ if test "$linkmode" = lib &&
++ test "$hardcode_into_libs" = yes; then
++ # Hardcode the library path.
++ # Skip directories that are in the system default run-time
++ # search path.
++ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+- *) compile_rpath="$compile_rpath $absdir"
++ *)
++ case "$compile_rpath " in
++ *" $absdir "*) ;;
++ *) compile_rpath="$compile_rpath $absdir"
++ esac
++ ;;
+ esac
+- ;;
+- esac
+-
+- case " $sys_lib_dlsearch_path " in
+- *" $libdir "*) ;;
+- *)
+- case "$finalize_rpath " in
++ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+- *) finalize_rpath="$finalize_rpath $libdir"
++ *)
++ case "$finalize_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_rpath="$finalize_rpath $libdir"
++ esac
++ ;;
+ esac
+- ;;
+- esac
++ fi
+
+- lib_linked=yes
+- case "$hardcode_action" in
+- immediate | unsupported)
+- if test "$hardcode_direct" = no; then
+- compile_command="$compile_command $dir/$linklib"
+- deplibs="$deplibs $dir/$linklib"
+- case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2*)
+- dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
+- if test -n "$dllsearchpath"; then
+- dllsearchpath="$dllsearchpath:$dllsearchdir"
+- else
+- dllsearchpath="$dllsearchdir"
+- fi
++ if test -n "$old_archive_from_expsyms_cmds"; then
++ # figure out the soname
++ set dummy $library_names
++ realname="$2"
++ shift; shift
++ libname=`eval \\$echo \"$libname_spec\"`
++ # use dlname if we got it. it's perfectly good, no?
++ if test -n "$dlname"; then
++ soname="$dlname"
++ elif test -n "$soname_spec"; then
++ # bleh windows
++ case $host in
++ *cygwin* | mingw*)
++ major=`expr $current - $age`
++ versuffix="-$major"
+ ;;
+ esac
+- elif test "$hardcode_minus_L" = no; then
+- case "$host" in
+- *-*-sunos*)
+- compile_shlibpath="$compile_shlibpath$dir:"
+- ;;
+- esac
+- case "$compile_command " in
+- *" -L$dir "*) ;;
+- *) compile_command="$compile_command -L$dir";;
+- esac
+- compile_command="$compile_command -l$name"
+- deplibs="$deplibs -L$dir -l$name"
+- elif test "$hardcode_shlibpath_var" = no; then
+- case ":$compile_shlibpath:" in
+- *":$dir:"*) ;;
+- *) compile_shlibpath="$compile_shlibpath$dir:";;
++ eval soname=\"$soname_spec\"
++ else
++ soname="$realname"
++ fi
++
++ # Make a new name for the extract_expsyms_cmds to use
++ soroot="$soname"
++ soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
++ newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
++
++ # If the library has no export list, then create one now
++ if test -f "$output_objdir/$soname-def"; then :
++ else
++ $show "extracting exported symbol list from \`$soname'"
++ save_ifs="$IFS"; IFS='~'
++ cmds=$extract_expsyms_cmds
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ fi
++
++ # Create $newlib
++ if test -f "$output_objdir/$newlib"; then :; else
++ $show "generating import library for \`$soname'"
++ save_ifs="$IFS"; IFS='~'
++ cmds=$old_archive_from_expsyms_cmds
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++ fi
++ # make sure the library variables are pointing to the new library
++ dir=$output_objdir
++ linklib=$newlib
++ fi # test -n "$old_archive_from_expsyms_cmds"
++
++ if test "$linkmode" = prog || test "$mode" != relink; then
++ add_shlibpath=
++ add_dir=
++ add=
++ lib_linked=yes
++ case $hardcode_action in
++ immediate | unsupported)
++ if test "$hardcode_direct" = no; then
++ add="$dir/$linklib"
++ case $host in
++ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
++ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
++ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
++ *-*-unixware7*) add_dir="-L$dir" ;;
++ *-*-darwin* )
++ # if the lib is a module then we can not link against
++ # it, someone is ignoring the new warnings I added
++ if /usr/bin/file -L $add 2> /dev/null |
++ $EGREP ": [^:]* bundle" >/dev/null ; then
++ $echo "** Warning, lib $linklib is a module, not a shared library"
++ if test -z "$old_library" ; then
++ $echo
++ $echo "** And there doesn't seem to be a static archive available"
++ $echo "** The link will probably fail, sorry"
++ else
++ add="$dir/$old_library"
++ fi
++ fi
++ esac
++ elif test "$hardcode_minus_L" = no; then
++ case $host in
++ *-*-sunos*) add_shlibpath="$dir" ;;
++ esac
++ add_dir="-L$dir"
++ add="-l$name"
++ elif test "$hardcode_shlibpath_var" = no; then
++ add_shlibpath="$dir"
++ add="-l$name"
++ else
++ lib_linked=no
++ fi
++ ;;
++ relink)
++ if test "$hardcode_direct" = yes; then
++ add="$dir/$linklib"
++ elif test "$hardcode_minus_L" = yes; then
++ add_dir="-L$dir"
++ # Try looking first in the location we're being installed to.
++ if test -n "$inst_prefix_dir"; then
++ case $libdir in
++ [\\/]*)
++ add_dir="$add_dir -L$inst_prefix_dir$libdir"
++ ;;
++ esac
++ fi
++ add="-l$name"
++ elif test "$hardcode_shlibpath_var" = yes; then
++ add_shlibpath="$dir"
++ add="-l$name"
++ else
++ lib_linked=no
++ fi
++ ;;
++ *) lib_linked=no ;;
++ esac
++
++ if test "$lib_linked" != yes; then
++ $echo "$modename: configuration error: unsupported hardcode properties"
++ exit $EXIT_FAILURE
++ fi
++
++ if test -n "$add_shlibpath"; then
++ case :$compile_shlibpath: in
++ *":$add_shlibpath:"*) ;;
++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+ esac
+- compile_command="$compile_command -l$name"
+- deplibs="$deplibs -l$name"
++ fi
++ if test "$linkmode" = prog; then
++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
++ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+- lib_linked=no
++ test -n "$add_dir" && deplibs="$add_dir $deplibs"
++ test -n "$add" && deplibs="$add $deplibs"
++ if test "$hardcode_direct" != yes && \
++ test "$hardcode_minus_L" != yes && \
++ test "$hardcode_shlibpath_var" = yes; then
++ case :$finalize_shlibpath: in
++ *":$libdir:"*) ;;
++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
++ esac
++ fi
+ fi
+- ;;
++ fi
+
+- relink)
++ if test "$linkmode" = prog || test "$mode" = relink; then
++ add_shlibpath=
++ add_dir=
++ add=
++ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+- compile_command="$compile_command $absdir/$linklib"
+- deplibs="$deplibs $absdir/$linklib"
++ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+- case "$compile_command " in
+- *" -L$absdir "*) ;;
+- *) compile_command="$compile_command -L$absdir";;
+- esac
+- compile_command="$compile_command -l$name"
+- deplibs="$deplibs -L$absdir -l$name"
++ add_dir="-L$libdir"
++ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+- case ":$compile_shlibpath:" in
+- *":$absdir:"*) ;;
+- *) compile_shlibpath="$compile_shlibpath$absdir:";;
++ case :$finalize_shlibpath: in
++ *":$libdir:"*) ;;
++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+- compile_command="$compile_command -l$name"
+- deplibs="$deplibs -l$name"
++ add="-l$name"
++ elif test "$hardcode_automatic" = yes; then
++ if test -n "$inst_prefix_dir" &&
++ test -f "$inst_prefix_dir$libdir/$linklib" ; then
++ add="$inst_prefix_dir$libdir/$linklib"
++ else
++ add="$libdir/$linklib"
++ fi
+ else
+- lib_linked=no
++ # We cannot seem to hardcode it, guess we'll fake it.
++ add_dir="-L$libdir"
++ # Try looking first in the location we're being installed to.
++ if test -n "$inst_prefix_dir"; then
++ case $libdir in
++ [\\/]*)
++ add_dir="$add_dir -L$inst_prefix_dir$libdir"
++ ;;
++ esac
++ fi
++ add="-l$name"
+ fi
+- ;;
+-
+- *)
+- lib_linked=no
+- ;;
+- esac
+-
+- if test "$lib_linked" != yes; then
+- $echo "$modename: configuration error: unsupported hardcode properties"
+- exit 1
+- fi
+
+- # Finalize command for both is simple: just hardcode it.
+- if test "$hardcode_direct" = yes; then
+- finalize_command="$finalize_command $libdir/$linklib"
+- elif test "$hardcode_minus_L" = yes; then
+- case "$finalize_command " in
+- *" -L$libdir "*) ;;
+- *) finalize_command="$finalize_command -L$libdir";;
+- esac
+- finalize_command="$finalize_command -l$name"
+- elif test "$hardcode_shlibpath_var" = yes; then
+- case ":$finalize_shlibpath:" in
+- *":$libdir:"*) ;;
+- *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
+- esac
+- finalize_command="$finalize_command -l$name"
+- else
+- # We cannot seem to hardcode it, guess we'll fake it.
+- case "$finalize_command " in
+- *" -L$dir "*) ;;
+- *) finalize_command="$finalize_command -L$libdir";;
+- esac
+- finalize_command="$finalize_command -l$name"
+- fi
+- else
+- # Transform directly to old archives if we don't build new libraries.
+- if test -n "$pic_flag" && test -z "$old_library"; then
+- $echo "$modename: cannot find static library for \`$arg'" 1>&2
+- exit 1
++ if test "$linkmode" = prog; then
++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
++ else
++ test -n "$add_dir" && deplibs="$add_dir $deplibs"
++ test -n "$add" && deplibs="$add $deplibs"
++ fi
+ fi
+-
++ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+- compile_command="$compile_command $dir/$linklib"
+- finalize_command="$finalize_command $dir/$linklib"
++ compile_deplibs="$dir/$linklib $compile_deplibs"
++ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+- case "$compile_command " in
+- *" -L$dir "*) ;;
+- *) compile_command="$compile_command -L$dir";;
+- esac
+- compile_command="$compile_command -l$name"
+- case "$finalize_command " in
+- *" -L$dir "*) ;;
+- *) finalize_command="$finalize_command -L$dir";;
+- esac
+- finalize_command="$finalize_command -l$name"
++ compile_deplibs="-l$name -L$dir $compile_deplibs"
++ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+- fi
++ elif test "$build_libtool_libs" = yes; then
++ # Not a shared library
++ if test "$deplibs_check_method" != pass_all; then
++ # We're trying link a shared library against a static one
++ # but the system doesn't support it.
++
++ # Just print a warning and add the library to dependency_libs so
++ # that the program can be linked against the static library.
++ $echo
++ $echo "*** Warning: This system can not link to static lib archive $lib."
++ $echo "*** I have the capability to make that library automatically link in when"
++ $echo "*** you link to this library. But I can only do this if you have a"
++ $echo "*** shared version of the library, which you do not appear to have."
++ if test "$module" = yes; then
++ $echo "*** But as you try to build a module library, libtool will still create "
++ $echo "*** a static module, that should work as long as the dlopening application"
++ $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
++ if test -z "$global_symbol_pipe"; then
++ $echo
++ $echo "*** However, this would only work if libtool was able to extract symbol"
++ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
++ $echo "*** not find such a program. So, this module is probably useless."
++ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
++ fi
++ if test "$build_old_libs" = no; then
++ build_libtool_libs=module
++ build_old_libs=yes
++ else
++ build_libtool_libs=no
++ fi
++ fi
++ else
++ deplibs="$dir/$old_library $deplibs"
++ link_static=yes
++ fi
++ fi # link shared/static library?
+
+- # Add in any libraries that this one depends upon.
+- compile_command="$compile_command$dependency_libs"
+- finalize_command="$finalize_command$dependency_libs"
+- continue
+- ;;
++ if test "$linkmode" = lib; then
++ if test -n "$dependency_libs" &&
++ { test "$hardcode_into_libs" != yes ||
++ test "$build_old_libs" = yes ||
++ test "$link_static" = yes; }; then
++ # Extract -R from dependency_libs
++ temp_deplibs=
++ for libdir in $dependency_libs; do
++ case $libdir in
++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
++ case " $xrpath " in
++ *" $temp_xrpath "*) ;;
++ *) xrpath="$xrpath $temp_xrpath";;
++ esac;;
++ *) temp_deplibs="$temp_deplibs $libdir";;
++ esac
++ done
++ dependency_libs="$temp_deplibs"
++ fi
+
+- # Some other compiler argument.
+- *)
+- # Unknown arguments in both finalize_command and compile_command need
+- # to be aesthetically quoted because they are evaled later.
+- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+- case "$arg" in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+- arg="\"$arg\""
+- ;;
+- esac
+- ;;
+- esac
++ newlib_search_path="$newlib_search_path $absdir"
++ # Link against this library
++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
++ # ... and its dependency_libs
++ tmp_libs=
++ for deplib in $dependency_libs; do
++ newdependency_libs="$deplib $newdependency_libs"
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done
+
+- # Now actually substitute the argument into the commands.
+- if test -n "$arg"; then
+- compile_command="$compile_command $arg"
+- finalize_command="$finalize_command $arg"
++ if test "$link_all_deplibs" != no; then
++ # Add the search paths of all dependency libraries
++ for deplib in $dependency_libs; do
++ case $deplib in
++ -L*) path="$deplib" ;;
++ *.la)
++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
++ test "X$dir" = "X$deplib" && dir="."
++ # We need an absolute path.
++ case $dir in
++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
++ *)
++ absdir=`cd "$dir" && pwd`
++ if test -z "$absdir"; then
++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
++ absdir="$dir"
++ fi
++ ;;
++ esac
++ if grep "^installed=no" $deplib > /dev/null; then
++ path="$absdir/$objdir"
++ else
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ if test "$absdir" != "$libdir"; then
++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
++ fi
++ path="$absdir"
++ fi
++ depdepl=
++ case $host in
++ *-*-darwin*)
++ # we do not want to link against static libs,
++ # but need to link against shared
++ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
++ if test -n "$deplibrary_names" ; then
++ for tmp in $deplibrary_names ; do
++ depdepl=$tmp
++ done
++ if test -f "$path/$depdepl" ; then
++ depdepl="$path/$depdepl"
++ fi
++ # do not add paths which are already there
++ case " $newlib_search_path " in
++ *" $path "*) ;;
++ *) newlib_search_path="$newlib_search_path $path";;
++ esac
++ fi
++ path=""
++ ;;
++ *)
++ path="-L$path"
++ ;;
++ esac
++ ;;
++ -l*)
++ case $host in
++ *-*-darwin*)
++ # Again, we only want to link against shared libraries
++ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
++ for tmp in $newlib_search_path ; do
++ if test -f "$tmp/lib$tmp_libs.dylib" ; then
++ eval depdepl="$tmp/lib$tmp_libs.dylib"
++ break
++ fi
++ done
++ path=""
++ ;;
++ *) continue ;;
++ esac
++ ;;
++ *) continue ;;
++ esac
++ case " $deplibs " in
++ *" $path "*) ;;
++ *) deplibs="$path $deplibs" ;;
++ esac
++ case " $deplibs " in
++ *" $depdepl "*) ;;
++ *) deplibs="$depdepl $deplibs" ;;
++ esac
++ done
++ fi # link_all_deplibs != no
++ fi # linkmode = lib
++ done # for deplib in $libs
++ dependency_libs="$newdependency_libs"
++ if test "$pass" = dlpreopen; then
++ # Link the dlpreopened libraries before other libraries
++ for deplib in $save_deplibs; do
++ deplibs="$deplib $deplibs"
++ done
+ fi
+- done
+-
+- if test -n "$prev"; then
+- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+- $echo "$help" 1>&2
+- exit 1
+- fi
+-
+- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+- eval arg=\"$export_dynamic_flag_spec\"
+- compile_command="$compile_command $arg"
+- finalize_command="$finalize_command $arg"
+- fi
+-
+- oldlibs=
+- # calculate the name of the file, without its directory
+- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+- libobjs_save="$libobjs"
+-
+- case "$output" in
+- "")
+- $echo "$modename: you must specify an output file" 1>&2
+- $echo "$help" 1>&2
+- exit 1
+- ;;
++ if test "$pass" != dlopen; then
++ if test "$pass" != conv; then
++ # Make sure lib_search_path contains only unique directories.
++ lib_search_path=
++ for dir in $newlib_search_path; do
++ case "$lib_search_path " in
++ *" $dir "*) ;;
++ *) lib_search_path="$lib_search_path $dir" ;;
++ esac
++ done
++ newlib_search_path=
++ fi
+
+- *.a | *.lib)
+- if test -n "$link_against_libtool_libs"; then
+- $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
+- exit 1
++ if test "$linkmode,$pass" != "prog,link"; then
++ vars="deplibs"
++ else
++ vars="compile_deplibs finalize_deplibs"
++ fi
++ for var in $vars dependency_libs; do
++ # Add libraries to $var in reverse order
++ eval tmp_libs=\"\$$var\"
++ new_libs=
++ for deplib in $tmp_libs; do
++ # FIXME: Pedantically, this is the right thing to do, so
++ # that some nasty dependency loop isn't accidentally
++ # broken:
++ #new_libs="$deplib $new_libs"
++ # Pragmatically, this seems to cause very few problems in
++ # practice:
++ case $deplib in
++ -L*) new_libs="$deplib $new_libs" ;;
++ -R*) ;;
++ *)
++ # And here is the reason: when a library appears more
++ # than once as an explicit dependence of a library, or
++ # is implicitly linked in more than once by the
++ # compiler, it is considered special, and multiple
++ # occurrences thereof are not removed. Compare this
++ # with having the same library being listed as a
++ # dependency of multiple other libraries: in this case,
++ # we know (pedantically, we assume) the library does not
++ # need to be listed more than once, so we keep only the
++ # last copy. This is not always right, but it is rare
++ # enough that we require users that really mean to play
++ # such unportable linking tricks to link the library
++ # using -Wl,-lname, so that libtool does not consider it
++ # for duplicate removal.
++ case " $specialdeplibs " in
++ *" $deplib "*) new_libs="$deplib $new_libs" ;;
++ *)
++ case " $new_libs " in
++ *" $deplib "*) ;;
++ *) new_libs="$deplib $new_libs" ;;
++ esac
++ ;;
++ esac
++ ;;
++ esac
++ done
++ tmp_libs=
++ for deplib in $new_libs; do
++ case $deplib in
++ -L*)
++ case " $tmp_libs " in
++ *" $deplib "*) ;;
++ *) tmp_libs="$tmp_libs $deplib" ;;
++ esac
++ ;;
++ *) tmp_libs="$tmp_libs $deplib" ;;
++ esac
++ done
++ eval $var=\"$tmp_libs\"
++ done # for var
+ fi
++ # Last step: remove runtime libs from dependency_libs
++ # (they stay in deplibs)
++ tmp_libs=
++ for i in $dependency_libs ; do
++ case " $predeps $postdeps $compiler_lib_search_path " in
++ *" $i "*)
++ i=""
++ ;;
++ esac
++ if test -n "$i" ; then
++ tmp_libs="$tmp_libs $i"
++ fi
++ done
++ dependency_libs=$tmp_libs
++ done # for pass
++ if test "$linkmode" = prog; then
++ dlfiles="$newdlfiles"
++ dlprefiles="$newdlprefiles"
++ fi
+
++ case $linkmode in
++ oldlib)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+ fi
+@@ -1552,7 +3073,7 @@ compiler."
+ fi
+
+ if test -n "$vinfo"; then
+- $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
++ $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+@@ -1566,24 +3087,27 @@ compiler."
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
++ objs="$objs$old_deplibs"
+ ;;
+
+- *.la)
++ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+- case "$outputname" in
++ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
++ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
++ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+@@ -1591,30 +3115,24 @@ compiler."
+ ;;
+ esac
+
+- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$output_objdir" = "X$output"; then
+- output_objdir="$objdir"
+- else
+- output_objdir="$output_objdir/$objdir"
+- fi
+-
+ if test -n "$objs"; then
+- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
+- exit 1
+- fi
+-
+- # How the heck are we supposed to write a wrapper for a shared library?
+- if test -n "$link_against_libtool_libs"; then
+- $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
+- exit 1
++ if test "$deplibs_check_method" != pass_all; then
++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
++ exit $EXIT_FAILURE
++ else
++ $echo
++ $echo "*** Warning: Linking the shared library $output against the non-libtool"
++ $echo "*** objects $objs is not portable!"
++ libobjs="$libobjs $objs"
++ fi
+ fi
+
+- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+- $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
++ if test "$dlself" != no; then
++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+- if test $# -gt 2; then
++ if test "$#" -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+@@ -1623,15 +3141,16 @@ compiler."
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+- libext=al
++ # Some compilers have problems with a `.al' extension so
++ # convenience libraries should have the same extension an
++ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+- dependency_libs="$deplibs"
+
+ if test -n "$vinfo"; then
+- $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
++ $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+@@ -1640,73 +3159,138 @@ compiler."
+ else
+
+ # Parse the version information argument.
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
++ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+- current="$2"
+- revision="$3"
+- age="$4"
++ # convert absolute version numbers to libtool ages
++ # this retains compatibility with .la files and attempts
++ # to make the code below a bit more comprehensible
++
++ case $vinfo_number in
++ yes)
++ number_major="$2"
++ number_minor="$3"
++ number_revision="$4"
++ #
++ # There are really only two kinds -- those that
++ # use the current revision as the major version
++ # and those that subtract age and use age as
++ # a minor version. But, then there is irix
++ # which has an extra 1 added just for fun
++ #
++ case $version_type in
++ darwin|linux|osf|windows)
++ current=`expr $number_major + $number_minor`
++ age="$number_minor"
++ revision="$number_revision"
++ ;;
++ freebsd-aout|freebsd-elf|sunos)
++ current="$number_major"
++ revision="$number_minor"
++ age="0"
++ ;;
++ irix|nonstopux)
++ current=`expr $number_major + $number_minor - 1`
++ age="$number_minor"
++ revision="$number_minor"
++ ;;
++ esac
++ ;;
++ no)
++ current="$2"
++ revision="$3"
++ age="$4"
++ ;;
++ esac
+
+ # Check that each of the things are valid numbers.
+- case "$current" in
+- 0 | [1-9] | [1-9][0-9]*) ;;
++ case $current in
++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
++ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+- case "$revision" in
+- 0 | [1-9] | [1-9][0-9]*) ;;
++ case $revision in
++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
++ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+- case "$age" in
+- 0 | [1-9] | [1-9][0-9]*) ;;
++ case $age in
++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
++ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+- if test $age -gt $current; then
++ if test "$age" -gt "$current"; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+- case "$version_type" in
++ case $version_type in
+ none) ;;
+
+- irix)
++ darwin)
++ # Like Linux, but with the current version available in
++ # verstring for coding it into the library header
++ major=.`expr $current - $age`
++ versuffix="$major.$age.$revision"
++ # Darwin ld doesn't like 0 for these options...
++ minor_current=`expr $current + 1`
++ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
++ ;;
++
++ freebsd-aout)
++ major=".$current"
++ versuffix=".$current.$revision";
++ ;;
++
++ freebsd-elf)
++ major=".$current"
++ versuffix=".$current";
++ ;;
++
++ irix | nonstopux)
+ major=`expr $current - $age + 1`
+- versuffix="$major.$revision"
+- verstring="sgi$major.$revision"
++
++ case $version_type in
++ nonstopux) verstring_prefix=nonstopux ;;
++ *) verstring_prefix=sgi ;;
++ esac
++ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+- while test $loop != 0; do
++ while test "$loop" -ne 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+- verstring="sgi$major.$iface:$verstring"
++ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
++
++ # Before this point, $major must not contain `.'.
++ major=.$major
++ versuffix="$major.$revision"
+ ;;
+
+ linux)
+@@ -1715,13 +3299,13 @@ compiler."
+ ;;
+
+ osf)
+- major=`expr $current - $age`
++ major=.`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+- while test $loop != 0; do
++ while test "$loop" -ne 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+@@ -1736,34 +3320,33 @@ compiler."
+ versuffix=".$current.$revision"
+ ;;
+
+- freebsd-aout)
+- major=".$current"
+- versuffix=".$current.$revision";
+- ;;
+-
+- freebsd-elf)
+- major=".$current"
+- versuffix=".$current";
+- ;;
+-
+ windows)
+- # Like Linux, but with '-' rather than '.', since we only
+- # want one extension on Windows 95.
++ # Use '-' rather than '.', since we only want one
++ # extension on DOS 8.3 filesystems.
+ major=`expr $current - $age`
+- versuffix="-$major-$age-$revision"
++ versuffix="-$major"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+- exit 1
++ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+- verstring="0.0"
++ case $version_type in
++ darwin)
++ # we can't check for "0.0" in archive_cmds due to quoting
++ # problems, so we reset it completely
++ verstring=
++ ;;
++ *)
++ verstring="0.0"
++ ;;
++ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+@@ -1777,7 +3360,7 @@ compiler."
+ versuffix=
+ verstring=""
+ fi
+-
++
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+@@ -1789,29 +3372,32 @@ compiler."
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+-
+- dependency_libs="$deplibs"
+- case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+- # these systems don't actually have a c library (as such)!
+- ;;
+- *)
+- # Add libc to deplibs on all other systems.
+- deplibs="$deplibs -lc"
+- ;;
+- esac
+ fi
+
+- # Create the output directory, or remove our outputs if we need to.
+- if test -d $output_objdir; then
+- $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
+- $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
+- else
+- $show "$mkdir $output_objdir"
+- $run $mkdir $output_objdir
+- status=$?
+- if test $status -ne 0 && test ! -d $output_objdir; then
+- exit $status
++ if test "$mode" != relink; then
++ # Remove our outputs, but don't remove object files since they
++ # may have been created when compiling PIC objects.
++ removelist=
++ tempremovelist=`$echo "$output_objdir/*"`
++ for p in $tempremovelist; do
++ case $p in
++ *.$objext)
++ ;;
++ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
++ if test "X$precious_files_regex" != "X"; then
++ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
++ then
++ continue
++ fi
++ fi
++ removelist="$removelist $p"
++ ;;
++ *) ;;
++ esac
++ done
++ if test -n "$removelist"; then
++ $show "${rm}r $removelist"
++ $run ${rm}r $removelist
+ fi
+ fi
+
+@@ -1823,7 +3409,79 @@ compiler."
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
++ # Eliminate all temporary directories.
++ for path in $notinst_path; do
++ lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
++ deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
++ dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
++ done
++
++ if test -n "$xrpath"; then
++ # If the user specified any rpath flags, then add them.
++ temp_xrpath=
++ for libdir in $xrpath; do
++ temp_xrpath="$temp_xrpath -R$libdir"
++ case "$finalize_rpath " in
++ *" $libdir "*) ;;
++ *) finalize_rpath="$finalize_rpath $libdir" ;;
++ esac
++ done
++ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
++ dependency_libs="$temp_xrpath $dependency_libs"
++ fi
++ fi
++
++ # Make sure dlfiles contains only unique files that won't be dlpreopened
++ old_dlfiles="$dlfiles"
++ dlfiles=
++ for lib in $old_dlfiles; do
++ case " $dlprefiles $dlfiles " in
++ *" $lib "*) ;;
++ *) dlfiles="$dlfiles $lib" ;;
++ esac
++ done
++
++ # Make sure dlprefiles contains only unique files
++ old_dlprefiles="$dlprefiles"
++ dlprefiles=
++ for lib in $old_dlprefiles; do
++ case "$dlprefiles " in
++ *" $lib "*) ;;
++ *) dlprefiles="$dlprefiles $lib" ;;
++ esac
++ done
++
+ if test "$build_libtool_libs" = yes; then
++ if test -n "$rpath"; then
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
++ # these systems don't actually have a c library (as such)!
++ ;;
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # Rhapsody C library is in the System framework
++ deplibs="$deplibs -framework System"
++ ;;
++ *-*-netbsd*)
++ # Don't link with libc until the a.out ld.so is fixed.
++ ;;
++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
++ # Do not include libc due to us having libc/libc_r.
++ ;;
++ *-*-sco3.2v5* | *-*-sco5v6*)
++ # Causes problems with __ctype
++ ;;
++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
++ # Compiler inserts libc in the correct place for threads to work
++ ;;
++ *)
++ # Add libc to deplibs on all other systems if necessary.
++ if test "$build_libtool_need_lc" = "yes"; then
++ deplibs="$deplibs -lc"
++ fi
++ ;;
++ esac
++ fi
++
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+@@ -1838,13 +3496,13 @@ compiler."
+ major=""
+ newdeplibs=
+ droppeddeps=no
+- case "$deplibs_check_method" in
++ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+- # implementing what was already the behaviour.
++ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+@@ -1857,64 +3515,88 @@ compiler."
+ int main() { return 0; }
+ EOF
+ $rm conftest
+- $CC -o conftest conftest.c $deplibs
+- if test $? -eq 0 ; then
++ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
++ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+- name="`expr $i : '-l\(.*\)'`"
++ name=`expr $i : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+- if test "$name" != "" ; then
+- libname=`eval \\$echo \"$libname_spec\"`
+- deplib_matches=`eval \\$echo \"$library_names_spec\"`
+- set dummy $deplib_matches
+- deplib_match=$2
+- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+- newdeplibs="$newdeplibs $i"
+- else
+- droppeddeps=yes
+- echo
+- echo "*** Warning: This library needs some functionality provided by $i."
+- echo "*** I have the capability to make that library automatically link in when"
+- echo "*** you link to this library. But I can only do this if you have a"
+- echo "*** shared version of the library, which you do not appear to have."
++ if test "$name" != "" && test "$name" -ne "0"; then
++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
++ case " $predeps $postdeps " in
++ *" $i "*)
++ newdeplibs="$newdeplibs $i"
++ i=""
++ ;;
++ esac
++ fi
++ if test -n "$i" ; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ deplib_matches=`eval \\$echo \"$library_names_spec\"`
++ set dummy $deplib_matches
++ deplib_match=$2
++ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
++ newdeplibs="$newdeplibs $i"
++ else
++ droppeddeps=yes
++ $echo
++ $echo "*** Warning: dynamic linker does not accept needed library $i."
++ $echo "*** I have the capability to make that library automatically link in when"
++ $echo "*** you link to this library. But I can only do this if you have a"
++ $echo "*** shared version of the library, which I believe you do not have"
++ $echo "*** because a test_compile did reveal that the linker did not use it for"
++ $echo "*** its dynamic dependency list that programs get resolved with at runtime."
++ fi
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+- # Error occured in the first compile. Let's try to salvage the situation:
+- # Compile a seperate program for each library.
++ # Error occurred in the first compile. Let's try to salvage
++ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+- name="`expr $i : '-l\(.*\)'`"
+- # If $name is empty we are operating on a -L argument.
+- if test "$name" != "" ; then
++ name=`expr $i : '-l\(.*\)'`
++ # If $name is empty we are operating on a -L argument.
++ if test "$name" != "" && test "$name" != "0"; then
+ $rm conftest
+- $CC -o conftest conftest.c $i
++ $LTCC $LTCFLAGS -o conftest conftest.c $i
+ # Did it work?
+- if test $? -eq 0 ; then
++ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+- libname=`eval \\$echo \"$libname_spec\"`
+- deplib_matches=`eval \\$echo \"$library_names_spec\"`
+- set dummy $deplib_matches
+- deplib_match=$2
+- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+- newdeplibs="$newdeplibs $i"
+- else
+- droppeddeps=yes
+- echo
+- echo "*** Warning: This library needs some functionality provided by $i."
+- echo "*** I have the capability to make that library automatically link in when"
+- echo "*** you link to this library. But I can only do this if you have a"
+- echo "*** shared version of the library, which you do not appear to have."
++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
++ case " $predeps $postdeps " in
++ *" $i "*)
++ newdeplibs="$newdeplibs $i"
++ i=""
++ ;;
++ esac
++ fi
++ if test -n "$i" ; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ deplib_matches=`eval \\$echo \"$library_names_spec\"`
++ set dummy $deplib_matches
++ deplib_match=$2
++ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
++ newdeplibs="$newdeplibs $i"
++ else
++ droppeddeps=yes
++ $echo
++ $echo "*** Warning: dynamic linker does not accept needed library $i."
++ $echo "*** I have the capability to make that library automatically link in when"
++ $echo "*** you link to this library. But I can only do this if you have a"
++ $echo "*** shared version of the library, which you do not appear to have"
++ $echo "*** because a test_compile did reveal that the linker did not use this one"
++ $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
++ fi
+ fi
+ else
+ droppeddeps=yes
+- echo
+- echo "*** Warning! Library $i is needed by this library but I was not able to"
+- echo "*** make it link in! You will probably need to install it or some"
+- echo "*** library that it depends on before this library will be fully"
+- echo "*** functional. Installing it before continuing would be even better."
++ $echo
++ $echo "*** Warning! Library $i is needed by this library but I was not able to"
++ $echo "*** make it link in! You will probably need to install it or some"
++ $echo "*** library that it depends on before this library will be fully"
++ $echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+@@ -1924,19 +3606,28 @@ EOF
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+- file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
++ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+- name="`expr $a_deplib : '-l\(.*\)'`"
++ name=`expr $a_deplib : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+- if test "$name" != "" ; then
+- libname=`eval \\$echo \"$libname_spec\"`
+- for i in $lib_search_path; do
+- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+- for potent_lib in $potential_libs; do
++ if test "$name" != "" && test "$name" != "0"; then
++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
++ case " $predeps $postdeps " in
++ *" $a_deplib "*)
++ newdeplibs="$newdeplibs $a_deplib"
++ a_deplib=""
++ ;;
++ esac
++ fi
++ if test -n "$a_deplib" ; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
++ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+- continue
++ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+@@ -1945,28 +3636,88 @@ EOF
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+- potliblink=`ls -ld $potlib | sed 's/.* -> //'`
+- case "$potliblink" in
++ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
++ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+- | sed 10q \
+- | egrep "$file_magic_regex" > /dev/null; then
++ | ${SED} 10q \
++ | $EGREP "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+- done
+- done
++ done
++ done
++ fi
++ if test -n "$a_deplib" ; then
++ droppeddeps=yes
++ $echo
++ $echo "*** Warning: linker path does not have real file for library $a_deplib."
++ $echo "*** I have the capability to make that library automatically link in when"
++ $echo "*** you link to this library. But I can only do this if you have a"
++ $echo "*** shared version of the library, which you do not appear to have"
++ $echo "*** because I did check the linker path looking for a file starting"
++ if test -z "$potlib" ; then
++ $echo "*** with $libname but no candidates were found. (...for file magic test)"
++ else
++ $echo "*** with $libname and none of the candidates passed a file format test"
++ $echo "*** using a file magic. Last file checked: $potlib"
++ fi
++ fi
++ else
++ # Add a -L argument.
++ newdeplibs="$newdeplibs $a_deplib"
++ fi
++ done # Gone through all deplibs.
++ ;;
++ match_pattern*)
++ set dummy $deplibs_check_method
++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
++ for a_deplib in $deplibs; do
++ name=`expr $a_deplib : '-l\(.*\)'`
++ # If $name is empty we are operating on a -L argument.
++ if test -n "$name" && test "$name" != "0"; then
++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
++ case " $predeps $postdeps " in
++ *" $a_deplib "*)
++ newdeplibs="$newdeplibs $a_deplib"
++ a_deplib=""
++ ;;
++ esac
++ fi
++ if test -n "$a_deplib" ; then
++ libname=`eval \\$echo \"$libname_spec\"`
++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
++ for potent_lib in $potential_libs; do
++ potlib="$potent_lib" # see symlink-check above in file_magic test
++ if eval $echo \"$potent_lib\" 2>/dev/null \
++ | ${SED} 10q \
++ | $EGREP "$match_pattern_regex" > /dev/null; then
++ newdeplibs="$newdeplibs $a_deplib"
++ a_deplib=""
++ break 2
++ fi
++ done
++ done
++ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+- echo
+- echo "*** Warning: This library needs some functionality provided by $a_deplib."
+- echo "*** I have the capability to make that library automatically link in when"
+- echo "*** you link to this library. But I can only do this if you have a"
+- echo "*** shared version of the library, which you do not appear to have."
++ $echo
++ $echo "*** Warning: linker path does not have real file for library $a_deplib."
++ $echo "*** I have the capability to make that library automatically link in when"
++ $echo "*** you link to this library. But I can only do this if you have a"
++ $echo "*** shared version of the library, which you do not appear to have"
++ $echo "*** because I did check the linker path looking for a file starting"
++ if test -z "$potlib" ; then
++ $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
++ else
++ $echo "*** with $libname and none of the candidates passed a file format test"
++ $echo "*** using a regex pattern. Last file checked: $potlib"
++ fi
+ fi
+ else
+ # Add a -L argument.
+@@ -1976,16 +3727,23 @@ EOF
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+- if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+- -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
+- grep . >/dev/null; then
+- echo
++ tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
++ -e 's/ -[LR][^ ]*//g'`
++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
++ for i in $predeps $postdeps ; do
++ # can't use Xsed below, because $i might contain '/'
++ tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
++ done
++ fi
++ if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
++ | grep . >/dev/null; then
++ $echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+- echo "*** Warning: inter-library dependencies are not supported in this platform."
++ $echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+- echo "*** Warning: inter-library dependencies are not known to be supported."
++ $echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+- echo "*** All declared inter-library dependencies are being dropped."
++ $echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+@@ -1996,19 +3754,26 @@ EOF
+ libname=$libname_save
+ name=$name_save
+
++ case $host in
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # On Rhapsody replace the C library is the System framework
++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ ;;
++ esac
++
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+- echo
+- echo "*** Warning: libtool could not satisfy all declared inter-library"
+- echo "*** dependencies of module $libname. Therefore, libtool will create"
+- echo "*** a static module, that should work as long as the dlopening"
+- echo "*** application is linked with the -dlopen flag."
++ $echo
++ $echo "*** Warning: libtool could not satisfy all declared inter-library"
++ $echo "*** dependencies of module $libname. Therefore, libtool will create"
++ $echo "*** a static module, that should work as long as the dlopening"
++ $echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+- echo
+- echo "*** However, this would only work if libtool was able to extract symbol"
+- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+- echo "*** not find such a program. So, this module is probably useless."
+- echo "*** \`nm' from GNU binutils and a full rebuild may help."
++ $echo
++ $echo "*** However, this would only work if libtool was able to extract symbol"
++ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
++ $echo "*** not find such a program. So, this module is probably useless."
++ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+@@ -2018,23 +3783,127 @@ EOF
+ build_libtool_libs=no
+ fi
+ else
+- echo "*** The inter-library dependencies that have been dropped here will be"
+- echo "*** automatically added whenever a program is linked with this library"
+- echo "*** or is declared to -dlopen it."
++ $echo "*** The inter-library dependencies that have been dropped here will be"
++ $echo "*** automatically added whenever a program is linked with this library"
++ $echo "*** or is declared to -dlopen it."
++
++ if test "$allow_undefined" = no; then
++ $echo
++ $echo "*** Since this library must not contain undefined symbols,"
++ $echo "*** because either the platform does not support them or"
++ $echo "*** it was explicitly requested with -no-undefined,"
++ $echo "*** libtool will only create a static version of it."
++ if test "$build_old_libs" = no; then
++ oldlibs="$output_objdir/$libname.$libext"
++ build_libtool_libs=module
++ build_old_libs=yes
++ else
++ build_libtool_libs=no
++ fi
++ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
++
++ # move library search paths that coincide with paths to not yet
++ # installed libraries to the beginning of the library search list
++ new_libs=
++ for path in $notinst_path; do
++ case " $new_libs " in
++ *" -L$path/$objdir "*) ;;
++ *)
++ case " $deplibs " in
++ *" -L$path/$objdir "*)
++ new_libs="$new_libs -L$path/$objdir" ;;
++ esac
++ ;;
++ esac
++ done
++ for deplib in $deplibs; do
++ case $deplib in
++ -L*)
++ case " $new_libs " in
++ *" $deplib "*) ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ done
++ deplibs="$new_libs"
++
++
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+-
++
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
++ if test "$hardcode_into_libs" = yes; then
++ # Hardcode the library paths
++ hardcode_libdirs=
++ dep_rpath=
++ rpath="$finalize_rpath"
++ test "$mode" != relink && rpath="$compile_rpath$rpath"
++ for libdir in $rpath; do
++ if test -n "$hardcode_libdir_flag_spec"; then
++ if test -n "$hardcode_libdir_separator"; then
++ if test -z "$hardcode_libdirs"; then
++ hardcode_libdirs="$libdir"
++ else
++ # Just accumulate the unique libdirs.
++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
++ ;;
++ *)
++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ ;;
++ esac
++ fi
++ else
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ dep_rpath="$dep_rpath $flag"
++ fi
++ elif test -n "$runpath_var"; then
++ case "$perm_rpath " in
++ *" $libdir "*) ;;
++ *) perm_rpath="$perm_rpath $libdir" ;;
++ esac
++ fi
++ done
++ # Substitute the hardcoded libdirs into the rpath.
++ if test -n "$hardcode_libdir_separator" &&
++ test -n "$hardcode_libdirs"; then
++ libdir="$hardcode_libdirs"
++ if test -n "$hardcode_libdir_flag_spec_ld"; then
++ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
++ else
++ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
++ fi
++ fi
++ if test -n "$runpath_var" && test -n "$perm_rpath"; then
++ # We should set the runpath_var.
++ rpath=
++ for dir in $perm_rpath; do
++ rpath="$rpath$dir:"
++ done
++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
++ fi
++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
++ fi
++
++ shlibpath="$finalize_shlibpath"
++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
++ if test -n "$shlibpath"; then
++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
++ fi
++
+ # Get the real and link names of the library.
++ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+@@ -2045,30 +3914,17 @@ EOF
+ else
+ soname="$realname"
+ fi
++ if test -z "$dlname"; then
++ dlname=$soname
++ fi
+
+ lib="$output_objdir/$realname"
++ linknames=
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+- # Ensure that we have .o objects for linkers which dislike .lo
+- # (e.g. aix) in case we are running --disable-static
+- for obj in $libobjs; do
+- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$xdir" = "X$obj"; then
+- xdir="."
+- else
+- xdir="$xdir"
+- fi
+- baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+- oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+- if test ! -f $xdir/$oldobj; then
+- $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
+- $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
+- fi
+- done
+-
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+@@ -2078,17 +3934,29 @@ EOF
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+- eval cmds=\"$export_symbols_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ cmds=$export_symbols_cmds
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+- $show "$cmd"
+- $run eval "$cmd" || exit $?
++ eval cmd=\"$cmd\"
++ if len=`expr "X$cmd" : ".*"` &&
++ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ skipped_export=false
++ else
++ # The command line is too long to execute in one step.
++ $show "using reloadable object file for export list..."
++ skipped_export=:
++ # Break out early, otherwise skipped_export may be
++ # set to false by a later but shorter cmd.
++ break
++ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+- $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+- $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
++ $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
++ $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+@@ -2099,65 +3967,212 @@ EOF
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
++ tmp_deplibs=
++ for test_deplib in $deplibs; do
++ case " $convenience " in
++ *" $test_deplib "*) ;;
++ *)
++ tmp_deplibs="$tmp_deplibs $test_deplib"
++ ;;
++ esac
++ done
++ deplibs="$tmp_deplibs"
++
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
++ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+- $show "${rm}r $gentop"
+- $run ${rm}r "$gentop"
+- $show "mkdir $gentop"
+- $run mkdir "$gentop"
+- status=$?
+- if test $status -ne 0 && test ! -d "$gentop"; then
+- exit $status
+- fi
+ generated="$generated $gentop"
+
+- for xlib in $convenience; do
+- # Extract the objects.
+- case "$xlib" in
+- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+- *) xabs=`pwd`"/$xlib" ;;
+- esac
+- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+- xdir="$gentop/$xlib"
+-
+- $show "${rm}r $xdir"
+- $run ${rm}r "$xdir"
+- $show "mkdir $xdir"
+- $run mkdir "$xdir"
+- status=$?
+- if test $status -ne 0 && test ! -d "$xdir"; then
+- exit $status
+- fi
+- $show "(cd $xdir && $AR x $xabs)"
+- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+-
+- libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+- done
++ func_extract_archives $gentop $convenience
++ libobjs="$libobjs $func_extract_archives_result"
+ fi
+ fi
+-
++
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+- linkopts="$linkopts $flag"
++ linker_flags="$linker_flags $flag"
++ fi
++
++ # Make a backup of the uninstalled library when relinking
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
++ if test "$module" = yes && test -n "$module_cmds" ; then
++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
++ eval test_cmds=\"$module_expsym_cmds\"
++ cmds=$module_expsym_cmds
++ else
++ eval test_cmds=\"$module_cmds\"
++ cmds=$module_cmds
++ fi
++ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+- eval cmds=\"$archive_expsym_cmds\"
++ eval test_cmds=\"$archive_expsym_cmds\"
++ cmds=$archive_expsym_cmds
++ else
++ eval test_cmds=\"$archive_cmds\"
++ cmds=$archive_cmds
++ fi
++ fi
++
++ if test "X$skipped_export" != "X:" &&
++ len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
++ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
++ :
+ else
+- eval cmds=\"$archive_cmds\"
++ # The command line is too long to link in one step, link piecewise.
++ $echo "creating reloadable object files..."
++
++ # Save the value of $output and $libobjs because we want to
++ # use them later. If we have whole_archive_flag_spec, we
++ # want to use save_libobjs as it was before
++ # whole_archive_flag_spec was expanded, because we can't
++ # assume the linker understands whole_archive_flag_spec.
++ # This may have to be revisited, in case too many
++ # convenience libraries get linked in and end up exceeding
++ # the spec.
++ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
++ save_libobjs=$libobjs
++ fi
++ save_output=$output
++ output_la=`$echo "X$output" | $Xsed -e "$basename"`
++
++ # Clear the reloadable object creation command queue and
++ # initialize k to one.
++ test_cmds=
++ concat_cmds=
++ objlist=
++ delfiles=
++ last_robj=
++ k=1
++ output=$output_objdir/$output_la-${k}.$objext
++ # Loop over the list of objects to be linked.
++ for obj in $save_libobjs
++ do
++ eval test_cmds=\"$reload_cmds $objlist $last_robj\"
++ if test "X$objlist" = X ||
++ { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
++ test "$len" -le "$max_cmd_len"; }; then
++ objlist="$objlist $obj"
++ else
++ # The command $test_cmds is almost too long, add a
++ # command to the queue.
++ if test "$k" -eq 1 ; then
++ # The first file doesn't have a previous command to add.
++ eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
++ else
++ # All subsequent reloadable object files will link in
++ # the last one created.
++ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
++ fi
++ last_robj=$output_objdir/$output_la-${k}.$objext
++ k=`expr $k + 1`
++ output=$output_objdir/$output_la-${k}.$objext
++ objlist=$obj
++ len=1
++ fi
++ done
++ # Handle the remaining objects by creating one last
++ # reloadable object file. All subsequent reloadable object
++ # files will link in the last one created.
++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
++ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
++
++ if ${skipped_export-false}; then
++ $show "generating symbol list for \`$libname.la'"
++ export_symbols="$output_objdir/$libname.exp"
++ $run $rm $export_symbols
++ libobjs=$output
++ # Append the command to create the export file.
++ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
++ fi
++
++ # Set up a command to remove the reloadable object files
++ # after they are used.
++ i=0
++ while test "$i" -lt "$k"
++ do
++ i=`expr $i + 1`
++ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
++ done
++
++ $echo "creating a temporary reloadable object file: $output"
++
++ # Loop through the commands generated above and execute them.
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $concat_cmds; do
++ IFS="$save_ifs"
++ $show "$cmd"
++ $run eval "$cmd" || exit $?
++ done
++ IFS="$save_ifs"
++
++ libobjs=$output
++ # Restore the value of output.
++ output=$save_output
++
++ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
++ fi
++ # Expand the library linking commands again to reset the
++ # value of $libobjs for piecewise linking.
++
++ # Do each of the archive commands.
++ if test "$module" = yes && test -n "$module_cmds" ; then
++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
++ cmds=$module_expsym_cmds
++ else
++ cmds=$module_cmds
++ fi
++ else
++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
++ cmds=$archive_expsym_cmds
++ else
++ cmds=$archive_cmds
++ fi
++ fi
++
++ # Append the command to remove the reloadable object files
++ # to the just-reset $cmds.
++ eval cmds=\"\$cmds~\$rm $delfiles\"
+ fi
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
+ $show "$cmd"
+- $run eval "$cmd" || exit $?
++ $run eval "$cmd" || {
++ lt_exit=$?
++
++ # Restore the uninstalled library and exit
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
++ fi
++
++ exit $lt_exit
++ }
+ done
+ IFS="$save_ifs"
+
++ # Restore the uninstalled library and exit
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
++
++ if test -n "$convenience"; then
++ if test -z "$whole_archive_flag_spec"; then
++ $show "${rm}r $gentop"
++ $run ${rm}r "$gentop"
++ fi
++ fi
++
++ exit $EXIT_SUCCESS
++ fi
++
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+@@ -2174,12 +4189,7 @@ EOF
+ fi
+ ;;
+
+- *.lo | *.o | *.obj)
+- if test -n "$link_against_libtool_libs"; then
+- $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
+- exit 1
+- fi
+-
++ obj)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ fi
+@@ -2204,11 +4214,11 @@ EOF
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+- case "$output" in
++ case $output in
+ *.lo)
+- if test -n "$objs"; then
++ if test -n "$objs$old_deplibs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+@@ -2230,56 +4240,29 @@ EOF
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec
+- wl=
++ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+- $show "${rm}r $gentop"
+- $run ${rm}r "$gentop"
+- $show "mkdir $gentop"
+- $run mkdir "$gentop"
+- status=$?
+- if test $status -ne 0 && test ! -d "$gentop"; then
+- exit $status
+- fi
+ generated="$generated $gentop"
+
+- for xlib in $convenience; do
+- # Extract the objects.
+- case "$xlib" in
+- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+- *) xabs=`pwd`"/$xlib" ;;
+- esac
+- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+- xdir="$gentop/$xlib"
+-
+- $show "${rm}r $xdir"
+- $run ${rm}r "$xdir"
+- $show "mkdir $xdir"
+- $run mkdir "$xdir"
+- status=$?
+- if test $status -ne 0 && test ! -d "$xdir"; then
+- exit $status
+- fi
+- $show "(cd $xdir && $AR x $xabs)"
+- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+-
+- reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+- done
++ func_extract_archives $gentop $convenience
++ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # Create the old-style object.
+- reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+- eval cmds=\"$reload_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ cmds=$reload_cmds
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+@@ -2292,7 +4275,7 @@ EOF
+ $run ${rm}r $gentop
+ fi
+
+- exit 0
++ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+@@ -2303,37 +4286,24 @@ EOF
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+- $show "echo timestamp > $libobj"
+- $run eval "echo timestamp > $libobj" || exit $?
+- exit 0
++ # $show "echo timestamp > $libobj"
++ # $run eval "echo timestamp > $libobj" || exit $?
++ exit $EXIT_SUCCESS
+ fi
+
+- if test -n "$pic_flag"; then
++ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+- eval cmds=\"$reload_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ cmds=$reload_cmds
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+- else
+- # Just create a symlink.
+- $show $rm $libobj
+- $run $rm $libobj
+- xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$xdir" = "X$libobj"; then
+- xdir="."
+- else
+- xdir="$xdir"
+- fi
+- baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+- oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+- $show "(cd $xdir && $LN_S $oldobj $baseobj)"
+- $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
+ fi
+
+ if test -n "$gentop"; then
+@@ -2341,11 +4311,13 @@ EOF
+ $run ${rm}r $gentop
+ fi
+
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+- # Anything else should be a program.
+- *)
++ prog)
++ case $host in
++ *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
++ esac
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+@@ -2355,20 +4327,66 @@ EOF
+ fi
+
+ if test "$preload" = yes; then
+- if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+- fi
++ fi
+ fi
+-
++
++ case $host in
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # On Rhapsody replace the C library is the System framework
++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ ;;
++ esac
++
++ case $host in
++ *darwin*)
++ # Don't allow lazy linking, it breaks C++ global constructors
++ if test "$tagname" = CXX ; then
++ compile_command="$compile_command ${wl}-bind_at_load"
++ finalize_command="$finalize_command ${wl}-bind_at_load"
++ fi
++ ;;
++ esac
++
++
++ # move library search paths that coincide with paths to not yet
++ # installed libraries to the beginning of the library search list
++ new_libs=
++ for path in $notinst_path; do
++ case " $new_libs " in
++ *" -L$path/$objdir "*) ;;
++ *)
++ case " $compile_deplibs " in
++ *" -L$path/$objdir "*)
++ new_libs="$new_libs -L$path/$objdir" ;;
++ esac
++ ;;
++ esac
++ done
++ for deplib in $compile_deplibs; do
++ case $deplib in
++ -L*)
++ case " $new_libs " in
++ *" $deplib "*) ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ done
++ compile_deplibs="$new_libs"
++
++
++ compile_command="$compile_command $compile_deplibs"
++ finalize_command="$finalize_command $finalize_deplibs"
++
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+- case "$compile_rpath " in
+- *" $libdir "*) ;;
+- *) compile_rpath="$compile_rpath $libdir" ;;
+- esac
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+@@ -2386,7 +4404,7 @@ EOF
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+@@ -2404,6 +4422,19 @@ EOF
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
++ case $host in
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
++ case :$dllsearchpath: in
++ *":$libdir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$libdir";;
++ esac
++ case :$dllsearchpath: in
++ *":$testbindir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$testbindir";;
++ esac
++ ;;
++ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+@@ -2422,7 +4453,7 @@ EOF
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+@@ -2449,23 +4480,6 @@ EOF
+ fi
+ finalize_rpath="$rpath"
+
+- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$output_objdir" = "X$output"; then
+- output_objdir="$objdir"
+- else
+- output_objdir="$output_objdir/$objdir"
+- fi
+-
+- # Create the binary in the object directory, then wrap it.
+- if test ! -d $output_objdir; then
+- $show "$mkdir $output_objdir"
+- $run $mkdir $output_objdir
+- status=$?
+- if test $status -ne 0 && test ! -d $output_objdir; then
+- exit $status
+- fi
+- fi
+-
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+@@ -2482,7 +4496,7 @@ EOF
+ fi
+
+ if test -n "$dlsyms"; then
+- case "$dlsyms" in
++ case $dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+@@ -2514,38 +4528,50 @@ extern \"C\" {
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+- progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+- $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
++ $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+-
++
+ if test -n "$export_symbols_regex"; then
+- $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
++ $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+- export_symbols="$output_objdir/$output.exp"
++ export_symbols="$output_objdir/$outputname.exp"
+ $run $rm $export_symbols
+- $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
++ $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
++ case $host in
++ *cygwin* | *mingw* )
++ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
++ $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
++ ;;
++ esac
+ else
+- $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
++ $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
++ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
++ case $host in
++ *cygwin* | *mingw* )
++ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
++ $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
++ ;;
++ esac
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+- name=`echo "$arg" | sed -e 's%^.*/%%'`
+- $run eval 'echo ": $name " >> "$nlist"'
++ name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
++ $run eval '$echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+@@ -2554,12 +4580,18 @@ extern \"C\" {
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+- egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
++ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+- if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
++ if grep -v "^: " < "$nlist" |
++ if sort -k 3 </dev/null >/dev/null 2>&1; then
++ sort -k 3
++ else
++ sort +2
++ fi |
++ uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+@@ -2568,7 +4600,7 @@ extern \"C\" {
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+- echo '/* NONE */' >> "$output_objdir/$dlsyms"
++ $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+@@ -2576,27 +4608,44 @@ extern \"C\" {
+ #undef lt_preloaded_symbols
+
+ #if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
++# define lt_ptr void *
+ #else
+-# define lt_ptr_t char *
++# define lt_ptr char *
+ # define const
+ #endif
+
+ /* The mapping between symbol names and symbols. */
++"
++
++ case $host in
++ *cygwin* | *mingw* )
++ $echo >> "$output_objdir/$dlsyms" "\
++/* DATA imports from DLLs on WIN32 can't be const, because
++ runtime relocations are performed -- see ld's documentation
++ on pseudo-relocs */
++struct {
++"
++ ;;
++ * )
++ $echo >> "$output_objdir/$dlsyms" "\
+ const struct {
++"
++ ;;
++ esac
++
++
++ $echo >> "$output_objdir/$dlsyms" "\
+ const char *name;
+- lt_ptr_t address;
++ lt_ptr address;
+ }
+ lt_preloaded_symbols[] =
+ {\
+ "
+
+- sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
+- -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
+- < "$nlist" >> "$output_objdir/$dlsyms"
++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+- {0, (lt_ptr_t) 0}
++ {0, (lt_ptr) 0}
+ };
+
+ /* This works around a problem in FreeBSD linker */
+@@ -2613,39 +4662,52 @@ static const void *lt_preloaded_setup()
+ fi
+
+ pic_flag_for_symtable=
+- case "$host" in
++ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+- *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
++ *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+- *) pic_flag_for_symtable=" $pic_flag -DPIC";;
++ *) pic_flag_for_symtable=" $pic_flag";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+- $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+- $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
++ $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
++ $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ case $host in
++ *cygwin* | *mingw* )
++ if test -f "$output_objdir/${outputname}.def" ; then
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
++ else
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ fi
++ ;;
++ * )
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ ;;
++ esac
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ else
+@@ -2658,7 +4720,7 @@ static const void *lt_preloaded_setup()
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+- if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
++ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+@@ -2666,22 +4728,22 @@ static const void *lt_preloaded_setup()
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+- status=$?
+-
++ exit_status=$?
++
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+- exit $status
++ exit $exit_status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+- case "$dir" in
++ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+@@ -2723,11 +4785,24 @@ static const void *lt_preloaded_setup()
+ fi
+ fi
+
++ if test "$no_install" = yes; then
++ # We don't need to create a wrapper script.
++ link_command="$compile_var$compile_command$compile_rpath"
++ # Replace the output file specification.
++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
++ # Delete the old output file.
++ $run $rm $output
++ # Link the executable and exit
++ $show "$link_command"
++ $run eval "$link_command" || exit $?
++ exit $EXIT_SUCCESS
++ fi
++
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+-
++
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+@@ -2747,7 +4822,7 @@ static const void *lt_preloaded_setup()
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+-
++
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+@@ -2759,14 +4834,26 @@ static const void *lt_preloaded_setup()
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
++ # Preserve any variables that may affect compiler behavior
++ for var in $variables_saved_for_relink; do
++ if eval test -z \"\${$var+set}\"; then
++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
++ elif eval var_value=\$$var; test -z "$var_value"; then
++ relink_command="$var=; export $var; $relink_command"
++ else
++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
++ relink_command="$var=\"$var_value\"; export $var; $relink_command"
++ fi
++ done
++ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Quote $echo for shipping.
+- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+- case "$0" in
+- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
+- *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
++ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
++ case $progpath in
++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
++ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+@@ -2778,10 +4865,376 @@ static const void *lt_preloaded_setup()
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+- *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
++ *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
++ esac
++ # test for cygwin because mv fails w/o .exe extensions
++ case $host in
++ *cygwin*)
++ exeext=.exe
++ outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
++ *) exeext= ;;
+ esac
+- $rm $output
+- trap "$rm $output; exit 1" 1 2 15
++ case $host in
++ *cygwin* | *mingw* )
++ output_name=`basename $output`
++ output_path=`dirname $output`
++ cwrappersource="$output_path/$objdir/lt-$output_name.c"
++ cwrapper="$output_path/$output_name.exe"
++ $rm $cwrappersource $cwrapper
++ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
++
++ cat > $cwrappersource <<EOF
++
++/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
++ Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
++
++ The $output program cannot be directly executed until all the libtool
++ libraries that it depends on are installed.
++
++ This wrapper executable should never be moved out of the build directory.
++ If it is, it will not operate correctly.
++
++ Currently, it simply execs the wrapper *script* "/bin/sh $output",
++ but could eventually absorb all of the scripts functionality and
++ exec $objdir/$outputname directly.
++*/
++EOF
++ cat >> $cwrappersource<<"EOF"
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <malloc.h>
++#include <stdarg.h>
++#include <assert.h>
++#include <string.h>
++#include <ctype.h>
++#include <sys/stat.h>
++
++#if defined(PATH_MAX)
++# define LT_PATHMAX PATH_MAX
++#elif defined(MAXPATHLEN)
++# define LT_PATHMAX MAXPATHLEN
++#else
++# define LT_PATHMAX 1024
++#endif
++
++#ifndef DIR_SEPARATOR
++# define DIR_SEPARATOR '/'
++# define PATH_SEPARATOR ':'
++#endif
++
++#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
++ defined (__OS2__)
++# define HAVE_DOS_BASED_FILE_SYSTEM
++# ifndef DIR_SEPARATOR_2
++# define DIR_SEPARATOR_2 '\\'
++# endif
++# ifndef PATH_SEPARATOR_2
++# define PATH_SEPARATOR_2 ';'
++# endif
++#endif
++
++#ifndef DIR_SEPARATOR_2
++# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
++#else /* DIR_SEPARATOR_2 */
++# define IS_DIR_SEPARATOR(ch) \
++ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
++#endif /* DIR_SEPARATOR_2 */
++
++#ifndef PATH_SEPARATOR_2
++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
++#else /* PATH_SEPARATOR_2 */
++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
++#endif /* PATH_SEPARATOR_2 */
++
++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
++#define XFREE(stale) do { \
++ if (stale) { free ((void *) stale); stale = 0; } \
++} while (0)
++
++/* -DDEBUG is fairly common in CFLAGS. */
++#undef DEBUG
++#if defined DEBUGWRAPPER
++# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
++#else
++# define DEBUG(format, ...)
++#endif
++
++const char *program_name = NULL;
++
++void * xmalloc (size_t num);
++char * xstrdup (const char *string);
++const char * base_name (const char *name);
++char * find_executable(const char *wrapper);
++int check_executable(const char *path);
++char * strendzap(char *str, const char *pat);
++void lt_fatal (const char *message, ...);
++
++int
++main (int argc, char *argv[])
++{
++ char **newargz;
++ int i;
++
++ program_name = (char *) xstrdup (base_name (argv[0]));
++ DEBUG("(main) argv[0] : %s\n",argv[0]);
++ DEBUG("(main) program_name : %s\n",program_name);
++ newargz = XMALLOC(char *, argc+2);
++EOF
++
++ cat >> $cwrappersource <<EOF
++ newargz[0] = (char *) xstrdup("$SHELL");
++EOF
++
++ cat >> $cwrappersource <<"EOF"
++ newargz[1] = find_executable(argv[0]);
++ if (newargz[1] == NULL)
++ lt_fatal("Couldn't find %s", argv[0]);
++ DEBUG("(main) found exe at : %s\n",newargz[1]);
++ /* we know the script has the same name, without the .exe */
++ /* so make sure newargz[1] doesn't end in .exe */
++ strendzap(newargz[1],".exe");
++ for (i = 1; i < argc; i++)
++ newargz[i+1] = xstrdup(argv[i]);
++ newargz[argc+1] = NULL;
++
++ for (i=0; i<argc+1; i++)
++ {
++ DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
++ ;
++ }
++
++EOF
++
++ case $host_os in
++ mingw*)
++ cat >> $cwrappersource <<EOF
++ execv("$SHELL",(char const **)newargz);
++EOF
++ ;;
++ *)
++ cat >> $cwrappersource <<EOF
++ execv("$SHELL",newargz);
++EOF
++ ;;
++ esac
++
++ cat >> $cwrappersource <<"EOF"
++ return 127;
++}
++
++void *
++xmalloc (size_t num)
++{
++ void * p = (void *) malloc (num);
++ if (!p)
++ lt_fatal ("Memory exhausted");
++
++ return p;
++}
++
++char *
++xstrdup (const char *string)
++{
++ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
++;
++}
++
++const char *
++base_name (const char *name)
++{
++ const char *base;
++
++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
++ /* Skip over the disk name in MSDOS pathnames. */
++ if (isalpha ((unsigned char)name[0]) && name[1] == ':')
++ name += 2;
++#endif
++
++ for (base = name; *name; name++)
++ if (IS_DIR_SEPARATOR (*name))
++ base = name + 1;
++ return base;
++}
++
++int
++check_executable(const char * path)
++{
++ struct stat st;
++
++ DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
++ if ((!path) || (!*path))
++ return 0;
++
++ if ((stat (path, &st) >= 0) &&
++ (
++ /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
++#if defined (S_IXOTH)
++ ((st.st_mode & S_IXOTH) == S_IXOTH) ||
++#endif
++#if defined (S_IXGRP)
++ ((st.st_mode & S_IXGRP) == S_IXGRP) ||
++#endif
++ ((st.st_mode & S_IXUSR) == S_IXUSR))
++ )
++ return 1;
++ else
++ return 0;
++}
++
++/* Searches for the full path of the wrapper. Returns
++ newly allocated full path name if found, NULL otherwise */
++char *
++find_executable (const char* wrapper)
++{
++ int has_slash = 0;
++ const char* p;
++ const char* p_next;
++ /* static buffer for getcwd */
++ char tmp[LT_PATHMAX + 1];
++ int tmp_len;
++ char* concat_name;
++
++ DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
++
++ if ((wrapper == NULL) || (*wrapper == '\0'))
++ return NULL;
++
++ /* Absolute path? */
++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
++ if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
++ {
++ concat_name = xstrdup (wrapper);
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ }
++ else
++ {
++#endif
++ if (IS_DIR_SEPARATOR (wrapper[0]))
++ {
++ concat_name = xstrdup (wrapper);
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ }
++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
++ }
++#endif
++
++ for (p = wrapper; *p; p++)
++ if (*p == '/')
++ {
++ has_slash = 1;
++ break;
++ }
++ if (!has_slash)
++ {
++ /* no slashes; search PATH */
++ const char* path = getenv ("PATH");
++ if (path != NULL)
++ {
++ for (p = path; *p; p = p_next)
++ {
++ const char* q;
++ size_t p_len;
++ for (q = p; *q; q++)
++ if (IS_PATH_SEPARATOR(*q))
++ break;
++ p_len = q - p;
++ p_next = (*q == '\0' ? q : q + 1);
++ if (p_len == 0)
++ {
++ /* empty path: current directory */
++ if (getcwd (tmp, LT_PATHMAX) == NULL)
++ lt_fatal ("getcwd failed");
++ tmp_len = strlen(tmp);
++ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
++ memcpy (concat_name, tmp, tmp_len);
++ concat_name[tmp_len] = '/';
++ strcpy (concat_name + tmp_len + 1, wrapper);
++ }
++ else
++ {
++ concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
++ memcpy (concat_name, p, p_len);
++ concat_name[p_len] = '/';
++ strcpy (concat_name + p_len + 1, wrapper);
++ }
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ }
++ }
++ /* not found in PATH; assume curdir */
++ }
++ /* Relative path | not found in path: prepend cwd */
++ if (getcwd (tmp, LT_PATHMAX) == NULL)
++ lt_fatal ("getcwd failed");
++ tmp_len = strlen(tmp);
++ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
++ memcpy (concat_name, tmp, tmp_len);
++ concat_name[tmp_len] = '/';
++ strcpy (concat_name + tmp_len + 1, wrapper);
++
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ return NULL;
++}
++
++char *
++strendzap(char *str, const char *pat)
++{
++ size_t len, patlen;
++
++ assert(str != NULL);
++ assert(pat != NULL);
++
++ len = strlen(str);
++ patlen = strlen(pat);
++
++ if (patlen <= len)
++ {
++ str += len - patlen;
++ if (strcmp(str, pat) == 0)
++ *str = '\0';
++ }
++ return str;
++}
++
++static void
++lt_error_core (int exit_status, const char * mode,
++ const char * message, va_list ap)
++{
++ fprintf (stderr, "%s: %s: ", program_name, mode);
++ vfprintf (stderr, message, ap);
++ fprintf (stderr, ".\n");
++
++ if (exit_status >= 0)
++ exit (exit_status);
++}
++
++void
++lt_fatal (const char *message, ...)
++{
++ va_list ap;
++ va_start (ap, message);
++ lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
++ va_end (ap);
++}
++EOF
++ # we should really use a build-platform specific compiler
++ # here, but OTOH, the wrappers (shell script and this C one)
++ # are only useful if you want to execute the "real" binary.
++ # Since the "real" binary is built for $host, then this
++ # wrapper might as well be built for $host, too.
++ $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
++ ;;
++ esac
++ $rm $output
++ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+ $echo > $output "\
+ #! $SHELL
+@@ -2797,19 +5250,19 @@ static const void *lt_preloaded_setup()
+
+ # Sed substitution that helps us do robust quoting. It backslashifies
+ # metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e 1s/^X//'
++Xsed='${SED} -e 1s/^X//'
+ sed_quote_subst='$sed_quote_subst'
+
+ # The HP-UX ksh and POSIX shell print the target directory to stdout
+ # if CDPATH is set.
+-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+ relink_command=\"$relink_command\"
+
+ # This environment variable determines our operation mode.
+ if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+- link_against_libtool_libs='$link_against_libtool_libs'
++ notinst_deplibs='$notinst_deplibs'
+ else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+@@ -2835,20 +5288,20 @@ else
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+- file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+- [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+- file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+@@ -2857,12 +5310,12 @@ else
+ "
+
+ if test "$fast_install" = yes; then
+- echo >> $output "\
+- program=lt-'$outputname'
++ $echo >> $output "\
++ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+-
++
+ if test ! -f \"\$progdir/\$program\" || \\
+- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+@@ -2873,14 +5326,15 @@ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+- echo >> $output "\
++ $echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+- if (cd \"\$thisdir\" && eval \$relink_command); then :
++ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
++ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ fi
+
+@@ -2890,13 +5344,13 @@ else
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+- echo >> $output "\
++ $echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+ "
+ fi
+
+- echo >> $output "\
++ $echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+@@ -2927,39 +5381,35 @@ else
+ # Run the actual program with our arguments.
+ "
+ case $host in
+- *-*-cygwin* | *-*-mingw | *-*-os2*)
+- # win32 systems need to use the prog path for dll
+- # lookup to work
++ # Backslashes separate directories on plain windows
++ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+- exec \$progdir\\\\\$program \${1+\"\$@\"}
++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+ "
+ ;;
++
+ *)
+ $echo >> $output "\
+- # Export the path to the program.
+- PATH=\"\$progdir:\$PATH\"
+- export PATH
+-
+- exec \$program \${1+\"\$@\"}
++ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+ "
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ else
+ # The program doesn't exist.
+- \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
++ \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+- echo \"See the $PACKAGE documentation for more information.\" 1>&2
+- exit 1
++ $echo \"See the $PACKAGE documentation for more information.\" 1>&2
++ exit $EXIT_FAILURE
+ fi
+ fi\
+ "
+ chmod +x $output
+ fi
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+@@ -2975,74 +5425,130 @@ fi\
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+- oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
++ oldobjs="$old_deplibs $non_pic_objects"
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+- $show "${rm}r $gentop"
+- $run ${rm}r "$gentop"
+- $show "mkdir $gentop"
+- $run mkdir "$gentop"
+- status=$?
+- if test $status -ne 0 && test ! -d "$gentop"; then
+- exit $status
+- fi
+ generated="$generated $gentop"
+-
+- # Add in members from convenience archives.
+- for xlib in $addlibs; do
+- # Extract the objects.
+- case "$xlib" in
+- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+- *) xabs=`pwd`"/$xlib" ;;
+- esac
+- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+- xdir="$gentop/$xlib"
+-
+- $show "${rm}r $xdir"
+- $run ${rm}r "$xdir"
+- $show "mkdir $xdir"
+- $run mkdir "$xdir"
+- status=$?
+- if test $status -ne 0 && test ! -d "$xdir"; then
+- exit $status
+- fi
+- $show "(cd $xdir && $AR x $xabs)"
+- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+- done
++ func_extract_archives $gentop $addlibs
++ oldobjs="$oldobjs $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+- eval cmds=\"$old_archive_from_new_cmds\"
++ cmds=$old_archive_from_new_cmds
+ else
+- # Ensure that we have .o objects in place in case we decided
+- # not to build a shared library, and have fallen back to building
+- # static libs even though --disable-static was passed!
+- for oldobj in $oldobjs; do
+- if test ! -f $oldobj; then
+- xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
+- if test "X$xdir" = "X$oldobj"; then
+- xdir="."
+- else
+- xdir="$xdir"
+- fi
+- baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
+- obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+- $show "(cd $xdir && ${LN_S} $obj $baseobj)"
+- $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
++ # POSIX demands no paths to be encoded in archives. We have
++ # to avoid creating archives with duplicate basenames if we
++ # might have to extract them afterwards, e.g., when creating a
++ # static archive out of a convenience library, or when linking
++ # the entirety of a libtool archive into another (currently
++ # not supported by libtool).
++ if (for obj in $oldobjs
++ do
++ $echo "X$obj" | $Xsed -e 's%^.*/%%'
++ done | sort | sort -uc >/dev/null 2>&1); then
++ :
++ else
++ $echo "copying selected object files to avoid basename conflicts..."
++
++ if test -z "$gentop"; then
++ gentop="$output_objdir/${outputname}x"
++ generated="$generated $gentop"
++
++ $show "${rm}r $gentop"
++ $run ${rm}r "$gentop"
++ $show "$mkdir $gentop"
++ $run $mkdir "$gentop"
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
++ exit $exit_status
++ fi
+ fi
+- done
++
++ save_oldobjs=$oldobjs
++ oldobjs=
++ counter=1
++ for obj in $save_oldobjs
++ do
++ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
++ case " $oldobjs " in
++ " ") oldobjs=$obj ;;
++ *[\ /]"$objbase "*)
++ while :; do
++ # Make sure we don't pick an alternate name that also
++ # overlaps.
++ newobj=lt$counter-$objbase
++ counter=`expr $counter + 1`
++ case " $oldobjs " in
++ *[\ /]"$newobj "*) ;;
++ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
++ esac
++ done
++ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
++ $run ln "$obj" "$gentop/$newobj" ||
++ $run cp "$obj" "$gentop/$newobj"
++ oldobjs="$oldobjs $gentop/$newobj"
++ ;;
++ *) oldobjs="$oldobjs $obj" ;;
++ esac
++ done
++ fi
+
+ eval cmds=\"$old_archive_cmds\"
++
++ if len=`expr "X$cmds" : ".*"` &&
++ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
++ cmds=$old_archive_cmds
++ else
++ # the command line is too long to link in one step, link in parts
++ $echo "using piecewise archive linking..."
++ save_RANLIB=$RANLIB
++ RANLIB=:
++ objlist=
++ concat_cmds=
++ save_oldobjs=$oldobjs
++
++ # Is there a better way of finding the last object in the list?
++ for obj in $save_oldobjs
++ do
++ last_oldobj=$obj
++ done
++ for obj in $save_oldobjs
++ do
++ oldobjs="$objlist $obj"
++ objlist="$objlist $obj"
++ eval test_cmds=\"$old_archive_cmds\"
++ if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
++ test "$len" -le "$max_cmd_len"; then
++ :
++ else
++ # the above command should be used before it gets too long
++ oldobjs=$objlist
++ if test "$obj" = "$last_oldobj" ; then
++ RANLIB=$save_RANLIB
++ fi
++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
++ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
++ objlist=
++ fi
++ done
++ RANLIB=$save_RANLIB
++ oldobjs=$objlist
++ if test "X$oldobjs" = "X" ; then
++ eval cmds=\"\$concat_cmds\"
++ else
++ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
++ fi
++ fi
+ fi
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
++ eval cmd=\"$cmd\"
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+@@ -3056,20 +5562,31 @@ fi\
+ fi
+
+ # Now create the libtool archive.
+- case "$output" in
++ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+- if test -n "$xrpath"; then
+- temp_xrpath=
+- for libdir in $xrpath; do
+- temp_xrpath="$temp_xrpath -R$libdir"
+- done
+- dependency_libs="$temp_xrpath $dependency_libs"
++ # Preserve any variables that may affect compiler behavior
++ for var in $variables_saved_for_relink; do
++ if eval test -z \"\${$var+set}\"; then
++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
++ elif eval var_value=\$$var; test -z "$var_value"; then
++ relink_command="$var=; export $var; $relink_command"
++ else
++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
++ relink_command="$var=\"$var_value\"; export $var; $relink_command"
++ fi
++ done
++ # Quote the link command for shipping.
++ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
++ if test "$hardcode_automatic" = yes ; then
++ relink_command=
+ fi
+
++
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+@@ -3078,8 +5595,71 @@ fi\
+ break
+ fi
+ output="$output_objdir/$outputname"i
++ # Replace all uninstalled libtool libraries with the installed ones
++ newdependency_libs=
++ for deplib in $dependency_libs; do
++ case $deplib in
++ *.la)
++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ newdependency_libs="$newdependency_libs $libdir/$name"
++ ;;
++ *) newdependency_libs="$newdependency_libs $deplib" ;;
++ esac
++ done
++ dependency_libs="$newdependency_libs"
++ newdlfiles=
++ for lib in $dlfiles; do
++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ newdlfiles="$newdlfiles $libdir/$name"
++ done
++ dlfiles="$newdlfiles"
++ newdlprefiles=
++ for lib in $dlprefiles; do
++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++ if test -z "$libdir"; then
++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ newdlprefiles="$newdlprefiles $libdir/$name"
++ done
++ dlprefiles="$newdlprefiles"
++ else
++ newdlfiles=
++ for lib in $dlfiles; do
++ case $lib in
++ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
++ *) abs=`pwd`"/$lib" ;;
++ esac
++ newdlfiles="$newdlfiles $abs"
++ done
++ dlfiles="$newdlfiles"
++ newdlprefiles=
++ for lib in $dlprefiles; do
++ case $lib in
++ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
++ *) abs=`pwd`"/$lib" ;;
++ esac
++ newdlprefiles="$newdlprefiles $abs"
++ done
++ dlprefiles="$newdlprefiles"
+ fi
+ $rm $output
++ # place dlname in correct position for cygwin
++ tdlname=$dlname
++ case $host,$output,$installed,$module,$dlname in
++ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
++ esac
+ $echo > $output "\
+ # $outputname - a libtool library file
+ # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+@@ -3088,7 +5668,7 @@ fi\
+ # It is necessary for linking the library.
+
+ # The name that we can dlopen(3).
+-dlname='$dlname'
++dlname='$tdlname'
+
+ # Names of this library.
+ library_names='$library_names'
+@@ -3107,19 +5687,29 @@ revision=$revision
+ # Is this an already installed library?
+ installed=$installed
+
++# Should we warn about portability when linking against -modules?
++shouldnotlink=$module
++
++# Files to dlopen/dlpreopen
++dlopen='$dlfiles'
++dlpreopen='$dlprefiles'
++
+ # Directory that this library needs to be installed in:
+-libdir='$install_libdir'\
+-"
++libdir='$install_libdir'"
++ if test "$installed" = no && test "$need_relink" = yes; then
++ $echo >> $output "\
++relink_command=\"$relink_command\""
++ fi
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+- $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool install mode
+@@ -3128,11 +5718,13 @@ libdir='$install_libdir'\
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
++ # Allow the use of GNU shtool's install command.
++ $echo "X$nonopt" | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+- case "$arg" in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+@@ -3141,14 +5733,14 @@ libdir='$install_libdir'\
+ shift
+ else
+ install_prog=
+- arg="$nonopt"
++ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+- case "$arg" in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+@@ -3166,28 +5758,31 @@ libdir='$install_libdir'\
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+- dest="$arg"
++ dest=$arg
+ continue
+ fi
+
+- case "$arg" in
++ case $arg in
+ -d) isdir=yes ;;
+- -f) prev="-f" ;;
+- -g) prev="-g" ;;
+- -m) prev="-m" ;;
+- -o) prev="-o" ;;
++ -f)
++ case " $install_prog " in
++ *[\\\ /]cp\ *) ;;
++ *) prev=$arg ;;
++ esac
++ ;;
++ -g | -m | -o) prev=$arg ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+- -*) ;;
+-
++ -*)
++ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+- dest="$arg"
++ dest=$arg
+ continue
+ fi
+ ;;
+@@ -3195,8 +5790,8 @@ libdir='$install_libdir'\
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+- case "$arg" in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ case $arg in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+@@ -3206,13 +5801,13 @@ libdir='$install_libdir'\
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ if test -z "$files"; then
+@@ -3222,7 +5817,7 @@ libdir='$install_libdir'\
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Strip any trailing slash from the destination.
+@@ -3240,22 +5835,22 @@ libdir='$install_libdir'\
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+- if test $# -gt 2; then
++ if test "$#" -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ fi
+- case "$destdir" in
++ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+- case "$file" in
++ case $file in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+@@ -3272,25 +5867,26 @@ libdir='$install_libdir'\
+ for file in $files; do
+
+ # Do each installation.
+- case "$file" in
+- *.a | *.lib)
++ case $file in
++ *.$libext)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ library_names=
+ old_library=
++ relink_command=
+ # If there is no directory component, then add one.
+- case "$file" in
++ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+@@ -3309,10 +5905,41 @@ libdir='$install_libdir'\
+ esac
+ fi
+
+- dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
++ if test -n "$relink_command"; then
++ # Determine the prefix the user has applied to our future dir.
++ inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
++
++ # Don't allow the user to place us outside of our expected
++ # location b/c this prevents finding dependent libraries that
++ # are installed to the same prefix.
++ # At present, this check doesn't affect windows .dll's that
++ # are installed into $libdir/../bin (currently, that works fine)
++ # but it's something to keep an eye on.
++ if test "$inst_prefix_dir" = "$destdir"; then
++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
++ exit $EXIT_FAILURE
++ fi
++
++ if test -n "$inst_prefix_dir"; then
++ # Stick the inst_prefix_dir data into the link command.
++ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
++ else
++ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
++ fi
++
++ $echo "$modename: warning: relinking \`$file'" 1>&2
++ $show "$relink_command"
++ if $run eval "$relink_command"; then :
++ else
++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
++ exit $EXIT_FAILURE
++ fi
++ fi
++
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+@@ -3320,29 +5947,49 @@ libdir='$install_libdir'\
+ shift
+ shift
+
++ srcname="$realname"
++ test -n "$relink_command" && srcname="$realname"T
++
+ # Install the shared library and build the symlinks.
+- $show "$install_prog $dir/$realname $destdir/$realname"
+- $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
++ $show "$install_prog $dir/$srcname $destdir/$realname"
++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
++ if test -n "$stripme" && test -n "$striplib"; then
++ $show "$striplib $destdir/$realname"
++ $run eval "$striplib $destdir/$realname" || exit $?
++ fi
+
+- if test $# -gt 0; then
++ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
++ # Try `ln -sf' first, because the `ln' binary might depend on
++ # the symlink we replace! Solaris /bin/ln does not understand -f,
++ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
++ $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
++ $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+- eval cmds=\"$postinstall_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ cmds=$postinstall_cmds
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
+ $show "$cmd"
+- $run eval "$cmd" || exit $?
++ $run eval "$cmd" || {
++ lt_exit=$?
++
++ # Restore the uninstalled library and exit
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
++ fi
++
++ exit $lt_exit
++ }
+ done
+ IFS="$save_ifs"
+ fi
+@@ -3369,18 +6016,18 @@ libdir='$install_libdir'\
+ fi
+
+ # Deduce the name of the destination old-style object file.
+- case "$destfile" in
++ case $destfile in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+- *.o | *.obj)
++ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+@@ -3398,7 +6045,7 @@ libdir='$install_libdir'\
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+@@ -3410,52 +6057,84 @@ libdir='$install_libdir'\
+ destfile="$destdir/$destfile"
+ fi
+
++ # If the file is missing, and there is a .exe on the end, strip it
++ # because it is most likely a libtool script we actually want to
++ # install
++ stripped_ext=""
++ case $file in
++ *.exe)
++ if test ! -f "$file"; then
++ file=`$echo $file|${SED} 's,.exe$,,'`
++ stripped_ext=".exe"
++ fi
++ ;;
++ esac
++
+ # Do a test to see if this is really a libtool program.
+- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+- link_against_libtool_libs=
++ case $host in
++ *cygwin*|*mingw*)
++ wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
++ ;;
++ *)
++ wrapper=$file
++ ;;
++ esac
++ if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
++ notinst_deplibs=
+ relink_command=
+
++ # Note that it is not necessary on cygwin/mingw to append a dot to
++ # foo even if both foo and FILE.exe exist: automatic-append-.exe
++ # behavior happens only for exec(3), not for open(2)! Also, sourcing
++ # `FILE.' does not work on cygwin managed mounts.
++ #
+ # If there is no directory component, then add one.
+- case "$file" in
+- */* | *\\*) . $file ;;
+- *) . ./$file ;;
++ case $wrapper in
++ */* | *\\*) . ${wrapper} ;;
++ *) . ./${wrapper} ;;
+ esac
+
+ # Check the variables that should have been set.
+- if test -z "$link_against_libtool_libs"; then
+- $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
+- exit 1
++ if test -z "$notinst_deplibs"; then
++ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
++ exit $EXIT_FAILURE
+ fi
+
+ finalize=yes
+- for lib in $link_against_libtool_libs; do
++ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+- case "$lib" in
++ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+- libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
++ relink_command=
++ # Note that it is not necessary on cygwin/mingw to append a dot to
++ # foo even if both foo and FILE.exe exist: automatic-append-.exe
++ # behavior happens only for exec(3), not for open(2)! Also, sourcing
++ # `FILE.' does not work on cygwin managed mounts.
++ #
++ # If there is no directory component, then add one.
++ case $wrapper in
++ */* | *\\*) . ${wrapper} ;;
++ *) . ./${wrapper} ;;
++ esac
++
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+- tmpdir="/tmp"
+- test -n "$TMPDIR" && tmpdir="$TMPDIR"
+- tmpdir="$tmpdir/libtool-$$"
+- if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
+- else
+- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+- continue
+- fi
++ tmpdir=`func_mktempdir`
++ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+@@ -3473,10 +6152,27 @@ libdir='$install_libdir'\
+ fi
+ else
+ # Install the binary that we compiled earlier.
+- file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
++ file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
++ # remove .exe since cygwin /usr/bin/install will append another
++ # one anyway
++ case $install_prog,$host in
++ */usr/bin/install*,*cygwin*)
++ case $file:$destfile in
++ *.exe:*.exe)
++ # this is ok
++ ;;
++ *.exe:*)
++ destfile=$destfile.exe
++ ;;
++ *:*.exe)
++ destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
++ ;;
++ esac
++ ;;
++ esac
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+@@ -3493,11 +6189,17 @@ libdir='$install_libdir'\
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
++ if test -n "$stripme" && test -n "$old_striplib"; then
++ $show "$old_striplib $oldlib"
++ $run eval "$old_striplib $oldlib" || exit $?
++ fi
++
+ # Do each command in the postinstall commands.
+- eval cmds=\"$old_postinstall_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ cmds=$old_postinstall_cmds
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+@@ -3511,11 +6213,10 @@ libdir='$install_libdir'\
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+- exec $SHELL $0 --finish$current_libdirs
+- exit 1
++ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
++ else
++ exit $EXIT_SUCCESS
+ fi
+-
+- exit 0
+ ;;
+
+ # libtool finish mode
+@@ -3533,10 +6234,11 @@ libdir='$install_libdir'\
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+- eval cmds=\"$finish_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
++ cmds=$finish_cmds
++ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+@@ -3553,43 +6255,43 @@ libdir='$install_libdir'\
+ fi
+
+ # Exit here if they wanted silent mode.
+- test "$show" = : && exit 0
++ test "$show" = : && exit $EXIT_SUCCESS
+
+- echo "----------------------------------------------------------------------"
+- echo "Libraries have been installed in:"
++ $echo "X----------------------------------------------------------------------" | $Xsed
++ $echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+- echo " $libdir"
++ $echo " $libdir"
+ done
+- echo
+- echo "If you ever happen to want to link against installed libraries"
+- echo "in a given directory, LIBDIR, you must either use libtool, and"
+- echo "specify the full pathname of the library, or use \`-LLIBDIR'"
+- echo "flag during linking and do at least one of the following:"
++ $echo
++ $echo "If you ever happen to want to link against installed libraries"
++ $echo "in a given directory, LIBDIR, you must either use libtool, and"
++ $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
++ $echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+- echo " during execution"
++ $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
++ $echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+- echo " - add LIBDIR to the \`$runpath_var' environment variable"
+- echo " during linking"
++ $echo " - add LIBDIR to the \`$runpath_var' environment variable"
++ $echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+- echo " - use the \`$flag' linker flag"
++ $echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+- echo " - have your system administrator run these commands:$admincmds"
++ $echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
++ $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+- echo
+- echo "See any operating system documentation about shared libraries for"
+- echo "more information, such as the ld(1) and ld.so(8) manual pages."
+- echo "----------------------------------------------------------------------"
+- exit 0
++ $echo
++ $echo "See any operating system documentation about shared libraries for"
++ $echo "more information, such as the ld(1) and ld.so(8) manual pages."
++ $echo "X----------------------------------------------------------------------" | $Xsed
++ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool execute mode
+@@ -3601,7 +6303,7 @@ libdir='$install_libdir'\
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Handle -dlopen flags immediately.
+@@ -3609,18 +6311,18 @@ libdir='$install_libdir'\
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ dir=
+- case "$file" in
++ case $file in
+ *.la)
+ # Check to see that this really is a libtool archive.
+- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Read the libtool library.
+@@ -3628,7 +6330,7 @@ libdir='$install_libdir'\
+ library_names=
+
+ # If there is no directory component, then add one.
+- case "$file" in
++ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+@@ -3647,7 +6349,7 @@ libdir='$install_libdir'\
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ ;;
+
+@@ -3683,13 +6385,13 @@ libdir='$install_libdir'\
+ args=
+ for file
+ do
+- case "$file" in
++ case $file in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+- case "$file" in
++ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+@@ -3706,11 +6408,11 @@ libdir='$install_libdir'\
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+- # Export the shlibpath_var.
+- eval "export $shlibpath_var"
++ # Export the shlibpath_var.
++ eval "export $shlibpath_var"
+ fi
+
+- # Restore saved enviroment variables
++ # Restore saved environment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+@@ -3718,31 +6420,35 @@ libdir='$install_libdir'\
+ LANG="$save_LANG"; export LANG
+ fi
+
+- # Now actually exec the command.
+- eval "exec \$cmd$args"
+-
+- $echo "$modename: cannot exec \$cmd$args"
+- exit 1
++ # Now prepare to actually exec the command.
++ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+- $echo "export $shlibpath_var"
++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
++ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+- exit 0
++ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+- # libtool uninstall mode
+- uninstall)
+- modename="$modename: uninstall"
++ # libtool clean and uninstall mode
++ clean | uninstall)
++ modename="$modename: $mode"
+ rm="$nonopt"
+ files=
++ rmforce=
++ exit_status=0
++
++ # This variable tells wrapper scripts just to set variables rather
++ # than running their programs.
++ libtool_install_magic="$magic"
+
+ for arg
+ do
+- case "$arg" in
++ case $arg in
++ -f) rm="$rm $arg"; rmforce=yes ;;
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+@@ -3751,91 +6457,192 @@ libdir='$install_libdir'\
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
++ rmdirs=
++
++ origobjdir="$objdir"
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+- test "X$dir" = "X$file" && dir=.
++ if test "X$dir" = "X$file"; then
++ dir=.
++ objdir="$origobjdir"
++ else
++ objdir="$dir/$origobjdir"
++ fi
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
++ test "$mode" = uninstall && objdir="$dir"
++
++ # Remember objdir for removal later, being careful to avoid duplicates
++ if test "$mode" = clean; then
++ case " $rmdirs " in
++ *" $objdir "*) ;;
++ *) rmdirs="$rmdirs $objdir" ;;
++ esac
++ fi
++
++ # Don't error if the file doesn't exist and rm -f was used.
++ if (test -L "$file") >/dev/null 2>&1 \
++ || (test -h "$file") >/dev/null 2>&1 \
++ || test -f "$file"; then
++ :
++ elif test -d "$file"; then
++ exit_status=1
++ continue
++ elif test "$rmforce" = yes; then
++ continue
++ fi
+
+ rmfiles="$file"
+
+- case "$name" in
++ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+- rmfiles="$rmfiles $dir/$n"
++ rmfiles="$rmfiles $objdir/$n"
+ done
+- test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+- $show "$rm $rmfiles"
+- $run $rm $rmfiles
+-
+- if test -n "$library_names"; then
+- # Do each command in the postuninstall commands.
+- eval cmds=\"$postuninstall_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+- for cmd in $cmds; do
++ case "$mode" in
++ clean)
++ case " $library_names " in
++ # " " in the beginning catches empty $dlname
++ *" $dlname "*) ;;
++ *) rmfiles="$rmfiles $objdir/$dlname" ;;
++ esac
++ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
++ ;;
++ uninstall)
++ if test -n "$library_names"; then
++ # Do each command in the postuninstall commands.
++ cmds=$postuninstall_cmds
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
++ $show "$cmd"
++ $run eval "$cmd"
++ if test "$?" -ne 0 && test "$rmforce" != yes; then
++ exit_status=1
++ fi
++ done
+ IFS="$save_ifs"
+- $show "$cmd"
+- $run eval "$cmd"
+- done
+- IFS="$save_ifs"
+- fi
++ fi
+
+- if test -n "$old_library"; then
+- # Do each command in the old_postuninstall commands.
+- eval cmds=\"$old_postuninstall_cmds\"
+- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+- for cmd in $cmds; do
++ if test -n "$old_library"; then
++ # Do each command in the old_postuninstall commands.
++ cmds=$old_postuninstall_cmds
++ save_ifs="$IFS"; IFS='~'
++ for cmd in $cmds; do
++ IFS="$save_ifs"
++ eval cmd=\"$cmd\"
++ $show "$cmd"
++ $run eval "$cmd"
++ if test "$?" -ne 0 && test "$rmforce" != yes; then
++ exit_status=1
++ fi
++ done
+ IFS="$save_ifs"
+- $show "$cmd"
+- $run eval "$cmd"
+- done
+- IFS="$save_ifs"
+- fi
+-
+- # FIXME: should reinstall the best remaining shared library.
++ fi
++ # FIXME: should reinstall the best remaining shared library.
++ ;;
++ esac
+ fi
+ ;;
+
+ *.lo)
+- if test "$build_old_libs" = yes; then
+- oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
+- rmfiles="$rmfiles $dir/$oldobj"
++ # Possibly a libtool object, so verify it.
++ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++
++ # Read the .lo file
++ . $dir/$name
++
++ # Add PIC object to the list of files to remove.
++ if test -n "$pic_object" \
++ && test "$pic_object" != none; then
++ rmfiles="$rmfiles $dir/$pic_object"
++ fi
++
++ # Add non-PIC object to the list of files to remove.
++ if test -n "$non_pic_object" \
++ && test "$non_pic_object" != none; then
++ rmfiles="$rmfiles $dir/$non_pic_object"
++ fi
+ fi
+- $show "$rm $rmfiles"
+- $run $rm $rmfiles
+ ;;
+
+ *)
+- $show "$rm $rmfiles"
+- $run $rm $rmfiles
++ if test "$mode" = clean ; then
++ noexename=$name
++ case $file in
++ *.exe)
++ file=`$echo $file|${SED} 's,.exe$,,'`
++ noexename=`$echo $name|${SED} 's,.exe$,,'`
++ # $file with .exe has already been added to rmfiles,
++ # add $file without .exe
++ rmfiles="$rmfiles $file"
++ ;;
++ esac
++ # Do a test to see if this is a libtool program.
++ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++ relink_command=
++ . $dir/$noexename
++
++ # note $name still contains .exe if it was in $file originally
++ # as does the version of $file that was added into $rmfiles
++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
++ if test "$fast_install" = yes && test -n "$relink_command"; then
++ rmfiles="$rmfiles $objdir/lt-$name"
++ fi
++ if test "X$noexename" != "X$name" ; then
++ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
++ fi
++ fi
++ fi
+ ;;
+ esac
++ $show "$rm $rmfiles"
++ $run $rm $rmfiles || exit_status=1
+ done
+- exit 0
++ objdir="$origobjdir"
++
++ # Try to remove the ${objdir}s in the directories where we deleted files
++ for dir in $rmdirs; do
++ if test -d "$dir"; then
++ $show "rmdir $dir"
++ $run rmdir $dir >/dev/null 2>&1
++ fi
++ done
++
++ exit $exit_status
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+- $echo "$modename: invalid operation mode \`$mode'" 1>&2
+- $echo "$generic_help" 1>&2
+- exit 1
++ if test -z "$exec_cmd"; then
++ $echo "$modename: invalid operation mode \`$mode'" 1>&2
++ $echo "$generic_help" 1>&2
++ exit $EXIT_FAILURE
++ fi
+ fi # test -z "$show_help"
+
++if test -n "$exec_cmd"; then
++ eval exec $exec_cmd
++ exit $EXIT_FAILURE
++fi
++
+ # We need to display help for each of the modes.
+-case "$mode" in
++case $mode in
+ "") $echo \
+ "Usage: $modename [OPTION]... [MODE-ARG]...
+
+@@ -3850,10 +6657,12 @@ Provide generalized library-building sup
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
++ --tag=TAG use configuration variables from tag TAG
+ --version print version information
+
+ MODE must be one of the following:
+
++ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+@@ -3862,8 +6671,24 @@ MODE must be one of the following:
+ uninstall remove libraries from an installed directory
+
+ MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+-a more detailed description of MODE."
+- exit 0
++a more detailed description of MODE.
++
++Report bugs to <bug-libtool@gnu.org>."
++ exit $EXIT_SUCCESS
++ ;;
++
++clean)
++ $echo \
++"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
++
++Remove files from the build directory.
++
++RM is the name of the program to use to delete files associated with each FILE
++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
++to RM.
++
++If FILE is a libtool library, object or program, all the files associated
++with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ compile)
+@@ -3875,6 +6700,8 @@ Compile a source file into a libtool lib
+ This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
++ -prefer-pic try to building PIC objects only
++ -prefer-non-pic try to building non-PIC objects only
+ -static always build a \`.o' file suitable for static linking
+
+ COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+@@ -3954,8 +6781,13 @@ The following components of LINK-COMMAND
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
++ -no-fast-install disable the fast-install mode
++ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
++ -objectlist FILE Use a list of object files found in FILE to specify objects
++ -precious-files-regex REGEX
++ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+@@ -3997,14 +6829,33 @@ Otherwise, only FILE itself is deleted u
+ *)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+-echo
++$echo
+ $echo "Try \`$modename --help' for more information about other modes."
+
+-exit 0
++exit $?
++
++# The TAGs below are defined such that we never get into a situation
++# in which we disable both kinds of libraries. Given conflicting
++# choices, we go for a static library, that is the most portable,
++# since we can't tell whether shared libraries were disabled because
++# the user asked for that or because the platform doesn't support
++# them. This is particularly important on AIX, because we don't
++# support having both static and shared libraries enabled at the same
++# time on that platform, so we default to a shared-only configuration.
++# If a disable-shared tag is given, we'll fallback to a static-only
++# configuration. But we'll never go from static-only to shared-only.
++
++# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
++disable_libs=shared
++# ### END LIBTOOL TAG CONFIG: disable-shared
++
++# ### BEGIN LIBTOOL TAG CONFIG: disable-static
++disable_libs=static
++# ### END LIBTOOL TAG CONFIG: disable-static
+
+ # Local Variables:
+ # mode:shell-script
diff --git a/cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins.mk b/cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins.mk
new file mode 100644
index 0000000000..d3adc36f60
--- /dev/null
+++ b/cleopatre/buildroot/package/ace_of_penguins/ace_of_penguins.mk
@@ -0,0 +1,20 @@
+#############################################################
+#
+# ace_of_penguins
+#
+#############################################################
+
+ACE_OF_PENGUINS_VERSION = 1.2
+ACE_OF_PENGUINS_SOURCE = ace-$(ACE_OF_PENGUINS_VERSION).tar.gz
+ACE_OF_PENGUINS_SITE = http://www.delorie.com/store/ace/
+ACE_OF_PENGUINS_AUTORECONF = YES
+ACE_OF_PENGUINS_STAGING = NO
+ACE_OF_PENGUINS_TARGET = YES
+
+ACE_OF_PENGUINS_CONF_OPT = --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) --build=$(GNU_HOST_NAME) \
+ --prefix=/usr --sysconfdir=/etc
+
+ACE_OF_PENGUINS_DEPENDENCIES = uclibc libpng $(XSERVER)
+
+$(eval $(call AUTOTARGETS,package,ace_of_penguins)) \ No newline at end of file
diff --git a/cleopatre/buildroot/package/acpid/Config.in b/cleopatre/buildroot/package/acpid/Config.in
new file mode 100644
index 0000000000..ea9a364e8b
--- /dev/null
+++ b/cleopatre/buildroot/package/acpid/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_ACPID
+ bool "acpid"
+ depends on BR2_x86_64 || BR2_i386
+ help
+ Advanced Configuration and Power Interface event daemon.
+
+ Acpid is designed to notify user-space programs of ACPI events,
+ and allows you to configure specific actions for specific events.
diff --git a/cleopatre/buildroot/package/acpid/acpid-sign-warning.patch b/cleopatre/buildroot/package/acpid/acpid-sign-warning.patch
new file mode 100644
index 0000000000..ec66ace0d0
--- /dev/null
+++ b/cleopatre/buildroot/package/acpid/acpid-sign-warning.patch
@@ -0,0 +1,11 @@
+--- acpid-1.0.4/ud_socket.c
++++ acpid-1.0.4/ud_socket.c
+@@ -58,7 +58,7 @@ ud_accept(int listenfd, struct ucred *cr
+ while (1) {
+ int newsock = 0;
+ struct sockaddr_un cliaddr;
+- int len = sizeof(struct sockaddr_un);
++ socklen_t len = sizeof(struct sockaddr_un);
+
+ newsock = accept(listenfd, (struct sockaddr *)&cliaddr, &len);
+ if (newsock < 0) {
diff --git a/cleopatre/buildroot/package/acpid/acpid-socket-path.patch b/cleopatre/buildroot/package/acpid/acpid-socket-path.patch
new file mode 100644
index 0000000000..9304e7a52c
--- /dev/null
+++ b/cleopatre/buildroot/package/acpid/acpid-socket-path.patch
@@ -0,0 +1,11 @@
+--- acpid-1.0.4/acpid.h
++++ acpid-1.0.4/acpid.h
+@@ -32,7 +32,7 @@
+ #define ACPI_EVENTFILE ACPI_PROCDIR "/event"
+ #define ACPI_CONFDIR "/etc/acpi/events"
+ #define ACPI_LOGFILE "/var/log/acpid"
+-#define ACPI_SOCKETFILE "/var/run/acpid.socket"
++#define ACPI_SOCKETFILE "/tmp/acpid.socket"
+ #define ACPI_SOCKETMODE 0666
+ #define ACPI_MAX_ERRS 5
+
diff --git a/cleopatre/buildroot/package/acpid/acpid.mk b/cleopatre/buildroot/package/acpid/acpid.mk
new file mode 100644
index 0000000000..5aa99dfe10
--- /dev/null
+++ b/cleopatre/buildroot/package/acpid/acpid.mk
@@ -0,0 +1,48 @@
+#############################################################
+#
+# acpid
+#
+#############################################################
+ACPID_VERSION:=1.0.4
+ACPID_DIR=$(BUILD_DIR)/acpid-$(ACPID_VERSION)
+ACPID_SOURCE=acpid_$(ACPID_VERSION)-1.tar.gz
+ACPID_SITE=$(BR2_DEBIAN_MIRROR)/debian/pool/main/a/acpid
+
+$(DL_DIR)/$(ACPID_SOURCE):
+ $(WGET) -P $(DL_DIR) $(ACPID_SITE)/$(ACPID_SOURCE)
+
+$(ACPID_DIR)/.unpacked: $(DL_DIR)/$(ACPID_SOURCE)
+ $(ZCAT) $(DL_DIR)/$(ACPID_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ toolchain/patch-kernel.sh $(ACPID_DIR) package/acpid/ acpid\*.patch
+ touch $(ACPID_DIR)/.unpacked
+
+$(ACPID_DIR)/acpid: $(ACPID_DIR)/.unpacked
+ $(MAKE) CC=$(TARGET_CC) -C $(ACPID_DIR)
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $(ACPID_DIR)/acpid
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $(ACPID_DIR)/acpi_listen
+ touch -c $(ACPID_DIR)/acpid $(ACPID_DIR)/acpi_listen
+
+$(TARGET_DIR)/usr/sbin/acpid: $(ACPID_DIR)/acpid
+ cp -a $(ACPID_DIR)/acpid $(TARGET_DIR)/usr/sbin/acpid
+ mkdir -p $(TARGET_DIR)/etc/acpi/events
+ /bin/echo -e "event=button[ /]power\naction=/sbin/poweroff" > $(TARGET_DIR)/etc/acpi/events/powerbtn
+ touch -c $(TARGET_DIR)/usr/sbin/acpid
+
+acpid: $(TARGET_DIR)/usr/sbin/acpid
+
+acpid-source: $(DL_DIR)/$(ACPID_SOURCE)
+
+acpid-clean:
+ -make -C $(ACPID_DIR) clean
+
+acpid-dirclean:
+ rm -rf $(ACPID_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ACPID)),y)
+TARGETS+=acpid
+endif
diff --git a/cleopatre/buildroot/package/alsa-lib/Config.in b/cleopatre/buildroot/package/alsa-lib/Config.in
new file mode 100644
index 0000000000..3077d36b13
--- /dev/null
+++ b/cleopatre/buildroot/package/alsa-lib/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_ALSA_LIB
+ bool "alsa-lib"
+ help
+ The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+ functionality to the Linux operating system.
+
+ http://www.alsa-project.org/
diff --git a/cleopatre/buildroot/package/alsa-lib/alsa-lib.mk b/cleopatre/buildroot/package/alsa-lib/alsa-lib.mk
new file mode 100644
index 0000000000..6b9bda970f
--- /dev/null
+++ b/cleopatre/buildroot/package/alsa-lib/alsa-lib.mk
@@ -0,0 +1,87 @@
+#############################################################
+#
+# alsa-lib
+#
+#############################################################
+ALSA_LIB_VERSION:=1.0.14a
+ALSA_LIB_SOURCE:=alsa-lib-$(ALSA_LIB_VERSION).tar.bz2
+ALSA_LIB_SITE:=ftp://ftp.alsa-project.org/pub/lib
+ALSA_LIB_DIR:=$(BUILD_DIR)/alsa-lib-$(ALSA_LIB_VERSION)
+ALSA_LIB_CAT:=$(BZCAT)
+ALSA_LIB_BINARY:=libasound.so.2.0.0
+ALSA_LIB_TARGET_BINARY:=usr/lib/$(ALSA_LIB_BINARY)
+
+ifeq ($(BR2_arm),y)
+ALSA_LIB_ABI:=-mabi=aapcs-linux
+else
+ALSA_LIB_ABI:=
+endif
+
+ifeq ($(BR2_SOFT_FLOAT),y)
+ SOFT_FLOAT=--with-softfloat
+endif
+
+$(DL_DIR)/$(ALSA_LIB_SOURCE):
+ $(WGET) -P $(DL_DIR) $(ALSA_LIB_SITE)/$(ALSA_LIB_SOURCE)
+
+$(ALSA_LIB_DIR)/.unpacked: $(DL_DIR)/$(ALSA_LIB_SOURCE)
+ $(ALSA_LIB_CAT) $(DL_DIR)/$(ALSA_LIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(ALSA_LIB_DIR) package/alsa-lib/ alsa-lib-$(ALSA_LIB_VERSION)\*.patch*
+ $(CONFIG_UPDATE) $(ALSA_LIB_DIR)
+ touch $@
+
+$(ALSA_LIB_DIR)/.configured: $(ALSA_LIB_DIR)/.unpacked
+ (cd $(ALSA_LIB_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS) $(ALSA_LIB_ABI)" \
+ LDFLAGS="$(TARGET_LDFLAGS) -lm" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-static \
+ --disable-docs \
+ $(SOFT_FLOAT) \
+ $(DISABLE_NLS) \
+ )
+ touch $@
+
+$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured
+ $(MAKE) -C $(ALSA_LIB_DIR)
+ touch -c $@
+
+$(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY): $(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY)
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_LIB_DIR) install
+ $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libasound.la
+
+$(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY): $(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY)
+ mkdir -p $(TARGET_DIR)/usr/share/alsa $(TARGET_DIR)/usr/lib/alsa-lib
+ cp -dpf $(STAGING_DIR)/usr/lib/libasound.so* $(TARGET_DIR)/usr/lib/
+ cp -rdpf $(STAGING_DIR)/usr/share/alsa/* $(TARGET_DIR)/usr/share/alsa/
+ cp -rdpf $(STAGING_DIR)/usr/lib/alsa-lib/* $(TARGET_DIR)/usr/lib/alsa-lib/
+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libasound.so*
+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/alsa-lib/smixer/*.so
+ touch -c $@
+
+alsa-lib: uclibc $(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY)
+
+alsa-lib-source: $(DL_DIR)/$(ALSA-LIB_SOURCE)
+
+alsa-lib-clean:
+ rm -f $(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY)
+ -$(MAKE) -C $(ALSA_LIB_DIR) clean
+
+alsa-lib-dirclean:
+ rm -rf $(ALSA_LIB_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ALSA_LIB)),y)
+TARGETS+=alsa-lib
+endif
diff --git a/cleopatre/buildroot/package/alsa-utils/Config.in b/cleopatre/buildroot/package/alsa-utils/Config.in
new file mode 100644
index 0000000000..b7304f3972
--- /dev/null
+++ b/cleopatre/buildroot/package/alsa-utils/Config.in
@@ -0,0 +1,77 @@
+config BR2_PACKAGE_ALSA_UTILS
+ bool "alsa-utils"
+ depends on BR2_PACKAGE_ALSA_LIB
+ depends on BR2_PACKAGE_NCURSES
+ help
+ This package contains the command line utilities for the ALSA
+ project.
+
+ http://www.alsa-project.org/
+
+comment "alsa-utils needs ncurses"
+ depends on BR2_PACKAGE_ALSA_LIB
+ depends on !BR2_PACKAGE_NCURSES
+
+menu "ALSA utils selection"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ALSACONF
+ bool "alsaconf"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ALSACTL
+ bool "alsactl"
+ default y
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ALSAMIXER
+ bool "alsamixer"
+ default y
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_AMIDI
+ bool "amidi"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_AMIXER
+ bool "amixer"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_APLAY
+ bool "aplay"
+ select BR2_LARGEFILE
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ARECORD
+ bool "arecord"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_IECSET
+ bool "iecset"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ACONNECT
+ bool "aconnect"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_APLAYMIDI
+ bool "aplaymidi"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI
+ bool "arecordmidi"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ASEQDUMP
+ bool "aseqdump"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_ASEQNET
+ bool "aseqnet"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+config BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST
+ bool "speaker-test"
+ depends on BR2_PACKAGE_ALSA_UTILS
+
+endmenu
diff --git a/cleopatre/buildroot/package/alsa-utils/alsa-utils.mk b/cleopatre/buildroot/package/alsa-utils/alsa-utils.mk
new file mode 100644
index 0000000000..e21078c0c7
--- /dev/null
+++ b/cleopatre/buildroot/package/alsa-utils/alsa-utils.mk
@@ -0,0 +1,96 @@
+#############################################################
+#
+# alsa-utils
+#
+#############################################################
+ALSA_UTILS_VERSION:=1.0.14
+ALSA_UTILS_SOURCE:=alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2
+ALSA_UTILS_SITE:=ftp://ftp.alsa-project.org/pub/utils
+ALSA_UTILS_DIR:=$(BUILD_DIR)/alsa-utils-$(ALSA_UTILS_VERSION)
+ALSA_UTILS_CAT:=$(BZCAT)
+ALSA_UTILS_BINARY:=alsactl/alsactl
+ALSA_UTILS_TARGET_BINARY:=usr/sbin/alsactl
+
+$(DL_DIR)/$(ALSA_UTILS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(ALSA_UTILS_SITE)/$(ALSA_UTILS_SOURCE)
+
+$(ALSA_UTILS_DIR)/.unpacked: $(DL_DIR)/$(ALSA_UTILS_SOURCE)
+ $(ALSA_UTILS_CAT) $(DL_DIR)/$(ALSA_UTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(ALSA_UTILS_DIR) package/alsa-utils/ alsa-utils-$(ALSA_UTILS_VERSION)\*.patch\*
+ $(CONFIG_UPDATE) $(ALSA_UTILS_DIR)
+ touch $@
+
+$(ALSA_UTILS_DIR)/.configured: $(ALSA_UTILS_DIR)/.unpacked
+ (cd $(ALSA_UTILS_DIR); rm -f config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ )
+ touch $@
+
+$(ALSA_UTILS_DIR)/$(ALSA_UTILS_BINARY): $(ALSA_UTILS_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(ALSA_UTILS_DIR)
+ touch -c $@
+
+ALSA_UTILS_TARGETS_ :=
+ALSA_UTILS_TARGETS_y :=
+
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSACONF) += usr/sbin/alsaconf
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSACTL) += usr/sbin/alsactl
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSAMIXER) += usr/bin/alsamixer
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_AMIDI) += usr/bin/amidi
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_AMIXER) += usr/bin/amixer
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_APLAY) += usr/bin/aplay
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ARECORD) += usr/bin/arecord
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_IECSET) += usr/bin/iecset
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ACONNECT) += usr/bin/aconnect
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_APLAYMIDI) += usr/bin/aplaymidi
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI) += usr/bin/arecordmidi
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ASEQDUMP) += usr/bin/aseqdump
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ASEQNET) += usr/bin/aseqnet
+ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST) += usr/bin/speaker-test
+
+$(TARGET_DIR)/$(ALSA_UTILS_TARGET_BINARY): $(ALSA_UTILS_DIR)/$(ALSA_UTILS_BINARY)
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_UTILS_DIR) install
+ mkdir -p $(TARGET_DIR)/usr/bin
+ mkdir -p $(TARGET_DIR)/usr/sbin
+ for file in $(ALSA_UTILS_TARGETS_y); do \
+ cp -dpf $(STAGING_DIR)/$$file $(TARGET_DIR)/$$file; \
+ done
+ if [ -x "$(TARGET_DIR)/usr/bin/speaker-test" ]; then \
+ mkdir -p $(TARGET_DIR)/usr/share/alsa/speaker-test; \
+ mkdir -p $(TARGET_DIR)/usr/share/sounds/alsa; \
+ cp -rdpf $(STAGING_DIR)/usr/share/alsa/speaker-test/* $(TARGET_DIR)/usr/share/alsa/speaker-test/; \
+ cp -rdpf $(STAGING_DIR)/usr/share/sounds/alsa/* $(TARGET_DIR)/usr/share/sounds/alsa/; \
+ fi
+ touch -c $@
+
+alsa-utils: uclibc alsa-lib ncurses $(TARGET_DIR)/$(ALSA_UTILS_TARGET_BINARY)
+
+alsa-utils-source: $(DL_DIR)/$(ALSA_UTILS_SOURCE)
+
+alsa-utils-clean:
+ for file in $(ALSA_UTILS_TARGETS_y); do \
+ rm -f $(TARGET_DIR)/$$file; \
+ done
+ for file in $(ALSA_UTILS_TARGETS_); do \
+ rm -f $(TARGET_DIR)/$$file; \
+ done
+ -$(MAKE) -C $(ALSA_UTILS_DIR) clean
+
+alsa-utils-dirclean:
+ rm -rf $(ALSA_UTILS_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ALSA_UTILS)),y)
+TARGETS+=alsa-utils
+endif
diff --git a/cleopatre/buildroot/package/alsamixergui/Config.in b/cleopatre/buildroot/package/alsamixergui/Config.in
new file mode 100644
index 0000000000..bbdd1b6e07
--- /dev/null
+++ b/cleopatre/buildroot/package/alsamixergui/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_ALSAMIXERGUI
+ bool "alsamixergui"
+ help
+ A nice GUI mixer for Alsa using fltk
+
+ http://snapshot.debian.net/archive/2008/03/19/debian/pool/main/a/alsamixergui
diff --git a/cleopatre/buildroot/package/alsamixergui/alsamixergui.mk b/cleopatre/buildroot/package/alsamixergui/alsamixergui.mk
new file mode 100644
index 0000000000..07477e6a5f
--- /dev/null
+++ b/cleopatre/buildroot/package/alsamixergui/alsamixergui.mk
@@ -0,0 +1,18 @@
+#############################################################
+#
+# alsamixergui
+#
+#############################################################
+ALSAMIXERGUI_VERSION = 0.9.0rc2-1
+ALSAMIXERGUI_SOURCE = alsamixergui_$(ALSAMIXERGUI_VERSION).orig.tar.gz
+ALSAMIXERGUI_SITE = http://snapshot.debian.net/archive/2008/03/19/debian/pool/main/a/alsamixergui
+ALSAMIXERGUI_AUTORECONF = YES
+ALSAMIXERGUI_INSTALL_STAGING = NO
+ALSAMIXERGUI_INSTALL_TARGET = YES
+
+ALSAMIXERGUI_CONF_OPT = LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -lstdc++ -lX11"
+
+ALSAMIXERGUI_DEPENDENCIES = uclibc fltk
+
+$(eval $(call AUTOTARGETS,package,alsamixergui))
+
diff --git a/cleopatre/buildroot/package/alsamixergui/alsamixergui_0.9.0rc2-1-7.patch b/cleopatre/buildroot/package/alsamixergui/alsamixergui_0.9.0rc2-1-7.patch
new file mode 100644
index 0000000000..6b498dadf9
--- /dev/null
+++ b/cleopatre/buildroot/package/alsamixergui/alsamixergui_0.9.0rc2-1-7.patch
@@ -0,0 +1,40 @@
+--- a/configure.in
++++ b/configure.in
+@@ -11,7 +11,10 @@
+ AC_PROG_LN_S
+
+ dnl Checks for libraries.
+-AC_CHECK_LIB(fltk,numericsort,,AC_MSG_ERROR("missing fltk"))
++AC_CHECK_LIB(fltk,numericsort,,
++AC_CHECK_LIB(fltk,fl_numericsort,,
++AC_MSG_ERROR("missing fltk"))
++)
+ AM_PATH_ALSA(0.9.0)
+
+ dnl Checks for header files.
+--- a/src/alsamixer.cxx 2007-10-21 12:39:11.000000000 -0400
++++ b/src/alsamixer.cxx 2007-10-21 12:49:10.000000000 -0400
+@@ -2081,8 +2081,8 @@ static void
+ mixer_signal_handler (int signal)
+ {
+ if (signal != SIGSEGV)
+- mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
+- else
++ // mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
++ //else
+ {
+ fprintf (stderr, "\nSegmentation fault.\n");
+ _exit (11);
+--- a/src/alsamixer.cxx 2006-01-16 12:41:54.000000000 -0600
++++ b/src/alsamixer.cxx 2006-01-16 12:45:44.000000000 -0600
+@@ -653,8 +653,8 @@
+ if (vleft >= 0 && vright >= 0) {
+ if (joined) {
+ #ifdef ALSAMIXER_GUI
+- for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST;
+- snd_mixer_selem_channel_id_t(int(chn)++))
++ for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST;
++ snd_mixer_selem_channel_id_t(int(chn)+1))
+ #else
+ for (chn = 0; chn < SND_MIXER_SCHN_LAST; chn++)
+ #endif
diff --git a/cleopatre/buildroot/package/argus/Config.in b/cleopatre/buildroot/package/argus/Config.in
new file mode 100644
index 0000000000..bdd3bc0f5a
--- /dev/null
+++ b/cleopatre/buildroot/package/argus/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_ARGUS
+ bool "argus"
+ depends on BR2_PACKAGE_LIBPCAP
+ help
+ A Real Time Flow Monitor-based audit engine.
+
+ http://qosient.com/argus/
+
+comment "argus - disabled (requires libpcap)"
+ depends on !BR2_PACKAGE_LIBPCAP
diff --git a/cleopatre/buildroot/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch b/cleopatre/buildroot/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch
new file mode 100644
index 0000000000..a439050a13
--- /dev/null
+++ b/cleopatre/buildroot/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch
@@ -0,0 +1,1278 @@
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusApp.c argus-3.0.0.rc.34/argus/ArgusApp.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusApp.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusApp.c 2006-12-20 16:21:04.000000000 +0100
+@@ -196,9 +196,9 @@ ArgusUpdateAppState (struct ArgusModeler
+ net->hdr.argus_dsrvl8.qual = 0;
+ net->hdr.argus_dsrvl8.len = ((sizeof(struct ArgusRTCPObject) + 3)/4) + 1;
+ if (model->ArgusThisDir) {
+- bcopy ((char *) rtcp, (char *)&rtcpObject->src, sizeof(*rtcp));
++ memmove ((char *)&rtcpObject->src, (char *) rtcp, sizeof(*rtcp));
+ } else {
+- bcopy ((char *) rtcp, (char *)&rtcpObject->dst, sizeof(*rtcp));
++ memmove ((char *)&rtcpObject->dst, (char *) rtcp, sizeof(*rtcp));
+ }
+
+ } else {
+@@ -215,9 +215,9 @@ ArgusUpdateAppState (struct ArgusModeler
+ rtp->rh_ssrc = ntohl(rtp->rh_ssrc);
+
+ if (model->ArgusThisDir) {
+- bcopy ((char *) rtp, (char *)&rtpObject->src, sizeof(*rtp));
++ memmove ((char *)&rtpObject->src, (char *) rtp, sizeof(*rtp));
+ } else {
+- bcopy ((char *) rtp, (char *)&rtpObject->dst, sizeof(*rtp));
++ memmove ((char *)&rtpObject->dst, (char *) rtp, sizeof(*rtp));
+ }
+ }
+ }
+@@ -301,7 +301,7 @@ ArgusUpdateAppState (struct ArgusModeler
+
+ if ((bytes = model->ArgusThisSnapEnd - model->ArgusThisUpHdr) > 0) {
+ thislen = (thislen > bytes) ? bytes : thislen;
+- bcopy (model->ArgusThisUpHdr, &((char *)&user->array)[user->count], thislen);
++ memmove (&((char *)&user->array)[user->count], model->ArgusThisUpHdr, thislen);
+ user->count += thislen;
+ }
+ }
+@@ -358,7 +358,7 @@ ArgusUpdateRTPState (struct ArgusModeler
+ ArgusThisRtpHdr = &rtpObject->dst;
+
+ if (!(ArgusThisRtpHdr->rh_seq)) {
+- bcopy ((char *) rtp, (char *)ArgusThisRtpHdr, sizeof(*rtp));
++ memmove ((char *)ArgusThisRtpHdr, (char *) rtp, sizeof(*rtp));
+ } else {
+ if (!(rtp->rh_ssrc) || (ArgusThisRtpHdr->rh_ssrc != rtp->rh_ssrc))
+ flowstr->dsrs[ARGUS_NETWORK_INDEX] = NULL;
+@@ -404,7 +404,7 @@ ArgusUpdateRTPState (struct ArgusModeler
+ }
+ }
+
+- bcopy ((char *) rtp, (char *) ArgusThisRtpHdr, sizeof(*rtp));
++ memmove ((char *) ArgusThisRtpHdr, (char *) rtp, sizeof(*rtp));
+
+ model->ArgusThisUpHdr = (unsigned char *)(rtp + 1) + offset;
+ model->ArgusThisLength -= (sizeof(struct rtphdr) + offset);
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusArp.c argus-3.0.0.rc.34/argus/ArgusArp.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusArp.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusArp.c 2006-12-20 16:12:05.000000000 +0100
+@@ -81,8 +81,8 @@ ArgusCreateArpFlow (struct ArgusModelerS
+ case ARPOP_REQUEST:
+ retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_ARP;
+ srcehost = (unsigned char *) &model->ArgusThisEpHdr->ether_shost;
+- bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_tpa));
+- bcopy ((char *)&arp->arp_spa, &arp_spa, sizeof(arp_spa));
++ memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa));
++ memmove (&arp_spa, (char *)&arp->arp_spa, sizeof(arp_spa));
+ #ifdef _LITTLE_ENDIAN
+ arp_spa = ntohl(arp_spa);
+ arp_tpa = ntohl(arp_tpa);
+@@ -90,7 +90,7 @@ ArgusCreateArpFlow (struct ArgusModelerS
+ if (arp_spa > arp_tpa)
+ model->state |= ARGUS_DIRECTION;
+
+- bcopy (srcehost, retn->arp_flow.etheraddr, sizeof (retn->arp_flow.etheraddr));
++ memmove (retn->arp_flow.etheraddr, srcehost, sizeof (retn->arp_flow.etheraddr));
+
+ retn->arp_flow.arp_tpa = arp_tpa;
+ retn->arp_flow.arp_spa = arp_spa;
+@@ -101,8 +101,8 @@ ArgusCreateArpFlow (struct ArgusModelerS
+ retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_ARP;
+ srcehost = (unsigned char *) &model->ArgusThisEpHdr->ether_dhost;
+
+- bcopy ((char *)&arp->arp_spa, &arp_spa, sizeof(arp_tpa));
+- bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_spa));
++ memmove (&arp_spa, (char *)&arp->arp_spa, sizeof(arp_tpa));
++ memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_spa));
+ #ifdef _LITTLE_ENDIAN
+ arp_spa = ntohl(arp_spa);
+ arp_tpa = ntohl(arp_tpa);
+@@ -111,7 +111,7 @@ ArgusCreateArpFlow (struct ArgusModelerS
+ if (arp_tpa > arp_spa)
+ model->state |= ARGUS_DIRECTION;
+
+- bcopy (srcehost, retn->arp_flow.etheraddr, sizeof (retn->arp_flow.etheraddr));
++ memmove (retn->arp_flow.etheraddr, srcehost, sizeof (retn->arp_flow.etheraddr));
+
+ retn->arp_flow.arp_tpa = arp_tpa;
+ retn->arp_flow.arp_spa = arp_spa;
+@@ -120,29 +120,29 @@ ArgusCreateArpFlow (struct ArgusModelerS
+
+ case REVARP_REQUEST:
+ retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_RARP;
+- bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_tpa));
++ memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa));
+ #ifdef _LITTLE_ENDIAN
+ arp_tpa = ntohl(arp_tpa);
+ #endif
+
+ srcehost = (unsigned char *)&THA(arp);
+ tarehost = (unsigned char *)&SHA(arp);
+- bcopy ((char *)&arp->arp_tpa, &retn->rarp_flow.arp_tpa, sizeof(arp_tpa));
+- bcopy (srcehost, retn->rarp_flow.srceaddr, sizeof (retn->rarp_flow.srceaddr));
+- bcopy (tarehost, retn->rarp_flow.tareaddr, sizeof (retn->rarp_flow.tareaddr));
++ memmove (&retn->rarp_flow.arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa));
++ memmove (retn->rarp_flow.srceaddr, srcehost, sizeof (retn->rarp_flow.srceaddr));
++ memmove (retn->rarp_flow.tareaddr, tarehost, sizeof (retn->rarp_flow.tareaddr));
+ break;
+
+ case REVARP_REPLY:
+ retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_RARP;
+- bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_tpa));
++ memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa));
+ #ifdef _LITTLE_ENDIAN
+ arp_tpa = ntohl(arp_tpa);
+ #endif
+ srcehost = (unsigned char *)&SHA(arp);
+ tarehost = (unsigned char *)&THA(arp);
+- bcopy ((char *)&arp->arp_tpa, &retn->rarp_flow.arp_tpa, sizeof(arp_tpa));
+- bcopy (srcehost, retn->rarp_flow.srceaddr, sizeof (retn->rarp_flow.srceaddr));
+- bcopy (tarehost, retn->rarp_flow.tareaddr, sizeof (retn->rarp_flow.tareaddr));
++ memmove (&retn->rarp_flow.arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa));
++ memmove (retn->rarp_flow.srceaddr, srcehost, sizeof (retn->rarp_flow.srceaddr));
++ memmove (retn->rarp_flow.tareaddr, tarehost, sizeof (retn->rarp_flow.tareaddr));
+ break;
+ }
+ }
+@@ -177,7 +177,7 @@ ArgusUpdateArpState (struct ArgusModeler
+ break;
+
+ case ARPOP_REPLY:
+- bcopy ((unsigned char *)&SHA(arp), arpobj->respaddr, 6);
++ memmove (arpobj->respaddr, (unsigned char *)&SHA(arp), 6);
+ break;
+ }
+ }
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusEsp.c argus-3.0.0.rc.34/argus/ArgusEsp.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusEsp.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusEsp.c 2006-12-20 15:57:17.000000000 +0100
+@@ -123,7 +123,7 @@ ArgusUpdateESPState (struct ArgusModeler
+
+ flowstr->dsrs[ARGUS_NETWORK_INDEX] = (void *) net;
+
+- bzero ((char *)espObj, sizeof(*espObj));
++ memset ((char *)espObj, 0, sizeof(*espObj));
+ flowstr->timeout = ARGUS_IPTIMEOUT;
+
+ espObj->spi = esp->spi;
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusFrag.c argus-3.0.0.rc.34/argus/ArgusFrag.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusFrag.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusFrag.c 2006-12-20 16:18:25.000000000 +0100
+@@ -232,7 +232,7 @@ ArgusUpdateFRAGState (struct ArgusModele
+ if (prvfragOffset != NULL) {
+ prvfragOffset->nxt = fragOffset->nxt;
+ } else {
+- bcopy((char *) fragOffset->nxt , (char *)&frag->offsets, sizeof(frag->offsets));
++ memmove((char *)&frag->offsets, (char *) fragOffset->nxt, sizeof(frag->offsets));
+ }
+ /* else just update the prv fragments pointer to toss this one */
+ } else {
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusIcmp.c argus-3.0.0.rc.34/argus/ArgusIcmp.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusIcmp.c 2006-10-30 19:26:51.000000000 +0100
++++ argus-3.0.0.rc.34/argus/ArgusIcmp.c 2006-12-20 16:07:09.000000000 +0100
+@@ -159,8 +159,9 @@ ArgusCreateICMPFlow (struct ArgusModeler
+
+ case ICMP_UNREACH_NET:
+ case ICMP_UNREACH_HOST:
+- bcopy ((char *) &icmp->icmp_ip.ip_dst.s_addr,
+- (char *)&icmpFlow->id, sizeof (int));
++ memmove ((char *)&icmpFlow->id,
++ (char*) &icmp->icmp_ip.ip_dst.s_addr,
++ sizeof (int));
+ break;
+ }
+ break;
+@@ -174,7 +175,7 @@ ArgusCreateICMPFlow (struct ArgusModeler
+
+ case ICMP_REDIRECT_NET:
+ case ICMP_REDIRECT_HOST:
+- bcopy ((char *) &icmp->icmp_ip.ip_dst.s_addr, (char *)&icmpFlow->id, sizeof (int));
++ memmove ((char *)&icmpFlow->id, (char *) &icmp->icmp_ip.ip_dst.s_addr, sizeof (int));
+ break;
+ }
+ break;
+@@ -220,7 +221,7 @@ ArgusUpdateICMPState (struct ArgusModele
+ net->hdr.subtype = ARGUS_ICMP_DSR;
+ net->hdr.argus_dsrvl8.qual = 0;
+ net->hdr.argus_dsrvl8.len = ((sizeof(struct ArgusICMPObject)+3))/4 + 1;
+- bzero ((char *)icmpObj, sizeof(*icmpObj));
++ memset ((char *)icmpObj, 0, sizeof(*icmpObj));
+
+ icmpObj->icmp_type = icmp->icmp_type;
+ icmpObj->icmp_code = icmp->icmp_code;
+@@ -314,7 +315,7 @@ ArgusUpdateICMPState (struct ArgusModele
+ }
+
+ dsr->argus_dsrvl8.len = (sizeof (struct ArgusIcmpStruct) + 3)/4 + 1;
+- bcopy ((char *) icmpObj, (char *) (dsr + 1), sizeof (*icmpObj));
++ memmove ((char *) (dsr + 1), (char *) icmpObj, sizeof (*icmpObj));
+ flow->dsrs[ARGUS_ICMP_INDEX] = dsr;
+ flow->dsrindex |= 1 << ARGUS_ICMP_INDEX;
+
+@@ -361,7 +362,7 @@ ArgusUpdateICMPv6State (struct ArgusMode
+ net->hdr.subtype = ARGUS_ICMP_DSR;
+ net->hdr.argus_dsrvl8.qual = 0;
+ net->hdr.argus_dsrvl8.len = ((sizeof(struct ArgusICMPObject)+3))/4 + 1;
+- bzero ((char *)icmpObj, sizeof(*icmpObj));
++ memset ((char *)icmpObj, 0, sizeof(*icmpObj));
+
+ icmpObj->icmp_type = icmpv6->icmp6_type;
+ icmpObj->icmp_code = icmpv6->icmp6_code;
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusMac.c argus-3.0.0.rc.34/argus/ArgusMac.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusMac.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusMac.c 2006-12-20 16:18:44.000000000 +0100
+@@ -44,7 +44,7 @@ ArgusMacFlowRecord (struct ArgusFlowStru
+ struct ArgusMacStruct *mac = (struct ArgusMacStruct *) flowstr->MacDSRBuffer;
+
+ if (mac && ((length = argus->ahdr.length) > 0)) {
+- bcopy ((char *)mac, &((char *)argus)[argus->ahdr.length], sizeof(*mac));
++ memmove (&((char *)argus)[argus->ahdr.length], (char *)mac, sizeof(*mac));
+ argus->ahdr.length += sizeof(*mac);
+ }
+ }
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusModeler.c argus-3.0.0.rc.34/argus/ArgusModeler.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusModeler.c 2006-09-26 06:28:16.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusModeler.c 2006-12-20 16:17:19.000000000 +0100
+@@ -112,7 +112,7 @@ void *ArgusQueueManager(void *);
+ void
+ ArgusInitModeler(struct ArgusModelerStruct *model)
+ {
+- bzero (model->ArgusTimeOutQueues, sizeof(model->ArgusTimeOutQueues));
++ memset (model->ArgusTimeOutQueues, 0, sizeof(model->ArgusTimeOutQueues));
+ model->ArgusInProtocol = 1;
+ model->ArgusUpdateInterval.tv_usec = 200000;
+ model->ArgusMajorVersion = VERSION_MAJOR;
+@@ -525,7 +525,7 @@ ArgusProcessPacketHdrs (struct ArgusMode
+ model->ArgusThisEncaps |= ARGUS_ENCAPS_LLC;
+
+ llc = model->ArgusThisLLC;
+- bcopy((char *) ptr, (char *) llc, sizeof (struct llc));
++ memmove((char *) llc, (char *) ptr, sizeof (struct llc));
+
+ #define ARGUS_IPX_TAG 100
+
+@@ -772,7 +772,7 @@ ArgusProcessEtherHdr (struct ArgusModele
+ model->ArgusThisEncaps |= ARGUS_ENCAPS_LLC;
+
+ llc = model->ArgusThisLLC;
+- bcopy((char *) ptr, (char *) llc, sizeof (struct llc));
++ memmove((char *) llc, (char *) ptr, sizeof (struct llc));
+
+ #define ARGUS_IPX_TAG 100
+
+@@ -1314,11 +1314,11 @@ ArgusCreateFlow (struct ArgusModelerStru
+ }
+
+ if (dstgteq) {
+- bcopy ((char *) ep, (char *)&model->ArgusThisFlow->mac_flow.ehdr, sizeof (struct ether_header));
++ memmove ((char *)&model->ArgusThisFlow->mac_flow.ehdr, (char *) ep, sizeof (struct ether_header));
+ } else {
+ model->state |= ARGUS_DIRECTION;
+- bcopy ((char *)&ep->ether_shost, (char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_dhost, ETH_ALEN);
+- bcopy ((char *)&ep->ether_dhost, (char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_shost, ETH_ALEN);
++ memmove ((char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_dhost, (char *)&ep->ether_shost, ETH_ALEN);
++ memmove ((char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_shost, (char *)&ep->ether_dhost, ETH_ALEN);
+ model->ArgusThisFlow->mac_flow.ehdr.ether_type = ep->ether_type;
+ }
+
+@@ -1418,7 +1418,7 @@ ArgusNewFlow (struct ArgusModelerStruct
+ retn->qhdr.qtime.tv_sec = 0;
+ retn->qhdr.qtime.tv_usec = 0;
+
+- bzero ((char *)retn->dsrs, sizeof(retn->dsrs));
++ memset ((char *)retn->dsrs, 0, sizeof(retn->dsrs));
+
+ retn->dsrs[ARGUS_TRANSPORT_INDEX] = &retn->canon.trans.hdr;
+ trans = (struct ArgusTransportStruct *) retn->dsrs[ARGUS_TRANSPORT_INDEX];
+@@ -1429,7 +1429,7 @@ ArgusNewFlow (struct ArgusModelerStruct
+
+ retn->dsrs[ARGUS_TIME_INDEX] = (struct ArgusDSRHeader *) &retn->canon.time.hdr;
+ dtime = (struct ArgusTimeObject *) retn->dsrs[ARGUS_TIME_INDEX];
+- bzero((char *)dtime, sizeof(*dtime));
++ memset((char *)dtime, 0, sizeof(*dtime));
+ dtime->hdr.type = ARGUS_TIME_DSR;
+ dtime->hdr.subtype = ARGUS_TIME_ABSOLUTE_TIMESTAMP;
+ dtime->hdr.argus_dsrvl8.qual = ARGUS_TYPE_UTC_MICROSECONDS;
+@@ -1446,10 +1446,10 @@ ArgusNewFlow (struct ArgusModelerStruct
+ retn->dsrs[ARGUS_FLOW_INDEX] = (struct ArgusDSRHeader *) &retn->canon.flow.hdr;
+ retn->canon.flow.hdr = flow->hdr;
+
+- bcopy ((char *)&flow->flow_un, (char *)&retn->canon.flow.flow_un, (flow->hdr.argus_dsrvl8.len - 1) * 4);
++ memmove ((char *)&retn->canon.flow.flow_un, (char *)&flow->flow_un, (flow->hdr.argus_dsrvl8.len - 1) * 4);
+ retn->dsrindex |= 1 << ARGUS_FLOW_INDEX;
+
+- bzero ((char *)&retn->canon.metric, sizeof(retn->canon.metric));
++ memset ((char *)&retn->canon.metric, 0, sizeof(retn->canon.metric));
+ /*
+ if (retn->status & ARGUS_DIRECTION)
+ retn->dsrs[ARGUS_FLOW_INDEX]->subtype |= ARGUS_REVERSE;
+@@ -1573,7 +1573,7 @@ ArgusUpdateBasicFlow (struct ArgusModele
+ mac->hdr.argus_dsrvl8.len = 5;
+
+ if (model->ArgusThisEpHdr != NULL)
+- bcopy ((char *)model->ArgusThisEpHdr, (char *)&mac->mac_union.ether, sizeof(struct ether_header));
++ memmove ((char *)&mac->mac_union.ether, (char *)model->ArgusThisEpHdr, sizeof(struct ether_header));
+
+ flow->dsrindex |= 1 << ARGUS_MAC_INDEX;
+
+@@ -1652,8 +1652,8 @@ ArgusUpdateBasicFlow (struct ArgusModele
+ jitter->hdr.argus_dsrvl8.len = 1;
+ flow->dsrindex |= 1 << ARGUS_JITTER_INDEX;
+
+- bzero((char *)&jitter->act, sizeof(struct ArgusJitterObject));
+- bzero((char *)&jitter->idle, sizeof(struct ArgusJitterObject));
++ memset((char *)&jitter->act, 0, sizeof(struct ArgusJitterObject));
++ memset((char *)&jitter->idle, 0, sizeof(struct ArgusJitterObject));
+
+ memset(&flow->stime.act, 0, sizeof(flow->stime.act));
+ memset(&flow->stime.idle, 0, sizeof(flow->stime.idle));
+@@ -2094,7 +2094,7 @@ ArgusGenerateRecord (struct ArgusModeler
+ int i, x, len = 0, type = 0, dsrlen = 1;
+ struct ArgusDSRHeader *dsr;
+
+- bcopy ((char *)&rec->hdr, (char *)&retn->hdr, sizeof(retn->hdr));
++ memmove ((char *)&retn->hdr, (char *)&rec->hdr, sizeof(retn->hdr));
+ dsrptr = (unsigned int *)&retn->ar_un.mar;
+
+ if ((rec->canon.trans.seqnum = model->ArgusSeqNum++) == 0xFFFFFFFF)
+@@ -2441,7 +2441,7 @@ ArgusGenerateRecord (struct ArgusModeler
+ retn->hdr.len = dsrlen;
+
+ } else {
+- bcopy ((char *)&rec->canon, (char *) retn, rec->hdr.len * 4);
++ memmove ((char *) retn, (char *)&rec->canon, rec->hdr.len * 4);
+ retn->hdr = rec->hdr;
+ }
+
+@@ -2470,8 +2470,8 @@ ArgusCopyRecordStruct (struct ArgusRecor
+
+ if (rec) {
+ if ((retn = (struct ArgusRecordStruct *) ArgusMallocListRecord (sizeof(*retn))) != NULL) {
+- bcopy ((char *)&rec->hdr, (char *)&retn->hdr, sizeof (rec->hdr));
+- bcopy ((char *)&rec->canon, (char *)&retn->canon, sizeof (rec->canon));
++ memmove ((char *)&retn->hdr, (char *)&rec->hdr, sizeof (rec->hdr));
++ memmove ((char *)&retn->canon, (char *)&rec->canon, sizeof (rec->canon));
+
+ if ((retn->dsrindex = rec->dsrindex)) {
+ for (i = 0; i < ARGUSMAXFLOWTYPE; i++) {
+@@ -2494,7 +2494,7 @@ ArgusCopyRecordStruct (struct ArgusRecor
+ struct ArgusDataStruct *user = (struct ArgusDataStruct *) rec->dsrs[i];
+ if (user->count > 0) {
+ if ((retn->dsrs[i] = (void *) ArgusCalloc(1, (8 + user->size))) != NULL) {
+- bcopy ((char *)rec->dsrs[i], (char *)retn->dsrs[i], 8 + user->size);
++ memmove ((char *)retn->dsrs[i], (char *)rec->dsrs[i], 8 + user->size);
+ } else {
+ retn->dsrindex &= ~(0x01 << i);
+ }
+@@ -2541,7 +2541,7 @@ ArgusGenerateListRecord (struct ArgusMod
+
+ if ((retn = (struct ArgusRecordStruct *) ArgusMallocListRecord (sizeof(*retn))) != NULL) {
+ if (flow) {
+- bcopy ((char *)&flow->canon, (char *)&retn->canon, sizeof (flow->canon));
++ memmove ((char *)&retn->canon, (char *)&flow->canon, sizeof (flow->canon));
+ if ((retn->dsrindex = flow->dsrindex) != 0) {
+ for (i = 0; i < ARGUSMAXFLOWTYPE; i++) {
+ if (flow->dsrs[i] != NULL) {
+@@ -2691,8 +2691,8 @@ ArgusGenerateListRecord (struct ArgusMod
+
+ } else {
+ retn->dsrindex = 0;
+- bzero ((char *)&retn->canon, sizeof(retn->canon));
+- bzero ((char *)retn->dsrs, sizeof(retn->dsrs));
++ memset ((char *)&retn->canon, 0, sizeof(retn->canon));
++ memset ((char *)retn->dsrs, 0, sizeof(retn->dsrs));
+ }
+
+ if (!(flow) && ((state == ARGUS_STOP) || (state == ARGUS_ERROR))) {
+@@ -3017,7 +3017,7 @@ ArgusCreateIPv4Flow (struct ArgusModeler
+ model->ArgusSnapLength -= hlen;
+
+ if (model->ArgusFlowKey & ARGUS_FLOW_KEY_CLASSIC5TUPLE) {
+- bzero ((char *)model->ArgusThisFlow, sizeof(*model->ArgusThisFlow));
++ memset ((char *)model->ArgusThisFlow, 0, sizeof(*model->ArgusThisFlow));
+ model->ArgusThisFlow->hdr.type = ARGUS_FLOW_DSR;
+ model->ArgusThisFlow->hdr.subtype = ARGUS_FLOW_CLASSIC5TUPLE;
+ model->ArgusThisFlow->hdr.argus_dsrvl8.qual = ARGUS_TYPE_IPV4;
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusOutput.c argus-3.0.0.rc.34/argus/ArgusOutput.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusOutput.c 2006-10-16 21:57:15.000000000 +0200
++++ argus-3.0.0.rc.34/argus/ArgusOutput.c 2006-12-20 16:21:26.000000000 +0100
+@@ -530,7 +530,7 @@ ArgusEstablishListen (struct ArgusOutput
+ #endif
+ if ((host = gethostbyname (bindIP)) != NULL) {
+ if ((host->h_addrtype == AF_INET) && (host->h_length == 4)) {
+- bcopy ((char *) *host->h_addr_list, (char *)&sin.sin_addr.s_addr, host->h_length);
++ memmove ((char *)&sin.sin_addr.s_addr, (char *) *host->h_addr_list, host->h_length);
+ } else
+ ArgusLog (LOG_ERR, "ArgusEstablishListen() unsupported bind address %s", bindIP);
+ } else
+@@ -600,7 +600,7 @@ ArgusCheckClientStatus (struct ArgusOutp
+ if (output->clientnum < ARGUS_MAXLISTEN) {
+ int i = output->clientnum++;
+
+- bzero(&output->clients[i], sizeof(output->clients[i]));
++ memset(&output->clients[i], 0, sizeof(output->clients[i]));
+ output->clients[i].fd = fd;
+ #ifdef ARGUSDEBUG
+ ArgusDebug (2, "ArgusCheckClientStatus() new client %d\n", i);
+@@ -754,7 +754,7 @@ ArgusCheckClientMessage (struct ArgusOut
+ ArgusLog (LOG_ERR, "ArgusCheckClientMessage(0x%x, %d) sasl_getprop %s\n", client, fd, strerror(errno));
+ #endif /* ARGUS_SASL */
+
+- bzero(buf, MAXSTRLEN);
++ memset(buf, 0, MAXSTRLEN);
+
+ if (value == 0)
+ value = MAXSTRLEN;
+@@ -791,8 +791,8 @@ ArgusCheckClientMessage (struct ArgusOut
+ #endif
+ if (outputlen > 0) {
+ if (outputlen < MAXSTRLEN) {
+- bzero (buf, MAXSTRLEN);
+- bcopy (outputbuf, buf, outputlen);
++ memset (buf, 0, MAXSTRLEN);
++ memmove (buf, outputbuf, outputlen);
+ cnt = outputlen;
+ } else
+ ArgusLog (LOG_ERR, "ArgusCheckClientMessage(0x%x, %d) sasl_decode returned %d bytes\n", client, fd, outputlen);
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusSource.c argus-3.0.0.rc.34/argus/ArgusSource.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusSource.c 2006-10-30 19:53:29.000000000 +0100
++++ argus-3.0.0.rc.34/argus/ArgusSource.c 2006-12-20 16:05:50.000000000 +0100
+@@ -92,11 +92,11 @@ ArgusInitSource (struct ArgusSourceStruc
+
+ src->ArgusInterfaces = 0;
+ for (i = 0; i < ARGUS_MAXINTERFACE; i++)
+- bzero ((char *)&src->ArgusInterface[i], sizeof(struct ArgusInterfaceStruct));
++ memset ((char *)&src->ArgusInterface[i], 0, sizeof(struct ArgusInterfaceStruct));
+
+ if (src->ArgusRfileList != NULL) {
+ setuid(getuid());
+- bzero(errbuf, sizeof(errbuf));
++ memset(errbuf, 0, sizeof(errbuf));
+
+ if (ArgusOpenInputPacketFile(src, errbuf) == 0) {
+ }
+@@ -156,7 +156,7 @@ ArgusInitSource (struct ArgusSourceStruc
+ src->ArgusInputFilter = cmdbuf;
+ }
+
+- bzero ((char *) &src->ArgusInterface[0].ArgusFilter, sizeof (struct bpf_program));
++ memset ((char *) &src->ArgusInterface[0].ArgusFilter, 0, sizeof (struct bpf_program));
+
+ if (pcap_compile (src->ArgusInterface[0].ArgusPd, &src->ArgusInterface[0].ArgusFilter, src->ArgusInputFilter, getArgusOflag(src), src->ArgusInterface[0].ArgusNetMask) < 0)
+ ArgusLog (LOG_ERR, "%s\n", pcap_geterr (src->ArgusInterface[0].ArgusPd));
+@@ -421,7 +421,7 @@ ArgusMoatTshRead (struct ArgusSourceStru
+ int retn = 0, length = 0;
+ struct ip *iphdr = NULL;
+
+- bzero (ArgusMoatPktHdr, sizeof(MoatTshBuffer));
++ memset (ArgusMoatPktHdr, 0, sizeof(MoatTshBuffer));
+
+ if ((retn = read(pcap_fileno(src->ArgusInterface[0].ArgusPd), ArgusMoatPktHdr, ARGUSMOATLEN)) == ARGUSMOATLEN) {
+ ArgusMoatPktHdr->interface = 0;
+@@ -666,7 +666,7 @@ ArgusArcnetPacket (u_char *user, const s
+ caplen -= archdrlen;
+ p += archdrlen;
+
+- bcopy (p, (char *)ep, caplen);
++ memmove ((char *)ep, p, caplen);
+
+ src->ArgusModel->ArgusThisLength = length;
+ src->ArgusModel->ArgusSnapLength = caplen;
+@@ -973,8 +973,8 @@ Argusextract_fddi_addrs(const struct fdd
+ fsrc[i] = fddi_bit_swap[fp->fddi_shost[i]];
+ }
+ else {
+- bcopy ((char *) fp->fddi_dhost, fdst, 6);
+- bcopy ((char *) fp->fddi_shost, fsrc, 6);
++ memmove (fdst, (char *) fp->fddi_dhost, 6);
++ memmove (fsrc, (char *) fp->fddi_shost, 6);
+ }
+ }
+
+@@ -994,7 +994,7 @@ ArgusCreatePktFromFddi(const struct fddi
+ ((struct ether_header *) ep)->ether_type = EXTRACT_16BITS(&llc->ethertype[0]);
+ ptr = (unsigned char *)(llc + 1);
+ length -= (sizeof(struct fddi_header) + sizeof(struct llc));
+- bcopy ((char *)ptr, (char *)(ep + 1), length);
++ memmove ((char *)(ep + 1), (char *)ptr, length);
+ retn = length + sizeof(struct ether_header);
+ }
+ }
+@@ -1099,7 +1099,7 @@ ArgusATMPacket(u_char *user, const struc
+ caplen -= ARGUS_ATM_HDR_OFFSET;
+ p += ARGUS_ATM_HDR_OFFSET;
+
+- bcopy (p, (char *)(ep + 1), caplen);
++ memmove ((char *)(ep + 1), p, caplen);
+
+ length += sizeof(*ep);
+ caplen += sizeof(*ep);
+@@ -1752,7 +1752,7 @@ ArgusGetInterfaceStatus (struct ArgusSou
+ if (strstr(device->name, "dag")) {
+ for (i = 0; i < src->ArgusInterfaces; i++) {
+ if (src->ArgusInterface[i].ArgusPd && (pcap_fileno(src->ArgusInterface[i].ArgusPd) > 0))
+- bzero ((char *)&src->ArgusInterface[i].ifr, sizeof(ifr));
++ memset ((char *)&src->ArgusInterface[i].ifr, 0, sizeof(ifr));
+
+ src->ArgusInterface[i].ifr.ifr_flags |= IFF_UP;
+ setArgusInterfaceStatus(src, 1);
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusTcp.c argus-3.0.0.rc.34/argus/ArgusTcp.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusTcp.c 2006-10-30 19:07:13.000000000 +0100
++++ argus-3.0.0.rc.34/argus/ArgusTcp.c 2006-12-20 16:17:49.000000000 +0100
+@@ -89,7 +89,7 @@ ArgusUpdateTCPState (struct ArgusModeler
+ net->hdr.argus_dsrvl8.len = ((sizeof(struct ArgusTCPObject)+3))/4 + 1;
+ flowstr->dsrs[ARGUS_NETWORK_INDEX] = (struct ArgusDSRHeader *) net;
+ tcpExt = &net->net_union.tcp;
+- bzero ((char *)tcpExt, sizeof(*tcpExt));
++ memset ((char *)tcpExt, 0, sizeof(*tcpExt));
+
+ model->ArgusSnapLength -= tcphlen;
+ model->ArgusThisLength = tcpdatalen;
+@@ -287,7 +287,7 @@ ArgusInitializeTCP (struct ArgusModelerS
+ {
+ struct ArgusTCPObject *tcpExt = (struct ArgusTCPObject *)&flow->canon.net.net_union.tcp;
+
+- bzero ((char *)tcpExt, sizeof(*tcpExt));
++ memset ((char *)tcpExt, 0, sizeof(*tcpExt));
+
+ flow->qhdr.lasttime.tv_sec = 0;
+ flow->qhdr.lasttime.tv_usec = 0;
+@@ -684,7 +684,7 @@ ArgusTCPFlowRecord (struct ArgusNetworkS
+ tcpExt->dst.ackbytes++;
+
+ if (tcp && ((length = argus->hdr.len) > 0)) {
+- bcopy ((char *)tcp, &((char *)argus)[length], sizeof(*tcp));
++ memmove (&((char *)argus)[length], (char *)tcp, sizeof(*tcp));
+ argus->hdr.len += sizeof(*tcp);
+ }
+
+diff -rup argus-3.0.0.rc.34.orig/argus/ArgusUtil.c argus-3.0.0.rc.34/argus/ArgusUtil.c
+--- argus-3.0.0.rc.34.orig/argus/ArgusUtil.c 2006-11-03 18:44:23.000000000 +0100
++++ argus-3.0.0.rc.34/argus/ArgusUtil.c 2006-12-20 16:19:14.000000000 +0100
+@@ -854,8 +854,8 @@ ArgusZeroRecord (struct ArgusFlowStruct
+
+ case ARGUS_JITTER_INDEX: {
+ struct ArgusJitterStruct *jit = (void *)flow->dsrs[i];
+- bzero ((char *)&jit->act, sizeof(struct ArgusJitterObject));
+- bzero ((char *)&jit->idle, sizeof(struct ArgusJitterObject));
++ memset ((char *)&jit->act, 0, sizeof(struct ArgusJitterObject));
++ memset ((char *)&jit->idle, 0, sizeof(struct ArgusJitterObject));
+ jit->act.src.minval = 0xffffffff;
+ jit->idle.src.minval = 0xffffffff;
+ jit->act.dst.minval = 0xffffffff;
+@@ -1105,7 +1105,7 @@ ArgusWriteSocket (struct ArgusOutputStru
+ ArgusDebug (3, "ArgusHandleClientData: sasl_encode returned %d bytes\n", outputlen);
+ #endif
+ if (outputlen < ARGUS_MAXRECORD) {
+- bcopy(output, asock->buf, outputlen);
++ memmove(asock->buf, output, outputlen);
+ cnt = outputlen;
+ } else
+ ArgusLog (LOG_ERR, "sasl_encode: returned too many bytes %d\n", outputlen);
+@@ -1282,7 +1282,7 @@ ArgusWriteOutSocket (struct ArgusOutputS
+ ArgusDebug (3, "ArgusHandleClientData: sasl_encode returned %d bytes\n", outputlen);
+ #endif
+ if (outputlen < ARGUS_MAXRECORD) {
+- bcopy(output, asock->buf, outputlen);
++ memmove(asock->buf, output, outputlen);
+ cnt = outputlen;
+
+ } else
+diff -rup argus-3.0.0.rc.34.orig/argus/argus.c argus-3.0.0.rc.34/argus/argus.c
+--- argus-3.0.0.rc.34.orig/argus/argus.c 2006-11-03 19:54:13.000000000 +0100
++++ argus-3.0.0.rc.34/argus/argus.c 2006-12-20 16:12:47.000000000 +0100
+@@ -303,7 +303,7 @@ main (int argc, char *argv[])
+ if ((host = gethostbyname(optarg)) != NULL) {
+ if ((host->h_addrtype == 2) && (host->h_length == 4)) {
+ unsigned int addr;
+- bcopy ((char *) *host->h_addr_list, (char *)&addr, host->h_length);
++ memmove ((char *)&addr, (char *) *host->h_addr_list, host->h_length);
+ #if defined(_LITTLE_ENDIAN)
+ setArgusID (ArgusModel, ntohl(addr));
+ #else
+@@ -499,7 +499,7 @@ ArgusComplete ()
+ if (ArgusSourceTask->ArgusStartTime.tv_sec == 0)
+ ArgusSourceTask->ArgusStartTime = ArgusSourceTask->ArgusEndTime;
+
+- bzero(buf, sizeof(buf));
++ memset(buf, 0, sizeof(buf));
+
+ timediff.tv_sec = ArgusSourceTask->ArgusEndTime.tv_sec - ArgusSourceTask->ArgusStartTime.tv_sec;
+ timediff.tv_usec = ArgusSourceTask->ArgusEndTime.tv_usec - ArgusSourceTask->ArgusStartTime.tv_usec;
+@@ -784,7 +784,7 @@ ArgusParseResourceFile (struct ArgusMode
+ if ((host = gethostbyname(optarg)) != NULL) {
+ if ((host->h_addrtype == 2) && (host->h_length == 4)) {
+ unsigned int addr;
+- bcopy ((char *) *host->h_addr_list, (char *)&addr, host->h_length);
++ memmove ((char *)&addr, (char *) *host->h_addr_list, host->h_length);
+ #if defined(_LITTLE_ENDIAN)
+ setArgusID (model, ntohl(addr));
+ #else
+diff -rup argus-3.0.0.rc.34.orig/common/argus_auth.c argus-3.0.0.rc.34/common/argus_auth.c
+--- argus-3.0.0.rc.34.orig/common/argus_auth.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/common/argus_auth.c 2006-12-20 16:56:47.000000000 +0100
+@@ -473,12 +473,12 @@ RaSendSaslString (FILE *f, const char *s
+ char saslbuf[MAXSTRLEN];
+ int len, al = 0;
+
+- bzero (saslbuf, MAXSTRLEN);
++ memset (saslbuf, 0, MAXSTRLEN);
+
+ snprintf(saslbuf, MAXSTRLEN, "{%d}\r\n", l);
+ len = strlen(saslbuf);
+
+- bcopy (s, &saslbuf[len], l);
++ memmove (&saslbuf[len], s, l);
+ len += l;
+
+ al = fwrite(saslbuf, 1, len, f);
+diff -rup argus-3.0.0.rc.34.orig/common/argus_parse.c argus-3.0.0.rc.34/common/argus_parse.c
+--- argus-3.0.0.rc.34.orig/common/argus_parse.c 2006-08-18 19:15:14.000000000 +0200
++++ argus-3.0.0.rc.34/common/argus_parse.c 2006-12-20 16:56:34.000000000 +0100
+@@ -80,7 +80,7 @@ argus_parse_init (struct ARGUS_INPUT *in
+ if (input != NULL)
+ fd = input->fd;
+
+- bzero((char *)&ArgusOutputFile, sizeof(ArgusOutputFile));
++ memset((char *)&ArgusOutputFile, 0, sizeof(ArgusOutputFile));
+
+ if (initCon) {
+ if (initCon->ahdr.status & ARGUS_DETAIL) detail++;
+@@ -496,8 +496,8 @@ main (int argc, char **argv)
+ *RaInputFilter = cmdbuf;
+ }
+
+- bzero ((char *) &ArgusFilterCode, sizeof (ArgusFilterCode));
+- bzero ((char *) &pbuf, sizeof (pbuf));
++ memset ((char *) &ArgusFilterCode, 0, sizeof (ArgusFilterCode));
++ memset ((char *) &pbuf, 0, sizeof (pbuf));
+
+ if (ArgusFilterCompile (&pbuf, &ArgusFilterCode, *RaInputFilter, 1, ArgusNetMask) < 0) {
+ if (pbuf.errbuf[0] != '\0') {
+@@ -574,7 +574,7 @@ main (int argc, char **argv)
+ } else {
+ struct ARGUS_INPUT addrbuf, *addr = &addrbuf;
+
+- bzero ((char *) addr, sizeof (*addr));
++ memset ((char *) addr, 0, sizeof (*addr));
+ addr->fd = 0;
+
+ if (((ArgusReadConnection (addr, NULL)) >= 0)) {
+@@ -628,8 +628,8 @@ ArgusHandleDatum (struct ArgusRecord *pt
+ u_char buf[MAXSTRLEN];
+
+ totalrecords++;
+- bcopy ((char *)ptr, (char *)ArgusOriginal, len);
+- bcopy ((char *)ptr, (char *)&buf, len);
++ memmove ((char *)ArgusOriginal, (char *)ptr, len);
++ memmove ((char *)&buf, (char *)ptr, len);
+
+ switch (ptr->ahdr.type) {
+ case ARGUS_MAR:
+@@ -736,68 +736,68 @@ ArgusGenerateCanonicalRecord (struct Arg
+
+ hdrs = ArgusThisFarHdrs;
+
+- bzero ((char *)canon, sizeof(*canon));
++ memset ((char *)canon, 0, sizeof(*canon));
+
+ if (ptr->ahdr.type & ARGUS_MAR) {
+- bcopy ((char *)ptr, (char *)canon, sizeof(*ptr));
++ memmove ((char *)canon, (char *)ptr, sizeof(*ptr));
+
+ } else {
+- bcopy ((char *)&ptr->ahdr, (char *)&canon->ahdr, sizeof(canon->ahdr));
++ memmove ((char *)&canon->ahdr, (char *)&ptr->ahdr, sizeof(canon->ahdr));
+
+ for (i = 1; i < 33; i++) {
+ index = 1 << (i - 1);
+ switch (index) {
+ case ARGUS_FAR_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_FAR_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_FAR_DSR_INDEX], (char *)&ar->argus_far, sizeof (ar->argus_far));
++ memmove((char *)&ar->argus_far, (char *) hdrs[ARGUS_FAR_DSR_INDEX], sizeof (ar->argus_far));
+ break;
+ case ARGUS_MAC_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_MAC_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_MAC_DSR_INDEX], (char *)&canon->mac, sizeof(canon->mac));
++ memmove((char *)&canon->mac, (char *) hdrs[ARGUS_MAC_DSR_INDEX], sizeof(canon->mac));
+ break;
+ case ARGUS_VLAN_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_VLAN_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_VLAN_DSR_INDEX], (char *)&canon->vlan, sizeof(canon->vlan));
++ memmove((char *)&canon->vlan, (char *) hdrs[ARGUS_VLAN_DSR_INDEX], sizeof(canon->vlan));
+ break;
+ case ARGUS_MPLS_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_MPLS_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_MPLS_DSR_INDEX], (char *)&canon->mpls, sizeof(canon->mpls));
++ memmove((char *)&canon->mpls, (char *) hdrs[ARGUS_MPLS_DSR_INDEX], sizeof(canon->mpls));
+ break;
+ case ARGUS_AGR_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_AGR_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_AGR_DSR_INDEX], (char *)&canon->agr, sizeof(canon->agr));
++ memmove((char *)&canon->agr, (char *) hdrs[ARGUS_AGR_DSR_INDEX], sizeof(canon->agr));
+ break;
+ case ARGUS_TIME_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_TIME_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_TIME_DSR_INDEX], (char *)&canon->time, sizeof(canon->time));
++ memmove((char *)&canon->time, (char *) hdrs[ARGUS_TIME_DSR_INDEX], sizeof(canon->time));
+ break;
+ case ARGUS_TCP_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_TCP_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_TCP_DSR_INDEX], (char *)&canon->acr_tcp, sizeof(canon->acr_tcp));
++ memmove((char *)&canon->acr_tcp, (char *) hdrs[ARGUS_TCP_DSR_INDEX], sizeof(canon->acr_tcp));
+ break;
+ case ARGUS_ICMP_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_ICMP_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_ICMP_DSR_INDEX], (char *)&canon->acr_icmp, sizeof(canon->acr_icmp));
++ memmove((char *)&canon->acr_icmp, (char *) hdrs[ARGUS_ICMP_DSR_INDEX], sizeof(canon->acr_icmp));
+ break;
+ case ARGUS_RTP_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_RTP_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_RTP_DSR_INDEX], (char *)&canon->acr_rtp, sizeof(canon->acr_rtp));
++ memmove((char *)&canon->acr_rtp, (char *) hdrs[ARGUS_RTP_DSR_INDEX], sizeof(canon->acr_rtp));
+ break;
+ case ARGUS_IGMP_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_IGMP_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_IGMP_DSR_INDEX], (char *)&canon->acr_igmp, sizeof(canon->acr_igmp));
++ memmove((char *)&canon->acr_igmp, (char *) hdrs[ARGUS_IGMP_DSR_INDEX], sizeof(canon->acr_igmp));
+ break;
+ case ARGUS_ARP_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_ARP_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_ARP_DSR_INDEX], (char *)&canon->acr_arp, sizeof(canon->acr_arp));
++ memmove((char *)&canon->acr_arp, (char *) hdrs[ARGUS_ARP_DSR_INDEX], sizeof(canon->acr_arp));
+ break;
+ case ARGUS_FRG_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_FRG_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_FRG_DSR_INDEX], (char *)&canon->acr_frag, sizeof(canon->acr_frag));
++ memmove((char *)&canon->acr_frag, (char *) hdrs[ARGUS_FRG_DSR_INDEX], sizeof(canon->acr_frag));
+ break;
+ case ARGUS_ESP_DSR_STATUS:
+ if (ArgusThisFarStatus & ARGUS_ESP_DSR_STATUS)
+- bcopy((char *) hdrs[ARGUS_ESP_DSR_INDEX], (char *)&canon->acr_esp, sizeof(canon->acr_esp));
++ memmove((char *)&canon->acr_esp, (char *) hdrs[ARGUS_ESP_DSR_INDEX], sizeof(canon->acr_esp));
+ break;
+ }
+ }
+@@ -829,7 +829,7 @@ ArgusParseCiscoRecordV1 (u_char **ptr)
+ struct ArgusRecord *argus = ArgusNetFlowArgusRecord;
+ struct ArgusMacStruct mac;
+
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -868,7 +868,7 @@ ArgusParseCiscoRecordV1 (u_char **ptr)
+ case IPPROTO_TCP: {
+ struct ArgusTCPObject tcpbuf, *tcp = &tcpbuf;
+
+- bzero ((char *) tcp, sizeof(*tcp));
++ memset ((char *) tcp, 0, sizeof(*tcp));
+ tcp->type = ARGUS_TCP_DSR;
+ tcp->length = sizeof(struct ArgusTCPObject);
+ tcp->src.flags = entryPtrV1->flags;
+@@ -888,7 +888,7 @@ ArgusParseCiscoRecordV1 (u_char **ptr)
+ break;
+ }
+
+- bcopy ((char *)tcp, &((char *)argus)[argus->ahdr.length], sizeof(*tcp));
++ memmove (&((char *)argus)[argus->ahdr.length], (char *)tcp, sizeof(*tcp));
+ argus->ahdr.length += sizeof(*tcp);
+ }
+
+@@ -906,17 +906,17 @@ ArgusParseCiscoRecordV1 (u_char **ptr)
+ break;
+ }
+
+- bzero ((char *)&mac, sizeof (mac));
++ memset ((char *)&mac, 0, sizeof (mac));
+ mac.type = ARGUS_MAC_DSR;
+ mac.length = sizeof(mac);
+ mac.status = 0;
+ entryPtrV1->input = ntohs(entryPtrV1->input);
+ entryPtrV1->output = ntohs(entryPtrV1->output);
+
+- bcopy((char *)&entryPtrV1->input, (char *)&mac.phys_union.ether.ethersrc[4], 2);
+- bcopy((char *)&entryPtrV1->output,(char *)&mac.phys_union.ether.etherdst[4], 2);
++ memmove((char *)&mac.phys_union.ether.ethersrc[4], (char *)&entryPtrV1->input, 2);
++ memmove((char *)&mac.phys_union.ether.etherdst[4], (char *)&entryPtrV1->output, 2);
+
+- bcopy ((char *)&mac, &((char *)argus)[argus->ahdr.length], sizeof(mac));
++ memmove (&((char *)argus)[argus->ahdr.length], (char *)&mac, sizeof(mac));
+ argus->ahdr.length += sizeof(mac);
+
+ #ifdef _LITTLE_ENDIAN
+@@ -939,7 +939,7 @@ ArgusParseCiscoRecordV5 (u_char **ptr)
+ struct ArgusRecord *argus = ArgusNetFlowArgusRecord;
+ struct ArgusMacStruct mac;
+
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -980,7 +980,7 @@ ArgusParseCiscoRecordV5 (u_char **ptr)
+ case IPPROTO_TCP: {
+ struct ArgusTCPObject tcpbuf, *tcp = &tcpbuf;
+
+- bzero ((char *) tcp, sizeof(*tcp));
++ memset ((char *) tcp, 0, sizeof(*tcp));
+ tcp->type = ARGUS_TCP_DSR;
+ tcp->length = sizeof(struct ArgusTCPObject);
+ tcp->src.flags = entryPtrV5->tcp_flags;
+@@ -1000,23 +1000,23 @@ ArgusParseCiscoRecordV5 (u_char **ptr)
+ break;
+ }
+
+- bcopy ((char *)tcp, &((char *)argus)[argus->ahdr.length], sizeof(*tcp));
++ memmove (&((char *)argus)[argus->ahdr.length], (char *)tcp, sizeof(*tcp));
+ argus->ahdr.length += sizeof(*tcp);
+ }
+ break;
+ }
+
+- bzero ((char *)&mac, sizeof (mac));
++ memset ((char *)&mac, 0, sizeof (mac));
+ mac.type = ARGUS_MAC_DSR;
+ mac.length = sizeof(mac);
+ mac.status = 0;
+ entryPtrV5->input = ntohs(entryPtrV5->input);
+ entryPtrV5->output = ntohs(entryPtrV5->output);
+
+- bcopy((char *)&entryPtrV5->input, (char *)&mac.phys_union.ether.ethersrc[4], 2);
+- bcopy((char *)&entryPtrV5->output,(char *)&mac.phys_union.ether.etherdst[4], 2);
++ memmve((char *)&mac.phys_union.ether.ethersrc[4], (char *)&entryPtrV5->input, 2);
++ memmove((char *)&mac.phys_union.ether.etherdst[4], (char *)&entryPtrV5->output, 2);
+
+- bcopy ((char *)&mac, &((char *)argus)[argus->ahdr.length], sizeof(mac));
++ memmove (&((char *)argus)[argus->ahdr.length], (char *)&mac, sizeof(mac));
+ argus->ahdr.length += sizeof(mac);
+
+ #ifdef _LITTLE_ENDIAN
+@@ -1039,7 +1039,7 @@ ArgusParseCiscoRecordV6 (u_char **ptr)
+ struct ArgusRecord *argus = ArgusNetFlowArgusRecord;
+ struct ArgusMacStruct mac;
+
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -1080,7 +1080,7 @@ ArgusParseCiscoRecordV6 (u_char **ptr)
+ case IPPROTO_TCP: {
+ struct ArgusTCPObject tcpbuf, *tcp = &tcpbuf;
+
+- bzero ((char *) tcp, sizeof(*tcp));
++ memset ((char *) tcp, 0, sizeof(*tcp));
+ tcp->type = ARGUS_TCP_DSR;
+ tcp->length = sizeof(struct ArgusTCPObject);
+ tcp->src.flags = entryPtrV6->tcp_flags;
+@@ -1100,23 +1100,23 @@ ArgusParseCiscoRecordV6 (u_char **ptr)
+ break;
+ }
+
+- bcopy ((char *)tcp, &((char *)argus)[argus->ahdr.length], sizeof(*tcp));
++ memmve (&((char *)argus)[argus->ahdr.length], (char *)tcp, sizeof(*tcp));
+ argus->ahdr.length += sizeof(*tcp);
+ }
+ break;
+ }
+
+- bzero ((char *)&mac, sizeof (mac));
++ memset ((char *)&mac, 0, sizeof (mac));
+ mac.type = ARGUS_MAC_DSR;
+ mac.length = sizeof(mac);
+ mac.status = 0;
+ entryPtrV6->input = ntohs(entryPtrV6->input);
+ entryPtrV6->output = ntohs(entryPtrV6->output);
+
+- bcopy((char *)&entryPtrV6->input, (char *)&mac.phys_union.ether.ethersrc[4], 2);
+- bcopy((char *)&entryPtrV6->output,(char *)&mac.phys_union.ether.etherdst[4], 2);
++ memmove((char *)&mac.phys_union.ether.ethersrc[4], (char *)&entryPtrV6->input, 2);
++ memmove((char *)&mac.phys_union.ether.etherdst[4], (char *)&entryPtrV6->output, 2);
+
+- bcopy ((char *)&mac, &((char *)argus)[argus->ahdr.length], sizeof(mac));
++ memmove (&((char *)argus)[argus->ahdr.length], (char *)&mac, sizeof(mac));
+ argus->ahdr.length += sizeof(mac);
+
+ #ifdef _LITTLE_ENDIAN
+@@ -1145,7 +1145,7 @@ ArgusParseCiscoRecord (u_char **ptr)
+ CiscoFlowHeaderV1_t *hdrPtrV1 = (CiscoFlowHeaderV1_t *) *ptr;
+ CiscoFlowEntryV1_t *entryPtrV1 = (CiscoFlowEntryV1_t *) (hdrPtrV1 + 1);
+
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -1191,7 +1191,7 @@ ArgusParseCiscoRecord (u_char **ptr)
+ CiscoFlowHeaderV5_t *hdrPtrV5 = (CiscoFlowHeaderV5_t *) ptr;
+ CiscoFlowEntryV5_t *entryPtrV5 = (CiscoFlowEntryV5_t *) (hdrPtrV5 + 1);
+
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -1238,7 +1238,7 @@ ArgusParseCiscoRecord (u_char **ptr)
+ CiscoFlowHeaderV6_t *hdrPtrV6 = (CiscoFlowHeaderV6_t *) ptr;
+ CiscoFlowEntryV6_t *entryPtrV6 = (CiscoFlowEntryV6_t *) (hdrPtrV6 + 1);
+
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -1301,7 +1301,7 @@ ArgusNetFlowCallRecord (u_char **ptr)
+ BinaryRecord_CallRecord_V1 *call = (BinaryRecord_CallRecord_V1 *) *ptr;
+
+ if (*ptr) {
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ argus->ahdr.type = ARGUS_FAR | ARGUS_CISCO_NETFLOW;
+ argus->ahdr.cause = ARGUS_STATUS;
+ argus->ahdr.length = sizeof(argus->ahdr) + sizeof(argus->argus_far);
+@@ -1348,7 +1348,7 @@ ArgusNetFlowDetailInt (u_char **ptr)
+
+ if (*ptr) {
+ dint = NULL;
+- bzero ((char *) argus, sizeof (*argus));
++ memset ((char *) argus, 0, sizeof (*argus));
+ }
+
+
+@@ -1438,7 +1438,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+
+ if (fd >= 0) {
+ if (!(Cflag)) {
+- bzero ((char *) &argus, sizeof(argus));
++ memset ((char *) &argus, 0, sizeof(argus));
+ if ((cnt = read (fd, &argus, sizeof(argus.ahdr))) == sizeof(argus.ahdr)) {
+ #ifdef ARGUSDEBUG
+ ArgusDebug (5, "ArgusReadConnection() read %d bytes\n", cnt);
+@@ -1447,7 +1447,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ if (((ptr[0] == 0x1F) && ((ptr[1] == 0x8B) || (ptr[1] == 0x9D))) ||
+ ((ptr[0] == 'B') && (ptr[1] == 'Z') && (ptr[2] == 'h'))) {
+ char cmd[256];
+- bzero(cmd, 256);
++ memset(cmd, 0, 256);
+ close(fd);
+ if (ptr[0] == 'B')
+ strcpy(cmd, "bzip2 -dc ");
+@@ -1514,8 +1514,8 @@ ArgusReadConnection (struct ARGUS_INPUT
+ return (-1);
+ }
+
+- bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus));
+- bcopy ((char *) &argus, (char *) ArgusOriginal, length);
++ memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus));
++ memmove ((char *) ArgusOriginal, (char *) &argus, length);
+ ArgusInput = input;
+
+ ArgusHandleDatum ((struct ArgusRecord *)&argus, &ArgusFilterCode);
+@@ -1524,7 +1524,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ ArgusNtoH(&argus);
+ #endif
+
+- bcopy ((char *) &argus, (char *)&input->ArgusManStart, sizeof (argus));
++ memmove ((char *)&input->ArgusManStart, (char *) &argus, sizeof (argus));
+ input->major_version = MAJOR_VERSION_2;
+ input->minor_version = MINOR_VERSION_0;
+ input->ArgusReadSize = argus.argus_mar.record_len;
+@@ -1543,7 +1543,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ if ((ArgusRemoteFilter != NULL) && (filename == NULL) && (fd != 0)) {
+ int len;
+
+- bzero(buf, MAXSTRLEN);
++ memset(buf, 0, MAXSTRLEN);
+ snprintf ((char *) buf, MAXSTRLEN-1, "FILTER: man or %s", (char *) ArgusRemoteFilter);
+ len = strlen((char *) buf);
+ if (ArgusWriteConnection (input, buf, len) < 0) {
+@@ -1564,7 +1564,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ char *ptr;
+ int size;
+
+- bcopy ((char *)&argus, buf, sizeof(argus.ahdr));
++ memmove (buf, (char *)&argus, sizeof(argus.ahdr));
+
+ size = sizeof(*ws) - sizeof(argus.ahdr);
+
+@@ -1584,11 +1584,11 @@ ArgusReadConnection (struct ARGUS_INPUT
+
+ if (initCon == NULL) {
+ if ((initCon = (struct ArgusRecord *) calloc (1, sizeof (argus))) != NULL)
+- bcopy ((char *) &argus, (char *) initCon, sizeof (argus));
++ memmove ((char *) initCon, (char *) &argus, sizeof (argus));
+ }
+
+- bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus));
+- bcopy ((char *)&argus, (char *) ArgusOriginal, sizeof(argus));
++ memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus));
++ memmove ((char *) ArgusOriginal, (char *)&argus, sizeof(argus));
+
+ ArgusInput = input;
+
+@@ -1617,7 +1617,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ BinaryHeaderF2 *ArgusNetFlow = (BinaryHeaderF2 *) buf;
+ int size;
+
+- bcopy ((char *)&argus, buf, sizeof(argus.ahdr));
++ memmove (buf, (char *)&argus, sizeof(argus.ahdr));
+ size = sizeof(*ArgusNetFlow) - sizeof(argus.ahdr);
+
+ if ((cnt = read (fd, &buf[sizeof(argus.ahdr)], size)) != size) {
+@@ -1633,7 +1633,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ ArgusNetFlow->missed = ntohl(ArgusNetFlow->missed);
+ ArgusNetFlow->records = ntohl(ArgusNetFlow->records);
+ #endif
+- bzero ((char *)&argus, sizeof(argus));
++ memset ((char *)&argus, 0, sizeof(argus));
+
+ argus.ahdr.type = ARGUS_MAR | ARGUS_CISCO_NETFLOW;
+ argus.ahdr.length = sizeof (argus);
+@@ -1657,11 +1657,11 @@ ArgusReadConnection (struct ARGUS_INPUT
+ #endif
+ if (initCon == NULL) {
+ if ((initCon = (struct ArgusRecord *) calloc (1, sizeof (argus))) != NULL)
+- bcopy ((char *) &argus, (char *) initCon, sizeof (argus));
++ memmove ((char *) initCon, (char *) &argus, sizeof (argus));
+ }
+
+- bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus));
+- bcopy ((char *) &argus, (char *) ArgusOriginal, sizeof(argus));
++ memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus));
++ memmove ((char *) ArgusOriginal, (char *) &argus, sizeof(argus));
+ ArgusInput = input;
+
+ ArgusGenerateCanonicalRecord (&argus, canon);
+@@ -1702,7 +1702,7 @@ ArgusReadConnection (struct ARGUS_INPUT
+ #ifdef ARGUSDEBUG
+ ArgusDebug (2, "ArgusReadConnection(0x%x) reading from Cisco Router.\n", input);
+ #endif
+- bzero ((char *)&argus, sizeof(argus));
++ memset ((char *)&argus, 0, sizeof(argus));
+ argus_parse_init (input);
+ }
+ }
+@@ -1902,7 +1902,7 @@ ArgusReadSaslStreamSocket (struct ARGUS_
+
+ while ((char *)argus < end) {
+ input->ArgusReadSocketCnt = ntohs(argus->ahdr.length);
+- bcopy (argus, input->ArgusReadBuffer, input->ArgusReadSocketCnt);
++ memmove (input->ArgusReadBuffer, argus, input->ArgusReadSocketCnt);
+
+ if (ArgusHandleDatum (argus, &ArgusFilterCode) == 1) {
+ if (!input->filename)
+@@ -1970,7 +1970,7 @@ ArgusReadStreamSocket (struct ARGUS_INPU
+ if (input->ArgusReadSocketState == ARGUS_READINGHDR) {
+ input->ArgusReadSocketState = ARGUS_READINGBLOCK;
+
+- bcopy ((char *) &((struct ArgusRecordHeader *)input->ArgusReadPtr)->length, (char *) &length, sizeof(length));
++ memmove ((char *) &length, (char *) &((struct ArgusRecordHeader *)input->ArgusReadPtr)->length, sizeof(length));
+ input->ArgusReadSocketSize = ntohs(length) - sizeof(struct ArgusRecordHeader);
+ if ((input->ArgusReadSocketSize > 0) && (input->ArgusReadSocketSize < MAXSTRLEN)) {
+ input->ArgusReadPtr = &input->ArgusReadBuffer[input->ArgusReadSocketCnt];
+@@ -1986,7 +1986,7 @@ ArgusReadStreamSocket (struct ARGUS_INPU
+ if (input->major_version < 2) {
+ ArgusConvertWriteStruct ((struct WriteStruct *)input->ArgusReadBuffer,
+ (struct ArgusRecord *)input->ArgusConvBuffer);
+- bcopy ((char *) input->ArgusConvBuffer, input->ArgusReadBuffer, MAXSTRLEN);
++ memmove (input->ArgusReadBuffer, (char *) input->ArgusConvBuffer, MAXSTRLEN);
+ }
+
+ if (ArgusHandleDatum ((struct ArgusRecord *)input->ArgusReadBuffer, &ArgusFilterCode) == 1) {
+@@ -2002,7 +2002,7 @@ ArgusReadStreamSocket (struct ARGUS_INPU
+ }
+
+ input->ArgusReadPtr = input->ArgusReadBuffer;
+- bzero (input->ArgusReadBuffer, MAXSTRLEN);
++ memset (input->ArgusReadBuffer, 0, MAXSTRLEN);
+ input->ArgusReadSocketCnt = 0;
+ }
+ }
+@@ -2105,7 +2105,7 @@ ArgusReadCiscoStreamSocket (struct ARGUS
+
+ if (!(input->ArgusReadSocketNum--)) {
+ input->ArgusReadPtr = input->ArgusReadBuffer;
+- bzero (input->ArgusReadBuffer, MAXSTRLEN);
++ memset (input->ArgusReadBuffer, 0, MAXSTRLEN);
+
+ } else {
+ input->ArgusReadPtr = input->ArgusReadBlockPtr;
+@@ -2279,7 +2279,7 @@ ArgusReadStream ()
+ return;
+ }
+
+- bzero ((char *)&timeoutValue, sizeof(timeoutValue));
++ memset ((char *)&timeoutValue, 0, sizeof(timeoutValue));
+
+ if (gettimeofday (&now, NULL) == 0) {
+ ArgusAdjustGlobalTime(&ArgusGlobalTime, &ArgusNowTime);
+@@ -2535,7 +2535,7 @@ ArgusGetServerSocket (struct ARGUS_INPUT
+ } else
+ portnum = htons(input->portnum);
+
+- bzero ((char *)&argus, sizeof(argus));
++ memset ((char *)&argus, 0, sizeof(argus));
+ argus.ahdr.type = ARGUS_MAR | ARGUS_CISCO_NETFLOW;
+ argus.ahdr.length = sizeof (argus);
+ argus.ahdr.cause = ARGUS_START;
+@@ -2549,15 +2549,15 @@ ArgusGetServerSocket (struct ARGUS_INPUT
+ input->major_version = argus.argus_mar.major_version;
+ input->minor_version = argus.argus_mar.minor_version;
+
+- bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus));
+- bcopy ((char *) &argus, (char *) ArgusOriginal, sizeof(argus));
++ memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus));
++ memmove ((char *) ArgusOriginal, (char *) &argus, sizeof(argus));
+ ArgusInput = input;
+
+ } else
+ ArgusLog (LOG_ERR, "ArgusGetServerSocket(0x%x) unknown type\n", input);
+ }
+
+- bzero ((char *) &server, sizeof (server));
++ memset ((char *) &server, 0, sizeof (server));
+
+ if ((s = socket (AF_INET, type, 0)) >= 0) {
+ if (type == SOCK_DGRAM) {
+@@ -2582,7 +2582,7 @@ ArgusGetServerSocket (struct ARGUS_INPUT
+
+ if ((hp = gethostbyaddr ((char *)&input->addr, sizeof (input->addr), AF_INET)) != NULL) {
+ input->hostname = strdup(hp->h_name);
+- bcopy ((char *) hp->h_addr, (char *)&server.sin_addr, hp->h_length);
++ memmove ((char *)&server.sin_addr, (char *) hp->h_addr, hp->h_length);
+ server.sin_family = hp->h_addrtype;
+ server.sin_port = portnum;
+ #ifdef ARGUSDEBUG
+@@ -2889,7 +2889,7 @@ check_time (struct ArgusRecord *ptr)
+ if (!explicit_date) {
+ tm = localtime_r((time_t *)&start->tv_sec, &tmbuf);
+ if (tm->tm_yday != starTimeFilter.tm_yday) {
+- bcopy ((char *) tm, (char *) &tmbuf, sizeof (struct tm));
++ memmove ((char *) &tmbuf, (char *) tm, sizeof (struct tm));
+ if (check_time_format (&tmbuf, timearg))
+ ArgusLog (LOG_ERR, "time syntax error %s\n", timearg);
+ }
+@@ -2926,7 +2926,7 @@ parseUserDataArg (char **arg, char *args
+ int retn = -1;
+ char buf[64], *ptr = buf;
+
+- bzero (buf, 64);
++ memset (buf, 0, 64);
+ strcpy (buf, *arg);
+ ptr += strlen (buf);
+
+@@ -2992,7 +2992,7 @@ parseTimeArg ( char **arg, char *args[],
+ int retn = -1;
+ char buf[64], *ptr = buf;
+
+- bzero (buf, 64);
++ memset (buf, 0, 64);
+ strcpy (buf, *arg);
+ ptr += strlen (buf);
+ if ((ptr = strchr(*arg, '-')) && (*(ptr + 1) != '\0')) {
+@@ -3054,7 +3054,7 @@ check_time_format (struct tm *tm, char *
+
+ } else {
+ if ((retn = parseTime (&starTimeFilter, tm, buf)) > 0) {
+- bcopy ((char *)&starTimeFilter, (char *)&lastTimeFilter, sizeof(struct tm));
++ memmove ((char *)&lastTimeFilter, (char *)&starTimeFilter, sizeof(struct tm));
+ switch (retn) {
+ case ARGUS_YEAR: lastTimeFilter.tm_year++; break;
+ case ARGUS_MONTH: lastTimeFilter.tm_mon++; break;
+@@ -3091,7 +3091,7 @@ parseTime (struct tm *tm, struct tm *ctm
+
+ /*[[[yyyy/]mm/]dd].]hh[:mm[:ss]]*/
+
+- bcopy ((u_char *) ctm, (u_char *) tm, sizeof (struct tm));
++ memmove ((u_char *) tm, (u_char *) ctm, sizeof (struct tm));
+
+ if ((hptr = strchr (str, '.')) != NULL) {
+ *hptr++ = '\0';
+diff -rup argus-3.0.0.rc.34.orig/common/argus_util.c argus-3.0.0.rc.34/common/argus_util.c
+--- argus-3.0.0.rc.34.orig/common/argus_util.c 2006-10-02 17:23:44.000000000 +0200
++++ argus-3.0.0.rc.34/common/argus_util.c 2006-12-20 17:02:40.000000000 +0100
+@@ -540,12 +540,12 @@ ArgusNtoH (struct ArgusRecord *argus)
+ u_int32_t value;
+ stat->n = ntohl(stat->n);
+ stat->minval = ntohl(stat->minval);
+- bcopy((char *)&stat->meanval, (char *)&value, sizeof(value));
++ memmove((char *)&value, (char *)&stat->meanval, sizeof(value));
+ value = ntohl(value);
+- bcopy((char *)&value, (char *)&stat->meanval, sizeof(value));
+- bcopy((char *)&stat->stdev, (char *)&value, sizeof(value));
++ memmove((char *)&stat->meanval, (char *)&value, sizeof(value));
++ memmove((char *)&value, (char *)&stat->stdev, sizeof(value));
+ value = ntohl(value);
+- bcopy((char *)&value, (char *)&stat->stdev, sizeof(value));
++ memmove((char *)&stat->stdev, (char *)&value, sizeof(value));
+ stat->maxval = ntohl(stat->maxval);
+
+ stat++;
+@@ -946,12 +946,12 @@ ArgusHtoN (struct ArgusRecord *argus)
+ u_int32_t value;
+ stat->n = htonl(stat->n);
+ stat->minval = htonl(stat->minval);
+- bcopy((char *)&stat->meanval, (char *)&value, sizeof(value));
++ memmove((char *)&value, (char *)&stat->meanval, sizeof(value));
+ value = htonl(value);
+- bcopy((char *)&value, (char *)&stat->meanval, sizeof(value));
+- bcopy((char *)&stat->stdev, (char *)&value, sizeof(value));
++ memmove((char *)&stat->meanval, (char *)&value, sizeof(value));
++ memmove((char *)&value, (char *)&stat->stdev, sizeof(value));
+ value = htonl(value);
+- bcopy((char *)&value, (char *)&stat->stdev, sizeof(value));
++ memmove((char *)&stat->stdev, (char *)&value, sizeof(value));
+ stat->maxval = htonl(stat->maxval);
+ stat++;
+ len -= sizeof (*stat);
+@@ -1535,8 +1535,8 @@ print_time(struct timeval *tvp)
+ char *retn = ArgusPrintTimeBuf, *ptr;
+ struct tm *tm, tmbuf;
+
+- bzero (timeZoneBuf, sizeof(timeZoneBuf));
+- bzero (ArgusPrintTimeBuf, sizeof(ArgusPrintTimeBuf));
++ memset (timeZoneBuf, 0, sizeof(timeZoneBuf));
++ memset (ArgusPrintTimeBuf, 0, sizeof(ArgusPrintTimeBuf));
+
+ if ((tm = localtime_r ((time_t *)&tvp->tv_sec, &tmbuf)) != NULL) {
+ if (uflag)
+@@ -1614,8 +1614,8 @@ lookup_nsap(struct ArgusParserStruct *pa
+ tp->e_addr1 == j &&
+ tp->e_addr2 == k &&
+ tp->e_nsap[0] == nlen &&
+- bcmp((char *)&(nsap[1]),
+- (char *)&(tp->e_nsap[1]), nlen) == 0)
++ ( nlen == 0 ? 0 : memcmp((char *)&(nsap[1]),
++ (char *)&(tp->e_nsap[1]), nlen) == 0))
+ return tp;
+ else
+ tp = tp->e_nxt;
+@@ -1623,7 +1623,7 @@ lookup_nsap(struct ArgusParserStruct *pa
+ tp->e_addr1 = j;
+ tp->e_addr2 = k;
+ tp->e_nsap = (u_char *) calloc(1, nlen + 1);
+- bcopy(nsap, tp->e_nsap, nlen + 1);
++ memmove(tp->e_nsap, nsap, nlen + 1);
+ tp->e_nxt = (struct enamemem *)calloc(1, sizeof(*tp));
+
+ return tp;
+@@ -1696,7 +1696,7 @@ ArgusInitEprotoarray(struct ArgusParserS
+ {
+ struct ArgusEtherTypeStruct *p = argus_ethertype_names;
+
+- bzero ((char *)parser->argus_eproto_db, sizeof (parser->argus_eproto_db));
++ memset ((char *)parser->argus_eproto_db, 0, sizeof (parser->argus_eproto_db));
+
+ while (p->range != NULL) {
+ int i, start, end;
+@@ -2209,7 +2209,7 @@ etheraddr_string(u_char *ep)
+ char *cp = etheraddrbuf;
+ u_int i, j;
+
+- bzero (cp, sizeof(etheraddrbuf));
++ memset (cp, 0, sizeof(etheraddrbuf));
+ if ((j = *ep >> 4) != 0)
+ *cp++ = hex[j];
+ *cp++ = hex[*ep++ & 0xf];
diff --git a/cleopatre/buildroot/package/argus/argus.mk b/cleopatre/buildroot/package/argus/argus.mk
new file mode 100644
index 0000000000..f3496fe3a4
--- /dev/null
+++ b/cleopatre/buildroot/package/argus/argus.mk
@@ -0,0 +1,69 @@
+#############################################################
+#
+# argus
+#
+#############################################################
+ARGUS_VERSION:=3.0.0.rc.34
+ARGUS_SOURCE:=argus_$(ARGUS_VERSION).orig.tar.gz
+ARGUS_PATCH:=argus_$(ARGUS_VERSION)-1.diff.gz
+ARGUS_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/a/argus/
+ARGUS_DIR:=$(BUILD_DIR)/argus-$(ARGUS_VERSION)
+ARGUS_CAT:=$(ZCAT)
+ARGUS_BINARY:=bin/argus
+ARGUS_TARGET_BINARY:=usr/sbin/argus
+
+$(DL_DIR)/$(ARGUS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(ARGUS_SITE)/$(ARGUS_SOURCE)
+
+$(DL_DIR)/$(ARGUS_PATCH):
+ $(WGET) -P $(DL_DIR) $(ARGUS_SITE)/$(ARGUS_PATCH)
+
+argus-source: $(DL_DIR)/$(ARGUS_SOURCE) $(DL_DIR)/$(ARGUS_PATCH)
+
+$(ARGUS_DIR)/.unpacked: $(DL_DIR)/$(ARGUS_SOURCE) $(DL_DIR)/$(ARGUS_PATCH)
+ $(ARGUS_CAT) $(DL_DIR)/$(ARGUS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(ARGUS_DIR) package/argus/ argus\*.patch
+ifneq ($(ARGUS_PATCH),)
+ (cd $(ARGUS_DIR) && $(ARGUS_CAT) $(DL_DIR)/$(ARGUS_PATCH) | patch -p1)
+ if [ -d $(ARGUS_DIR)/debian/patches ]; then \
+ toolchain/patch-kernel.sh $(ARGUS_DIR) $(ARGUS_DIR)/debian/patches \*.patch; \
+ fi
+endif
+ touch $@
+
+$(ARGUS_DIR)/.configured: $(ARGUS_DIR)/.unpacked
+ (cd $(ARGUS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ $(DISABLE_LARGEFILE) \
+ )
+ touch $@
+
+$(ARGUS_DIR)/$(ARGUS_BINARY): $(ARGUS_DIR)/.configured
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(ARGUS_DIR)
+
+$(TARGET_DIR)/$(ARGUS_TARGET_BINARY): $(ARGUS_DIR)/$(ARGUS_BINARY)
+ cp -dpf $(ARGUS_DIR)/$(ARGUS_BINARY) $@
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $@
+
+argus: uclibc libpcap $(TARGET_DIR)/$(ARGUS_TARGET_BINARY)
+
+argus-clean:
+ -$(MAKE) -C $(ARGUS_DIR) clean
+ rm -f $(TARGET_DIR)/$(ARGUS_TARGET_BINARY)
+
+argus-dirclean:
+ rm -rf $(ARGUS_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ARGUS)),y)
+TARGETS+=argus
+endif
diff --git a/cleopatre/buildroot/package/asterisk/Config.in b/cleopatre/buildroot/package/asterisk/Config.in
new file mode 100644
index 0000000000..e20eb5ac22
--- /dev/null
+++ b/cleopatre/buildroot/package/asterisk/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_ASTERISK
+ bool "asterisk"
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_ZLIB
+ depends on BR2_PACKAGE_OPENSSL
+ depends on BR2_PACKAGE_MPG123
+ help
+ Asterisk - the Open Source PBX
+
+comment "asterisk - disabled (required openssl and mpg123)"
+ depends on !BR2_PACKAGE_OPENSSL || ! BR2_PACKAGE_MPG123
+
diff --git a/cleopatre/buildroot/package/asterisk/asterisk.mk b/cleopatre/buildroot/package/asterisk/asterisk.mk
new file mode 100644
index 0000000000..da065dccf4
--- /dev/null
+++ b/cleopatre/buildroot/package/asterisk/asterisk.mk
@@ -0,0 +1,89 @@
+#############################################################
+#
+# asterisk
+#
+##############################################################
+ASTERISK_VERSION:=1.6.0-beta6
+ASTERISK_SOURCE:=asterisk-$(ASTERISK_VERSION).tar.gz
+ASTERISK_SITE:=http://downloads.digium.com/pub/asterisk/old-releases
+ASTERISK_DIR:=$(BUILD_DIR)/asterisk-$(ASTERISK_VERSION)
+ASTERISK_BINARY:=asterisk
+ASTERISK_TARGET_BINARY:=usr/sbin/asterisk
+
+$(DL_DIR)/$(ASTERISK_SOURCE):
+ $(WGET) -P $(DL_DIR) $(ASTERISK_SITE)/$(ASTERISK_SOURCE)
+
+$(ASTERISK_DIR)/.source: $(DL_DIR)/$(ASTERISK_SOURCE)
+ $(ZCAT) $(DL_DIR)/$(ASTERISK_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(ASTERISK_DIR) package/asterisk/ asterisk\*.patch
+ touch $@
+
+$(ASTERISK_DIR)/.configured: $(ASTERISK_DIR)/.source
+ touch $@
+
+$(ASTERISK_DIR)/$(ASTERISK_BINARY): $(ASTERISK_DIR)/.configured
+ $(MAKE1) -C $(ASTERISK_DIR) \
+ CROSS_ARCH=Linux \
+ CROSS_COMPILE=$(TARGET_CROSS) \
+ CROSS_COMPILE_BIN=$(STAGING_DIR)/bin/ \
+ CROSS_COMPILE_TARGET=$(STAGING_DIR) \
+ CROSS_PROC=$(OPTIMIZE_FOR_CPU) \
+ OPTIMIZE="$(TARGET_OPTIMIZATION)" \
+ OPTIONS=-DLOW_MEMORY \
+ DEBUG= \
+ $(TARGET_CONFIGURE_OPTS)
+
+$(TARGET_DIR)/$(ASTERISK_TARGET_BINARY): $(ASTERISK_DIR)/$(ASTERISK_BINARY)
+ $(MAKE) -C $(ASTERISK_DIR) \
+ CROSS_ARCH=Linux \
+ CROSS_COMPILE=$(TARGET_CROSS) \
+ CROSS_COMPILE_BIN=$(TARGET_CC) \
+ CROSS_COMPILE_TARGET=$(STAGING_DIR) \
+ CROSS_PROC=$(OPTIMIZE_FOR_CPU) \
+ OPTIMIZE="$(TARGET_OPTIMIZATION)" \
+ OPTIONS=-DLOW_MEMORY \
+ DEBUG= \
+ $(TARGET_CONFIGURE_OPTS) \
+ DESTDIR=$(TARGET_DIR) install
+ $(STRIPCMD) $(TARGET_DIR)/usr/sbin/asterisk
+ $(STRIPCMD) $(TARGET_DIR)/usr/sbin/stereorize
+ $(STRIPCMD) $(TARGET_DIR)/usr/sbin/streamplayer
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) \
+ $(TARGET_DIR)/usr/lib/asterisk/modules/*.so
+ $(INSTALL) -m 755 $(ASTERISK_DIR)/contrib/init.d/rc.debian.asterisk \
+ $(TARGET_DIR)/etc/init.d/S60asterisk
+ mv $(TARGET_DIR)/usr/include/asterisk $(STAGING_DIR)/usr/include/
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -Rf $(TARGET_DIR)/usr/share/man
+endif
+ rm -f $(TARGET_DIR)/usr/sbin/safe_asterisk
+ rm -f $(TARGET_DIR)/usr/sbin/autosupport
+ rm -f $(TARGET_DIR)/usr/sbin/astgenkey
+ touch -c $@
+
+asterisk: uclibc ncurses zlib openssl mpg123 $(TARGET_DIR)/$(ASTERISK_TARGET_BINARY)
+
+asterisk-source: $(DL_DIR)/$(ASTERISK_SOURCE)
+
+asterisk-clean:
+ rm -Rf $(STAGING_DIR)/usr/include/asterisk
+ rm -Rf $(TARGET_DIR)/etc/asterisk
+ rm -Rf $(TARGET_DIR)/usr/lib/asterisk
+ rm -Rf $(TARGET_DIR)/var/lib/asterisk
+ rm -Rf $(TARGET_DIR)/var/spool/asterisk
+ rm -f $(TARGET_DIR)/etc/init.d/S60asterisk
+ rm -f $(TARGET_DIR)/usr/sbin/stereorize
+ rm -f $(TARGET_DIR)/usr/sbin/streamplayer
+ -$(MAKE) -C $(ASTERISK_DIR) clean
+
+asterisk-dirclean:
+ rm -rf $(ASTERISK_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_ASTERISK)),y)
+TARGETS+=asterisk
+endif
diff --git a/cleopatre/buildroot/package/asterisk/asterisk_no_res_ninit.patch b/cleopatre/buildroot/package/asterisk/asterisk_no_res_ninit.patch
new file mode 100644
index 0000000000..1dff2f3051
--- /dev/null
+++ b/cleopatre/buildroot/package/asterisk/asterisk_no_res_ninit.patch
@@ -0,0 +1,12 @@
+diff -ur /tmp/asterisk-1.2.0-beta1/dns.c asterisk-1.2.0-beta1/dns.c
+--- /tmp/asterisk-1.2.0-beta1/dns.c 2005-08-14 04:23:33.000000000 +0200
++++ asterisk-1.2.0-beta1/dns.c 2005-08-31 09:42:36.000000000 +0200
+@@ -157,7 +157,7 @@
+ return 0;
+ }
+
+-#if defined(res_ninit)
++#if (defined(res_ninit) && !defined(__UCLIBC__))
+ #define HAS_RES_NINIT
+ #else
+ AST_MUTEX_DEFINE_STATIC(res_lock);
diff --git a/cleopatre/buildroot/package/at/Config.in b/cleopatre/buildroot/package/at/Config.in
new file mode 100644
index 0000000000..a5d5ef8264
--- /dev/null
+++ b/cleopatre/buildroot/package/at/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_AT
+ bool "at"
+ help
+ At and batch read shell commands from standard input and
+ store them as jobs to be scheduled for execution in the
+ future.
+
+ at - run the job at a specified time
+ batch - run the job when system load levels permit
diff --git a/cleopatre/buildroot/package/at/at-crosscompile.patch b/cleopatre/buildroot/package/at/at-crosscompile.patch
new file mode 100644
index 0000000000..8b68da7128
--- /dev/null
+++ b/cleopatre/buildroot/package/at/at-crosscompile.patch
@@ -0,0 +1,83 @@
+diff -rdup at-3.1.10.orig/Makefile.in at-3.1.10/Makefile.in
+--- at-3.1.10.orig/Makefile.in 2007-01-22 14:35:41.000000000 +0100
++++ at-3.1.10/Makefile.in 2007-01-22 14:41:41.000000000 +0100
+@@ -62,6 +62,8 @@ MISC = COPYING Makefile.in configure a
+ DIST = $(CSRCS) $(HEADERS) $(MISC) $(OTHERS)
+ LIST = Filelist Filelist.asc
+
++IROOT = $(DESTDIR)
++
+ .PHONY: all install clean dist distclean
+
+ all: at atd atrun
+@@ -78,7 +80,7 @@ atd: $(RUNOBJECTS)
+ y.tab.c y.tab.h: parsetime.y
+ $(YACC) -d parsetime.y
+
+-lex.yy.c: parsetime.l
++lex.yy.c: parsetime.l y.tab.h
+ $(LEX) -i parsetime.l
+
+ atrun: atrun.in
+diff -rdup at-3.1.10.orig/config.h.in at-3.1.10/config.h.in
+--- at-3.1.10.orig/config.h.in 2007-01-22 14:35:41.000000000 +0100
++++ at-3.1.10/config.h.in 2007-01-22 14:35:35.000000000 +0100
+@@ -181,3 +181,6 @@
+
+ #undef HAVE_ATTRIBUTE_NORETURN
+ #undef HAVE_PAM
++
++#undef NEED_YYWRAP
++
+diff -rdup at-3.1.10.orig/configure at-3.1.10/configure
+--- at-3.1.10.orig/configure 2007-01-22 14:35:41.000000000 +0100
++++ at-3.1.10/configure 2007-01-22 14:35:35.000000000 +0100
+@@ -1037,7 +1037,7 @@ esac
+ echo $ac_n "checking Trying to compile a trivial ANSI C program""... $ac_c" 1>&6
+ echo "configure:1039: checking Trying to compile a trivial ANSI C program" >&5
+ if test "$cross_compiling" = yes; then
+- { echo "configure: error: Could not compile and run even a trivial ANSI C program - check CC." 1>&2; exit 1; }
++ echo "$ac_t""assuming it works" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+ #line 1044 "configure"
+diff -rdup at-3.1.10.orig/getloadavg.c at-3.1.10/getloadavg.c
+--- at-3.1.10.orig/getloadavg.c 2007-01-22 14:35:41.000000000 +0100
++++ at-3.1.10/getloadavg.c 2007-01-22 14:35:35.000000000 +0100
+@@ -66,11 +66,12 @@ Boston, MA 02110-1301 USA */
+
+ /* This should always be first. */
+ #ifdef HAVE_CONFIG_H
+-#include <config.h>
++#include "config.h"
+ #endif
+
+-#include "lisp.h"
+-#include "sysfile.h" /* for encapsulated open, close, read, write */
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+
+ #ifndef HAVE_GETLOADAVG
+
+diff -rdup at-3.1.10.orig/parsetime.h at-3.1.10/parsetime.h
+--- at-3.1.10.orig/parsetime.h 2005-08-05 05:16:01.000000000 +0200
++++ at-3.1.10/parsetime.h 2007-01-22 14:45:41.000000000 +0100
+@@ -17,6 +17,7 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include "panic.h"
+ time_t parsetime(int argc, char **argv);
+
+ extern char *last_token;
+diff -rdup at-3.1.10.orig/parsetime.l at-3.1.10/parsetime.l
+--- at-3.1.10.orig/parsetime.l 2007-01-22 14:35:41.000000000 +0100
++++ at-3.1.10/parsetime.l 2007-01-22 14:35:35.000000000 +0100
+@@ -1,5 +1,6 @@
+ %{
+
++#include "config.h"
+ #include <string.h>
+ #include <time.h>
+ #include "y.tab.h"
diff --git a/cleopatre/buildroot/package/at/at.mk b/cleopatre/buildroot/package/at/at.mk
new file mode 100644
index 0000000000..6f7f330831
--- /dev/null
+++ b/cleopatre/buildroot/package/at/at.mk
@@ -0,0 +1,77 @@
+#############################################################
+#
+# at
+#
+#############################################################
+AT_VERSION:=3.1.10
+AT_SOURCE:=at_$(AT_VERSION).tar.gz
+AT_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/a/at
+AT_DIR:=$(BUILD_DIR)/at-$(AT_VERSION)
+AT_CAT:=$(ZCAT)
+AT_TARGET_SCRIPT:=etc/init.d/S99at
+AT_BINARY:=at
+
+$(DL_DIR)/$(AT_SOURCE):
+ $(WGET) -P $(DL_DIR) $(AT_SITE)/$(AT_SOURCE)
+
+at-source: $(DL_DIR)/$(AT_SOURCE)
+
+$(AT_DIR)/.unpacked: $(DL_DIR)/$(AT_SOURCE)
+ $(AT_CAT) $(DL_DIR)/$(AT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(AT_DIR) package/at/ at\*.patch
+ touch $@
+
+$(AT_DIR)/.configured: $(AT_DIR)/.unpacked
+ (cd $(AT_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-jobdir=/var/lib/atjobs \
+ --with-atspool=/var/lib/atspool \
+ --with-daemon_username=at \
+ --with-daemon_groupname=at \
+ )
+ touch $@
+
+$(AT_DIR)/$(AT_BINARY): $(AT_DIR)/.configured
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(AT_DIR)
+ touch $@
+
+$(TARGET_DIR)/$(AT_TARGET_SCRIPT): $(AT_DIR)/$(AT_BINARY)
+ # Use fakeroot to pretend to do 'make install' as root
+ echo '$(MAKE) DAEMON_USERNAME=root DAEMON_GROUPNAME=root ' \
+ '$(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) -C $(AT_DIR) install' \
+ > $(PROJECT_BUILD_DIR)/.fakeroot.at
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ echo 'rm -rf $(TARGET_DIR)/usr/man' >> $(PROJECT_BUILD_DIR)/.fakeroot.at
+endif
+ echo 'rm -rf $(TARGET_DIR)/usr/doc/at' >> $(PROJECT_BUILD_DIR)/.fakeroot.at
+ $(INSTALL) -m 0755 -D $(AT_DIR)/debian/rc $(TARGET_DIR)/$(AT_TARGET_SCRIPT)
+
+at: uclibc host-fakeroot $(TARGET_DIR)/$(AT_TARGET_SCRIPT)
+
+at-clean:
+ -$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(AT_DIR) uninstall
+ rm -f $(TARGET_DIR)/$(AT_TARGET_SCRIPT) $(TARGET_DIR)/etc/init.d/S99at
+ -$(MAKE) -C $(AT_DIR) clean
+
+at-dirclean:
+ rm -rf $(AT_DIR)
+
+.PHONY: at
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_AT)),y)
+TARGETS+=at
+endif
diff --git a/cleopatre/buildroot/package/atk/Config.in b/cleopatre/buildroot/package/atk/Config.in
new file mode 100644
index 0000000000..4a1661927b
--- /dev/null
+++ b/cleopatre/buildroot/package/atk/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_ATK
+ bool "atk"
+ select BR2_PACKAGE_PKGCONFIG
+ depends on BR2_PACKAGE_LIBGLIB2
+ help
+ The ATK accessibility toolkit, needed to build GTK+-2.x.
+
+comment "atk - disabled (requires libglib2)"
+ depends on !BR2_PACKAGE_LIBGLIB2
diff --git a/cleopatre/buildroot/package/atk/atk.mk b/cleopatre/buildroot/package/atk/atk.mk
new file mode 100644
index 0000000000..38fc3749b9
--- /dev/null
+++ b/cleopatre/buildroot/package/atk/atk.mk
@@ -0,0 +1,67 @@
+#############################################################
+#
+# atk
+#
+#############################################################
+ATK_VERSION = 1.9.1
+ATK_SOURCE = atk-$(ATK_VERSION).tar.bz2
+ATK_SITE = ftp://ftp.gtk.org/pub/gtk/v2.10/dependencies
+ATK_AUTORECONF = NO
+ATK_INSTALL_STAGING = YES
+ATK_INSTALL_TARGET = YES
+ATK_INSTALL_STAGING_OPT = DESTDIR=$(STAGING_DIR) LDFLAGS=-L$(STAGING_DIR)/usr/lib install
+
+ATK_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes \
+ glib_cv_stack_grows=no glib_cv_uscore=no \
+ ac_cv_func_strtod=yes ac_fsusage_space=yes \
+ fu_cv_sys_stat_statfs2_bsize=yes ac_cv_func_closedir_void=no \
+ ac_cv_func_getloadavg=no ac_cv_lib_util_getloadavg=no \
+ ac_cv_lib_getloadavg_getloadavg=no ac_cv_func_getgroups=yes \
+ ac_cv_func_getgroups_works=yes ac_cv_func_chown_works=yes \
+ ac_cv_have_decl_euidaccess=no ac_cv_func_euidaccess=no \
+ ac_cv_have_decl_strnlen=yes ac_cv_func_strnlen_working=yes \
+ ac_cv_func_lstat_dereferences_slashed_symlink=yes ac_cv_func_lstat_empty_string_bug=no \
+ ac_cv_func_stat_empty_string_bug=no vb_cv_func_rename_trailing_slash_bug=no \
+ ac_cv_have_decl_nanosleep=yes jm_cv_func_nanosleep_works=yes \
+ gl_cv_func_working_utimes=yes ac_cv_func_utime_null=yes \
+ ac_cv_have_decl_strerror_r=yes ac_cv_func_strerror_r_char_p=no \
+ jm_cv_func_svid_putenv=yes ac_cv_func_getcwd_null=yes \
+ ac_cv_func_getdelim=yes ac_cv_func_mkstemp=yes \
+ utils_cv_func_mkstemp_limitations=no utils_cv_func_mkdir_trailing_slash_bug=no \
+ ac_cv_func_memcmp_working=yes ac_cv_have_decl_malloc=yes \
+ gl_cv_func_malloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_calloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes \
+ jm_cv_func_gettimeofday_clobber=no gl_cv_func_working_readdir=yes \
+ jm_ac_cv_func_link_follows_symlink=no utils_cv_localtime_cache=no \
+ ac_cv_struct_st_mtim_nsec=no gl_cv_func_tzset_clobber=no \
+ gl_cv_func_getcwd_null=yes gl_cv_func_getcwd_path_max=yes \
+ ac_cv_func_fnmatch_gnu=yes am_getline_needs_run_time_check=no \
+ am_cv_func_working_getline=yes gl_cv_func_mkdir_trailing_slash_bug=no \
+ gl_cv_func_mkstemp_limitations=no ac_cv_func_working_mktime=yes \
+ jm_cv_func_working_re_compile_pattern=yes ac_use_included_regex=no \
+ gl_cv_c_restrict=no ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal \
+ ac_cv_prog_F77=no ac_cv_prog_CXX=no
+
+ifneq ($(BR2_PACKAGE_XSERVER_none),y)
+ATK_CONF_OPT_X = --with-x \
+ --x-includes=$(STAGING_DIR)/usr/include/X11 \
+ --x-libraries=$(STAGING_DIR)/usr/lib
+else
+ATK_CONF_OPT_X = --without-x
+endif
+
+ATK_CONF_OPT = --target=$(GNU_TARGET_NAME) --host=$(REAL_GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) --prefix=/usr \
+ --exec-prefix=/usr --bindir=/usr/bin \
+ --sbindir=/usr/sbin --libdir=/usr/lib \
+ --libexecdir=/usr/lib --sysconfdir=/etc \
+ --datadir=/usr/share --localstatedir=/var \
+ --includedir=/usr/include --mandir=/usr/man \
+ --infodir=/usr/info --enable-shared \
+ --enable-static $(ATK_CONF_OPT_X) \
+ --disable-glibtest --enable-explicit-deps=no \
+ --disable-debug
+
+ATK_DEPENDENCIES = libglib2 pkgconfig
+
+$(eval $(call AUTOTARGETS,package,atk))
diff --git a/cleopatre/buildroot/package/aumix/Config.in b/cleopatre/buildroot/package/aumix/Config.in
new file mode 100644
index 0000000000..3d3208250c
--- /dev/null
+++ b/cleopatre/buildroot/package/aumix/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_AUMIX
+ bool "aumix"
+ select BR2_PACKAGE_NCURSES
+ help
+ aumix is a small, easy-to-use program to control the mixer
+ of your sound card. It runs in text mode using the ncurses
+ library, or from the command line (non-interactively).
+ It can read default settings from a file, and it can also
+ automatically save and restore the mixer settings at shutdown
+ and boot.
+
+ http://jpj.net/~trevor/aumix.html
diff --git a/cleopatre/buildroot/package/aumix/aumix.mk b/cleopatre/buildroot/package/aumix/aumix.mk
new file mode 100644
index 0000000000..d30b3a7be7
--- /dev/null
+++ b/cleopatre/buildroot/package/aumix/aumix.mk
@@ -0,0 +1,64 @@
+#############################################################
+#
+# aumix
+#
+#############################################################
+
+AUMIX_VERSION=2.8
+AUMIX_SOURCE=aumix-$(AUMIX_VERSION).tar.bz2
+AUMIX_SITE=http://jpj.net/~trevor/aumix
+AUMIX_DIR=$(BUILD_DIR)/aumix-$(AUMIX_VERSION)
+AUMIX_CAT:=$(BZCAT)
+
+$(DL_DIR)/$(AUMIX_SOURCE):
+ $(WGET) -P $(DL_DIR) $(AUMIX_SITE)/$(AUMIX_SOURCE)
+
+$(AUMIX_DIR)/.unpacked: $(DL_DIR)/$(AUMIX_SOURCE)
+ $(AUMIX_CAT) $(DL_DIR)/$(AUMIX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $@
+
+$(AUMIX_DIR)/.configured: $(AUMIX_DIR)/.unpacked
+ (cd $(AUMIX_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=$(STAGING_DIR)/lib \
+ --includedir=$(STAGING_DIR)/usr/include \
+ --without-gtk \
+ --without-gtk1 \
+ --without-alsa \
+ --without-gpm \
+ --without-sysmouse \
+ $(DISABLE_NLS) \
+ )
+ touch $@
+
+$(AUMIX_DIR)/src/aumix: $(AUMIX_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(AUMIX_DIR)
+
+$(AUMIX_DIR)/.installed: $(AUMIX_DIR)/src/aumix
+ $(MAKE) -C $(AUMIX_DIR) DESTDIR=$(TARGET_DIR) install
+ touch $@
+
+aumix: uclibc ncurses $(AUMIX_DIR)/.installed
+
+aumix-source: $(DL_DIR)/$(AUMIX_SOURCE)
+
+aumix-clean:
+ -$(MAKE) -C $(AUMIX_DIR) clean
+
+aumix-dirclean:
+ rm -rf $(AUMIX_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_AUMIX)),y)
+TARGETS+=aumix
+endif
diff --git a/cleopatre/buildroot/package/autoconf/Config.in b/cleopatre/buildroot/package/autoconf/Config.in
new file mode 100644
index 0000000000..286c5cb9c8
--- /dev/null
+++ b/cleopatre/buildroot/package/autoconf/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_AUTOCONF
+ bool "autoconf"
+ help
+ Extensible program for developing configure scripts. These
+ scripts handle all the mundane system/feature detection.
+
+ http://www.gnu.org/software/autoconf/
diff --git a/cleopatre/buildroot/package/autoconf/autoconf.mk b/cleopatre/buildroot/package/autoconf/autoconf.mk
new file mode 100644
index 0000000000..b2857e97c4
--- /dev/null
+++ b/cleopatre/buildroot/package/autoconf/autoconf.mk
@@ -0,0 +1,138 @@
+#############################################################
+#
+# autoconf
+#
+#############################################################
+AUTOCONF_VERSION:=2.61
+AUTOCONF_SOURCE:=autoconf-$(AUTOCONF_VERSION).tar.bz2
+AUTOCONF_SITE:=$(BR2_GNU_MIRROR)/autoconf
+AUTOCONF_CAT:=$(BZCAT)
+AUTOCONF_SRC_DIR:=$(TOOL_BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)
+AUTOCONF_DIR:=$(BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)
+AUTOCONF_HOST_DIR:=$(TOOL_BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)-host
+AUTOCONF_BINARY:=autoconf
+AUTOCONF_TARGET_BINARY:=usr/bin/autoconf
+AUTOCONF:=$(STAGING_DIR)/usr/bin/autoconf
+
+# variables used by other packages
+AUTORECONF=$(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
+
+$(DL_DIR)/$(AUTOCONF_SOURCE):
+ $(WGET) -P $(DL_DIR) $(AUTOCONF_SITE)/$(AUTOCONF_SOURCE)
+
+autoconf-source: $(DL_DIR)/$(AUTOCONF_SOURCE)
+
+$(AUTOCONF_SRC_DIR)/.unpacked: $(DL_DIR)/$(AUTOCONF_SOURCE)
+ $(AUTOCONF_CAT) $(DL_DIR)/$(AUTOCONF_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(AUTOCONF_SRC_DIR)
+ touch $@
+
+#############################################################
+#
+# autoconf for the host
+#
+#############################################################
+
+$(AUTOCONF_DIR)/.configured: $(AUTOCONF_SRC_DIR)/.unpacked
+ mkdir -p $(AUTOCONF_DIR)
+ (cd $(AUTOCONF_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ EMACS="no" \
+ $(AUTOCONF_SRC_DIR)/configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ )
+ touch $@
+
+$(AUTOCONF_DIR)/bin/$(AUTOCONF_BINARY): $(AUTOCONF_DIR)/.configured
+ $(MAKE1) -C $(AUTOCONF_DIR)
+
+$(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY): $(AUTOCONF_DIR)/bin/$(AUTOCONF_BINARY)
+ $(MAKE) \
+ prefix=$(TARGET_DIR)/usr \
+ exec_prefix=$(TARGET_DIR)/usr \
+ bindir=$(TARGET_DIR)/usr/bin \
+ sbindir=$(TARGET_DIR)/usr/sbin \
+ libexecdir=$(TARGET_DIR)/usr/lib \
+ datadir=$(TARGET_DIR)/usr/share \
+ sysconfdir=$(TARGET_DIR)/etc \
+ localstatedir=$(TARGET_DIR)/var \
+ libdir=$(TARGET_DIR)/usr/lib \
+ infodir=$(TARGET_DIR)/usr/share/info \
+ mandir=$(TARGET_DIR)/usr/share/man \
+ includedir=$(TARGET_DIR)/usr/include \
+ -C $(AUTOCONF_DIR) install
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+ touch -c $@
+
+autoconf: uclibc $(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY)
+
+autoconf-clean:
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(AUTOCONF_DIR) uninstall
+ -$(MAKE) -C $(AUTOCONF_DIR) clean
+
+autoconf-dirclean:
+ rm -rf $(AUTOCONF_DIR)
+
+#############################################################
+#
+# autoconf for the host
+#
+#############################################################
+
+$(AUTOCONF_HOST_DIR)/.configured: $(AUTOCONF_SRC_DIR)/.unpacked
+ mkdir -p $(AUTOCONF_HOST_DIR)
+ (cd $(AUTOCONF_HOST_DIR); rm -rf config.cache; \
+ $(HOST_CONFIGURE_OPTS) \
+ CFLAGS="$(HOST_CFLAGS)" \
+ LDFLAGS="$(HOST_LDFLAGS)" \
+ EMACS="no" \
+ $(AUTOCONF_SRC_DIR)/configure \
+ --prefix=$(STAGING_DIR)/usr \
+ )
+ touch $@
+
+$(AUTOCONF_HOST_DIR)/bin/$(AUTOCONF_BINARY): $(AUTOCONF_HOST_DIR)/.configured
+ $(MAKE1) -C $(AUTOCONF_HOST_DIR)
+
+$(AUTOCONF): $(AUTOCONF_HOST_DIR)/bin/$(AUTOCONF_BINARY)
+ $(MAKE) -C $(AUTOCONF_HOST_DIR) install
+
+host-autoconf: host-m4 host-libtool $(AUTOCONF)
+
+host-autoconf-clean:
+ $(MAKE) CC=$(HOST_CC) -C $(AUTOCONF_HOST_DIR) uninstall
+ -$(MAKE) -C $(AUTOCONF_HOST_DIR) clean
+
+host-autoconf-dirclean:
+ rm -rf $(AUTOCONF_HOST_DIR)
+
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_AUTOCONF)),y)
+TARGETS+=autoconf
+endif
diff --git a/cleopatre/buildroot/package/automake/Config.in b/cleopatre/buildroot/package/automake/Config.in
new file mode 100644
index 0000000000..d577587973
--- /dev/null
+++ b/cleopatre/buildroot/package/automake/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_AUTOMAKE
+ bool "automake"
+ help
+ Tool for automatically generating Makefile's for input to
+ configure scripts (made by autoconf).
+
+ http://www.gnu.org/software/automake/
diff --git a/cleopatre/buildroot/package/automake/automake.mk b/cleopatre/buildroot/package/automake/automake.mk
new file mode 100644
index 0000000000..2fac0129f4
--- /dev/null
+++ b/cleopatre/buildroot/package/automake/automake.mk
@@ -0,0 +1,141 @@
+#############################################################
+#
+# automake
+#
+#############################################################
+AUTOMAKE_VERSION:=1.10
+AUTOMAKE_SOURCE:=automake-$(AUTOMAKE_VERSION).tar.bz2
+AUTOMAKE_SITE:=$(BR2_GNU_MIRROR)/automake
+AUTOMAKE_CAT:=$(BZCAT)
+AUTOMAKE_SRC_DIR:=$(TOOL_BUILD_DIR)/automake-$(AUTOMAKE_VERSION)
+AUTOMAKE_DIR:=$(BUILD_DIR)/automake-$(AUTOMAKE_VERSION)
+AUTOMAKE_HOST_DIR:=$(TOOL_BUILD_DIR)/automake-$(AUTOMAKE_VERSION)-host
+AUTOMAKE_BINARY:=automake
+AUTOMAKE_TARGET_BINARY:=usr/bin/automake
+AUTOMAKE:=$(STAGING_DIR)/usr/bin/automake
+
+# variables used by other packages
+ACLOCAL_DIR = $(STAGING_DIR)/usr/share/aclocal
+ACLOCAL = aclocal -I $(ACLOCAL_DIR)
+
+$(DL_DIR)/$(AUTOMAKE_SOURCE):
+ $(WGET) -P $(DL_DIR) $(AUTOMAKE_SITE)/$(AUTOMAKE_SOURCE)
+
+automake-source: $(DL_DIR)/$(AUTOMAKE_SOURCE)
+
+$(AUTOMAKE_SRC_DIR)/.unpacked: $(DL_DIR)/$(AUTOMAKE_SOURCE)
+ $(AUTOMAKE_CAT) $(DL_DIR)/$(AUTOMAKE_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(AUTOMAKE_SRC_DIR)
+ touch $@
+
+#############################################################
+#
+# automake for the target
+#
+#############################################################
+
+$(AUTOMAKE_DIR)/.configured: $(AUTOMAKE_SRC_DIR)/.unpacked
+ mkdir -p $(AUTOMAKE_DIR)
+ (cd $(AUTOMAKE_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ WANT_AUTOCONF=2.5 \
+ $(AUTOMAKE_SRC_DIR)/configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --includedir=/usr/include \
+ )
+ touch $@
+
+$(AUTOMAKE_DIR)/$(AUTOMAKE_BINARY): $(AUTOMAKE_DIR)/.configured
+ $(MAKE) -C $(AUTOMAKE_DIR)
+ touch -c $@
+
+$(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY): $(AUTOMAKE_DIR)/$(AUTOMAKE_BINARY)
+ $(MAKE) \
+ prefix=$(TARGET_DIR)/usr \
+ exec_prefix=$(TARGET_DIR)/usr \
+ bindir=$(TARGET_DIR)/usr/bin \
+ sbindir=$(TARGET_DIR)/usr/sbin \
+ libexecdir=$(TARGET_DIR)/usr/lib \
+ datadir=$(TARGET_DIR)/usr/share \
+ sysconfdir=$(TARGET_DIR)/etc \
+ localstatedir=$(TARGET_DIR)/var \
+ libdir=$(TARGET_DIR)/usr/lib \
+ infodir=$(TARGET_DIR)/usr/share/info \
+ mandir=$(TARGET_DIR)/usr/share/man \
+ includedir=$(TARGET_DIR)/usr/include \
+ -C $(AUTOMAKE_DIR) install
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+ touch -c $@
+
+automake: uclibc autoconf $(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY)
+
+automake-clean:
+ $(MAKE) DESTDIR=$(TARGET_DIR) -C $(AUTOMAKE_DIR) uninstall
+ -$(MAKE) -C $(AUTOMAKE_DIR) clean
+
+automake-dirclean:
+ rm -rf $(AUTOMAKE_DIR)
+
+#############################################################
+#
+# automake for the host
+#
+#############################################################
+
+$(AUTOMAKE_HOST_DIR)/.configured: $(AUTOMAKE_SRC_DIR)/.unpacked
+ mkdir -p $(AUTOMAKE_HOST_DIR)
+ (cd $(AUTOMAKE_HOST_DIR); rm -rf config.cache; \
+ $(HOST_CONFIGURE_OPTS) \
+ CFLAGS="$(HOST_CFLAGS)" \
+ LDFLAGS="$(HOST_LDFLAGS)" \
+ WANT_AUTOCONF=2.5 \
+ $(AUTOMAKE_SRC_DIR)/configure \
+ --prefix=$(STAGING_DIR)/usr \
+ )
+ touch $@
+
+$(AUTOMAKE_HOST_DIR)/$(AUTOMAKE_BINARY): $(AUTOMAKE_HOST_DIR)/.configured
+ $(MAKE) -C $(AUTOMAKE_HOST_DIR)
+ touch -c $@
+
+$(AUTOMAKE): $(AUTOMAKE_HOST_DIR)/$(AUTOMAKE_BINARY)
+ $(MAKE) -C $(AUTOMAKE_HOST_DIR) install
+
+host-automake: host-autoconf host-libtool $(AUTOMAKE)
+
+host-automake-clean:
+ $(MAKE) -C $(AUTOMAKE_HOST_DIR) uninstall
+ -$(MAKE) -C $(AUTOMAKE_HOST_DIR) clean
+
+host-automake-dirclean:
+ rm -rf $(AUTOMAKE_HOST_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_AUTOMAKE)),y)
+TARGETS+=automake
+endif
diff --git a/cleopatre/buildroot/package/avahi/Config.in b/cleopatre/buildroot/package/avahi/Config.in
new file mode 100644
index 0000000000..b456a64183
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/Config.in
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_AVAHI
+ bool "avahi"
+ select BR2_PACKAGE_LIBDAEMON
+ help
+ Avahi is a system which facilitates service
+ discovery on a local network.
+
+ http://www.avahi.org/
+
+config BR2_PACKAGE_AVAHI_AUTOIPD
+ bool "IPv4LL network address configuration daemon"
+ default y
+ depends on BR2_PACKAGE_AVAHI
+ help
+ Avahi-autoipd implements IPv4LL, "Dynamic Configuration of
+ IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for
+ automatic IP address configuration from the link-local
+ 169.254.0.0/16 range without the need for a central server.
+ It is primarily intended to be used in ad-hoc networks which
+ lack a DHCP server.
+
+config BR2_PACKAGE_AVAHI_DAEMON
+ bool "mDNS/DNS-SD daemon"
+ depends on BR2_PACKAGE_AVAHI
+ depends on BR2_PACKAGE_EXPAT
+ help
+ The Avahi mDNS/DNS-SD daemon implementing Apple's ZeroConf
+ architecture (also known as "Rendezvous" or "Bonjour").
+ The daemon registers local IP addresses and services using
+ mDNS/DNS-SD.
+
+comment "mDNS/DNS-SD daemon - disabled (requires expat)"
+ depends on BR2_PACKAGE_AVAHI
+ depends on !BR2_PACKAGE_EXPAT
diff --git a/cleopatre/buildroot/package/avahi/S05avahi-setup.sh b/cleopatre/buildroot/package/avahi/S05avahi-setup.sh
new file mode 100755
index 0000000000..002f0c8925
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/S05avahi-setup.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+case "$1" in
+ start|"")
+ if [ ! -d /tmp/avahi-autopid ]; then
+ rm -rf /tmp/avahi-autoipd
+ mkdir /tmp/avahi-autoipd
+ chown default.default /tmp/avahi-autoipd
+ fi
+ ;;
+ stop) ;;
+ *)
+ echo "Usage: S05avahi-setup.sh {start|stop}" >&2
+ exit 1
+ ;;
+esac
diff --git a/cleopatre/buildroot/package/avahi/S50avahi-daemon b/cleopatre/buildroot/package/avahi/S50avahi-daemon
new file mode 100755
index 0000000000..81ac51316e
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/S50avahi-daemon
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# avahi-daemon init script
+
+DAEMON=/usr/sbin/avahi-daemon
+case "$1" in
+ start)
+ $DAEMON -c || $DAEMON -D
+ ;;
+ stop)
+ $DAEMON -c && $DAEMON -k
+ ;;
+ reload)
+ $DAEMON -c && $DAEMON -r
+ ;;
+ *)
+ echo "Usage: S50avahi-daemon {start|stop|reload}" >&2
+ exit 1
+ ;;
+esac
diff --git a/cleopatre/buildroot/package/avahi/autoipd-perms.patch b/cleopatre/buildroot/package/avahi/autoipd-perms.patch
new file mode 100644
index 0000000000..c740e3f8aa
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/autoipd-perms.patch
@@ -0,0 +1,11 @@
+--- avahi-0.6.14/avahi-autoipd/main.c.cls 2006-09-13 12:49:45.000000000 -0700
++++ avahi-0.6.14/avahi-autoipd/main.c 2006-09-25 20:34:10.000000000 -0700
+@@ -239,7 +239,7 @@
+
+ fprintf(f, "%s\n", inet_ntop(AF_INET, &addr, buf, sizeof (buf)));
+ fclose(f);
+-
++ chmod(fn, S_IRUSR|S_IWUSR);
+ return 0;
+
+ fail:
diff --git a/cleopatre/buildroot/package/avahi/avahi.mk b/cleopatre/buildroot/package/avahi/avahi.mk
new file mode 100644
index 0000000000..5f14beea69
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/avahi.mk
@@ -0,0 +1,204 @@
+#############################################################
+#
+# avahi (zeroconf implementation)
+#
+#############################################################
+#
+# This program is free software; you can redistribute it
+# and/or modify it under the terms of the GNU Lesser General
+# Public License as published by the Free Software Foundation
+# either version 2.1 of the License, or (at your option) any
+# later version.
+
+AVAHI_VERSION:=0.6.22
+AVAHI_DIR:=$(BUILD_DIR)/avahi-$(AVAHI_VERSION)
+AVAHI_SITE:=http://www.avahi.org/download/
+AVAHI_SOURCE:=avahi-$(AVAHI_VERSION).tar.gz
+AVAHI_CAT:=$(ZCAT)
+
+AVAHI_TARGETS:=
+
+ifeq ($(strip $(BR2_PACKAGE_AVAHI_AUTOIPD)),y)
+AVAHI_TARGETS+=$(TARGET_DIR)/usr/sbin/avahi-autoipd
+endif
+
+AVAHI_EXTRA_DEPS:=
+
+ifeq ($(strip $(BR2_PACKAGE_AVAHI_DAEMON)),y)
+AVAHI_TARGETS+=$(TARGET_DIR)/usr/sbin/avahi-daemon
+AVAHI_DISABLE_EXPAT:=--with-xml=expat
+# depend on the exact library file instead of expat so avahi isn't always
+# considered out-of-date
+AVAHI_EXTRA_DEPS+=$(STAGING_DIR)/usr/lib/libexpat.so.1
+else
+AVAHI_DISABLE_EXPAT:=--disable-expat --with-xml=none
+
+endif
+
+ifeq ($(strip $(BR2_PACKAGE_DBUS)),y)
+AVAHI_DISABLE_DBUS:=
+AVAHI_EXTRA_DEPS+=$(STAGING_DIR)/usr/bin/dbus-daemon
+else
+AVAHI_DISABLE_DBUS:=--disable-dbus
+endif
+
+$(DL_DIR)/$(AVAHI_SOURCE):
+ $(WGET) -P $(DL_DIR) $(AVAHI_SITE)/$(AVAHI_SOURCE)
+
+avahi-source: $(DL_DIR)/$(AVAHI_SOURCE)
+
+$(AVAHI_DIR)/.unpacked: $(DL_DIR)/$(AVAHI_SOURCE)
+ $(AVAHI_CAT) $(DL_DIR)/$(AVAHI_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(AVAHI_DIR) package/avahi/ \*.patch
+ touch $@
+
+$(AVAHI_DIR)/.configured: $(AVAHI_DIR)/.unpacked $(AVAHI_EXTRA_DEPS)
+ (cd $(AVAHI_DIR) && rm -rf config.cache && autoconf)
+ (cd $(AVAHI_DIR) && \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_func_strtod=yes \
+ ac_fsusage_space=yes \
+ fu_cv_sys_stat_statfs2_bsize=yes \
+ ac_cv_func_closedir_void=no \
+ ac_cv_func_getloadavg=no \
+ ac_cv_lib_util_getloadavg=no \
+ ac_cv_lib_getloadavg_getloadavg=no \
+ ac_cv_func_getgroups=yes \
+ ac_cv_func_getgroups_works=yes \
+ ac_cv_func_chown_works=yes \
+ ac_cv_have_decl_euidaccess=no \
+ ac_cv_func_euidaccess=no \
+ ac_cv_have_decl_strnlen=yes \
+ ac_cv_func_strnlen_working=yes \
+ ac_cv_func_lstat_dereferences_slashed_symlink=yes \
+ ac_cv_func_lstat_empty_string_bug=no \
+ ac_cv_func_stat_empty_string_bug=no \
+ vb_cv_func_rename_trailing_slash_bug=no \
+ ac_cv_have_decl_nanosleep=yes \
+ jm_cv_func_nanosleep_works=yes \
+ gl_cv_func_working_utimes=yes \
+ ac_cv_func_utime_null=yes \
+ ac_cv_have_decl_strerror_r=yes \
+ ac_cv_func_strerror_r_char_p=no \
+ jm_cv_func_svid_putenv=yes \
+ ac_cv_func_getcwd_null=yes \
+ ac_cv_func_getdelim=yes \
+ ac_cv_func_mkstemp=yes \
+ utils_cv_func_mkstemp_limitations=no \
+ utils_cv_func_mkdir_trailing_slash_bug=no \
+ ac_cv_func_memcmp_working=yes \
+ ac_cv_have_decl_malloc=yes \
+ gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_calloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes \
+ jm_cv_func_gettimeofday_clobber=no \
+ am_cv_func_working_getline=yes \
+ gl_cv_func_working_readdir=yes \
+ jm_ac_cv_func_link_follows_symlink=no \
+ utils_cv_localtime_cache=no \
+ ac_cv_struct_st_mtim_nsec=no \
+ gl_cv_func_tzset_clobber=no \
+ gl_cv_func_getcwd_null=yes \
+ gl_cv_func_getcwd_path_max=yes \
+ ac_cv_func_fnmatch_gnu=yes \
+ am_getline_needs_run_time_check=no \
+ am_cv_func_working_getline=yes \
+ gl_cv_func_mkdir_trailing_slash_bug=no \
+ gl_cv_func_mkstemp_limitations=no \
+ ac_cv_func_working_mktime=yes \
+ jm_cv_func_working_re_compile_pattern=yes \
+ ac_use_included_regex=no \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(REAL_GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ $(DISABLE_NLS) \
+ $(DISABLE_LARGEFILE) \
+ --disable-glib \
+ --disable-gobject \
+ --disable-qt3 \
+ --disable-qt4 \
+ --disable-gtk \
+ $(AVAHI_DISABLE_DBUS) \
+ $(AVAHI_DISABLE_EXPAT) \
+ --disable-gdbm \
+ --disable-python \
+ --disable-python-dbus \
+ --disable-pygtk \
+ --disable-mono \
+ --disable-monodoc \
+ --disable-stack-protector \
+ --with-distro=none \
+ --with-avahi-user=default \
+ --with-avahi-group=default \
+ --with-autoipd-user=default \
+ --with-autoipd-group=default \
+ )
+ touch $@
+
+$(AVAHI_DIR)/.compiled: $(AVAHI_DIR)/.configured
+ $(MAKE) -C $(AVAHI_DIR)
+ touch $@
+
+$(AVAHI_DIR)/.installed: $(AVAHI_DIR)/.compiled
+ mkdir -p $(STAGING_DIR)/etc/avahi
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(AVAHI_DIR) install
+ touch $@
+
+$(TARGET_DIR)/usr/sbin/avahi-autoipd: $(AVAHI_DIR)/.installed
+ mkdir -p $(TARGET_DIR)/etc/avahi
+ mkdir -p $(TARGET_DIR)/etc/init.d
+ mkdir -p $(TARGET_DIR)/var/lib
+ mkdir -p $(TARGET_DIR)/usr/share/udhcpc
+ cp -af $(STAGING_DIR)/etc/avahi/avahi-autoipd.action $(TARGET_DIR)/etc/avahi/
+ cp -af $(BASE_DIR)/package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
+ chmod 0755 $(TARGET_DIR)/usr/share/udhcpc/default.script
+ cp -af $(BASE_DIR)/package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
+ cp $(STAGING_DIR)/usr/sbin/avahi-autoipd $(TARGET_DIR)/usr/sbin/avahi-autoipd
+ ln -sf /tmp/avahi-autoipd $(TARGET_DIR)/var/lib/avahi-autoipd
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
+
+$(TARGET_DIR)/usr/sbin/avahi-daemon: $(AVAHI_DIR)/.installed
+ mkdir -p $(TARGET_DIR)/etc/avahi/services $(TARGET_DIR)/usr/lib
+ cp -dpf $(STAGING_DIR)/usr/lib/libavahi-*.so* $(TARGET_DIR)/usr/lib/
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libavahi-*.so*
+ cp -af $(STAGING_DIR)/etc/avahi/avahi-daemon.conf $(TARGET_DIR)/etc/avahi/
+ cp -af $(BASE_DIR)/package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/
+ifeq ($(strip $(BR2_PACKAGE_DBUS)),y)
+ cp -dpf $(STAGING_DIR)/usr/bin/avahi-* $(TARGET_DIR)/usr/bin
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/bin/avahi-*
+ mkdir -p $(TARGET_DIR)/etc/dbus-1/system.d/
+ cp -r $(STAGING_DIR)/etc/dbus-1/system.d/avahi-* \
+ $(TARGET_DIR)/etc/dbus-1/system.d/
+endif
+ cp $(STAGING_DIR)/usr/sbin/avahi-daemon \
+ $(TARGET_DIR)/usr/sbin/avahi-daemon
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
+
+avahi: uclibc busybox libdaemon $(AVAHI_TARGETS)
+
+avahi-clean:
+ -$(MAKE) -C $(AVAHI_DIR) distclean
+ -rm -rf $(TARGET_DIR)/etc/avahi
+ -rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
+ -rm -f $(TARGET_DIR)/etc/init.d/S*avahi*
+ -rm -f $(TARGET_DIR)/usr/sbin/avahi-*
+ -rm -f $(TARGET_DIR)/usr/bin/avahi-*
+ -rm -f $(TARGET_DIR)/usr/lib/libavahi-*
+
+avahi-dirclean:
+ rm -rf $(AVAHI_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_AVAHI)),y)
+TARGETS+=avahi
+endif
diff --git a/cleopatre/buildroot/package/avahi/busybox-udhcpc-default.script b/cleopatre/buildroot/package/avahi/busybox-udhcpc-default.script
new file mode 100755
index 0000000000..cc89feba72
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/busybox-udhcpc-default.script
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# udhcpc script edited by Tim Riker <Tim@Rikers.org>
+
+[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
+
+RESOLV_CONF="/etc/resolv.conf"
+[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
+[ -n "$subnet" ] && NETMASK="netmask $subnet"
+
+case "$1" in
+ deconfig)
+ grep -q -v ip= /proc/cmdline
+ if [ $? -eq 0 ]; then
+ /sbin/ifconfig $interface up
+ fi
+ grep -q -v nfsroot= /proc/cmdline
+ if [ $? -eq 0 ]; then
+ /sbin/ifconfig $interface 0.0.0.0
+ fi
+ if [ -x /usr/sbin/avahi-autoipd ]; then
+ /usr/sbin/avahi-autoipd -wD $interface --no-chroot
+ fi
+ ;;
+
+ renew|bound)
+ if [ -x /usr/sbin/avahi-autoipd ]; then
+ /usr/sbin/avahi-autoipd -k $interface
+ fi
+ /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
+
+ if [ -n "$router" ] ; then
+ echo "deleting routers"
+ while route del default gw 0.0.0.0 dev $interface ; do
+ :
+ done
+
+ for i in $router ; do
+ route add default gw $i dev $interface
+ done
+ fi
+
+ echo -n > $RESOLV_CONF
+ [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
+ for i in $dns ; do
+ echo adding dns $i
+ echo nameserver $i >> $RESOLV_CONF
+ done
+ ;;
+esac
+
+exit 0
diff --git a/cleopatre/buildroot/package/avahi/libdir-la.patch b/cleopatre/buildroot/package/avahi/libdir-la.patch
new file mode 100644
index 0000000000..56b56985f3
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/libdir-la.patch
@@ -0,0 +1,77 @@
+--- avahi/ltmain.sh.orig 2004-11-23 09:19:19.000000000 -0700
++++ avahi/ltmain.sh 2007-01-13 14:36:53.000000000 -0700
+@@ -231,8 +231,9 @@
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+- $echo "$modename: specify a tag with \`--tag'" 1>&2
+- exit $EXIT_FAILURE
++ $echo "$modename: defaulting to \`CC'"
++ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
++# exit $EXIT_FAILURE
+ # else
+ # $echo "$modename: using $tagname tagged configuration"
+ fi
+@@ -2279,8 +2280,14 @@
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+- dir="$libdir"
+- absdir="$libdir"
++ # Adding 'libdir' from the .la file to our library search paths
++ # breaks crosscompilation horribly. We cheat here and don't add
++ # it, instead adding the path where we found the .la. -CL
++ dir="$abs_ladir"
++ absdir="$abs_ladir"
++ libdir="$abs_ladir"
++ #dir="$libdir"
++ #absdir="$libdir"
+ fi
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+@@ -2754,6 +2761,16 @@
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
++# This interferes with crosscompilation. -CL
++# else
++# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++# if test -z "$libdir"; then
++# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++# exit 1
++# fi
++# if test "$absdir" != "$libdir"; then
++# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
++# fi
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+@@ -5141,6 +5158,10 @@
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
++ # Replacing uninstalled with installed can easily break crosscompilation,
++ # since the installed path is generally the wrong architecture. -CL
++ newdependency_libs="$newdependency_libs $deplib"
++ continue
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+@@ -5459,10 +5480,13 @@
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+- if test "$inst_prefix_dir" = "$destdir"; then
+- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+- exit $EXIT_FAILURE
+- fi
++ #
++ # This breaks install into our staging area. -PB
++ #
++ # if test "$inst_prefix_dir" = "$destdir"; then
++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
++ # exit $EXIT_FAILURE
++ # fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
diff --git a/cleopatre/buildroot/package/avahi/uclibc.patch b/cleopatre/buildroot/package/avahi/uclibc.patch
new file mode 100644
index 0000000000..8cc3cb9444
--- /dev/null
+++ b/cleopatre/buildroot/package/avahi/uclibc.patch
@@ -0,0 +1,19 @@
+diff -urpN avahi-0.6.22.orig/avahi-core/socket.c avahi-0.6.22/avahi-core/socket.c
+--- avahi-0.6.22.orig/avahi-core/socket.c 2007-12-16 22:03:08.000000000 +0100
++++ avahi-0.6.22/avahi-core/socket.c 2008-03-31 17:13:24.000000000 +0200
+@@ -394,13 +394,13 @@ int avahi_open_socket_ipv6(int no_reuse)
+ avahi_log_warn("IPV6_UNICAST_HOPS failed: %s", strerror(errno));
+ goto fail;
+ }
+-
++#ifdef IPV6_V6ONLY
+ yes = 1;
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("IPV6_V6ONLY failed: %s", strerror(errno));
+ goto fail;
+ }
+-
++#endif
+ yes = 1;
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("IPV6_MULTICAST_LOOP failed: %s", strerror(errno));
diff --git a/cleopatre/buildroot/package/axel/Config.in b/cleopatre/buildroot/package/axel/Config.in
new file mode 100644
index 0000000000..c706d4c2c1
--- /dev/null
+++ b/cleopatre/buildroot/package/axel/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_AXEL
+ bool "axel"
+ help
+ HTTP/FTP download accelerator.
+
+ http://axel.alioth.debian.org/
diff --git a/cleopatre/buildroot/package/axel/axel.mk b/cleopatre/buildroot/package/axel/axel.mk
new file mode 100644
index 0000000000..18cab3344a
--- /dev/null
+++ b/cleopatre/buildroot/package/axel/axel.mk
@@ -0,0 +1,55 @@
+#############################################################
+#
+# axel
+#
+#############################################################
+AXEL_VERSION:=1.1
+AXEL_SOURCE:=axel-$(AXEL_VERSION).tar.gz
+AXEL_SITE:=http://alioth.debian.org/frs/download.php/2287
+AXEL_CAT:=$(ZCAT)
+AXEL_DIR:=$(BUILD_DIR)/axel-$(AXEL_VERSION)
+AXEL_BINARY:=axel
+AXEL_TARGET_BINARY:=usr/bin/axel
+
+$(DL_DIR)/$(AXEL_SOURCE):
+ $(WGET) -P $(DL_DIR) $(AXEL_SITE)/$(AXEL_SOURCE)
+
+axel-source: $(DL_DIR)/$(AXEL_SOURCE)
+
+$(AXEL_DIR)/.unpacked: $(DL_DIR)/$(AXEL_SOURCE)
+ $(AXEL_CAT) $(DL_DIR)/$(AXEL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ #toolchain/patch-kernel.sh $(AXEL_DIR) package/axel axel\*.patch
+ touch $@
+
+$(AXEL_DIR)/Makefile.settings: $(AXEL_DIR)/.unpacked
+ (cd $(AXEL_DIR); \
+ ./configure --i18n=0 --prefix=/usr \
+ )
+ touch $@
+
+$(AXEL_DIR)/$(AXEL_BINARY): $(AXEL_DIR)/Makefile.settings
+ $(MAKE) CC="$(TARGET_CC)" STRIP="$(TARGET_STRIP)" -C $(AXEL_DIR)
+
+$(TARGET_DIR)/$(AXEL_TARGET_BINARY): $(AXEL_DIR)/$(AXEL_BINARY)
+ $(MAKE) DESTDIR=$(TARGET_DIR) -C $(AXEL_DIR) install-bin
+ifeq ($(BR2_HAVE_MANPAGES),y)
+ $(MAKE) DESTDIR=$(TARGET_DIR) -C $(AXEL_DIR) install-man
+endif
+
+axel: uclibc $(TARGET_DIR)/$(AXEL_TARGET_BINARY)
+
+axel-clean:
+ $(MAKE) DESTDIR=$(TARGET_DIR) -C $(AXEL_DIR) uninstall
+ -$(MAKE) -C $(AXEL_DIR) clean
+
+axel-dirclean:
+ rm -rf $(AXEL_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_AXEL)),y)
+TARGETS+=axel
+endif
diff --git a/cleopatre/buildroot/package/bash/Config.in b/cleopatre/buildroot/package/bash/Config.in
new file mode 100644
index 0000000000..e5d1274bbc
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_BASH
+ bool "bash"
+ select BR2_PACKAGE_NCURSES
+ help
+ The standard GNU Bourne again shell.
+
+ http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
diff --git a/cleopatre/buildroot/package/bash/bash.mk b/cleopatre/buildroot/package/bash/bash.mk
new file mode 100644
index 0000000000..d8170ea65e
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash.mk
@@ -0,0 +1,107 @@
+#############################################################
+#
+# bash
+#
+#############################################################
+BASH_VERSION:=3.2
+BASH_SOURCE:=bash-$(BASH_VERSION).tar.gz
+BASH_SITE:=$(BR2_GNU_MIRROR)/bash
+BASH_CAT:=$(ZCAT)
+BASH_DIR:=$(BUILD_DIR)/bash-$(BASH_VERSION)
+BASH_BINARY:=bash
+BASH_TARGET_BINARY:=bin/bash
+
+$(DL_DIR)/$(BASH_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BASH_SITE)/$(BASH_SOURCE)
+
+bash-source: $(DL_DIR)/$(BASH_SOURCE)
+
+bash-unpacked: $(BASH_DIR)/.unpacked
+
+$(BASH_DIR)/.unpacked: $(DL_DIR)/$(BASH_SOURCE)
+ $(BASH_CAT) $(DL_DIR)/$(BASH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(BASH_DIR) package/bash/ bash??-\*
+ # This is broken when -lintl is added to LIBS
+ $(SED) 's,LIBS_FOR_BUILD =.*,LIBS_FOR_BUILD =,g' \
+ $(BASH_DIR)/builtins/Makefile.in
+ # using target's LDFLAGS as LDFLAGS_FOR_BUILD is b0rked
+ -$(SED) '/^LDFLAGS_FOR_BUILD/d' $(BASH_DIR)/{,*/{,*/}}Makefile.in
+ $(CONFIG_UPDATE) $(BASH_DIR)/support
+ touch $@
+
+$(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked
+ # bash_cv_have_mbstate_t=yes
+ (cd $(BASH_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ CCFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
+ ac_cv_func_setvbuf_reversed=no \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --includedir=/usr/include \
+ $(DISABLE_NLS) \
+ $(DISABLE_LARGEFILE) \
+ --with-curses \
+ --enable-alias \
+ --without-bash-malloc \
+ $(ENABLE_DEBUG) \
+ )
+ touch $@
+
+$(BASH_DIR)/$(BASH_BINARY): $(BASH_DIR)/.configured
+ $(MAKE1) CC=$(TARGET_CC) CC_FOR_BUILD="$(HOSTCC)" -C $(BASH_DIR)
+
+$(TARGET_DIR)/$(BASH_TARGET_BINARY): $(BASH_DIR)/$(BASH_BINARY)
+ mkdir -p $(TARGET_DIR)/bin
+ $(MAKE1) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BASH_DIR) install
+ rm -f $(TARGET_DIR)/bin/bash*
+ mv $(TARGET_DIR)/usr/bin/bash* $(TARGET_DIR)/bin/
+ (cd $(TARGET_DIR)/bin; /bin/ln -fs bash sh)
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+
+# If both bash and busybox are selected, make certain bash wins
+# the fight over who gets to own the /bin/sh symlink.
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+bash: ncurses uclibc busybox $(TARGET_DIR)/$(BASH_TARGET_BINARY)
+else
+bash: ncurses uclibc $(TARGET_DIR)/$(BASH_TARGET_BINARY)
+endif
+
+# If both bash and busybox are selected, the /bin/sh symlink
+# may need to be reinstated by the clean targets.
+bash-clean:
+ -$(MAKE1) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BASH_DIR) uninstall
+ rm -f $(TARGET_DIR)/$(BASH_TARGET_BINARY)
+ -$(MAKE1) -C $(BASH_DIR) clean
+
+bash-dirclean:
+ rm -rf $(BASH_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BASH)),y)
+TARGETS+=bash
+endif
diff --git a/cleopatre/buildroot/package/bash/bash32-001 b/cleopatre/buildroot/package/bash/bash32-001
new file mode 100644
index 0000000000..aa9e16b842
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-001
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-001
+
+Bug-Reported-by: Greg Schafer <gschafer@zip.com.au>
+Bug-Reference-ID: <20061012084940.GA15768@tigers.local>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
+
+Bug-Description:
+
+When using historical ``-style command substitution, bash incorrectly attempts
+to interpret shell comments while scanning for the closing backquote.
+
+Patch:
+
+*** bash-3.2/parse.y Tue Sep 19 16:37:21 2006
+--- bash-3.2/parse.y Thu Oct 12 10:30:57 2006
+***************
+*** 2736,2740 ****
+ count = 1;
+ pass_next_character = backq_backslash = was_dollar = in_comment = 0;
+! check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+
+ /* RFLAGS is the set of flags we want to pass to recursive calls. */
+--- 2736,2740 ----
+ count = 1;
+ pass_next_character = backq_backslash = was_dollar = in_comment = 0;
+! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+
+ /* RFLAGS is the set of flags we want to pass to recursive calls. */
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 0
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-002 b/cleopatre/buildroot/package/bash/bash32-002
new file mode 100644
index 0000000000..e85485c6da
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-002
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-002
+
+Bug-Reported-by: Jim Gifford <jim@jg555.com>
+Bug-Reference-ID: <12j2pc3aq35mb04@corp.supernews.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
+
+Bug-Description:
+
+An incorrect encoding specification in the Content-Type header causes msgfmt
+to fail, which causes `make install' to fail.
+
+Patch:
+
+*** bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006
+--- bash-3.2/po/ru.po Mon Oct 16 15:13:23 2006
+***************
+*** 13,17 ****
+ "Language-Team: Russian <ru@li.org>\n"
+ "MIME-Version: 1.0\n"
+! "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+--- 13,17 ----
+ "Language-Team: Russian <ru@li.org>\n"
+ "MIME-Version: 1.0\n"
+! "Content-Type: text/plain; charset=KOI8-R\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-003 b/cleopatre/buildroot/package/bash/bash32-003
new file mode 100644
index 0000000000..b30bd13834
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-003
@@ -0,0 +1,147 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-003
+
+Bug-Reported-by: John Gatewood Ham <zappaman@buraphalinux.org>
+Bug-Reference-ID: <Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
+
+Bug-Description:
+
+When using the conditional command's `=~' operator to match regular
+expressions, the parser did not skip over shell metacharacters in the
+regular expression, leading to syntax errors.
+
+Patch:
+
+*** bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006
+--- bash-3.2/parse.y Sat Oct 14 14:56:16 2006
+***************
+*** 1029,1034 ****
+--- 1029,1035 ----
+ #define PST_CMDTOKEN 0x1000 /* command token OK - unused */
+ #define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */
+ #define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */
++ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */
+
+ /* Initial size to allocate for tokens, and the
+ amount to grow them by. */
+***************
+*** 2591,2596 ****
+--- 2592,2600 ----
+ return (character);
+ }
+
++ if (parser_state & PST_REGEXP)
++ goto tokword;
++
+ /* Shell meta-characters. */
+ if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
+ {
+***************
+*** 2698,2703 ****
+--- 2702,2708 ----
+ if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
+ return (character);
+
++ tokword:
+ /* Okay, if we got this far, we have to read a word. Read one,
+ and then check it against the known ones. */
+ result = read_token_word (character);
+***************
+*** 3202,3209 ****
+ if (tok == WORD && test_binop (yylval.word->word))
+ op = yylval.word;
+ #if defined (COND_REGEXP)
+! else if (tok == WORD && STREQ (yylval.word->word,"=~"))
+! op = yylval.word;
+ #endif
+ else if (tok == '<' || tok == '>')
+ op = make_word_from_token (tok); /* ( */
+--- 3207,3217 ----
+ if (tok == WORD && test_binop (yylval.word->word))
+ op = yylval.word;
+ #if defined (COND_REGEXP)
+! else if (tok == WORD && STREQ (yylval.word->word, "=~"))
+! {
+! op = yylval.word;
+! parser_state |= PST_REGEXP;
+! }
+ #endif
+ else if (tok == '<' || tok == '>')
+ op = make_word_from_token (tok); /* ( */
+***************
+*** 3234,3239 ****
+--- 3242,3248 ----
+
+ /* rhs */
+ tok = read_token (READ);
++ parser_state &= ~PST_REGEXP;
+ if (tok == WORD)
+ {
+ tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
+***************
+*** 3419,3427 ****
+ goto next_character;
+ }
+
+ #ifdef EXTENDED_GLOB
+ /* Parse a ksh-style extended pattern matching specification. */
+! if (extended_glob && PATTERN_CHAR (character))
+ {
+ peek_char = shell_getc (1);
+ if MBTEST(peek_char == '(') /* ) */
+--- 3428,3461 ----
+ goto next_character;
+ }
+
++ #ifdef COND_REGEXP
++ /* When parsing a regexp as a single word inside a conditional command,
++ we need to special-case characters special to both the shell and
++ regular expressions. Right now, that is only '(' and '|'. */ /*)*/
++ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/
++ {
++ if (character == '|')
++ goto got_character;
++
++ push_delimiter (dstack, character);
++ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
++ pop_delimiter (dstack);
++ if (ttok == &matched_pair_error)
++ return -1; /* Bail immediately. */
++ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
++ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
++ token[token_index++] = character;
++ strcpy (token + token_index, ttok);
++ token_index += ttoklen;
++ FREE (ttok);
++ dollar_present = all_digit_token = 0;
++ goto next_character;
++ }
++ #endif /* COND_REGEXP */
++
+ #ifdef EXTENDED_GLOB
+ /* Parse a ksh-style extended pattern matching specification. */
+! if MBTEST(extended_glob && PATTERN_CHAR (character))
+ {
+ peek_char = shell_getc (1);
+ if MBTEST(peek_char == '(') /* ) */
+
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
+
diff --git a/cleopatre/buildroot/package/bash/bash32-004 b/cleopatre/buildroot/package/bash/bash32-004
new file mode 100644
index 0000000000..0b742b76dc
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-004
@@ -0,0 +1,96 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-004
+
+Bug-Reported-by: Stuart Shelton <srcshelton@gmail.com>
+Bug-Reference-ID: <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+A bug in the parameter pattern substitution implementation treated a pattern
+whose first character was `/' (after expansion) as specifying global
+replacement.
+
+Patch:
+
+*** bash-3.2/subst.c Tue Sep 19 08:35:09 2006
+--- bash-3.2/subst.c Thu Oct 26 09:17:50 2006
+***************
+*** 5707,5712 ****
+--- 5707,5717 ----
+ vtype &= ~VT_STARSUB;
+
+ mflags = 0;
++ if (patsub && *patsub == '/')
++ {
++ mflags |= MATCH_GLOBREP;
++ patsub++;
++ }
+
+ /* Malloc this because expand_string_if_necessary or one of the expansion
+ functions in its call chain may free it on a substitution error. */
+***************
+*** 5741,5753 ****
+ }
+
+ /* ksh93 doesn't allow the match specifier to be a part of the expanded
+! pattern. This is an extension. */
+ p = pat;
+! if (pat && pat[0] == '/')
+! {
+! mflags |= MATCH_GLOBREP|MATCH_ANY;
+! p++;
+! }
+ else if (pat && pat[0] == '#')
+ {
+ mflags |= MATCH_BEG;
+--- 5746,5757 ----
+ }
+
+ /* ksh93 doesn't allow the match specifier to be a part of the expanded
+! pattern. This is an extension. Make sure we don't anchor the pattern
+! at the beginning or end of the string if we're doing global replacement,
+! though. */
+ p = pat;
+! if (mflags & MATCH_GLOBREP)
+! mflags |= MATCH_ANY;
+ else if (pat && pat[0] == '#')
+ {
+ mflags |= MATCH_BEG;
+*** bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006
+--- bash-3.2/tests/new-exp.right Sun Oct 29 16:03:36 2006
+***************
+*** 430,436 ****
+ Case06---1---A B C::---
+ Case07---3---A:B:C---
+ Case08---3---A:B:C---
+! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
+ argv[1] = <a>
+ argv[2] = <b>
+ argv[3] = <c>
+--- 430,436 ----
+ Case06---1---A B C::---
+ Case07---3---A:B:C---
+ Case08---3---A:B:C---
+! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
+ argv[1] = <a>
+ argv[2] = <b>
+ argv[3] = <c>
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-005 b/cleopatre/buildroot/package/bash/bash32-005
new file mode 100644
index 0000000000..8972d76fb9
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-005
@@ -0,0 +1,223 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-005
+
+Bug-Reported-by: Stuart Shelton <stuart@openobjects.com>
+Bug-Reference-ID: <453F7CC8.6030907@openobjects.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html
+
+Bug-Description:
+
+A missing extern declaration for `asprintf' caused `double' arguments to be
+passed as `0', leading to incorrect results. Additionally, a bug in the
+replacement asprintf/snprintf function caused an infinite loop when passed
+0 arguments to the floating point conversions under some circumstances.
+
+Patch:
+
+*** bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006
+--- bash-3.2/builtins/printf.def Tue Oct 31 08:19:44 2006
+***************
+*** 49,54 ****
+--- 49,60 ----
+ # define INT_MIN (-2147483647-1)
+ #endif
+
++ #if defined (PREFER_STDARG)
++ # include <stdarg.h>
++ #else
++ # include <varargs.h>
++ #endif
++
+ #include <stdio.h>
+ #include <chartypes.h>
+
+***************
+*** 151,156 ****
+--- 157,166 ----
+ #define SKIP1 "#'-+ 0"
+ #define LENMODS "hjlLtz"
+
++ #ifndef HAVE_ASPRINTF
++ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
++ #endif
++
+ static void printf_erange __P((char *));
+ static int printstr __P((char *, char *, int, int, int));
+ static int tescape __P((char *, char *, int *));
+
+
+*** bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006
+--- bash-3.2/lib/sh/snprintf.c Sat Oct 28 00:00:13 2006
+***************
+*** 471,476 ****
+--- 476,483 ----
+ 10^x ~= r
+ * log_10(200) = 2;
+ * log_10(250) = 2;
++ *
++ * NOTE: do not call this with r == 0 -- an infinite loop results.
+ */
+ static int
+ log_10(r)
+***************
+*** 576,583 ****
+ {
+ integral_part[0] = '0';
+ integral_part[1] = '\0';
+! fraction_part[0] = '0';
+! fraction_part[1] = '\0';
+ if (fract)
+ *fract = fraction_part;
+ return integral_part;
+--- 583,593 ----
+ {
+ integral_part[0] = '0';
+ integral_part[1] = '\0';
+! /* The fractional part has to take the precision into account */
+! for (ch = 0; ch < precision-1; ch++)
+! fraction_part[ch] = '0';
+! fraction_part[ch] = '0';
+! fraction_part[ch+1] = '\0';
+ if (fract)
+ *fract = fraction_part;
+ return integral_part;
+***************
+*** 805,810 ****
+--- 815,821 ----
+ PUT_CHAR(*tmp, p);
+ tmp++;
+ }
++
+ PAD_LEFT(p);
+ }
+
+***************
+*** 972,982 ****
+ if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
+ tmp = t;
+
+ /* calculate the padding. 1 for the dot */
+ p->width = p->width -
+ ((d > 0. && p->justify == RIGHT) ? 1:0) -
+ ((p->flags & PF_SPACE) ? 1:0) -
+! strlen(tmp) - p->precision - 1;
+ PAD_RIGHT(p);
+ PUT_PLUS(d, p, 0.);
+ PUT_SPACE(d, p, 0.);
+--- 983,1003 ----
+ if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
+ tmp = t;
+
++ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
++ {
++ /* smash the trailing zeros unless altform */
++ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
++ tmp2[i] = '\0';
++ if (tmp2[0] == '\0')
++ p->precision = 0;
++ }
++
+ /* calculate the padding. 1 for the dot */
+ p->width = p->width -
+ ((d > 0. && p->justify == RIGHT) ? 1:0) -
+ ((p->flags & PF_SPACE) ? 1:0) -
+! strlen(tmp) - p->precision -
+! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */
+ PAD_RIGHT(p);
+ PUT_PLUS(d, p, 0.);
+ PUT_SPACE(d, p, 0.);
+***************
+*** 991,1001 ****
+ if (p->precision != 0 || (p->flags & PF_ALTFORM))
+ PUT_CHAR(decpoint, p); /* put the '.' */
+
+- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
+- /* smash the trailing zeros unless altform */
+- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
+- tmp2[i] = '\0';
+-
+ for (; *tmp2; tmp2++)
+ PUT_CHAR(*tmp2, p); /* the fraction */
+
+--- 1012,1017 ----
+***************
+*** 1011,1024 ****
+ char *tmp, *tmp2;
+ int j, i;
+
+! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
+ return; /* already printed nan or inf */
+
+ GETLOCALEDATA(decpoint, thoussep, grouping);
+ DEF_PREC(p);
+! j = log_10(d);
+! d = d / pow_10(j); /* get the Mantissa */
+! d = ROUND(d, p);
+ tmp = dtoa(d, p->precision, &tmp2);
+
+ /* 1 for unit, 1 for the '.', 1 for 'e|E',
+--- 1027,1045 ----
+ char *tmp, *tmp2;
+ int j, i;
+
+! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
+ return; /* already printed nan or inf */
+
+ GETLOCALEDATA(decpoint, thoussep, grouping);
+ DEF_PREC(p);
+! if (d == 0.)
+! j = 0;
+! else
+! {
+! j = log_10(d);
+! d = d / pow_10(j); /* get the Mantissa */
+! d = ROUND(d, p);
+! }
+ tmp = dtoa(d, p->precision, &tmp2);
+
+ /* 1 for unit, 1 for the '.', 1 for 'e|E',
+***************
+*** 1076,1081 ****
+--- 1097,1103 ----
+ PUT_CHAR(*tmp, p);
+ tmp++;
+ }
++
+ PAD_LEFT(p);
+ }
+ #endif
+***************
+*** 1358,1364 ****
+ STAR_ARGS(data);
+ DEF_PREC(data);
+ d = GETDOUBLE(data);
+! i = log_10(d);
+ /*
+ * for '%g|%G' ANSI: use f if exponent
+ * is in the range or [-4,p] exclusively
+--- 1380,1386 ----
+ STAR_ARGS(data);
+ DEF_PREC(data);
+ d = GETDOUBLE(data);
+! i = (d != 0.) ? log_10(d) : -1;
+ /*
+ * for '%g|%G' ANSI: use f if exponent
+ * is in the range or [-4,p] exclusively
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-006 b/cleopatre/buildroot/package/bash/bash32-006
new file mode 100644
index 0000000000..69989c2941
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-006
@@ -0,0 +1,45 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-006
+
+Bug-Reported-by: ebb9@byu.net
+Bug-Reference-ID: <45540862.9030900@byu.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
+ http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
+
+Bug-Description:
+
+In some cases, code that is intended to be used in the presence of multibyte
+characters is called when no such characters are present, leading to incorrect
+display position calculations and incorrect redisplay.
+
+Patch:
+
+*** bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
+--- bash-3.2/lib/readline/display.c Mon Nov 13 17:55:57 2006
+***************
+*** 2381,2384 ****
+--- 2409,2414 ----
+ if (end <= start)
+ return 0;
++ if (MB_CUR_MAX == 1 || rl_byte_oriented)
++ return (end - start);
+
+ memset (&ps, 0, sizeof (mbstate_t));
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-007 b/cleopatre/buildroot/package/bash/bash32-007
new file mode 100644
index 0000000000..9c616c4faa
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-007
@@ -0,0 +1,55 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-007
+
+Bug-Reported-by: jidanni@jidanni.org
+Bug-Reference-ID: <E1Gkg12-00017D-Fm@jidanni.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html
+
+Bug-Description:
+
+When removing the current or previous job from the jobs list, bash incorrectly
+resets the current job under some circumstances.
+
+Patch:
+
+*** bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006
+--- bash-3.2/jobs.c Fri Nov 24 14:50:01 2006
+***************
+*** 985,990 ****
+ if (temp == 0)
+ return;
+- if (job_index == js.j_current || job_index == js.j_previous)
+- reset_current ();
+
+ if ((dflags & DEL_NOBGPID) == 0)
+--- 985,988 ----
+***************
+*** 1029,1032 ****
+--- 1027,1033 ----
+ else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
+ reset_job_indices ();
++
++ if (job_index == js.j_current || job_index == js.j_previous)
++ reset_current ();
+ }
+
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
+
+
diff --git a/cleopatre/buildroot/package/bash/bash32-008 b/cleopatre/buildroot/package/bash/bash32-008
new file mode 100644
index 0000000000..7185f412ad
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-008
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-008
+
+Bug-Reported-by: Linda Walsh <bash@tlinx.org>
+Bug-Reference-ID: <456041FD.8000605@tlinx.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html
+
+Bug-Description:
+
+When checking pathnames from the command hash table (e.g., when the `checkhash'
+shell option is enabled), a bug causes bash to delete and re-lookup each
+command.
+
+Patch:
+
+*** bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005
+--- bash-3.2/findcmd.c Fri Nov 24 10:48:37 2006
+***************
+*** 309,313 ****
+ {
+ st = file_status (hashed_file);
+! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
+ {
+ phash_remove (pathname);
+--- 309,313 ----
+ {
+ st = file_status (hashed_file);
+! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
+ {
+ phash_remove (pathname);
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-009 b/cleopatre/buildroot/package/bash/bash32-009
new file mode 100644
index 0000000000..ce10ac14ec
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-009
@@ -0,0 +1,61 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-009
+
+Bug-Reported-by: James.M.Botte@lowes.com
+Bug-Reference-ID: <BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853@msexchdb01.lowes.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html
+
+Bug-Description:
+
+When using its built-in replacement for snprintf/asprintf, bash does not
+treat the %x, %X, and %o format specifiers as unsigned numbers.
+
+Patch:
+
+*** bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006
+--- bash-3.2/lib/sh/snprintf.c Wed Dec 6 11:15:04 2006
+***************
+*** 669,673 ****
+
+ sd = d; /* signed for ' ' padding in base 10 */
+! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+ if (*p->pf == 'X')
+ flags |= FL_HEXUPPER;
+--- 674,679 ----
+
+ sd = d; /* signed for ' ' padding in base 10 */
+! flags = 0;
+! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+ if (*p->pf == 'X')
+ flags |= FL_HEXUPPER;
+***************
+*** 739,743 ****
+
+ sd = d; /* signed for ' ' padding in base 10 */
+! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+ if (*p->pf == 'X')
+ flags |= FL_HEXUPPER;
+--- 745,749 ----
+
+ sd = d; /* signed for ' ' padding in base 10 */
+! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+ if (*p->pf == 'X')
+ flags |= FL_HEXUPPER;
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-010 b/cleopatre/buildroot/package/bash/bash32-010
new file mode 100644
index 0000000000..b65e932295
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-010
@@ -0,0 +1,207 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-010
+
+Bug-Reported-by: Ryan Waldron <rew@erebor.com>
+Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html
+
+Bug-Description:
+
+The glibc implementation of regcomp/regexec does not allow backslashes to
+escape "ordinary" pattern characters when matching. Bash used backslashes
+to quote all characters when the pattern argument to the [[ special
+command's =~ operator was quoted. This caused the match to fail on Linux
+and other systems using GNU libc.
+
+Patch:
+
+*** ../bash-3.2.9/pathexp.h Sat Feb 19 17:23:18 2005
+--- bash-3.2/pathexp.h Wed Jan 31 22:53:16 2007
+***************
+*** 1,5 ****
+ /* pathexp.h -- The shell interface to the globbing library. */
+
+! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+ /* pathexp.h -- The shell interface to the globbing library. */
+
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 33,36 ****
+--- 33,37 ----
+ #define QGLOB_CVTNULL 0x01 /* convert QUOTED_NULL strings to '\0' */
+ #define QGLOB_FILENAME 0x02 /* do correct quoting for matching filenames */
++ #define QGLOB_REGEXP 0x04 /* quote an ERE for regcomp/regexec */
+
+ #if defined (EXTENDED_GLOB)
+*** ../bash-3.2.9/pathexp.c Mon May 6 13:43:05 2002
+--- bash-3.2/pathexp.c Mon Feb 26 16:59:23 2007
+***************
+*** 1,5 ****
+ /* pathexp.c -- The shell interface to the globbing library. */
+
+! /* Copyright (C) 1995-2002 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+ /* pathexp.c -- The shell interface to the globbing library. */
+
+! /* Copyright (C) 1995-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 111,114 ****
+--- 111,141 ----
+ }
+
++ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to
++ be quoted to match itself. */
++ static inline int
++ ere_char (c)
++ int c;
++ {
++ switch (c)
++ {
++ case '.':
++ case '[':
++ case '\\':
++ case '(':
++ case ')':
++ case '*':
++ case '+':
++ case '?':
++ case '{':
++ case '|':
++ case '^':
++ case '$':
++ return 1;
++ default:
++ return 0;
++ }
++ return (0);
++ }
++
+ /* PATHNAME can contain characters prefixed by CTLESC; this indicates
+ that the character is to be quoted. We quote it here in the style
+***************
+*** 143,146 ****
+--- 170,175 ----
+ if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
+ continue;
++ if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
++ continue;
+ temp[j++] = '\\';
+ i++;
+*** ../bash-3.2.9/subst.c Tue Nov 7 16:14:41 2006
+--- bash-3.2/subst.c Wed Jan 31 23:09:58 2007
+***************
+*** 5,9 ****
+ beauty, but, hey, you're alright.'' */
+
+! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 5,9 ----
+ beauty, but, hey, you're alright.'' */
+
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 2647,2655 ****
+ /* This needs better error handling. */
+ /* Expand W for use as an argument to a unary or binary operator in a
+! [[...]] expression. If SPECIAL is nonzero, this is the rhs argument
+ to the != or == operator, and should be treated as a pattern. In
+! this case, we quote the string specially for the globbing code. The
+! caller is responsible for removing the backslashes if the unquoted
+! words is needed later. */
+ char *
+ cond_expand_word (w, special)
+--- 2647,2656 ----
+ /* This needs better error handling. */
+ /* Expand W for use as an argument to a unary or binary operator in a
+! [[...]] expression. If SPECIAL is 1, this is the rhs argument
+ to the != or == operator, and should be treated as a pattern. In
+! this case, we quote the string specially for the globbing code. If
+! SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+! be quoted appropriately for regcomp/regexec. The caller is responsible
+! for removing the backslashes if the unquoted word is needed later. */
+ char *
+ cond_expand_word (w, special)
+***************
+*** 2659,2662 ****
+--- 2660,2664 ----
+ char *r, *p;
+ WORD_LIST *l;
++ int qflags;
+
+ if (w->word == 0 || w->word[0] == '\0')
+***************
+*** 2673,2678 ****
+ else
+ {
+ p = string_list (l);
+! r = quote_string_for_globbing (p, QGLOB_CVTNULL);
+ free (p);
+ }
+--- 2675,2683 ----
+ else
+ {
++ qflags = QGLOB_CVTNULL;
++ if (special == 2)
++ qflags |= QGLOB_REGEXP;
+ p = string_list (l);
+! r = quote_string_for_globbing (p, qflags);
+ free (p);
+ }
+*** ../bash-3.2.9/execute_cmd.c Sat Aug 26 00:23:17 2006
+--- bash-3.2/execute_cmd.c Wed Jan 31 23:12:06 2007
+***************
+*** 1,5 ****
+ /* execute_cmd.c -- Execute a COMMAND structure. */
+
+! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+ /* execute_cmd.c -- Execute a COMMAND structure. */
+
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 2547,2551 ****
+ if (arg1 == 0)
+ arg1 = nullstr;
+! arg2 = cond_expand_word (cond->right->op, patmatch||rmatch);
+ if (arg2 == 0)
+ arg2 = nullstr;
+--- 2547,2551 ----
+ if (arg1 == 0)
+ arg1 = nullstr;
+! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0));
+ if (arg2 == 0)
+ arg2 = nullstr;
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 10
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-011 b/cleopatre/buildroot/package/bash/bash32-011
new file mode 100644
index 0000000000..b59e6f69e5
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-011
@@ -0,0 +1,138 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-011
+
+Bug-Reported-by: Petr Sumbera <Petr.Sumbera@Sun.COM>
+Bug-Reference-ID: <45AF5F4B.1020800@sun.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html
+
+Bug-Description:
+
+Under certain circumstances (loopback mounts), the bash getcwd does not
+return correct results. This patch allows the use of the Solaris libc
+getcwd even though it doesn't dynamically allocate memory.
+
+Run `touch configure' to make sure make doesn't try to run autoconf.
+Then run configure with whatever options you like.
+
+Patch:
+
+*** ../bash-3.2-patched/configure.in Tue Sep 26 11:05:45 2006
+--- bash-3.2/configure.in Wed Jan 31 09:48:00 2007
+***************
+*** 6,10 ****
+ dnl Process this file with autoconf to produce a configure script.
+
+! # Copyright (C) 1987-2006 Free Software Foundation, Inc.
+
+ # This program is free software; you can redistribute it and/or modify
+--- 6,10 ----
+ dnl Process this file with autoconf to produce a configure script.
+
+! # Copyright (C) 1987-2007 Free Software Foundation, Inc.
+
+ # This program is free software; you can redistribute it and/or modify
+***************
+*** 992,996 ****
+ sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+ sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
+ lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+--- 992,997 ----
+ sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+ sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
+! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
+ lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+*** ../bash-3.2-patched/config-bot.h Tue Sep 12 16:43:04 2006
+--- bash-3.2/config-bot.h Tue Mar 6 10:41:31 2007
+***************
+*** 2,6 ****
+ /* modify settings or make new ones based on what autoconf tells us. */
+
+! /* Copyright (C) 1989-2002 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 2,6 ----
+ /* modify settings or make new ones based on what autoconf tells us. */
+
+! /* Copyright (C) 1989-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 71,77 ****
+ #endif
+
+! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so
+! the replacement in getcwd.c will be built. */
+! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN)
+ # undef HAVE_GETCWD
+ #endif
+--- 71,79 ----
+ #endif
+
+! /* If we have a getcwd(3), but one that does not dynamically allocate memory,
+! #undef HAVE_GETCWD so the replacement in getcwd.c will be built. We do
+! not do this on Solaris, because their implementation of loopback mounts
+! breaks the traditional file system assumptions that getcwd uses. */
+! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS)
+ # undef HAVE_GETCWD
+ #endif
+*** ../bash-3.2-patched/builtins/common.c Thu Jul 27 09:39:51 2006
+--- bash-3.2/builtins/common.c Tue Mar 6 10:43:27 2007
+***************
+*** 1,3 ****
+! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,3 ----
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 476,480 ****
+--- 476,484 ----
+ if (the_current_working_directory == 0)
+ {
++ #if defined (GETCWD_BROKEN)
++ the_current_working_directory = getcwd (0, PATH_MAX);
++ #else
+ the_current_working_directory = getcwd (0, 0);
++ #endif
+ if (the_current_working_directory == 0)
+ {
+*** ../bash-3.2-patched/configure Tue Sep 26 11:06:01 2006
+--- bash-3.2/configure Tue Mar 6 10:59:20 2007
+***************
+*** 27317,27321 ****
+ sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+ sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
+ lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+--- 27317,27322 ----
+ sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+ sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
+! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
+ lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 10
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-012 b/cleopatre/buildroot/package/bash/bash32-012
new file mode 100644
index 0000000000..af5e838001
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-012
@@ -0,0 +1,96 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-012
+
+Bug-Reported-by: John Wyman <JohnWyman@celink.com>
+Bug-Reference-ID: <5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly,
+causing syntax errors when attempting to compile bash on those systems.
+This patch adds support for the PRI_MACROS_BROKEN define.
+
+You will need to re-run `configure' after applying the patch. Run
+`touch configure' so make doesn't try to run autoconf.
+
+Patch:
+
+*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006
+--- bash-3.2/config.h.in Tue Mar 6 11:17:55 2007
+***************
+*** 1,5 ****
+ /* config.h -- Configuration file for bash. */
+
+! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+ /* config.h -- Configuration file for bash. */
+
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 414,417 ****
+--- 414,419 ----
+ #undef HAVE_DECL_STRTOLD
+
++ #undef PRI_MACROS_BROKEN
++
+ #undef STRTOLD_BROKEN
+
+***************
+*** 1007,1010 ****
+--- 1009,1015 ----
+ #undef HAVE_DCGETTEXT
+
++ /* Define if you have the `localeconv' function. */
++ #undef HAVE_LOCALECONV
++
+ /* Define if your system has a working `malloc' function. */
+ /* #undef HAVE_MALLOC */
+*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006
+--- bash-3.2/builtins/printf.def Sun Feb 4 13:58:59 2007
+***************
+*** 2,6 ****
+ It implements the builtin "printf" in Bash.
+
+! Copyright (C) 1997-2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+--- 2,6 ----
+ It implements the builtin "printf" in Bash.
+
+! Copyright (C) 1997-2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 71,74 ****
+--- 71,78 ----
+ #include "common.h"
+
++ #if defined (PRI_MACROS_BROKEN)
++ # undef PRIdMAX
++ #endif
++
+ #if !defined (PRIdMAX)
+ # if HAVE_LONG_LONG
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-013 b/cleopatre/buildroot/package/bash/bash32-013
new file mode 100644
index 0000000000..db113570da
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-013
@@ -0,0 +1,65 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-013
+
+Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
+Bug-Reference-ID: <45BDC44D.80609@mysql.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
+
+Bug-Description:
+
+Readline neglects to reallocate the array it uses to keep track of wrapped
+screen lines when increasing its size. This will eventually result in
+segmentation faults when given sufficiently long input.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
+--- bash-3.2/lib/readline/display.c Fri Feb 2 20:23:17 2007
+***************
+*** 561,574 ****
+--- 561,586 ----
+ wrap_offset = prompt_invis_chars_first_line = 0;
+ }
+
++ #if defined (HANDLE_MULTIBYTE)
+ #define CHECK_INV_LBREAKS() \
+ do { \
+ if (newlines >= (inv_lbsize - 2)) \
+ { \
+ inv_lbsize *= 2; \
+ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
+ } \
+ } while (0)
++ #else
++ #define CHECK_INV_LBREAKS() \
++ do { \
++ if (newlines >= (inv_lbsize - 2)) \
++ { \
++ inv_lbsize *= 2; \
++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++ } \
++ } while (0)
++ #endif /* HANDLE_MULTIBYTE */
+
+ #if defined (HANDLE_MULTIBYTE)
+ #define CHECK_LPOS() \
+
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-014 b/cleopatre/buildroot/package/bash/bash32-014
new file mode 100644
index 0000000000..3da7bbc31c
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-014
@@ -0,0 +1,307 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-014
+
+Bug-Reported-by: Brett Stahlman <brettstahlman@comcast.net>
+Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html
+
+Bug-Description:
+
+Bash mishandles word splitting under certain circumstances when IFS is
+null (IFS=). Constructs affected include ${param/pat/sub} and others
+when expanding arrays (array[@]).
+
+Patch:
+
+*** ../bash-3.2-patched/array.c Wed Jun 1 16:39:22 2005
+--- bash-3.2/array.c Mon Jan 15 22:58:00 2007
+***************
+*** 121,125 ****
+ }
+
+- #ifdef INCLUDE_UNUSED
+ /*
+ * Make and return a new array composed of the elements in array A from
+--- 121,124 ----
+***************
+*** 142,146 ****
+ n = array_create_element (element_index(p), element_value(p));
+ ADD_BEFORE(a->head, n);
+! mi = element_index(ae);
+ }
+ a->num_elements = i;
+--- 141,145 ----
+ n = array_create_element (element_index(p), element_value(p));
+ ADD_BEFORE(a->head, n);
+! mi = element_index(n);
+ }
+ a->num_elements = i;
+***************
+*** 148,152 ****
+ return a;
+ }
+- #endif
+
+ /*
+--- 147,150 ----
+***************
+*** 301,304 ****
+--- 299,319 ----
+ }
+
++ ARRAY *
++ array_quote_escapes(array)
++ ARRAY *array;
++ {
++ ARRAY_ELEMENT *a;
++ char *t;
++
++ if (array == 0 || array_head(array) == 0 || array_empty(array))
++ return (ARRAY *)NULL;
++ for (a = element_forw(array->head); a != array->head; a = element_forw(a)) {
++ t = quote_escapes (a->value);
++ FREE(a->value);
++ a->value = t;
++ }
++ return array;
++ }
++
+ /*
+ * Return a string whose elements are the members of array A beginning at
+***************
+*** 312,318 ****
+ int starsub, quoted;
+ {
+ ARRAY_ELEMENT *h, *p;
+ arrayind_t i;
+! char *ifs, sep[2];
+
+ p = a ? array_head (a) : 0;
+--- 327,334 ----
+ int starsub, quoted;
+ {
++ ARRAY *a2;
+ ARRAY_ELEMENT *h, *p;
+ arrayind_t i;
+! char *ifs, sep[2], *t;
+
+ p = a ? array_head (a) : 0;
+***************
+*** 337,340 ****
+--- 353,363 ----
+ ;
+
++ a2 = array_slice(a, h, p);
++
++ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
++ array_quote(a2);
++ else
++ array_quote_escapes(a2);
++
+ if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) {
+ ifs = getifs();
+***************
+*** 344,348 ****
+ sep[1] = '\0';
+
+! return (array_to_string_internal (h, p, sep, quoted));
+ }
+
+--- 367,374 ----
+ sep[1] = '\0';
+
+! t = array_to_string (a2, sep, 0);
+! array_dispose(a2);
+!
+! return t;
+ }
+
+***************
+*** 368,372 ****
+
+ if (mflags & MATCH_QUOTED)
+! array_quote (a2);
+ if (mflags & MATCH_STARSUB) {
+ ifs = getifs();
+--- 394,400 ----
+
+ if (mflags & MATCH_QUOTED)
+! array_quote(a2);
+! else
+! array_quote_escapes(a2);
+ if (mflags & MATCH_STARSUB) {
+ ifs = getifs();
+*** ../bash-3.2-patched/array.h Sun Jun 1 15:50:30 2003
+--- bash-3.2/array.h Mon Jan 15 22:35:35 2007
+***************
+*** 56,59 ****
+--- 56,60 ----
+ extern int array_shift_element __P((ARRAY *, char *));
+ extern ARRAY *array_quote __P((ARRAY *));
++ extern ARRAY *array_quote_escapes __P((ARRAY *));
+
+ extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int));
+*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007
+--- bash-3.2/subst.c Tue Mar 6 11:40:55 2007
+***************
+*** 1888,1892 ****
+--- 1889,1899 ----
+ #endif
+
++ /* XXX -- why call quote_list if ifs == 0? we can get away without doing
++ it now that quote_escapes quotes spaces */
++ #if 0
+ tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0))
++ #else
++ tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
++ #endif
+ ? quote_list (list)
+ : list_quote_escapes (list);
+***************
+*** 2922,2926 ****
+ /* Quote escape characters in string s, but no other characters. This is
+ used to protect CTLESC and CTLNUL in variable values from the rest of
+! the word expansion process after the variable is expanded. */
+ char *
+ quote_escapes (string)
+--- 2935,2944 ----
+ /* Quote escape characters in string s, but no other characters. This is
+ used to protect CTLESC and CTLNUL in variable values from the rest of
+! the word expansion process after the variable is expanded. If IFS is
+! null, we quote spaces as well, just in case we split on spaces later
+! (in the case of unquoted $@, we will eventually attempt to split the
+! entire word on spaces). Corresponding code exists in dequote_escapes.
+! Even if we don't end up splitting on spaces, quoting spaces is not a
+! problem. */
+ char *
+ quote_escapes (string)
+***************
+*** 2930,2933 ****
+--- 2948,2952 ----
+ size_t slen;
+ char *result, *send;
++ int quote_spaces;
+ DECLARE_MBSTATE;
+
+***************
+*** 2935,2938 ****
+--- 2954,2958 ----
+ send = string + slen;
+
++ quote_spaces = (ifs_value && *ifs_value == 0);
+ t = result = (char *)xmalloc ((slen * 2) + 1);
+ s = string;
+***************
+*** 2940,2944 ****
+ while (*s)
+ {
+! if (*s == CTLESC || *s == CTLNUL)
+ *t++ = CTLESC;
+ COPY_CHAR_P (t, s, send);
+--- 2960,2964 ----
+ while (*s)
+ {
+! if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' '))
+ *t++ = CTLESC;
+ COPY_CHAR_P (t, s, send);
+***************
+*** 2982,2985 ****
+--- 3002,3006 ----
+ size_t slen;
+ char *result, *send;
++ int quote_spaces;
+ DECLARE_MBSTATE;
+
+***************
+*** 2996,3002 ****
+ return (strcpy (result, s));
+
+ while (*s)
+ {
+! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL))
+ {
+ s++;
+--- 3017,3024 ----
+ return (strcpy (result, s));
+
++ quote_spaces = (ifs_value && *ifs_value == 0);
+ while (*s)
+ {
+! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' ')))
+ {
+ s++;
+***************
+*** 4462,4466 ****
+ RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
+
+! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL)
+ istring[istring_index++] = CTLESC;
+
+--- 4498,4510 ----
+ RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
+
+! /* This is essentially quote_string inline */
+! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */)
+! istring[istring_index++] = CTLESC;
+! /* Escape CTLESC and CTLNUL in the output to protect those characters
+! from the rest of the word expansions (word splitting and globbing.)
+! This is essentially quote_escapes inline. */
+! else if (c == CTLESC)
+! istring[istring_index++] = CTLESC;
+! else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0)))
+ istring[istring_index++] = CTLESC;
+
+***************
+*** 5552,5555 ****
+--- 5610,5616 ----
+ rely on array_subrange to understand how to deal with them). */
+ tt = array_subrange (array_cell (v), e1, e2, starsub, quoted);
++ #if 0
++ /* array_subrange now calls array_quote_escapes as appropriate, so the
++ caller no longer needs to. */
+ if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+ {
+***************
+*** 5558,5561 ****
+--- 5619,5623 ----
+ }
+ else
++ #endif
+ temp = tt;
+ break;
+***************
+*** 5808,5811 ****
+--- 5870,5876 ----
+ case VT_ARRAYVAR:
+ temp = array_patsub (array_cell (v), p, rep, mflags);
++ #if 0
++ /* Don't need to do this anymore; array_patsub calls array_quote_escapes
++ as appropriate before adding the space separators. */
+ if (temp && (mflags & MATCH_QUOTED) == 0)
+ {
+***************
+*** 5814,5817 ****
+--- 5879,5883 ----
+ temp = tt;
+ }
++ #endif
+ break;
+ #endif
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-015 b/cleopatre/buildroot/package/bash/bash32-015
new file mode 100644
index 0000000000..074e690fa8
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-015
@@ -0,0 +1,95 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-015
+
+Bug-Reported-by:
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under certain circumstances, when using FIFOs for process substitution,
+bash fails to unlink the FIFOs. This leaves open file descriptors that
+can cause the shell to hang and litters the file system.
+
+Patch:
+
+*** ../bash-3.2-patched/execute_cmd.c Fri Mar 2 16:20:50 2007
+--- bash-3.2/execute_cmd.c Wed Jan 31 23:12:06 2007
+***************
+*** 3051,3054 ****
+--- 3051,3059 ----
+ command_line = savestring (the_printed_command_except_trap);
+
++ #if defined (PROCESS_SUBSTITUTION)
++ if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0)
++ simple_command->flags &= ~CMD_NO_FORK;
++ #endif
++
+ execute_disk_command (words, simple_command->redirects, command_line,
+ pipe_in, pipe_out, async, fds_to_close,
+*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007
+--- bash-3.2/subst.c Tue Mar 6 11:40:55 2007
+***************
+*** 4129,4132 ****
+--- 4151,4160 ----
+ }
+
++ int
++ fifos_pending ()
++ {
++ return nfifo;
++ }
++
+ static char *
+ make_named_pipe ()
+***************
+*** 4178,4181 ****
+--- 4206,4215 ----
+ }
+
++ int
++ fifos_pending ()
++ {
++ return 0; /* used for cleanup; not needed with /dev/fd */
++ }
++
+ void
+ unlink_fifo_list ()
+***************
+*** 4671,4674 ****
+--- 4719,4725 ----
+ last_command_exit_value = rc;
+ rc = run_exit_trap ();
++ #if defined (PROCESS_SUBSTITUTION)
++ unlink_fifo_list ();
++ #endif
+ exit (rc);
+ }
+*** ../bash-3.2-patched/subst.h Tue Sep 19 08:34:41 2006
+--- bash-3.2/subst.h Wed Jan 10 09:46:47 2007
+***************
+*** 223,226 ****
+--- 223,227 ----
+ extern char *pat_subst __P((char *, char *, char *, int));
+
++ extern int fifos_pending __P((void));
+ extern void unlink_fifo_list __P((void));
+
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-016 b/cleopatre/buildroot/package/bash/bash32-016
new file mode 100644
index 0000000000..cfc57f83b4
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-016
@@ -0,0 +1,52 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-016
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1171795523.8021.18.camel@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
+
+Bug-Description:
+
+When moving the cursor, bash sometimes misplaces the cursor when the prompt
+contains two or more multibyte characters. The particular circumstance that
+uncovered the problem was having the (multibyte) current directory name in
+the prompt string.
+
+Patch:
+
+*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007
+--- bash-3.2/lib/readline/display.c Sat Mar 10 17:25:44 2007
+***************
+*** 1745,1749 ****
+ {
+ dpos = _rl_col_width (data, 0, new);
+! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */
+ {
+ dpos -= woff;
+--- 1745,1752 ----
+ {
+ dpos = _rl_col_width (data, 0, new);
+! /* Use NEW when comparing against the last invisible character in the
+! prompt string, since they're both buffer indices and DPOS is a
+! desired display position. */
+! if (new > prompt_last_invisible) /* XXX - don't use woff here */
+ {
+ dpos -= woff;
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-017 b/cleopatre/buildroot/package/bash/bash32-017
new file mode 100644
index 0000000000..89335341d7
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-017
@@ -0,0 +1,85 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-017
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
+
+Bug-Description:
+
+When restoring the original prompt after finishing an incremental search,
+bash sometimes places the cursor incorrectly if the primary prompt contains
+invisible characters.
+
+Patch:
+
+*** ../bash-3.2.16/lib/readline/display.c Fri Apr 20 13:30:16 2007
+--- bash-3.2/lib/readline/display.c Fri Apr 20 15:17:01 2007
+***************
+*** 1599,1604 ****
+ if (temp > 0)
+ {
+ _rl_output_some_chars (nfd, temp);
+! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
+ }
+ }
+--- 1599,1618 ----
+ if (temp > 0)
+ {
++ /* If nfd begins at the prompt, or before the invisible
++ characters in the prompt, we need to adjust _rl_last_c_pos
++ in a multibyte locale to account for the wrap offset and
++ set cpos_adjusted accordingly. */
+ _rl_output_some_chars (nfd, temp);
+! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+! {
+! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
+! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
+! {
+! _rl_last_c_pos -= wrap_offset;
+! cpos_adjusted = 1;
+! }
+! }
+! else
+! _rl_last_c_pos += temp;
+ }
+ }
+***************
+*** 1608,1613 ****
+--- 1622,1639 ----
+ if (temp > 0)
+ {
++ /* If nfd begins at the prompt, or before the invisible
++ characters in the prompt, we need to adjust _rl_last_c_pos
++ in a multibyte locale to account for the wrap offset and
++ set cpos_adjusted accordingly. */
+ _rl_output_some_chars (nfd, temp);
+ _rl_last_c_pos += col_temp; /* XXX */
++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
++ {
++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++ {
++ _rl_last_c_pos -= wrap_offset;
++ cpos_adjusted = 1;
++ }
++ }
+ }
+ lendiff = (oe - old) - (ne - new);
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-018 b/cleopatre/buildroot/package/bash/bash32-018
new file mode 100644
index 0000000000..81bfa67540
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-018
@@ -0,0 +1,98 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-018
+
+Bug-Reported-by: osicka@post.cz
+Bug-Reference-ID: <228.177-19682-1132061412-1179356692@post.cz>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html
+
+Bug-Description:
+
+In certain cases, bash can lose the saved status of a background job, though
+it should still be reported by `wait'. Bash can also loop infinitely after
+creating and waiting for 4096 jobs.
+
+Patch:
+
+*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007
+--- bash-3.2/jobs.c Fri May 18 11:40:14 2007
+***************
+*** 784,792 ****
+ {
+ old = js.j_firstj++;
+ while (js.j_firstj != old)
+ {
+ if (js.j_firstj >= js.j_jobslots)
+ js.j_firstj = 0;
+! if (jobs[js.j_firstj])
+ break;
+ js.j_firstj++;
+--- 784,794 ----
+ {
+ old = js.j_firstj++;
++ if (old >= js.j_jobslots)
++ old = js.j_jobslots - 1;
+ while (js.j_firstj != old)
+ {
+ if (js.j_firstj >= js.j_jobslots)
+ js.j_firstj = 0;
+! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
+ break;
+ js.j_firstj++;
+***************
+*** 798,806 ****
+ {
+ old = js.j_lastj--;
+ while (js.j_lastj != old)
+ {
+ if (js.j_lastj < 0)
+ js.j_lastj = js.j_jobslots - 1;
+! if (jobs[js.j_lastj])
+ break;
+ js.j_lastj--;
+--- 800,810 ----
+ {
+ old = js.j_lastj--;
++ if (old < 0)
++ old = 0;
+ while (js.j_lastj != old)
+ {
+ if (js.j_lastj < 0)
+ js.j_lastj = js.j_jobslots - 1;
+! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
+ break;
+ js.j_lastj--;
+***************
+*** 964,968 ****
+ realloc_jobs_list ();
+
+! return (js.j_lastj);
+ }
+
+--- 975,983 ----
+ realloc_jobs_list ();
+
+! #ifdef DEBUG
+! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
+! #endif
+!
+! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
+ }
+
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-019 b/cleopatre/buildroot/package/bash/bash32-019
new file mode 100644
index 0000000000..17082cd143
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-019
@@ -0,0 +1,343 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-019
+
+Bug-Reported-by: Thomas Loeber <ifp@loeber1.de>
+Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
+
+Bug-Description:
+
+When rl_read_key returns -1, indicating that bash's controlling terminal
+has been invalidated for some reason (e.g., receiving a SIGHUP), the error
+status was not reported correctly to the caller. This could cause input
+loops.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/complete.c Fri Jul 28 11:35:49 2006
+--- bash-3.2/lib/readline/complete.c Tue Mar 13 08:50:16 2007
+***************
+*** 429,433 ****
+ if (c == 'n' || c == 'N' || c == RUBOUT)
+ return (0);
+! if (c == ABORT_CHAR)
+ _rl_abort_internal ();
+ if (for_pager && (c == NEWLINE || c == RETURN))
+--- 440,444 ----
+ if (c == 'n' || c == 'N' || c == RUBOUT)
+ return (0);
+! if (c == ABORT_CHAR || c < 0)
+ _rl_abort_internal ();
+ if (for_pager && (c == NEWLINE || c == RETURN))
+*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006
+--- bash-3.2/lib/readline/input.c Wed May 2 16:07:59 2007
+***************
+*** 514,518 ****
+ int size;
+ {
+! int mb_len = 0;
+ size_t mbchar_bytes_length;
+ wchar_t wc;
+--- 522,526 ----
+ int size;
+ {
+! int mb_len, c;
+ size_t mbchar_bytes_length;
+ wchar_t wc;
+***************
+*** 521,531 ****
+ memset(&ps, 0, sizeof (mbstate_t));
+ memset(&ps_back, 0, sizeof (mbstate_t));
+!
+ while (mb_len < size)
+ {
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+! mbchar[mb_len++] = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+ mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+ if (mbchar_bytes_length == (size_t)(-1))
+--- 529,545 ----
+ memset(&ps, 0, sizeof (mbstate_t));
+ memset(&ps_back, 0, sizeof (mbstate_t));
+!
+! mb_len = 0;
+ while (mb_len < size)
+ {
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+! c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
++ if (c < 0)
++ break;
++
++ mbchar[mb_len++] = c;
++
+ mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+ if (mbchar_bytes_length == (size_t)(-1))
+***************
+*** 565,569 ****
+ c = first;
+ memset (mb, 0, mlen);
+! for (i = 0; i < mlen; i++)
+ {
+ mb[i] = (char)c;
+--- 579,583 ----
+ c = first;
+ memset (mb, 0, mlen);
+! for (i = 0; c >= 0 && i < mlen; i++)
+ {
+ mb[i] = (char)c;
+*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005
+--- bash-3.2/lib/readline/isearch.c Fri Mar 9 14:30:59 2007
+***************
+*** 328,333 ****
+
+ f = (rl_command_func_t *)NULL;
+!
+! /* Translate the keys we do something with to opcodes. */
+ if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+ {
+--- 328,340 ----
+
+ f = (rl_command_func_t *)NULL;
+!
+! if (c < 0)
+! {
+! cxt->sflags |= SF_FAILED;
+! cxt->history_pos = cxt->last_found_line;
+! return -1;
+! }
+!
+! /* Translate the keys we do something with to opcodes. */
+ if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+ {
+*** ../bash-3.2-patched/lib/readline/misc.c Mon Dec 26 17:20:46 2005
+--- bash-3.2/lib/readline/misc.c Fri Mar 9 14:44:11 2007
+***************
+*** 147,150 ****
+--- 147,152 ----
+ rl_clear_message ();
+ RL_UNSETSTATE(RL_STATE_NUMERICARG);
++ if (key < 0)
++ return -1;
+ return (_rl_dispatch (key, _rl_keymap));
+ }
+*** ../bash-3.2-patched/lib/readline/readline.c Wed Aug 16 15:00:36 2006
+--- bash-3.2/lib/readline/readline.c Fri Mar 9 14:47:24 2007
+***************
+*** 646,649 ****
+--- 669,677 ----
+ {
+ nkey = _rl_subseq_getchar (cxt->okey);
++ if (nkey < 0)
++ {
++ _rl_abort_internal ();
++ return -1;
++ }
+ r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
+ cxt->flags |= KSEQ_DISPATCHED;
+*** ../bash-3.2-patched/lib/readline/text.c Fri Jul 28 11:55:27 2006
+--- bash-3.2/lib/readline/text.c Sun Mar 25 13:41:38 2007
+***************
+*** 858,861 ****
+--- 864,870 ----
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
++ if (c < 0)
++ return -1;
++
+ #if defined (HANDLE_SIGNALS)
+ if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
+***************
+*** 1521,1524 ****
+--- 1530,1536 ----
+ mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
+
++ if (mb_len <= 0)
++ return -1;
++
+ if (count < 0)
+ return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
+***************
+*** 1537,1540 ****
+--- 1549,1555 ----
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
++ if (c < 0)
++ return -1;
++
+ if (count < 0)
+ return (_rl_char_search_internal (-count, bdir, c));
+*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006
+--- bash-3.2/lib/readline/vi_mode.c Fri Mar 9 15:02:11 2007
+***************
+*** 887,890 ****
+--- 887,897 ----
+ c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
++
++ if (c < 0)
++ {
++ *nextkey = 0;
++ return -1;
++ }
++
+ *nextkey = c;
+
+***************
+*** 903,906 ****
+--- 910,918 ----
+ c = rl_read_key (); /* real command */
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ if (c < 0)
++ {
++ *nextkey = 0;
++ return -1;
++ }
+ *nextkey = c;
+ }
+***************
+*** 1225,1236 ****
+ _rl_callback_generic_arg *data;
+ {
+ #if defined (HANDLE_MULTIBYTE)
+! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+ #else
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+! _rl_vi_last_search_char = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ #endif
+
+ _rl_callback_func = 0;
+ _rl_want_redisplay = 1;
+--- 1243,1262 ----
+ _rl_callback_generic_arg *data;
+ {
++ int c;
+ #if defined (HANDLE_MULTIBYTE)
+! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+ #else
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+! c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ #endif
+
++ if (c <= 0)
++ return -1;
++
++ #if !defined (HANDLE_MULTIBYTE)
++ _rl_vi_last_search_char = c;
++ #endif
++
+ _rl_callback_func = 0;
+ _rl_want_redisplay = 1;
+***************
+*** 1248,1251 ****
+--- 1274,1278 ----
+ int count, key;
+ {
++ int c;
+ #if defined (HANDLE_MULTIBYTE)
+ static char *target;
+***************
+*** 1294,1302 ****
+ {
+ #if defined (HANDLE_MULTIBYTE)
+! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+ #else
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+! _rl_vi_last_search_char = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ #endif
+ }
+--- 1321,1335 ----
+ {
+ #if defined (HANDLE_MULTIBYTE)
+! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+! if (c <= 0)
+! return -1;
+! _rl_vi_last_search_mblen = c;
+ #else
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+! c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ if (c < 0)
++ return -1;
++ _rl_vi_last_search_char = c;
+ #endif
+ }
+***************
+*** 1468,1471 ****
+--- 1501,1507 ----
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
++ if (c < 0)
++ return -1;
++
+ #if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+***************
+*** 1486,1489 ****
+--- 1522,1528 ----
+ _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+
++ if (c < 0)
++ return -1;
++
+ _rl_callback_func = 0;
+ _rl_want_redisplay = 1;
+***************
+*** 1517,1520 ****
+--- 1556,1562 ----
+ _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+
++ if (c < 0)
++ return -1;
++
+ return (_rl_vi_change_char (count, c, mb));
+ }
+***************
+*** 1651,1655 ****
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+! if (ch < 'a' || ch > 'z')
+ {
+ rl_ding ();
+--- 1693,1697 ----
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
+ {
+ rl_ding ();
+***************
+*** 1703,1707 ****
+ return 0;
+ }
+! else if (ch < 'a' || ch > 'z')
+ {
+ rl_ding ();
+--- 1745,1749 ----
+ return 0;
+ }
+! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
+ {
+ rl_ding ();
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-020 b/cleopatre/buildroot/package/bash/bash32-020
new file mode 100644
index 0000000000..f464c38ee9
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-020
@@ -0,0 +1,183 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-020
+
+Bug-Reported-by: Ian A Watson <WATSON_IAN_A@LILLY.COM>
+Bug-Reference-ID: <OFEC551808.69D02C7F-ON8525729A.0045708D-8525729A.0046150B@EliLilly.lilly.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+In some cases of error processing, a jump back to the top-level processing
+loop from a builtin command would leave the shell in an inconsistent state.
+
+Patch:
+
+*** ../bash-3.2-patched/sig.c Wed Jan 25 14:57:59 2006
+--- bash-3.2/sig.c Sat Mar 10 11:11:30 2007
+***************
+*** 351,354 ****
+--- 351,373 ----
+ #undef XHANDLER
+
++ /* Run some of the cleanups that should be performed when we run
++ jump_to_top_level from a builtin command context. XXX - might want to
++ also call reset_parser here. */
++ void
++ top_level_cleanup ()
++ {
++ /* Clean up string parser environment. */
++ while (parse_and_execute_level)
++ parse_and_execute_cleanup ();
++
++ #if defined (PROCESS_SUBSTITUTION)
++ unlink_fifo_list ();
++ #endif /* PROCESS_SUBSTITUTION */
++
++ run_unwind_protects ();
++ loop_level = continuing = breaking = 0;
++ return_catch_flag = 0;
++ }
++
+ /* What to do when we've been interrupted, and it is safe to handle it. */
+ void
+*** ../bash-3.2-patched/sig.h Wed Jan 25 14:50:27 2006
+--- bash-3.2/sig.h Sat Mar 10 11:14:18 2007
+***************
+*** 122,125 ****
+--- 122,126 ----
+ extern void initialize_terminating_signals __P((void));
+ extern void reset_terminating_signals __P((void));
++ extern void top_level_cleanup __P((void));
+ extern void throw_to_top_level __P((void));
+ extern void jump_to_top_level __P((int)) __attribute__((__noreturn__));
+*** ../bash-3.2-patched/builtins/common.c Tue Apr 3 16:47:13 2007
+--- bash-3.2/builtins/common.c Mon Apr 30 15:01:33 2007
+***************
+*** 132,135 ****
+--- 132,136 ----
+ {
+ builtin_error (_("too many arguments"));
++ top_level_cleanup ();
+ jump_to_top_level (DISCARD);
+ }
+***************
+*** 396,400 ****
+ throw_to_top_level ();
+ else
+! jump_to_top_level (DISCARD);
+ }
+ no_args (list->next);
+--- 410,417 ----
+ throw_to_top_level ();
+ else
+! {
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ }
+ no_args (list->next);
+*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007
+--- bash-3.2/subst.c Tue Jul 17 09:45:11 2007
+***************
+*** 1279,1283 ****
+ if (no_longjmp_on_fatal_error == 0)
+ { /* { */
+! report_error ("bad substitution: no closing `%s' in %s", "}", string);
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level (DISCARD);
+--- 1290,1294 ----
+ if (no_longjmp_on_fatal_error == 0)
+ { /* { */
+! report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level (DISCARD);
+***************
+*** 7662,7665 ****
+--- 7706,7711 ----
+ expand_no_split_dollar_star = 0; /* XXX */
+ expanding_redir = 0;
++
++ top_level_cleanup (); /* from sig.c */
+
+ jump_to_top_level (v);
+***************
+*** 7880,7884 ****
+ {
+ report_error (_("no match: %s"), tlist->word->word);
+! jump_to_top_level (DISCARD);
+ }
+ else if (allow_null_glob_expansion == 0)
+--- 7927,7931 ----
+ {
+ report_error (_("no match: %s"), tlist->word->word);
+! exp_jump_to_top_level (DISCARD);
+ }
+ else if (allow_null_glob_expansion == 0)
+*** ../bash-3.2-patched/arrayfunc.c Thu Jul 27 09:37:59 2006
+--- bash-3.2/arrayfunc.c Thu May 31 11:55:46 2007
+***************
+*** 619,622 ****
+--- 619,624 ----
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
++
++ top_level_cleanup ();
+ jump_to_top_level (DISCARD);
+ }
+*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005
+--- bash-3.2/expr.c Tue Apr 24 14:17:59 2007
+***************
+*** 930,933 ****
+--- 930,934 ----
+ {
+ expr_unwind ();
++ top_level_cleanup ();
+ jump_to_top_level (DISCARD);
+ }
+*** ../bash-3.2-patched/variables.c Fri Sep 8 13:33:32 2006
+--- bash-3.2/variables.c Tue Jul 17 09:54:59 2007
+***************
+*** 1822,1830 ****
+ lval = evalexp (oval, &expok); /* ksh93 seems to do this */
+ if (expok == 0)
+! jump_to_top_level (DISCARD);
+ }
+ rval = evalexp (value, &expok);
+ if (expok == 0)
+! jump_to_top_level (DISCARD);
+ if (flags & ASS_APPEND)
+ rval += lval;
+--- 1855,1869 ----
+ lval = evalexp (oval, &expok); /* ksh93 seems to do this */
+ if (expok == 0)
+! {
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ }
+ rval = evalexp (value, &expok);
+ if (expok == 0)
+! {
+! top_level_cleanup ();
+! jump_to_top_level (DISCARD);
+! }
+ if (flags & ASS_APPEND)
+ rval += lval;
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-021 b/cleopatre/buildroot/package/bash/bash32-021
new file mode 100644
index 0000000000..54cf41de45
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-021
@@ -0,0 +1,72 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-021
+
+Bug-Reported-by: BAGSHAW Paul RD-TECH-REN <paul.bagshaw@orange-ftgroup.com>
+Bug-Reference-ID: <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html
+
+Bug-Description:
+
+When the parser read a backslash-escaped character that would be treated
+internally as an escape, it would double the number of escape characters.
+
+Patch:
+
+*** ../bash-3.2-patched/parse.y Mon Oct 30 17:22:00 2006
+--- bash-3.2/parse.y Sat Mar 24 17:13:20 2007
+***************
+*** 3377,3381 ****
+ {
+ pass_next_character = 0;
+! goto got_character;
+ }
+
+--- 3377,3381 ----
+ {
+ pass_next_character = 0;
+! goto got_escaped_character;
+ }
+
+***************
+*** 3651,3660 ****
+ got_character:
+
+- all_digit_token &= DIGIT (character);
+- dollar_present |= character == '$';
+-
+ if (character == CTLESC || character == CTLNUL)
+ token[token_index++] = CTLESC;
+
+ token[token_index++] = character;
+
+--- 3651,3662 ----
+ got_character:
+
+ if (character == CTLESC || character == CTLNUL)
+ token[token_index++] = CTLESC;
+
++ got_escaped_character:
++
++ all_digit_token &= DIGIT (character);
++ dollar_present |= character == '$';
++
+ token[token_index++] = character;
+
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-022 b/cleopatre/buildroot/package/bash/bash32-022
new file mode 100644
index 0000000000..aaf3337c9e
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-022
@@ -0,0 +1,126 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-022
+
+Bug-Reported-by: Chet Ramey <chet.ramey@cwru.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+POSIX specifies that the `read' builtin invoked from an interative shell
+must prompt with $PS2 when a line is continued using a backslash while
+reading from a terminal.
+
+Patch:
+
+*** ../bash-3.2-patched/builtins/read.def Tue Sep 19 08:45:48 2006
+--- bash-3.2/builtins/read.def Thu May 24 16:03:30 2007
+***************
+*** 128,133 ****
+ {
+ register char *varname;
+! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code;
+! int input_is_tty, input_is_pipe, unbuffered_read;
+ int raw, edit, nchars, silent, have_timeout, fd;
+ unsigned int tmout;
+--- 131,136 ----
+ {
+ register char *varname;
+! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
+! int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
+ int raw, edit, nchars, silent, have_timeout, fd;
+ unsigned int tmout;
+***************
+*** 135,139 ****
+ char c;
+ char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
+! char *e, *t, *t1;
+ struct stat tsb;
+ SHELL_VAR *var;
+--- 138,142 ----
+ char c;
+ char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
+! char *e, *t, *t1, *ps2;
+ struct stat tsb;
+ SHELL_VAR *var;
+***************
+*** 149,152 ****
+--- 152,156 ----
+ USE_VAR(i);
+ USE_VAR(pass_next);
++ USE_VAR(print_ps2);
+ USE_VAR(saw_escape);
+ USE_VAR(input_is_pipe);
+***************
+*** 164,167 ****
+--- 168,172 ----
+ #endif
+ USE_VAR(list);
++ USE_VAR(ps2);
+
+ i = 0; /* Index into the string that we are reading. */
+***************
+*** 387,391 ****
+ #endif
+
+! for (eof = retval = 0;;)
+ {
+ #if defined (READLINE)
+--- 394,399 ----
+ #endif
+
+! ps2 = 0;
+! for (print_ps2 = eof = retval = 0;;)
+ {
+ #if defined (READLINE)
+***************
+*** 413,416 ****
+--- 421,433 ----
+ #endif
+
++ if (print_ps2)
++ {
++ if (ps2 == 0)
++ ps2 = get_string_value ("PS2");
++ fprintf (stderr, "%s", ps2 ? ps2 : "");
++ fflush (stderr);
++ print_ps2 = 0;
++ }
++
+ if (unbuffered_read)
+ retval = zread (fd, &c, 1);
+***************
+*** 441,445 ****
+ pass_next = 0;
+ if (c == '\n')
+! i--; /* back up over the CTLESC */
+ else
+ goto add_char;
+--- 458,466 ----
+ pass_next = 0;
+ if (c == '\n')
+! {
+! i--; /* back up over the CTLESC */
+! if (interactive && input_is_tty && raw == 0)
+! print_ps2 = 1;
+! }
+ else
+ goto add_char;
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-023 b/cleopatre/buildroot/package/bash/bash32-023
new file mode 100644
index 0000000000..afa4d6d421
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-023
@@ -0,0 +1,51 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-023
+
+Bug-Reported-by: Chet Ramey <chet.ramey@cwru.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+When an error occurs during the pattern removal word expansion, the shell
+can free unallocated memory or free memory multiple times.
+
+Patch:
+
+*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007
+--- bash-3.2/subst.c Tue Jul 17 09:45:11 2007
+***************
+*** 3975,3979 ****
+ patstr++;
+
+! pattern = getpattern (patstr, quoted, 1);
+
+ temp1 = (char *)NULL; /* shut up gcc */
+--- 4008,4016 ----
+ patstr++;
+
+! /* Need to pass getpattern newly-allocated memory in case of expansion --
+! the expansion code will free the passed string on an error. */
+! temp1 = savestring (patstr);
+! pattern = getpattern (temp1, quoted, 1);
+! free (temp1);
+
+ temp1 = (char *)NULL; /* shut up gcc */
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-024 b/cleopatre/buildroot/package/bash/bash32-024
new file mode 100644
index 0000000000..9a9d669654
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-024
@@ -0,0 +1,77 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-024
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1178376645.9063.25.camel@localhost>
+Bug-Reference-URL: http://bugs.gentoo.org/177095
+
+Bug-Description:
+
+The readline display code miscalculated the screen position when performing
+a redisplay in which the new text occupies more screen space that the old,
+but takes fewer bytes to do so (e.g., when replacing a shorter string
+containing multibyte characters with a longer one containing only ASCII).
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007
+--- bash-3.2/lib/readline/display.c Thu Jul 12 23:10:10 2007
+***************
+*** 1519,1527 ****
+ /* Non-zero if we're increasing the number of lines. */
+ int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
+ /* Sometimes it is cheaper to print the characters rather than
+ use the terminal's capabilities. If we're growing the number
+ of lines, make sure we actually cause the new line to wrap
+ around on auto-wrapping terminals. */
+! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+ {
+ /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
+--- 1568,1596 ----
+ /* Non-zero if we're increasing the number of lines. */
+ int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
++ /* If col_lendiff is > 0, implying that the new string takes up more
++ screen real estate than the old, but lendiff is < 0, meaning that it
++ takes fewer bytes, we need to just output the characters starting
++ from the first difference. These will overwrite what is on the
++ display, so there's no reason to do a smart update. This can really
++ only happen in a multibyte environment. */
++ if (lendiff < 0)
++ {
++ _rl_output_some_chars (nfd, temp);
++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
++ /* If nfd begins before any invisible characters in the prompt,
++ adjust _rl_last_c_pos to account for wrap_offset and set
++ cpos_adjusted to let the caller know. */
++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++ {
++ _rl_last_c_pos -= wrap_offset;
++ cpos_adjusted = 1;
++ }
++ return;
++ }
+ /* Sometimes it is cheaper to print the characters rather than
+ use the terminal's capabilities. If we're growing the number
+ of lines, make sure we actually cause the new line to wrap
+ around on auto-wrapping terminals. */
+! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+ {
+ /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-025 b/cleopatre/buildroot/package/bash/bash32-025
new file mode 100644
index 0000000000..20f86074da
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-025
@@ -0,0 +1,79 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-025
+
+Bug-Reported-by: Tom Bjorkholm <tom.bjorkholm@ericsson.com>
+Bug-Reference-ID: <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
+
+Bug-Description:
+
+An off-by-one error in readline's input buffering caused readline to drop
+each 511th character of buffered input (e.g., when pasting a large amount
+of data into a terminal window).
+
+Patch:
+
+*** bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006
+--- bash-3.2/lib/readline/input.c Tue Jul 17 09:24:21 2007
+***************
+*** 134,139 ****
+
+ *key = ibuffer[pop_index++];
+!
+ if (pop_index >= ibuffer_len)
+ pop_index = 0;
+
+--- 134,142 ----
+
+ *key = ibuffer[pop_index++];
+! #if 0
+ if (pop_index >= ibuffer_len)
++ #else
++ if (pop_index > ibuffer_len)
++ #endif
+ pop_index = 0;
+
+***************
+*** 251,255 ****
+ {
+ k = (*rl_getc_function) (rl_instream);
+! rl_stuff_char (k);
+ if (k == NEWLINE || k == RETURN)
+ break;
+--- 254,259 ----
+ {
+ k = (*rl_getc_function) (rl_instream);
+! if (rl_stuff_char (k) == 0)
+! break; /* some problem; no more room */
+ if (k == NEWLINE || k == RETURN)
+ break;
+***************
+*** 374,378 ****
+--- 378,386 ----
+ }
+ ibuffer[push_index++] = key;
++ #if 0
+ if (push_index >= ibuffer_len)
++ #else
++ if (push_index > ibuffer_len)
++ #endif
+ push_index = 0;
+
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 25
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-026 b/cleopatre/buildroot/package/bash/bash32-026
new file mode 100644
index 0000000000..8e7c2bdf12
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-026
@@ -0,0 +1,82 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-026
+
+Bug-Reported-by: Chet Ramey <chet.ramey@case.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+This keeps the Apple linker from attempting to link bash against Apple's
+readline library "replacement" rather than the one shipped with bash. It
+extends the configure workaround to Mac OS X Leopard (10.5).
+
+As a side effect, the patch updates the copyright date displayed in the
+version string.
+
+You must re-run configure after applying the patch, and before rebuilding
+bash.
+
+Patch:
+
+*** bash-3.2-patched/configure.in 2007-03-06 11:07:38.000000000 -0500
+--- bash-3.2/configure.in 2007-11-23 15:37:41.000000000 -0500
+***************
+*** 519,523 ****
+ # dynamic version
+ case "${host_os}" in
+! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
+ *) READLINE_LIB=-lreadline ;;
+ esac
+--- 519,523 ----
+ # dynamic version
+ case "${host_os}" in
+! darwin[[89]]*) READLINE_LIB='${READLINE_LIBRARY}' ;;
+ *) READLINE_LIB=-lreadline ;;
+ esac
+*** bash-3.2-patched/configure 2007-03-24 14:51:22.000000000 -0400
+--- bash-3.2/configure 2007-11-23 15:46:15.000000000 -0500
+***************
+*** 4872,4876 ****
+ # dynamic version
+ case "${host_os}" in
+! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
+ *) READLINE_LIB=-lreadline ;;
+ esac
+--- 4872,4876 ----
+ # dynamic version
+ case "${host_os}" in
+! darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;;
+ *) READLINE_LIB=-lreadline ;;
+ esac
+*** bash-3.2-patched/version.c 2005-05-16 11:58:34.000000000 -0400
+--- bash-3.2/version.c 2007-11-23 16:03:40.000000000 -0500
+***************
+*** 80,83 ****
+ printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
+ if (extended)
+! printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n"));
+ }
+--- 80,83 ----
+ printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
+ if (extended)
+! printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n"));
+ }
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 25
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 26
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-027 b/cleopatre/buildroot/package/bash/bash32-027
new file mode 100644
index 0000000000..289914cfd5
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-027
@@ -0,0 +1,85 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-027
+
+Bug-Reported-by: dAniel hAhler <ubuntu@thequod.de>
+Bug-Reference-ID: <4702ED8A.5000503@thequod.de>
+Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938
+
+Bug-Description:
+
+When updating the display after displaying, for instance, a list of possible
+completions, readline will place the cursor at the wrong position if the
+prompt contains invisible characters and a newline.
+
+Patch:
+
+*** bash-3.2.25/lib/readline/display.c Mon Aug 6 14:26:29 2007
+--- bash-3.2/lib/readline/display.c Wed Oct 10 22:43:58 2007
+***************
+*** 1049,1053 ****
+ else
+ tx = nleft;
+! if (_rl_last_c_pos > tx)
+ {
+ _rl_backspace (_rl_last_c_pos - tx); /* XXX */
+--- 1049,1053 ----
+ else
+ tx = nleft;
+! if (tx >= 0 && _rl_last_c_pos > tx)
+ {
+ _rl_backspace (_rl_last_c_pos - tx); /* XXX */
+***************
+*** 1205,1209 ****
+ {
+ register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+! int temp, lendiff, wsatend, od, nd;
+ int current_invis_chars;
+ int col_lendiff, col_temp;
+--- 1205,1209 ----
+ {
+ register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+! int temp, lendiff, wsatend, od, nd, o_cpos;
+ int current_invis_chars;
+ int col_lendiff, col_temp;
+***************
+*** 1466,1469 ****
+--- 1466,1471 ----
+ }
+
++ o_cpos = _rl_last_c_pos;
++
+ /* When this function returns, _rl_last_c_pos is correct, and an absolute
+ cursor postion in multibyte mode, but a buffer index when not in a
+***************
+*** 1475,1479 ****
+ invisible characters in the prompt string. Let's see if setting this when
+ we make sure we're at the end of the drawn prompt string works. */
+! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
+ cpos_adjusted = 1;
+ #endif
+--- 1477,1483 ----
+ invisible characters in the prompt string. Let's see if setting this when
+ we make sure we're at the end of the drawn prompt string works. */
+! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 &&
+! (_rl_last_c_pos > 0 || o_cpos > 0) &&
+! _rl_last_c_pos == prompt_physical_chars)
+ cpos_adjusted = 1;
+ #endif
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 26
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 27
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-028 b/cleopatre/buildroot/package/bash/bash32-028
new file mode 100644
index 0000000000..661c53827f
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-028
@@ -0,0 +1,60 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-028
+
+Bug-Reported-by: dAniel hAhler <ubuntu@thequod.de>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under some circumstances, readline will incorrectly display a prompt string
+containing invisible characters after the final newline.
+
+Patch:
+
+*** bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
+--- bash-3.2/lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500
+***************
+*** 392,396 ****
+ local_prompt = expand_prompt (p, &prompt_visible_length,
+ &prompt_last_invisible,
+! (int *)NULL,
+ &prompt_physical_chars);
+ c = *t; *t = '\0';
+--- 420,424 ----
+ local_prompt = expand_prompt (p, &prompt_visible_length,
+ &prompt_last_invisible,
+! &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
+ c = *t; *t = '\0';
+***************
+*** 399,403 ****
+ local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+ (int *)NULL,
+! &prompt_invis_chars_first_line,
+ (int *)NULL);
+ *t = c;
+--- 427,431 ----
+ local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+ (int *)NULL,
+! (int *)NULL,
+ (int *)NULL);
+ *t = c;
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 27
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 28
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-029 b/cleopatre/buildroot/package/bash/bash32-029
new file mode 100644
index 0000000000..34c84f139d
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-029
@@ -0,0 +1,52 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-029
+
+Bug-Reported-by: Tomas Janousek <tjanouse@redhat.com>
+Bug-Reference-ID: <20071102104034.GA26893@redhat.com>
+Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=286861
+
+Bug-Description:
+
+When the bash arithmetic expression evaluator has temporarily turned off
+evalation, such as when parsing a pre- or post-decrement or -increment
+operator, and an error occurs, evaluation is not re-enabled.
+
+Patch:
+
+*** bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400
+--- bash-3.2/expr.c 2007-10-18 08:08:44.000000000 -0400
+***************
+*** 287,290 ****
+--- 287,292 ----
+ }
+ free (expr_stack[expr_depth]); /* free the allocated EXPR_CONTEXT */
++
++ noeval = 0; /* XXX */
+ }
+
+***************
+*** 320,323 ****
+--- 322,326 ----
+
+ val = 0;
++ noeval = 0;
+
+ FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf));
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 28
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 29
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-030 b/cleopatre/buildroot/package/bash/bash32-030
new file mode 100644
index 0000000000..dc77921550
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-030
@@ -0,0 +1,50 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-030
+
+Bug-Reported-by: Paul Eggert <eggert@cs.ucla.edu> Andreas Schwab <schwab@suse.de>
+Bug-Reference-ID: <877il0nu84.fsf_-_@penguin.cs.ucla.edu> <m28x5gparz.fsf@igel.home>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html
+
+Bug-Description:
+
+If redirections attached to a compound command fail, bash does not set the
+command's exit status correctly. This only happens when the command is the
+first in a sequential list.
+
+Patch:
+
+*** bash-3.2-patched/execute_cmd.c 2007-03-24 14:51:05.000000000 -0400
+--- bash-3.2/execute_cmd.c 2007-11-05 22:31:14.000000000 -0500
+***************
+*** 615,619 ****
+ redirection_undo_list = (REDIRECT *)NULL;
+ dispose_exec_redirects ();
+! return (EXECUTION_FAILURE);
+ }
+
+--- 620,624 ----
+ redirection_undo_list = (REDIRECT *)NULL;
+ dispose_exec_redirects ();
+! return (last_command_exit_value = EXECUTION_FAILURE);
+ }
+
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 29
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 30
+
+ #endif /* _PATCHLEVEL_H_ */
+
+
diff --git a/cleopatre/buildroot/package/bash/bash32-031 b/cleopatre/buildroot/package/bash/bash32-031
new file mode 100644
index 0000000000..f025da3818
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-031
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-031
+
+Bug-Reported-by: Miroslav Lichvar <mlichvar@redhat.com>
+Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html
+
+Bug-Description:
+
+In certain cases when outputting characters at the end of the line,
+e.g., when displaying the prompt string, readline positions the cursor
+incorrectly if the prompt string contains invisible characters and the
+text being drawn begins before the last invisible character in the line.
+
+Patch:
+
+*** bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
+--- bash-3.2/lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500
+***************
+*** 1566,1574 ****
+ else
+ {
+- /* We have horizontal scrolling and we are not inserting at
+- the end. We have invisible characters in this line. This
+- is a dumb update. */
+ _rl_output_some_chars (nfd, temp);
+ _rl_last_c_pos += col_temp;
+ return;
+ }
+--- 1619,1632 ----
+ else
+ {
+ _rl_output_some_chars (nfd, temp);
+ _rl_last_c_pos += col_temp;
++ /* If nfd begins before any invisible characters in the prompt,
++ adjust _rl_last_c_pos to account for wrap_offset and set
++ cpos_adjusted to let the caller know. */
++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++ {
++ _rl_last_c_pos -= wrap_offset;
++ cpos_adjusted = 1;
++ }
+ return;
+ }
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 30
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 31
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-032 b/cleopatre/buildroot/package/bash/bash32-032
new file mode 100644
index 0000000000..bce4c23e62
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-032
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-032
+
+Bug-Reported-by: Uwe Doering <gemini@geminix.org>
+Bug-Reference-ID: <46F3DD72.2090801@geminix.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html
+
+Bug-Description:
+
+There is an off-by-one error in the code that buffers characters received
+very quickly in succession, causing characters to be dropped.
+
+Patch:
+
+*** bash-3.2-patched/lib/readline/input.c 2007-08-25 13:47:10.000000000 -0400
+--- bash-3.2/lib/readline/input.c 2007-10-12 22:55:25.000000000 -0400
+***************
+*** 155,159 ****
+ pop_index--;
+ if (pop_index < 0)
+! pop_index = ibuffer_len - 1;
+ ibuffer[pop_index] = key;
+ return (1);
+--- 155,159 ----
+ pop_index--;
+ if (pop_index < 0)
+! pop_index = ibuffer_len;
+ ibuffer[pop_index] = key;
+ return (1);
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 31
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 32
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/cleopatre/buildroot/package/bash/bash32-033 b/cleopatre/buildroot/package/bash/bash32-033
new file mode 100644
index 0000000000..89bc35d625
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-033
@@ -0,0 +1,88 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-033
+
+Bug-Reported-by: Christophe Martin <schplurtz@free.fr>
+Bug-Reference-ID: <465ABA4A.3030805@free.fr>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html
+
+Bug-Description:
+
+References made within a function to an uninitialized local array variable
+using the [*] subscript in a double-quoted string can result in spurious
+ASCII 127 characters in the expanded value.
+
+Patch:
+
+*** bash-3.2-patched/arrayfunc.c 2007-08-25 13:47:05.000000000 -0400
+--- bash-3.2/arrayfunc.c 2007-05-31 11:55:46.000000000 -0400
+***************
+*** 723,727 ****
+ {
+ if (rtype)
+! *rtype = 1;
+ if (allow_all == 0)
+ {
+--- 723,727 ----
+ {
+ if (rtype)
+! *rtype = (t[0] == '*') ? 1 : 2;
+ if (allow_all == 0)
+ {
+*** bash-3.2-patched/subst.c 2007-08-25 13:47:08.000000000 -0400
+--- bash-3.2/subst.c 2007-11-14 15:43:00.000000000 -0500
+***************
+*** 4908,4915 ****
+ intmax_t arg_index;
+ SHELL_VAR *var;
+! int atype;
+
+ ret = 0;
+ temp = 0;
+
+ /* Handle multiple digit arguments, as in ${11}. */
+--- 4973,4981 ----
+ intmax_t arg_index;
+ SHELL_VAR *var;
+! int atype, rflags;
+
+ ret = 0;
+ temp = 0;
++ rflags = 0;
+
+ /* Handle multiple digit arguments, as in ${11}. */
+***************
+*** 4944,4947 ****
+--- 5010,5015 ----
+ ? quote_string (temp)
+ : quote_escapes (temp);
++ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
++ rflags |= W_HASQUOTEDNULL;
+ }
+ #endif
+***************
+*** 4971,4974 ****
+--- 5039,5043 ----
+ ret = alloc_word_desc ();
+ ret->word = temp;
++ ret->flags |= rflags;
+ }
+ return ret;
+*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 32
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 33
+
+ #endif /* _PATCHLEVEL_H_ */
+
diff --git a/cleopatre/buildroot/package/bash/bash32-remove-bzero-dependancy.patch b/cleopatre/buildroot/package/bash/bash32-remove-bzero-dependancy.patch
new file mode 100644
index 0000000000..30f31f9a0a
--- /dev/null
+++ b/cleopatre/buildroot/package/bash/bash32-remove-bzero-dependancy.patch
@@ -0,0 +1,64 @@
+diff -upr bash-3.2.orig/config.h.in bash-3.2/config.h.in
+--- bash-3.2.orig/config.h.in 2006-09-12 22:00:54.000000000 +0200
++++ bash-3.2/config.h.in 2007-08-08 14:15:12.000000000 +0200
+@@ -504,9 +504,6 @@
+ /* Define if you have the bcopy function. */
+ #undef HAVE_BCOPY
+
+-/* Define if you have the bzero function. */
+-#undef HAVE_BZERO
+-
+ /* Define if you have the confstr function. */
+ #undef HAVE_CONFSTR
+
+diff -upr bash-3.2.orig/configure.in bash-3.2/configure.in
+--- bash-3.2.orig/configure.in 2006-09-26 17:05:45.000000000 +0200
++++ bash-3.2/configure.in 2007-08-08 14:14:36.000000000 +0200
+@@ -702,7 +702,7 @@ AC_CHECK_FUNCS(dup2 eaccess fcntl getdta
+ AC_REPLACE_FUNCS(rename)
+
+ dnl checks for c library functions
+-AC_CHECK_FUNCS(bcopy bzero confstr fnmatch \
++AC_CHECK_FUNCS(bcopy confstr fnmatch \
+ getaddrinfo gethostbyname getservbyname getservent inet_aton \
+ memmove pathconf putenv raise regcomp regexec \
+ setenv setlinebuf setlocale setvbuf siginterrupt strchr \
+diff -upr bash-3.2.orig/CWRU/misc/sigstat.c bash-3.2/CWRU/misc/sigstat.c
+--- bash-3.2.orig/CWRU/misc/sigstat.c 2002-04-17 19:41:40.000000000 +0200
++++ bash-3.2/CWRU/misc/sigstat.c 2007-08-08 14:11:36.000000000 +0200
+@@ -86,7 +86,7 @@ int sig;
+ init_signames()
+ {
+ register int i;
+- bzero(signames, sizeof(signames));
++ memset(signames, 0, sizeof(signames));
+
+ #if defined (SIGHUP) /* hangup */
+ signames[SIGHUP] = "SIGHUP";
+diff -upr bash-3.2.orig/lib/sh/oslib.c bash-3.2/lib/sh/oslib.c
+--- bash-3.2.orig/lib/sh/oslib.c 2001-12-06 19:26:21.000000000 +0100
++++ bash-3.2/lib/sh/oslib.c 2007-08-08 14:11:44.000000000 +0200
+@@ -170,23 +170,6 @@ bcopy (s,d,n)
+ }
+ #endif /* !HAVE_BCOPY */
+
+-#if !defined (HAVE_BZERO)
+-# if defined (bzero)
+-# undef bzero
+-# endif
+-void
+-bzero (s, n)
+- char *s;
+- int n;
+-{
+- register int i;
+- register char *r;
+-
+- for (i = 0, r = s; i < n; i++)
+- *r++ = '\0';
+-}
+-#endif
+-
+ #if !defined (HAVE_GETHOSTNAME)
+ # if defined (HAVE_UNAME)
+ # include <sys/utsname.h>
diff --git a/cleopatre/buildroot/package/beecrypt/Config.in b/cleopatre/buildroot/package/beecrypt/Config.in
new file mode 100644
index 0000000000..264516eba4
--- /dev/null
+++ b/cleopatre/buildroot/package/beecrypt/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_BEECRYPT
+ bool "beecrypt"
+ help
+ Beecrypt is a general-purpose cryptography library.
+
+ http://beecrypt.sf.net
diff --git a/cleopatre/buildroot/package/beecrypt/beecrypt-4.1.2_no-cxx-glue.patch b/cleopatre/buildroot/package/beecrypt/beecrypt-4.1.2_no-cxx-glue.patch
new file mode 100644
index 0000000000..6c4093677c
--- /dev/null
+++ b/cleopatre/buildroot/package/beecrypt/beecrypt-4.1.2_no-cxx-glue.patch
@@ -0,0 +1,12 @@
+diff -ru beecrypt-4.1.2_vanilla/Makefile.am beecrypt-4.1.2_disable-cxxglue/Makefile.am
+--- beecrypt-4.1.2_vanilla/Makefile.am 2004-12-22 07:06:31.000000000 +0000
++++ beecrypt-4.1.2_disable-cxxglue/Makefile.am 2008-03-21 23:24:51.000000000 +0000
+@@ -49,7 +49,7 @@
+
+ libalt_LTLIBRARIES = libbeecrypt.la
+
+-libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhaes.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha256.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c rsa.c rsakp.c rsapk.c sha1.c sha256.c sha384.c sha512.c sha_k.c timestamp.c cppglue.cxx
++libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhaes.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha256.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c rsa.c rsakp.c rsapk.c sha1.c sha256.c sha384.c sha512.c sha_k.c timestamp.c
+ libbeecrypt_la_DEPENDENCIES = $(BEECRYPT_OBJECTS)
+ libbeecrypt_la_LIBADD = aesopt.lo blowfishopt.lo mpopt.lo sha1opt.lo
+ libbeecrypt_la_LDFLAGS = -no-undefined -version-info $(LIBBEECRYPT_LT_CURRENT):$(LIBBEECRYPT_LT_REVISION):$(LIBBEECRYPT_LT_AGE)
diff --git a/cleopatre/buildroot/package/beecrypt/beecrypt.mk b/cleopatre/buildroot/package/beecrypt/beecrypt.mk
new file mode 100644
index 0000000000..d26d31d8fc
--- /dev/null
+++ b/cleopatre/buildroot/package/beecrypt/beecrypt.mk
@@ -0,0 +1,18 @@
+#############################################################
+#
+# beecrypt
+#
+#############################################################
+BEECRYPT_VERSION = 4.1.2
+BEECRYPT_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/beecrypt
+BEECRYPT_AUTORECONF = YES
+BEECRYPT_INSTALL_STAGING = YES
+
+BEECRYPT_CONF_OPT = --without-cplusplus \
+ --without-java \
+ --without-python \
+ --disable-rpath
+
+BEECRYPT_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
+
+$(eval $(call AUTOTARGETS,package,beecrypt))
diff --git a/cleopatre/buildroot/package/berkeleydb/Config.in b/cleopatre/buildroot/package/berkeleydb/Config.in
new file mode 100644
index 0000000000..5852a92774
--- /dev/null
+++ b/cleopatre/buildroot/package/berkeleydb/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_BERKELEYDB
+ bool "berkeleydb"
+ help
+ The Berkeley database. A very common library for database
+ applications.
+
+ http://www.sleepycat.com/products/db.shtml
diff --git a/cleopatre/buildroot/package/berkeleydb/berkeleydb.mk b/cleopatre/buildroot/package/berkeleydb/berkeleydb.mk
new file mode 100644
index 0000000000..1d7b16d441
--- /dev/null
+++ b/cleopatre/buildroot/package/berkeleydb/berkeleydb.mk
@@ -0,0 +1,101 @@
+#############################################################
+#
+# berkeley db
+#
+#############################################################
+DB_VERSION:=4.3.29
+DB_SO_VERSION:=4.3
+DB_SITE:=ftp://ftp.sleepycat.com/releases
+DB_SOURCE:=db-$(DB_VERSION).NC.tar.gz
+DB_DIR:=$(BUILD_DIR)/db-$(DB_VERSION).NC
+DB_SHARLIB:=libdb-$(DB_SO_VERSION).so
+
+$(DL_DIR)/$(DB_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DB_SITE)/$(DB_SOURCE)
+
+berkeleydb-source: $(DL_DIR)/$(DB_SOURCE)
+
+$(DB_DIR)/.dist: $(DL_DIR)/$(DB_SOURCE)
+ $(ZCAT) $(DL_DIR)/$(DB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $@
+
+$(DB_DIR)/.configured: $(DB_DIR)/.dist
+ (cd $(DB_DIR)/build_unix; rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ../dist/configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --includedir=/usr/include \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-gnu-ld \
+ --enable-shared \
+ --disable-cxx \
+ --disable-java \
+ --disable-rpc \
+ --disable-tcl \
+ --disable-compat185 \
+ --with-pic \
+ $(DISABLE_LARGEFILE) \
+ )
+ $(SED) 's/\.lo/.o/g' $(DB_DIR)/build_unix/Makefile
+ touch $@
+
+$(DB_DIR)/build_unix/.libs/$(DB_SHARLIB): $(DB_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(DB_DIR)/build_unix
+
+$(STAGING_DIR)/lib/$(DB_SHARLIB): $(DB_DIR)/build_unix/.libs/$(DB_SHARLIB)
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(DB_DIR)/build_unix install
+ chmod a-x $(STAGING_DIR)/lib/libdb*so*
+ rm -f $(STAGING_DIR)/bin/db_*
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(STAGING_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(STAGING_DIR)/usr/share/man
+endif
+ rm -rf $(STAGING_DIR)/share/locale
+ rm -rf $(STAGING_DIR)/usr/share/doc
+
+$(TARGET_DIR)/lib/$(DB_SHARLIB): $(STAGING_DIR)/lib/$(DB_SHARLIB)
+ rm -rf $(TARGET_DIR)/lib/libdb*
+ cp -a $(STAGING_DIR)/lib/libdb*so* $(TARGET_DIR)/lib/
+ rm -f $(addprefix $(TARGET_DIR)/lib/,libdb.so libdb.la libdb.a)
+ (cd $(TARGET_DIR)/usr/lib; ln -fs /lib/$(DB_SHARLIB) libdb.so)
+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libdb*so*
+
+$(TARGET_DIR)/usr/lib/libdb.a: $(STAGING_DIR)/lib/libdb-$(DB_SO_VERSION).a
+ cp -dpf $(STAGING_DIR)/usr/include/db.h $(TARGET_DIR)/usr/include/
+ cp -dpf $(STAGING_DIR)/lib/libdb*.a $(TARGET_DIR)/usr/lib/
+ cp -dpf $(STAGING_DIR)/lib/libdb*.la $(TARGET_DIR)/usr/lib/
+ touch -c $@
+
+berkeleydb-headers: $(TARGET_DIR)/usr/lib/libdb.a
+
+berkeleydb-clean:
+ -$(MAKE) -C $(DB_DIR)/build_unix clean
+
+berkeleydb-dirclean:
+ rm -rf $(DB_DIR)
+
+berkeleydb: uclibc $(TARGET_DIR)/lib/$(DB_SHARLIB)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BERKELEYDB)),y)
+TARGETS+=berkeleydb
+endif
diff --git a/cleopatre/buildroot/package/bind/Config.in b/cleopatre/buildroot/package/bind/Config.in
new file mode 100644
index 0000000000..7b61a554c9
--- /dev/null
+++ b/cleopatre/buildroot/package/bind/Config.in
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_BIND
+ bool "bind"
+ help
+ BIND (Berkeley Internet Name Domain) is an implementation of
+ the Domain Name System (DNS) protocols and provides an openly
+ redistributable reference implementation of the major
+ components of the Domain Name System, including:
+
+ * a Domain Name System server (named)
+ * a Domain Name System resolver library
+ * tools for verifying the proper operation of the DNS server
+
+ The BIND DNS Server is used on the vast majority of name
+ serving machines on the Internet, providing a robust and
+ stable architecture on top of which an organization's naming
+ architecture can be built. The resolver library included in
+ the BIND distribution provides the standard APIs for
+ translation between domain names and Internet addresses and is
+ intended to be linked with applications requiring name service.
+
+ http://www.isc.org/sw/bind/
diff --git a/cleopatre/buildroot/package/bind/bind-cross-fix.patch b/cleopatre/buildroot/package/bind/bind-cross-fix.patch
new file mode 100644
index 0000000000..deaf527471
--- /dev/null
+++ b/cleopatre/buildroot/package/bind/bind-cross-fix.patch
@@ -0,0 +1,11 @@
+--- bind-9.3.2/lib/dns/Makefile.in
++++ bind-9.3.2/lib/dns/Makefile.in
+@@ -156,7 +156,7 @@
+ ./gen -s ${srcdir} > code.h
+
+ gen: gen.c
+- ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
++ cc ${ALL_CFLAGS} -o $@ ${srcdir}/gen.c
+
+ rbtdb64.@O@: rbtdb.c
+
diff --git a/cleopatre/buildroot/package/bind/bind.mk b/cleopatre/buildroot/package/bind/bind.mk
new file mode 100644
index 0000000000..b943bccae8
--- /dev/null
+++ b/cleopatre/buildroot/package/bind/bind.mk
@@ -0,0 +1,101 @@
+#############################################################
+#
+# bind
+#
+#############################################################
+BIND_VERSION:=9.3.2
+BIND_SOURCE:=bind-$(BIND_VERSION).tar.gz
+BIND_SITE:=ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION)
+BIND_DIR1:=$(TOOL_BUILD_DIR)/bind-$(BIND_VERSION)
+BIND_DIR2:=$(BUILD_DIR)/bind-$(BIND_VERSION)
+BIND_CAT:=$(ZCAT)
+BIND_BINARY:=bin/named/named
+BIND_TARGET_BINARY:=usr/sbin/named
+
+$(DL_DIR)/$(BIND_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BIND_SITE)/$(BIND_SOURCE)
+
+bind-source: $(DL_DIR)/$(BIND_SOURCE)
+
+#############################################################
+#
+# build bind for use on the target system
+#
+#############################################################
+$(BIND_DIR2)/.unpacked: $(DL_DIR)/$(BIND_SOURCE)
+ $(BIND_CAT) $(DL_DIR)/$(BIND_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(BIND_DIR2) package/bind/ bind\*.patch
+ touch $@
+
+$(BIND_DIR2)/Makefile: $(BIND_DIR2)/.unpacked
+ (cd $(BIND_DIR2); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --libdir=/lib \
+ --includedir=/include \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --without-openssl \
+ --with-randomdev=/dev/random \
+ $(DISABLE_IPV6) \
+ --with-libtool \
+ --with-pic \
+ )
+
+$(BIND_DIR2)/$(BIND_BINARY): $(BIND_DIR2)/Makefile
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 -C $(BIND_DIR2)
+ touch -c $@
+
+#############################################################
+#
+# install bind binaries
+#
+#############################################################
+$(TARGET_DIR)/$(BIND_TARGET_BINARY): $(BIND_DIR2)/$(BIND_BINARY)
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 MAKEDEFS="INSTALL_DATA=true" \
+ DESTDIR=$(TARGET_DIR) -C $(BIND_DIR2)/bin install
+ cd $(TARGET_DIR)/usr/man; rmdir --ignore-fail-on-non-empty man8 man5 `pwd`
+ $(INSTALL) -m 0755 -D package/bind/bind.sysvinit $(TARGET_DIR)/etc/init.d/S81named
+
+bind-bin: $(TARGET_DIR)/$(BIND_TARGET_BINARY) bind-lib
+
+#############################################################
+#
+# install bind libraries
+#
+#############################################################
+$(STAGING_DIR)/lib/libdns.so: $(BIND_DIR2)/$(BIND_BINARY)
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 DESTDIR=$(STAGING_DIR) -C $(BIND_DIR2)/lib install
+
+$(TARGET_DIR)/lib/libdns.so: $(STAGING_DIR)/lib/libdns.so
+ mkdir -p $(TARGET_DIR)/lib
+ cd $(STAGING_DIR)/lib; \
+ cp -a libdns*so* libisc*so* libbind9*so* \
+ liblwres*so* $(TARGET_DIR)/lib
+
+bind-lib: $(STAGING_DIR)/lib/libdns.so $(TARGET_DIR)/lib/libdns.so
+
+bind: uclibc bind-bin bind-lib
+
+bind-clean:
+ -$(MAKE) -C $(BIND_DIR2) clean
+
+bind-dirclean:
+ rm -rf $(BIND_DIR2)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BIND)),y)
+TARGETS+=bind
+endif
+
diff --git a/cleopatre/buildroot/package/bind/bind.sysvinit b/cleopatre/buildroot/package/bind/bind.sysvinit
new file mode 100644
index 0000000000..171d3208aa
--- /dev/null
+++ b/cleopatre/buildroot/package/bind/bind.sysvinit
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# System-V init to control the bind DNS Daemon
+#
+
+NAME=named
+DAEMON=/usr/sbin/$NAME
+
+# this file contains a few tunable parameters
+test -r /etc/default/named && . /etc/default/named
+
+test -f $DAEMON || exit 0
+
+set -e
+
+case "$1" in
+ start)
+ test -z "$CHROOT" || ARGS="$ARGS -t $CHROOT"
+ test -z "$SETUID" || ARGS="$ARGS -u $SETUID"
+ if [ ! -f $CHROOT/etc/rndc.key ]; then
+ echo "Initializing $NAME control key: rndc-confgen"
+ set +e
+
+ # if rndc.key is a symlink, the target must exist
+ touch $CHROOT/etc/rndc.key
+ touch etc/rndc.key
+
+ rndc-confgen -a -r /dev/urandom $ARGS || true
+ set -e
+ fi
+ test -z "$CONF" || ARGS="$ARGS -c $CONF"
+ echo -n "Starting domain name daemon: $NAME"
+ trap 'echo failed' 0
+ start-stop-daemon -S -x $DAEMON -- $ARGS
+ trap - 0
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping domain name daemon: $NAME"
+ rndc stop || start-stop-daemon -K -x $DAEMON
+ echo "."
+ ;;
+ restart)
+ $0 stop || true
+ sleep 2
+ $0 start
+ ;;
+ reload|force-reload)
+ rndc reload || $0 restart
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|force-reload}"
+ exit 1
+esac
+
+exit 0
diff --git a/cleopatre/buildroot/package/bison/Config.in b/cleopatre/buildroot/package/bison/Config.in
new file mode 100644
index 0000000000..ef3518b5c0
--- /dev/null
+++ b/cleopatre/buildroot/package/bison/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_BISON
+ bool "bison"
+ help
+ General-purpose parser generator that converts a
+ grammar description for an LALR context-free grammar into a C
+ program to parse that grammar.
+
+ http://www.gnu.org/software/bison/
diff --git a/cleopatre/buildroot/package/bison/bison.mk b/cleopatre/buildroot/package/bison/bison.mk
new file mode 100644
index 0000000000..3bc156d5d0
--- /dev/null
+++ b/cleopatre/buildroot/package/bison/bison.mk
@@ -0,0 +1,82 @@
+#############################################################
+#
+# bison
+#
+#############################################################
+BISON_VERSION:=2.3
+BISON_SOURCE:=bison-$(BISON_VERSION).tar.bz2
+BISON_SITE:=$(BR2_GNU_MIRROR)/bison
+BISON_DIR:=$(BUILD_DIR)/bison-$(BISON_VERSION)
+BISON_CAT:=$(BZCAT)
+BISON_BINARY:=src/bison
+BISON_TARGET_BINARY:=usr/bin/bison
+
+$(DL_DIR)/$(BISON_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BISON_SITE)/$(BISON_SOURCE)
+
+bison-source: $(DL_DIR)/$(BISON_SOURCE)
+
+$(BISON_DIR)/.unpacked: $(DL_DIR)/$(BISON_SOURCE)
+ $(BISON_CAT) $(DL_DIR)/$(BISON_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(BISON_DIR)/build-aux
+ touch $@
+
+$(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked
+ (cd $(BISON_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ gt_cv_func_gnugettext2_libintl=yes \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --includedir=/usr/include \
+ $(DISABLE_NLS) \
+ )
+ echo 'all install:' > $(BISON_DIR)/examples/Makefile
+ touch $@
+
+$(BISON_DIR)/$(BISON_BINARY): $(BISON_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(BISON_DIR)
+
+$(TARGET_DIR)/$(BISON_TARGET_BINARY): $(BISON_DIR)/$(BISON_BINARY)
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) install
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+ cp -a package/bison/yacc $(TARGET_DIR)/usr/bin/yacc
+
+bison: uclibc $(TARGET_DIR)/$(BISON_TARGET_BINARY)
+
+bison-clean:
+ -$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) uninstall
+ rm -f $(TARGET_DIR)/$(BISON_TARGET_BINARY)
+ -$(MAKE) -C $(BISON_DIR) clean
+
+bison-dirclean:
+ rm -rf $(BISON_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BISON)),y)
+TARGETS+=bison
+endif
diff --git a/cleopatre/buildroot/package/bison/yacc b/cleopatre/buildroot/package/bison/yacc
new file mode 100755
index 0000000000..aed120e88a
--- /dev/null
+++ b/cleopatre/buildroot/package/bison/yacc
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/bison -y "$@"
diff --git a/cleopatre/buildroot/package/blackbox/Config.in b/cleopatre/buildroot/package/blackbox/Config.in
new file mode 100644
index 0000000000..0cbd4693c5
--- /dev/null
+++ b/cleopatre/buildroot/package/blackbox/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_BLACKBOX
+ bool "blackbox"
+ depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
+ help
+ Blackbox is a fast, lightweight window manager for the X Window System.
+
+ http://blackboxwm.sourceforge.net/
+
+comment "blackbox - disabled (requires Xorg(7))"
+ depends on !(BR2_PACKAGE_XORG || BR2_PACKAGE_XORG7)
diff --git a/cleopatre/buildroot/package/blackbox/blackbox-0.70.1-configure.patch b/cleopatre/buildroot/package/blackbox/blackbox-0.70.1-configure.patch
new file mode 100644
index 0000000000..3606f976b2
--- /dev/null
+++ b/cleopatre/buildroot/package/blackbox/blackbox-0.70.1-configure.patch
@@ -0,0 +1,15 @@
+--- a/configure 2005-11-03 03:27:16.000000000 -0500
++++ b/configure 2008-02-02 23:25:25.000000000 -0500
+@@ -1980,12 +1980,6 @@ am__tar='${AMTAR} chof - "$$tardir"'; am
+
+ test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
+
+-CPPFLAGS="$CPPFLAGS -I$prefix/include"
+-LDFLAGS="$LDFLAGS -L$prefix/lib"
+-if test "x$prefix" != "x/usr/local"; then
+- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+- LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-fi
+
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
diff --git a/cleopatre/buildroot/package/blackbox/blackbox.mk b/cleopatre/buildroot/package/blackbox/blackbox.mk
new file mode 100644
index 0000000000..4ad4650051
--- /dev/null
+++ b/cleopatre/buildroot/package/blackbox/blackbox.mk
@@ -0,0 +1,23 @@
+#############################################################
+#
+# blackbox
+#
+#############################################################
+
+BLACKBOX_VERSION = 0.70.1
+BLACKBOX_SOURCE = blackbox-$(BLACKBOX_VERSION).tar.bz2
+BLACKBOX_SITE = http://superb-west.dl.sourceforge.net/sourceforge/blackboxwm/
+BLACKBOX_AUTORECONF = NO
+BLACKBOX_INSTALL_STAGING = NO
+BLACKBOX_INSTALL_TARGET = YES
+BLACKBOX_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
+
+BLACKBOX_CONF_OPT = --target=$(GNU_TARGET_NAME) --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) --prefix=/usr \
+ --sysconfdir=/etc --x-includes=$(STAGING_DIR)/usr/include/X11 \
+ --x-libraries=$(STAGING_DIR)/usr/lib
+
+
+BLACKBOX_DEPENDENCIES = uclibc $(XSERVER)
+
+$(eval $(call AUTOTARGETS,package,blackbox))
diff --git a/cleopatre/buildroot/package/boa/Config.in b/cleopatre/buildroot/package/boa/Config.in
new file mode 100644
index 0000000000..e0470df1b5
--- /dev/null
+++ b/cleopatre/buildroot/package/boa/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_BOA
+ bool "boa"
+ help
+ A very small and very fast http daemon. Not intended as
+ a feature-packed server.
+
+ http://www.boa.org/
diff --git a/cleopatre/buildroot/package/boa/boa-config.site-i386 b/cleopatre/buildroot/package/boa/boa-config.site-i386
new file mode 100644
index 0000000000..425d948c41
--- /dev/null
+++ b/cleopatre/buildroot/package/boa/boa-config.site-i386
@@ -0,0 +1 @@
+ac_cv_func_setvbuf_reversed=no
diff --git a/cleopatre/buildroot/package/boa/boa.conf b/cleopatre/buildroot/package/boa/boa.conf
new file mode 100644
index 0000000000..f51c237316
--- /dev/null
+++ b/cleopatre/buildroot/package/boa/boa.conf
@@ -0,0 +1,187 @@
+# Boa v0.94 configuration file
+# File format has not changed from 0.93
+# File format has changed little from 0.92
+# version changes are noted in the comments
+#
+# The Boa configuration file is parsed with a lex/yacc or flex/bison
+# generated parser. If it reports an error, the line number will be
+# provided; it should be easy to spot. The syntax of each of these
+# rules is very simple, and they can occur in any order. Where possible
+# these directives mimic those of NCSA httpd 1.3; I saw no reason to
+# introduce gratuitous differences.
+
+# $Id: boa.conf,v 1.1 2004/10/09 02:48:37 andersen Exp $
+
+# The "ServerRoot" is not in this configuration file. It can be compiled
+# into the server (see defines.h) or specified on the command line with
+# the -c option, for example:
+#
+# boa -c /usr/local/boa
+
+
+# Port: The port Boa runs on. The default port for http servers is 80.
+# If it is less than 1024, the server must be started as root.
+
+Port 80
+
+# Listen: the Internet address to bind(2) to. If you leave it out,
+# it takes the behavior before 0.93.17.2, which is to bind to all
+# addresses (INADDR_ANY). You only get one "Listen" directive,
+# if you want service on multiple IP addresses, you have three choices:
+# 1. Run boa without a "Listen" directive
+# a. All addresses are treated the same; makes sense if the addresses
+# are localhost, ppp, and eth0.
+# b. Use the VirtualHost directive below to point requests to different
+# files. Should be good for a very large number of addresses (web
+# hosting clients).
+# 2. Run one copy of boa per IP address, each has its own configuration
+# with a "Listen" directive. No big deal up to a few tens of addresses.
+# Nice separation between clients.
+# The name you provide gets run through inet_aton(3), so you have to use dotted
+# quad notation. This configuration is too important to trust some DNS.
+
+#Listen 192.68.0.5
+
+# User: The name or UID the server should run as.
+# Group: The group name or GID the server should run as.
+
+User nobody
+Group nobody
+
+# ServerAdmin: The email address where server problems should be sent.
+# Note: this is not currently used, except as an environment variable
+# for CGIs.
+
+#ServerAdmin root@localhost
+
+# ErrorLog: The location of the error log file. If this does not start
+# with /, it is considered relative to the server root.
+# Set to /dev/null if you don't want errors logged.
+# If unset, defaults to /dev/stderr
+
+ErrorLog /var/log/boa/error_log
+# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
+# is somewhat experimental and might fail under heavy load.
+# "Usual libc implementations of printf will stall the whole
+# process if the receiving end of a pipe stops reading."
+#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log"
+
+# AccessLog: The location of the access log file. If this does not
+# start with /, it is considered relative to the server root.
+# Comment out or set to /dev/null (less effective) to disable
+# Access logging.
+
+AccessLog /var/log/boa/access_log
+# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
+# is somewhat experimental and might fail under heavy load.
+# "Usual libc implementations of printf will stall the whole
+# process if the receiving end of a pipe stops reading."
+#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log"
+
+# UseLocaltime: Logical switch. Uncomment to use localtime
+# instead of UTC time
+#UseLocaltime
+
+# VerboseCGILogs: this is just a logical switch.
+# It simply notes the start and stop times of cgis in the error log
+# Comment out to disable.
+
+#VerboseCGILogs
+
+# ServerName: the name of this server that should be sent back to
+# clients if different than that returned by gethostname + gethostbyname
+
+#ServerName www.your.org.here
+
+# VirtualHost: a logical switch.
+# Comment out to disable.
+# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A'
+# become /var/www/IP-A.
+# Example: http://localhost/ becomes /var/www/127.0.0.1
+#
+# Not used until version 0.93.17.2. This "feature" also breaks commonlog
+# output rules, it prepends the interface number to each access_log line.
+# You are expected to fix that problem with a postprocessing script.
+
+#VirtualHost
+
+# DocumentRoot: The root directory of the HTML documents.
+# Comment out to disable server non user files.
+
+DocumentRoot /var/www
+
+# UserDir: The name of the directory which is appended onto a user's home
+# directory if a ~user request is recieved.
+
+UserDir public_html
+
+# DirectoryIndex: Name of the file to use as a pre-written HTML
+# directory index. Please MAKE AND USE THESE FILES. On the
+# fly creation of directory indexes can be _slow_.
+# Comment out to always use DirectoryMaker
+
+DirectoryIndex index.html
+
+# DirectoryMaker: Name of program used to create a directory listing.
+# Comment out to disable directory listings. If both this and
+# DirectoryIndex are commented out, accessing a directory will give
+# an error (though accessing files in the directory are still ok).
+
+DirectoryMaker /usr/lib/boa/boa_indexer
+
+# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker
+# has been commented out, the the on-the-fly indexing of Boa can be used
+# to generate indexes of directories. Be warned that the output is
+# extremely minimal and can cause delays when slow disks are used.
+# Note: The DirectoryCache must be writable by the same user/group that
+# Boa runs as.
+
+# DirectoryCache /var/spool/boa/dircache
+
+# KeepAliveMax: Number of KeepAlive requests to allow per connection
+# Comment out, or set to 0 to disable keepalive processing
+
+KeepAliveMax 1000
+
+# KeepAliveTimeout: seconds to wait before keepalive connection times out
+
+KeepAliveTimeout 10
+
+# MimeTypes: This is the file that is used to generate mime type pairs
+# and Content-Type fields for boa.
+# Set to /dev/null if you do not want to load a mime types file.
+# Do *not* comment out (better use AddType!)
+
+MimeTypes /etc/mime.types
+
+# DefaultType: MIME type used if the file extension is unknown, or there
+# is no file extension.
+
+DefaultType text/plain
+
+# AddType: adds types without editing mime.types
+# Example: AddType type extension [extension ...]
+
+# Uncomment the next line if you want .cgi files to execute from anywhere
+#AddType application/x-httpd-cgi cgi
+
+# Redirect, Alias, and ScriptAlias all have the same semantics -- they
+# match the beginning of a request and take appropriate action. Use
+# Redirect for other servers, Alias for the same server, and ScriptAlias
+# to enable directories for script execution.
+
+# Redirect allows you to tell clients about documents which used to exist in
+# your server's namespace, but do not anymore. This allows you to tell the
+# clients where to look for the relocated document.
+# Example: Redirect /bar http://elsewhere/feh/bar
+
+# Aliases: Aliases one path to another.
+# Example: Alias /path1/bar /path2/foo
+
+# Alias /doc /usr/doc
+
+# ScriptAlias: Maps a virtual path to a directory for serving scripts
+# Example: ScriptAlias /htbin/ /www/htbin/
+
+ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
+
diff --git a/cleopatre/buildroot/package/boa/boa.mk b/cleopatre/buildroot/package/boa/boa.mk
new file mode 100644
index 0000000000..df4dd730dc
--- /dev/null
+++ b/cleopatre/buildroot/package/boa/boa.mk
@@ -0,0 +1,86 @@
+#############################################################
+#
+# boa
+#
+#############################################################
+
+BOA_VERSION=0.94.14rc21
+
+# Don't alter below this line unless you (think) you know
+# what you are doing! Danger, Danger!
+
+BOA_SOURCE=boa-$(BOA_VERSION).tar.gz
+BOA_CAT:=$(ZCAT)
+BOA_SITE=http://www.boa.org/
+BOA_DIR=$(BUILD_DIR)/${shell basename $(BOA_SOURCE) .tar.gz}
+BOA_WORKDIR=$(BUILD_DIR)/boa_workdir
+
+$(DL_DIR)/$(BOA_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BOA_SITE)/$(BOA_SOURCE)
+
+$(BOA_DIR)/.unpacked: $(DL_DIR)/$(BOA_SOURCE)
+ $(BOA_CAT) $(DL_DIR)/$(BOA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $(BOA_DIR)/.unpacked
+
+$(BOA_WORKDIR)/Makefile: $(BOA_DIR)/.unpacked
+ rm -f $(BOA_WORKDIR)/Makefile
+ mkdir -p $(BOA_WORKDIR)
+ #CONFIG_SITE=package/boa/boa-config.site-$(ARCH)
+ (cd $(BOA_WORKDIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(BOA_DIR)/configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ $(DISABLE_NLS) \
+ )
+ touch $(BOA_WORKDIR)/Makefile
+
+$(BOA_WORKDIR)/src/boa $(BOA_WORKDIR)/src/boa_indexer: $(BOA_WORKDIR)/Makefile
+ rm -f $@
+ $(MAKE) -C $(BOA_WORKDIR)
+
+$(BOA_WORKDIR)/.installed: $(BOA_WORKDIR)/src/boa $(BOA_WORKDIR)/src/boa_indexer
+ mkdir -p $(TARGET_DIR)/usr/sbin
+ cp -f $(BOA_WORKDIR)/src/boa $(TARGET_DIR)/usr/sbin/boa
+ mkdir -p $(TARGET_DIR)/usr/lib/boa
+ cp -f $(BOA_WORKDIR)/src/boa_indexer $(TARGET_DIR)/usr/lib/boa/boa_indexer
+ mkdir -p $(TARGET_DIR)/etc/boa
+ cp -f package/boa/boa.conf $(TARGET_DIR)/etc/boa
+ cp -f package/boa/mime.types $(TARGET_DIR)/etc/mime.types
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/usr/sbin/boa $(TARGET_DIR)/usr/lib/boa/boa_indexer
+ touch $(BOA_WORKDIR)/.installed
+
+boa: uclibc $(BOA_WORKDIR)/.installed
+
+boa-source: $(DL_DIR)/$(BOA_SOURCE)
+
+boa-clean:
+ -$(MAKE) -C $(BOA_WORKDIR) clean
+ rm -rf $(TARGET_DIR)/usr/sbin/boa \
+ $(TARGET_DIR)/usr/lib/boa/boa_indexer \
+ $(TARGET_DIR)/etc/mime.types $(TARGET_DIR)/etc/boa
+
+boa-dirclean:
+ rm -rf $(BOA_DIR) $(BOA_WORKDIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BOA)),y)
+TARGETS+=boa
+endif
diff --git a/cleopatre/buildroot/package/boa/mime.types b/cleopatre/buildroot/package/boa/mime.types
new file mode 100644
index 0000000000..53f6ea1011
--- /dev/null
+++ b/cleopatre/buildroot/package/boa/mime.types
@@ -0,0 +1,205 @@
+###############################################################################
+#
+# MIME-TYPES and the extensions that represent them
+#
+# This file is part of the "mime-support" package. Please send email (not a
+# bug report) to mime-support@packages.debian.org if you would like new types
+# and/or extensions to be added.
+#
+# Note: Compression schemes like "gzip", "bzip", and "compress" are not
+# actually "mime-types". They are "encodings" and hence must _not_ have
+# entries in this file to map their extensions. The "mime-type" of an
+# encoded file refers to the type of data that has been encoded, not the
+# type of the encoding.
+#
+###############################################################################
+
+
+application/activemessage
+application/andrew-inset
+application/applefile
+application/atomicmail
+application/cu-seeme csm cu
+application/dca-rft
+application/dec-dx
+application/dsptype tsp
+application/futuresplash spl
+application/ghostview
+application/mac-binhex40 hqx
+application/macwriteii
+application/msaccess mdb
+application/msword doc dot
+application/news-message-id
+application/news-transmission
+application/octet-stream bin
+application/oda oda
+application/pdf pdf
+application/pgp-signature pgp
+application/postscript ps ai eps
+application/remote-printing
+application/rtf rtf
+application/slate
+application/vnd.ms-excel xls xlb
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/wita
+application/wordperfect5.1 wp5
+application/zip zip
+application/x-123 wk
+application/x-bcpio bcpio
+application/x-chess-pgn pgn
+application/x-core
+application/x-cpio cpio
+application/x-csh
+application/x-debian-package deb
+application/x-director dcr dir dxr
+application/x-dms dms
+application/x-dvi dvi
+application/x-executable
+application/x-font pfa pfb gsf pcf pcf.Z
+application/x-gnumeric gnumeric
+application/x-gtar gtar tgz
+application/x-hdf hdf
+application/x-httpd-php phtml pht php
+application/x-httpd-php3 php3
+application/x-httpd-php3-source phps
+application/x-httpd-php3-preprocessed php3p
+application/x-httpd-php4 php4
+application/x-ica ica
+application/x-java class
+application/x-javascript js
+application/x-kdelnk
+application/x-kchart chrt
+application/x-killustrator kil
+application/x-kpresenter kpr kpt
+application/x-kspread ksp
+application/x-kword kwd kwt
+application/x-latex latex
+application/x-lha lha
+application/x-lzh lzh
+application/x-lzx lzx
+application/x-maker frm maker frame fm fb book fbdoc
+application/x-mif mif
+application/x-msdos-program com exe bat dll
+application/x-msi msi
+application/x-netcdf nc cdf
+application/x-ns-proxy-autoconfig pac
+application/x-object o
+application/x-ogg ogg
+application/x-oz-application oza
+application/x-perl pl pm
+application/x-redhat-package-manager rpm
+application/x-rx
+application/x-sh
+application/x-shar shar
+application/x-shellscript
+application/x-shockwave-flash swf swfl
+application/x-stuffit sit
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-tar tar
+application/x-tcl
+application/x-tex
+application/x-tex-gf gf
+application/x-tex-pk pk PK
+application/x-texinfo texinfo texi
+application/x-trash ~ % bak old sik
+application/x-troff t tr roff
+application/x-troff-man man
+application/x-troff-me me
+application/x-troff-ms ms
+application/x-ustar ustar
+application/x-wais-source src
+application/x-wingz wz
+
+audio/basic au snd
+audio/midi mid midi
+audio/mpeg mpga mpega mp2 mp3
+audio/mpegurl m3u
+audio/prs.sid sid
+audio/x-aiff aif aiff aifc
+audio/x-gsm gsm
+audio/x-pn-realaudio ra rm ram
+audio/x-wav wav
+
+image/bitmap bmp
+image/gif gif
+image/ief ief
+image/jpeg jpeg jpg jpe
+image/pcx pcx
+image/png png
+image/tiff tiff tif
+image/vnd.wap.wbmp wbmp
+image/x-cmu-raster ras
+image/x-coreldraw cdr
+image/x-coreldrawpattern pat
+image/x-coreldrawtemplate cdt
+image/x-corelphotopaint cpt
+image/x-jng jng
+image/x-portable-anymap pnm
+image/x-portable-bitmap pbm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-rgb rgb
+image/x-xbitmap xbm
+image/x-xpixmap xpm
+image/x-xwindowdump xwd
+
+inode/chardevice
+inode/blockdevice
+inode/directory-locked
+inode/directory
+inode/fifo
+inode/socket
+
+message/external-body
+message/news
+message/partial
+message/rfc822
+
+multipart/alternative
+multipart/appledouble
+multipart/digest
+multipart/mixed
+multipart/parallel
+
+text/comma-separated-values csv
+text/css css
+text/english
+text/html htm html xhtml
+text/mathml mml
+text/plain txt text diff
+text/richtext rtx
+text/tab-separated-values tsv
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/xml xml
+text/x-c++hdr h++ hpp hxx hh
+text/x-c++src c++ cpp cxx cc
+text/x-chdr h
+text/x-crontab
+text/x-csh csh
+text/x-csrc c
+text/x-java java
+text/x-makefile
+text/x-moc moc
+text/x-pascal p pas
+text/x-setext etx
+text/x-sh sh
+text/x-tcl tcl tk
+text/x-tex tex ltx sty cls
+text/x-vcalendar vcs
+text/x-vcard vcf
+
+video/dl dl
+video/fli fli
+video/gl gl
+video/mpeg mpeg mpg mpe
+video/quicktime qt mov
+video/x-mng mng
+video/x-ms-asf asf asx
+video/x-msvideo avi
+video/x-sgi-movie movie
+
+x-world/x-vrml vrm vrml wrl
diff --git a/cleopatre/buildroot/package/bootutils/Config.in b/cleopatre/buildroot/package/bootutils/Config.in
new file mode 100644
index 0000000000..ce98b02fa9
--- /dev/null
+++ b/cleopatre/buildroot/package/bootutils/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_BOOTUTILS
+ bool "bootutils"
+ help
+ BootUtils is a collection of utilities to facilitate booting of
+ Linux 2.6-based systems. The process of finding the root volume
+ either by label or explicit label= on the kernel command line,
+ mounting it, and 'switchroot'ing is automated.
+
+ http://bootutils.pr.linuxrulz.org/
+
diff --git a/cleopatre/buildroot/package/bootutils/bootutils.mk b/cleopatre/buildroot/package/bootutils/bootutils.mk
new file mode 100644
index 0000000000..b9c95548cd
--- /dev/null
+++ b/cleopatre/buildroot/package/bootutils/bootutils.mk
@@ -0,0 +1,15 @@
+#############################################################
+#
+# bootutils
+#
+#############################################################
+BOOTUTILS_VERSION = 0.0.8
+BOOTUTILS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/bootutils
+
+BOOTUTILS_CONF_ENV = ac_cv_func_malloc_0_nonnull=yes
+
+BOOTUTILS_CONF_OPT = --prefix=/ --exec-prefix=/
+
+BOOTUTILS_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
+
+$(eval $(call AUTOTARGETS,package,bootutils))
diff --git a/cleopatre/buildroot/package/bridge-utils/Config.in b/cleopatre/buildroot/package/bridge-utils/Config.in
new file mode 100644
index 0000000000..9feb230447
--- /dev/null
+++ b/cleopatre/buildroot/package/bridge-utils/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_BRIDGE
+ bool "bridge-utils"
+ help
+ Manage ethernet bridging; a way to connect networks together to
+ form a larger network.
+
+ http://bridge.sourceforge.net/
diff --git a/cleopatre/buildroot/package/bridge-utils/bridge.mk b/cleopatre/buildroot/package/bridge-utils/bridge.mk
new file mode 100644
index 0000000000..de0632b204
--- /dev/null
+++ b/cleopatre/buildroot/package/bridge-utils/bridge.mk
@@ -0,0 +1,71 @@
+#############################################################
+#
+# bridgeutils - User Space Program For Controlling Bridging
+#
+#############################################################
+#
+BRIDGE_VERSION=1.0.6
+BRIDGE_SOURCE_URL=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/bridge/
+BRIDGE_SOURCE=bridge-utils-$(BRIDGE_VERSION).tar.gz
+BRIDGE_BUILD_DIR=$(BUILD_DIR)/bridge-utils-$(BRIDGE_VERSION)
+BRIDGE_TARGET_BINARY:=usr/sbin/brctl
+
+$(DL_DIR)/$(BRIDGE_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BRIDGE_SOURCE_URL)/$(BRIDGE_SOURCE)
+
+$(BRIDGE_BUILD_DIR)/.unpacked: $(DL_DIR)/$(BRIDGE_SOURCE)
+ $(ZCAT) $(DL_DIR)/$(BRIDGE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ patch -p1 -d $(BRIDGE_BUILD_DIR) < package/bridge-utils/bridge.patch
+ touch $(BRIDGE_BUILD_DIR)/.unpacked
+
+$(BRIDGE_BUILD_DIR)/.configured: $(BRIDGE_BUILD_DIR)/.unpacked
+ (cd $(BRIDGE_BUILD_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ $(DISABLE_NLS) \
+ --with-linux-headers=$(LINUX_HEADERS_DIR) \
+ )
+ touch $(BRIDGE_BUILD_DIR)/.configured
+
+$(BRIDGE_BUILD_DIR)/brctl/brctl: $(BRIDGE_BUILD_DIR)/.configured
+ $(MAKE) -C $(BRIDGE_BUILD_DIR)
+
+$(TARGET_DIR)/$(BRIDGE_TARGET_BINARY): $(BRIDGE_BUILD_DIR)/brctl/brctl
+ cp -af $(BRIDGE_BUILD_DIR)/brctl/brctl $(TARGET_DIR)/$(BRIDGE_TARGET_BINARY)
+ $(STRIPCMD) $(TARGET_DIR)/$(BRIDGE_TARGET_BINARY)
+ #cp -af $(BRIDGE_BUILD_DIR)/brctl/brctld $(TARGET_DIR)/usr/sbin/
+ #$(STRIPCMD) $(TARGET_DIR)/usr/sbin/brctld
+
+bridge-utils: $(TARGET_DIR)/$(BRIDGE_TARGET_BINARY)
+
+bridge-utils-source: $(DL_DIR)/$(BRIDGE_SOURCE)
+
+bridge-utils-clean:
+ #$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BRIDGE_BUILD_DIR) uninstall
+ -$(MAKE) -C $(BRIDGE_BUILD_DIR) clean
+
+bridge-utils-dirclean:
+ rm -rf $(BRIDGE_BUILD_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BRIDGE)),y)
+TARGETS+=bridge-utils
+endif
diff --git a/cleopatre/buildroot/package/bridge-utils/bridge.patch b/cleopatre/buildroot/package/bridge-utils/bridge.patch
new file mode 100644
index 0000000000..f44737750b
--- /dev/null
+++ b/cleopatre/buildroot/package/bridge-utils/bridge.patch
@@ -0,0 +1,11 @@
+--- bridge-utils-0.9.6/libbridge/Makefile.in.dist 2004-03-01 20:55:52.000000000 -0600
++++ bridge-utils-0.9.6/libbridge/Makefile.in 2004-03-01 20:56:23.000000000 -0600
+@@ -5,7 +5,7 @@
+ RANLIB=@RANLIB@
+
+ CC=@CC@
+-CFLAGS = -Wall -g $(KERNEL_HEADERS)
++CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
diff --git a/cleopatre/buildroot/package/bsdiff/Config.in b/cleopatre/buildroot/package/bsdiff/Config.in
new file mode 100644
index 0000000000..11fd8b9d35
--- /dev/null
+++ b/cleopatre/buildroot/package/bsdiff/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_BSDIFF
+ bool "bsdiff"
+ select BR2_PACKAGE_BZIP2
+ help
+ Binary patch/diff like xdelta but creates smaller diffs.
+ Needs bzip2 support.
+
+ http://www.daemonology.net/bsdiff/
diff --git a/cleopatre/buildroot/package/bsdiff/bsdiff.mk b/cleopatre/buildroot/package/bsdiff/bsdiff.mk
new file mode 100644
index 0000000000..2e4edb64ed
--- /dev/null
+++ b/cleopatre/buildroot/package/bsdiff/bsdiff.mk
@@ -0,0 +1,54 @@
+#############################################################
+#
+# bsdiff
+#
+#############################################################
+BSDIFF_VERSION:=4.3
+BSDIFF_SOURCE:=bsdiff-$(BSDIFF_VERSION).tar.gz
+BSDIFF_SITE:=http://www.daemonology.net/bsdiff
+BSDIFF_DIR:=$(BUILD_DIR)/bsdiff-$(BSDIFF_VERSION)
+BSDIFF_BINARY:=bsdiff
+BSDIFF_TARGET_BINARY:=usr/bin/bsdiff
+BSDIFF_ZCAT=$(ZCAT)
+
+$(DL_DIR)/$(BSDIFF_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BSDIFF_SITE)/$(BSDIFF_SOURCE)
+
+$(BSDIFF_DIR)/.source: $(DL_DIR)/$(BSDIFF_SOURCE)
+ $(BSDIFF_ZCAT) $(DL_DIR)/$(BSDIFF_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $(BSDIFF_DIR)/.source
+
+$(BSDIFF_DIR)/$(BSDIFF_BINARY): $(BSDIFF_DIR)/.source
+ (cd $(BSDIFF_DIR); \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CC) -L $(STAGING_DIR)/lib -lbz2 \
+ $(TARGET_CFLAGS) bsdiff.c -o bsdiff; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CC) -L $(STAGING_DIR)/lib -lbz2 \
+ $(TARGET_CFLAGS) bspatch.c -o bspatch; \
+ )
+
+$(TARGET_DIR)/$(BSDIFF_TARGET_BINARY): $(BSDIFF_DIR)/$(BSDIFF_BINARY)
+ cp -dpf $(BSDIFF_DIR)/bsdiff $(TARGET_DIR)/usr/bin/.
+ cp -dpf $(BSDIFF_DIR)/bspatch $(TARGET_DIR)/usr/bin/.
+
+bsdiff: uclibc bzip2 $(TARGET_DIR)/$(BSDIFF_TARGET_BINARY)
+
+bsdiff-source: $(DL_DIR)/$(BSDIFF_SOURCE)
+
+bsdiff-clean:
+ -rm $(TARGET_DIR)/usr/bin/{bsdiff,bspatch}
+ -rm $(BSDIFF_DIR)/{bsdiff,bspatch}
+
+bsdiff-dirclean:
+ rm -rf $(BSDIFF_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BSDIFF)),y)
+TARGETS+=bsdiff
+endif
diff --git a/cleopatre/buildroot/package/buildroot-libtool.patch b/cleopatre/buildroot/package/buildroot-libtool.patch
new file mode 100644
index 0000000000..277719d938
--- /dev/null
+++ b/cleopatre/buildroot/package/buildroot-libtool.patch
@@ -0,0 +1,86 @@
+--- a/ltmain.sh 2006-03-11 13:49:04.000000000 -0500
++++ b/ltmain.sh 2008-04-30 09:55:28.000000000 -0400
+@@ -273,8 +273,9 @@ func_infer_tag ()
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+- $echo "$modename: specify a tag with \`--tag'" 1>&2
+- exit $EXIT_FAILURE
++ $echo "$modename: defaulting to \`CC'"
++ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
++# exit $EXIT_FAILURE
+ # else
+ # $echo "$modename: using $tagname tagged configuration"
+ fi
+@@ -2407,8 +2408,14 @@ EOF
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+- dir="$libdir"
+- absdir="$libdir"
++ # Adding 'libdir' from the .la file to our library search paths
++ # breaks crosscompilation horribly. We cheat here and don't add
++ # it, instead adding the path where we found the .la. -CL
++ dir="$abs_ladir"
++ absdir="$abs_ladir"
++ libdir="$abs_ladir"
++ #dir="$libdir"
++ #absdir="$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+@@ -2545,7 +2552,7 @@ EOF
+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+- need_relink=yes
++ need_relink=no
+ fi
+ # This is a shared library
+
+@@ -2889,6 +2896,16 @@ EOF
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
++# This interferes with crosscompilation. -CL
++# else
++# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++# if test -z "$libdir"; then
++# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
++# exit 1
++# fi
++# if test "$absdir" != "$libdir"; then
++# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
++# fi
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+@@ -5606,6 +5623,10 @@ fi\
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
++ # Replacing uninstalled with installed can easily break crosscompilation,
++ # since the installed path is generally the wrong architecture. -CL
++ newdependency_libs="$newdependency_libs $deplib"
++ continue
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+@@ -5927,10 +5948,13 @@ relink_command=\"$relink_command\""
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+- if test "$inst_prefix_dir" = "$destdir"; then
+- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+- exit $EXIT_FAILURE
+- fi
++ #
++ # This breaks install into our staging area. -PB
++ #
++ # if test "$inst_prefix_dir" = "$destdir"; then
++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
++ # exit $EXIT_FAILURE
++ # fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
diff --git a/cleopatre/buildroot/package/busybox/Config.in b/cleopatre/buildroot/package/busybox/Config.in
new file mode 100644
index 0000000000..923d3bd3c1
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/Config.in
@@ -0,0 +1,110 @@
+config BR2_PACKAGE_BUSYBOX
+ bool "BusyBox"
+ default y
+ help
+ The Swiss Army Knife of embedded Linux. It slices, it dices, it
+ makes Julian Fries.
+
+ http://busybox.net/
+
+ Most people will answer Y.
+
+choice
+ prompt "BusyBox Version"
+ depends on BR2_PACKAGE_BUSYBOX
+ default BR2_BUSYBOX_VERSION_1_11_X
+ help
+ Select the version of BusyBox you wish to use.
+
+ config BR2_BUSYBOX_VERSION_1_2_2_1
+ bool "BusyBox 1.2.2.1"
+ depends on BR2_DEPRECATED
+
+ config BR2_BUSYBOX_VERSION_1_6_1
+ bool "BusyBox 1.6.1"
+ depends on BR2_DEPRECATED
+
+ config BR2_BUSYBOX_VERSION_1_7_X
+ bool "BusyBox 1.7.x"
+ depends on BR2_DEPRECATED
+
+ config BR2_BUSYBOX_VERSION_1_8_X
+ bool "BusyBox 1.8.x"
+ depends on BR2_DEPRECATED
+
+ config BR2_BUSYBOX_VERSION_1_9_X
+ bool "BusyBox 1.9.x"
+ depends on BR2_DEPRECATED
+
+ config BR2_BUSYBOX_VERSION_1_10_X
+ bool "BusyBox 1.10.x"
+ depends on BR2_DEPRECATED || BR2_RECENT
+
+ config BR2_BUSYBOX_VERSION_1_11_X
+ bool "BusyBox 1.11.x"
+
+ config BR2_PACKAGE_BUSYBOX_SNAPSHOT
+ bool "daily snapshot"
+
+endchoice
+
+config BR2_BUSYBOX_VERSION
+ string
+ default "1.2.2.1" if BR2_BUSYBOX_VERSION_1_2_2_1
+ default "1.6.1" if BR2_BUSYBOX_VERSION_1_6_1
+ default "1.7.5" if BR2_BUSYBOX_VERSION_1_7_X
+ default "1.8.3" if BR2_BUSYBOX_VERSION_1_8_X
+ default "1.9.2" if BR2_BUSYBOX_VERSION_1_9_X
+ default "1.10.4" if BR2_BUSYBOX_VERSION_1_10_X
+ default "1.11.1" if BR2_BUSYBOX_VERSION_1_11_X
+
+config BR2_PACKAGE_BUSYBOX_FULLINSTALL
+ bool "Run BusyBox's own full installation"
+ depends on BR2_PACKAGE_BUSYBOX
+ default y
+ help
+ If you want to run BusyBox's own full install for the
+ configured applets, then answer Y.
+
+ This may overwrite files from other packages if your
+ busybox includes replacement applets for the package.
+
+ If you wish to just install /bin/busybox, then answer N.
+
+config BR2_PACKAGE_BUSYBOX_CONFIG
+ string "BusyBox configuration file to use?"
+ depends on BR2_PACKAGE_BUSYBOX
+ default "target/device/x86/i386/busybox.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
+ default "package/busybox/busybox-1.2.2.1.config" if BR2_BUSYBOX_VERSION_1_2_2_1
+ default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_6_1
+ default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_7_X
+ default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_8_X
+ default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_9_X
+ default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_10_X
+ default "package/busybox/busybox-1.11.x.config" if BR2_BUSYBOX_VERSION_1_11_X
+ help
+ Some people may wish to use their own modified BusyBox configuration
+ file, and will specify their config file location with this option.
+
+ Most people will just use the default BusyBox configuration file.
+
+config BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
+ bool "Hide applications that are provided by busybox"
+ depends on BR2_PACKAGE_BUSYBOX
+ default y if BR2_PACKAGE_BUSYBOX_SNAPSHOT
+ help
+ Do not show packages in menuconfig that are potentially provided
+ by busybox.
+
+config BR2_PACKAGE_BUSYBOX_SKELETON
+ bool "use minimal target skeleton"
+ depends on BR2_PACKAGE_BUSYBOX
+ help
+ Use a minimal target skeleton. Make sure to select mdev
+ which is used to populate /dev/.
+
+#config BR2_PACKAGE_BUSYBOX_INITRAMFS
+# bool "initramfs perusing busybox"
+# depends on BR2_PACKAGE_BUSYBOX
+# help
+# Build small initramfs perusing busybox.
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.11.1-basename.patch b/cleopatre/buildroot/package/busybox/busybox-1.11.1-basename.patch
new file mode 100644
index 0000000000..6fce8ccdf0
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.11.1-basename.patch
@@ -0,0 +1,9 @@
+--- busybox-1.11.1/coreutils/basename.c Wed Jun 25 14:51:23 2008
++++ busybox-1.11.1-basename/coreutils/basename.c Thu Jul 17 20:04:36 2008
+@@ -48,5 +48,5 @@
+
+ /* puts(s) will do, but we can do without stdio this way: */
+ s[m++] = '\n';
+- return full_write(STDOUT_FILENO, s, m) == (ssize_t)m;
++ return full_write(STDOUT_FILENO, s, m) != (ssize_t)m;
+ }
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.11.1-modutils.patch b/cleopatre/buildroot/package/busybox/busybox-1.11.1-modutils.patch
new file mode 100644
index 0000000000..f1697667ac
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.11.1-modutils.patch
@@ -0,0 +1,12 @@
+--- busybox-1.11.1/modutils/insmod.c Wed Jun 25 14:51:18 2008
++++ busybox-1.11.1-modutils/modutils/insmod.c Wed Jul 23 00:46:08 2008
+@@ -840,7 +840,8 @@
+ ElfW(RelM) *rel, ElfW(Addr) v)
+ {
+ #if defined(__arm__) || defined(__i386__) || defined(__mc68000__) \
+- || defined(__sh__) || defined(__s390__) || defined(__x86_64__)
++ || defined(__sh__) || defined(__s390__) || defined(__x86_64__) \
++ || defined(__powerpc__) || defined(__mips__)
+ struct arch_file *ifile = (struct arch_file *) f;
+ #endif
+ enum obj_reloc ret = obj_reloc_ok;
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.11.1-tar.patch b/cleopatre/buildroot/package/busybox/busybox-1.11.1-tar.patch
new file mode 100644
index 0000000000..27c5d3865f
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.11.1-tar.patch
@@ -0,0 +1,53 @@
+--- busybox-1.11.1/archival/libunarchive/get_header_tar.c Wed Jun 25 14:51:17 2008
++++ busybox-1.11.1-tar/archival/libunarchive/get_header_tar.c Sun Jul 20 19:11:45 2008
+@@ -261,26 +261,31 @@
+ case '0':
+ #if ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY
+ if (last_char_is(file_header->name, '/')) {
+- file_header->mode |= S_IFDIR;
+- } else
++ goto set_dir;
++ }
+ #endif
+ file_header->mode |= S_IFREG;
+ break;
+ case '2':
+ file_header->mode |= S_IFLNK;
++ /* have seen tarballs with size field containing
++ * the size of the link target's name */
++ size0:
++ file_header->size = 0;
+ break;
+ case '3':
+ file_header->mode |= S_IFCHR;
+- break;
++ goto size0; /* paranoia */
+ case '4':
+ file_header->mode |= S_IFBLK;
+- break;
++ goto size0;
+ case '5':
++ set_dir:
+ file_header->mode |= S_IFDIR;
+- break;
++ goto size0;
+ case '6':
+ file_header->mode |= S_IFIFO;
+- break;
++ goto size0;
+ #if ENABLE_FEATURE_TAR_GNU_EXTENSIONS
+ case 'L':
+ /* free: paranoia: tar with several consecutive longnames */
+--- busybox-1.11.1/archival/libunarchive/seek_by_jump.c Wed Jun 25 14:51:17 2008
++++ busybox-1.11.1-tar/archival/libunarchive/seek_by_jump.c Sun Jul 20 19:11:45 2008
+@@ -8,7 +8,9 @@
+
+ void seek_by_jump(const archive_handle_t *archive_handle, unsigned amount)
+ {
+- if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
++ if (amount
++ && lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1
++ ) {
+ if (errno == ESPIPE)
+ seek_by_read(archive_handle, amount);
+ else
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.11.x.config b/cleopatre/buildroot/package/busybox/busybox-1.11.x.config
new file mode 100644
index 0000000000..c19df4ec7e
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.11.x.config
@@ -0,0 +1,851 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.11.0
+# Thu Jun 26 08:43:59 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+# CONFIG_FEATURE_COMPRESS_USAGE is not set
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+CONFIG_FEATURE_CLEAN_UP=y
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+# CONFIG_FEATURE_HAVE_RPC is not set
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+# CONFIG_LFS is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=999
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_AR=y
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+# CONFIG_BZIP2 is not set
+CONFIG_CPIO=y
+# CONFIG_FEATURE_CPIO_O is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
+CONFIG_GZIP=y
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+# CONFIG_FEATURE_RPM_BZ2 is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_GZIP=y
+CONFIG_FEATURE_TAR_BZIP2=y
+CONFIG_FEATURE_TAR_LZMA=y
+# CONFIG_FEATURE_TAR_COMPRESS is not set
+# CONFIG_FEATURE_TAR_AUTODETECT is not set
+CONFIG_FEATURE_TAR_FROM=y
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
+# CONFIG_UNCOMPRESS is not set
+CONFIG_UNLZMA=y
+# CONFIG_FEATURE_LZMA_FAST is not set
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+# CONFIG_COMM is not set
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+# CONFIG_FEATURE_DF_INODE is not set
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
+# CONFIG_EXPAND is not set
+# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+# CONFIG_FEATURE_FANCY_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+# CONFIG_SPLIT is not set
+# CONFIG_FEATURE_SPLIT_FANCY is not set
+# CONFIG_STAT is not set
+# CONFIG_FEATURE_STAT_FORMAT is not set
+CONFIG_STTY=y
+# CONFIG_SUM is not set
+CONFIG_SYNC=y
+# CONFIG_TAC is not set
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+# CONFIG_UNEXPAND is not set
+# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+# CONFIG_FEATURE_WC_LARGE is not set
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+# CONFIG_KBD_MODE is not set
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+# CONFIG_FEATURE_DIFF_MINIMAL is not set
+# CONFIG_ED is not set
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+# CONFIG_FEATURE_FIND_INUM is not set
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=0
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+CONFIG_FEATURE_INITRD=y
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
+CONFIG_DELGROUP=y
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+# CONFIG_CRYPTPW is not set
+# CONFIG_CHPASSWD is not set
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+# CONFIG_DEPMOD is not set
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+# CONFIG_FEATURE_DEPMOD_ALIAS is not set
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+CONFIG_FEATURE_INSMOD_LOAD_MAP=y
+CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+# CONFIG_FEATURE_2_4_MODULES is not set
+CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+# CONFIG_FDISK is not set
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FINDFS is not set
+CONFIG_FREERAMDISK=y
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
+# CONFIG_HD is not set
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+# CONFIG_FEATURE_MDEV_RENAME is not set
+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
+CONFIG_FEATURE_MDEV_EXEC=y
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+CONFIG_MKSWAP=y
+# CONFIG_FEATURE_MKSWAP_V0 is not set
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+# CONFIG_VOLUMEID is not set
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+CONFIG_MOUNT=y
+# CONFIG_FEATURE_MOUNT_FAKE is not set
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
+# CONFIG_FEATURE_MOUNT_LABEL is not set
+# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_READPROFILE=y
+# CONFIG_RTCWAKE is not set
+# CONFIG_SCRIPT is not set
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+# CONFIG_FEATURE_SWAPON_PRI is not set
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+CONFIG_DEBUG_CROND_OPTION=y
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+# CONFIG_FEATURE_EJECT_SCSI is not set
+# CONFIG_FBSPLASH is not set
+# CONFIG_INOTIFYD is not set
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+# CONFIG_FEATURE_LESS_MARKS is not set
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+CONFIG_RUNLEVEL=y
+# CONFIG_RX is not set
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+CONFIG_TIME=y
+# CONFIG_TTYSIZE is not set
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_ARP is not set
+CONFIG_ARPING=y
+# CONFIG_BRCTL is not set
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
+# CONFIG_IFENSLAVE is not set
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+CONFIG_INETD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+# CONFIG_NC is not set
+# CONFIG_NC_SERVER is not set
+# CONFIG_NC_EXTRA is not set
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+# CONFIG_PING6 is not set
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PSCAN is not set
+CONFIG_ROUTE=y
+# CONFIG_SENDMAIL is not set
+# CONFIG_FETCHMAIL is not set
+# CONFIG_SLATTACH is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+CONFIG_APP_UDHCPD=y
+CONFIG_APP_DHCPRELAY=y
+CONFIG_APP_DUMPLEASES=y
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
+CONFIG_APP_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+# CONFIG_ZCIP is not set
+# CONFIG_TCPSVD is not set
+# CONFIG_UDPSVD is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+# CONFIG_NMETER is not set
+# CONFIG_PGREP is not set
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+# CONFIG_PKILL is not set
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+# CONFIG_FEATURE_TOP_DECIMALS is not set
+# CONFIG_FEATURE_TOPMEM is not set
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+# CONFIG_ASH_GETOPTS is not set
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+# CONFIG_CTTYHACK is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_SV is not set
+# CONFIG_SVLOGD is not set
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.2.2.1-max_host_len_40.patch b/cleopatre/buildroot/package/busybox/busybox-1.2.2.1-max_host_len_40.patch
new file mode 100644
index 0000000000..3c3290054b
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.2.2.1-max_host_len_40.patch
@@ -0,0 +1,61 @@
+diff -ur busybox-1.2.2.1/networking/dnsd.c busybox-1.2.2.1-patched/networking/dnsd.c
+--- busybox-1.2.2.1/networking/dnsd.c 2006-10-24 15:21:17.000000000 -0500
++++ busybox-1.2.2.1-patched/networking/dnsd.c 2007-04-12 12:49:53.000000000 -0500
+@@ -31,11 +31,11 @@
+
+ #define is_daemon() (flags&16)
+ #define is_verbose() (flags&32)
+-//#define DEBUG
++#undef DEBUG
+
+
+ enum {
+- MAX_HOST_LEN = 16, // longest host name allowed is 15
++ MAX_HOST_LEN = 41, // longest host name allowed is 40
+ IP_STRING_LEN = 18, // .xxx.xxx.xxx.xxx\0
+
+ //must be strlen('.in-addr.arpa') larger than IP_STRING_LEN
+@@ -229,19 +229,23 @@
+ {
+ int i;
+ struct dns_entry *d = dnsentry;
++ char *p,*q;
++
++ q = (char *)&(qs[1]);
++ p = &(d->name[1]);
+
+ if(d) do {
+ #ifdef DEBUG
+ if(qs && d) {
+- char *p,*q;
+- q = (char *)&(qs[1]);
+- p = &(d->name[1]);
+ fprintf(stderr, "\n%s: %d/%d p:%s q:%s %d",
+ __FUNCTION__, strlen(p), (int)(d->name[0]),
+ p, q, strlen(q));
+ }
+ #endif
+ if (type == REQ_A) { /* search by host name */
++ p = &(d->name[1]);
++ if(strlen(q) != strlen(p))
++ continue;
+ for(i = 1; i <= (int)(d->name[0]); i++)
+ if(tolower(qs[i]) != d->name[i])
+ break;
+@@ -398,13 +402,15 @@
+ fprintf(stderr,"fileconf: %s\n", fileconf);
+ }
+
+- if(is_daemon())
++ if(is_daemon()) {
+ #ifdef BB_NOMMU
+ /* reexec for vfork() do continue parent */
+ vfork_daemon_rexec(1, 0, argc, argv, "-d");
+ #else
+ bb_xdaemon(1, 0);
+ #endif
++ daemonmode = 1;
++ }
+
+ dnsentryinit(is_verbose());
+
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.2.2.1.config b/cleopatre/buildroot/package/busybox/busybox-1.2.2.1.config
new file mode 100644
index 0000000000..78b043a349
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.2.2.1.config
@@ -0,0 +1,643 @@
+#
+# Automatically generated make config: don't edit
+#
+HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_NITPICK is not set
+# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+# CONFIG_FEATURE_COMPRESS_USAGE is not set
+# CONFIG_FEATURE_INSTALLER is not set
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+# USING_CROSS_COMPILER is not set
+CROSS_COMPILER_PREFIX=""
+# CONFIG_BUILD_AT_ONCE is not set
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_NO_DEBUG_LIB is not set
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_DEBUG_YANK_SUSv2=y
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_MD5_SIZE_VS_SPEED=2
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+# CONFIG_CPIO is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
+CONFIG_GZIP=y
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_BZIP2=y
+# CONFIG_FEATURE_TAR_LZMA is not set
+# CONFIG_FEATURE_TAR_FROM is not set
+CONFIG_FEATURE_TAR_GZIP=y
+# CONFIG_FEATURE_TAR_COMPRESS is not set
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
+# CONFIG_UNCOMPRESS is not set
+# CONFIG_UNLZMA is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+# CONFIG_CATV is not set
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+# CONFIG_CKSUM is not set
+CONFIG_CMP=y
+# CONFIG_COMM is not set
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
+# CONFIG_FEATURE_DD_IBS_OBS is not set
+CONFIG_DF=y
+# CONFIG_DIFF is not set
+# CONFIG_FEATURE_DIFF_BINARY is not set
+# CONFIG_FEATURE_DIFF_DIR is not set
+# CONFIG_FEATURE_DIFF_MINIMAL is not set
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+CONFIG_HEAD=y
+# CONFIG_FEATURE_FANCY_HEAD is not set
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
+# CONFIG_LENGTH is not set
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
+# CONFIG_MKFIFO is not set
+CONFIG_MKNOD=y
+CONFIG_MV=y
+# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
+# CONFIG_NICE is not set
+# CONFIG_NOHUP is not set
+# CONFIG_OD is not set
+# CONFIG_PRINTENV is not set
+# CONFIG_PRINTF is not set
+CONFIG_PWD=y
+# CONFIG_REALPATH is not set
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_SEQ is not set
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+# CONFIG_FEATURE_FANCY_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+# CONFIG_STAT is not set
+# CONFIG_FEATURE_STAT_FORMAT is not set
+CONFIG_STTY=y
+# CONFIG_SUM is not set
+CONFIG_SYNC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+# CONFIG_TR is not set
+# CONFIG_FEATURE_TR_CLASSES is not set
+# CONFIG_FEATURE_TR_EQUIV is not set
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+# CONFIG_WATCH is not set
+CONFIG_WC=y
+# CONFIG_WHO is not set
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+# CONFIG_DUMPKMAP is not set
+# CONFIG_LOADFONT is not set
+# CONFIG_LOADKMAP is not set
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+# CONFIG_SETCONSOLE is not set
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+# CONFIG_SETKEYCODES is not set
+# CONFIG_SETLOGCONS is not set
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+# CONFIG_PIPE_PROGRESS is not set
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+# CONFIG_AWK is not set
+# CONFIG_FEATURE_AWK_MATH is not set
+# CONFIG_ED is not set
+# CONFIG_PATCH is not set
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+# CONFIG_FEATURE_FIND_MMIN is not set
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+# CONFIG_FEATURE_FIND_NEWER is not set
+# CONFIG_FEATURE_FIND_INUM is not set
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+CONFIG_FEATURE_INITRD=y
+CONFIG_HALT=y
+# CONFIG_MESG is not set
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_SHADOW is not set
+# CONFIG_USE_BB_PWD_GRP is not set
+CONFIG_ADDGROUP=y
+CONFIG_DELGROUP=y
+CONFIG_ADDUSER=y
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+# CONFIG_FEATURE_UTMP is not set
+# CONFIG_FEATURE_WTMP is not set
+CONFIG_LOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_SU=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+# CONFIG_CHATTR is not set
+# CONFIG_E2FSCK is not set
+# CONFIG_FSCK is not set
+# CONFIG_LSATTR is not set
+# CONFIG_MKE2FS is not set
+# CONFIG_TUNE2FS is not set
+# CONFIG_E2LABEL is not set
+# CONFIG_FINDFS is not set
+
+#
+# Linux Module Utilities
+#
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+# CONFIG_FDFLUSH is not set
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_HWCLOCK=y
+# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IPCRM is not set
+# CONFIG_IPCS is not set
+# CONFIG_LOSETUP is not set
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_MKSWAP is not set
+# CONFIG_FEATURE_MKSWAP_V0 is not set
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+# CONFIG_READPROFILE is not set
+# CONFIG_SETARCH is not set
+CONFIG_SWAPONOFF=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_CROND is not set
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+# CONFIG_CRONTAB is not set
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_EJECT is not set
+# CONFIG_LAST is not set
+CONFIG_LESS=y
+# CONFIG_FEATURE_LESS_BRACKETS is not set
+# CONFIG_FEATURE_LESS_FLAGS is not set
+# CONFIG_FEATURE_LESS_FLAGCS is not set
+# CONFIG_FEATURE_LESS_MARKS is not set
+CONFIG_FEATURE_LESS_REGEXP=y
+# CONFIG_HDPARM is not set
+# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+# CONFIG_MOUNTPOINT is not set
+CONFIG_MT=y
+# CONFIG_RUNLEVEL is not set
+# CONFIG_RX is not set
+CONFIG_STRINGS=y
+# CONFIG_SETSID is not set
+# CONFIG_TASKSET is not set
+CONFIG_TIME=y
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_ARPING is not set
+# CONFIG_DNSD is not set
+# CONFIG_ETHER_WAKE is not set
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+# CONFIG_FEATURE_IFCONFIG_SLIP is not set
+# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
+# CONFIG_FEATURE_IFCONFIG_HW is not set
+# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
+CONFIG_IFUPDOWN=y
+# CONFIG_FEATURE_IFUPDOWN_IP is not set
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_IPX is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+# CONFIG_IP is not set
+# CONFIG_FEATURE_IP_ADDRESS is not set
+# CONFIG_FEATURE_IP_LINK is not set
+# CONFIG_FEATURE_IP_ROUTE is not set
+# CONFIG_FEATURE_IP_TUNNEL is not set
+# CONFIG_FEATURE_IP_SHORT_FORMS is not set
+# CONFIG_IPADDR is not set
+# CONFIG_IPLINK is not set
+# CONFIG_IPROUTE is not set
+# CONFIG_IPTUNNEL is not set
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_NAMEIF is not set
+# CONFIG_NC is not set
+# CONFIG_NC_GAPING_SECURITY_HOLE is not set
+CONFIG_NETSTAT=y
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PING6 is not set
+# CONFIG_FEATURE_FANCY_PING6 is not set
+CONFIG_ROUTE=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_INETD is not set
+# CONFIG_TFTP is not set
+# CONFIG_FEATURE_TFTP_GET is not set
+# CONFIG_FEATURE_TFTP_PUT is not set
+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
+# CONFIG_DEBUG_TFTP is not set
+# CONFIG_TRACEROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+
+#
+# udhcp Server/Client
+#
+# CONFIG_APP_UDHCPD is not set
+CONFIG_APP_UDHCPC=y
+# CONFIG_APP_DUMPLEASES is not set
+CONFIG_FEATURE_UDHCP_SYSLOG=y
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_VCONFIG is not set
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+# CONFIG_FEATURE_WGET_IP6_LITERAL is not set
+# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
+# CONFIG_ZCIP is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+# CONFIG_FUSER is not set
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_PIDOF=y
+# CONFIG_FEATURE_PIDOF_SINGLE is not set
+# CONFIG_FEATURE_PIDOF_OMIT is not set
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+# CONFIG_RENICE is not set
+# CONFIG_BB_SYSCTL is not set
+# CONFIG_TOP is not set
+# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
+CONFIG_UPTIME=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_LASH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+# CONFIG_ASH_GETOPTS is not set
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_TEST=y
+# CONFIG_ASH_CMDCMD is not set
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
+# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
+CONFIG_FEATURE_COMMAND_EDITING=y
+# CONFIG_FEATURE_COMMAND_EDITING_VI is not set
+CONFIG_FEATURE_COMMAND_HISTORY=15
+CONFIG_FEATURE_COMMAND_SAVEHISTORY=y
+CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
+# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_SH_FANCY_PROMPT=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
diff --git a/cleopatre/buildroot/package/busybox/busybox-1.6.0.config b/cleopatre/buildroot/package/busybox/busybox-1.6.0.config
new file mode 100644
index 0000000000..a3dd8ef770
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox-1.6.0.config
@@ -0,0 +1,690 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.5.0
+# Wed Mar 14 13:42:28 2007
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_NITPICK=y
+CONFIG_DESKTOP=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+# CONFIG_FEATURE_COMPRESS_USAGE is not set
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+CONFIG_FEATURE_CLEAN_UP=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SYSLOG=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_FEATURE_HAVE_RPC is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_EXEC_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+# CONFIG_LFS is not set
+CONFIG_BUILD_AT_ONCE=y
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_WERROR is not set
+# CONFIG_NO_DEBUG_LIB is not set
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_FANCY_KEYS=y
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=999
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_AR=y
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+CONFIG_CPIO=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
+CONFIG_GZIP=y
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_BZIP2=y
+CONFIG_FEATURE_TAR_LZMA=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_GZIP=y
+# CONFIG_FEATURE_TAR_COMPRESS is not set
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+# CONFIG_UNCOMPRESS is not set
+CONFIG_UNLZMA=y
+# CONFIG_FEATURE_LZMA_FAST is not set
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_CMP=y
+# CONFIG_COMM is not set
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+# CONFIG_FEATURE_DIFF_MINIMAL is not set
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+# CONFIG_FEATURE_FANCY_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+# CONFIG_STAT is not set
+# CONFIG_FEATURE_STAT_FORMAT is not set
+CONFIG_STTY=y
+# CONFIG_SUM is not set
+CONFIG_SYNC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WATCH=y
+CONFIG_WC=y
+# CONFIG_FEATURE_WC_LARGE is not set
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+# CONFIG_ED is not set
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_NEWER=y
+# CONFIG_FEATURE_FIND_INUM is not set
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+CONFIG_FEATURE_INITRD=y
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_SHADOW is not set
+# CONFIG_USE_BB_PWD_GRP is not set
+CONFIG_ADDGROUP=y
+CONFIG_DELGROUP=y
+CONFIG_ADDUSER=y
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_LOGIN_SCRIPTS is not set
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+CONFIG_FEATURE_INSMOD_LOAD_MAP=y
+CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+# CONFIG_FEATURE_2_4_MODULES is not set
+CONFIG_FEATURE_2_6_MODULES=y
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+# CONFIG_FDISK is not set
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+CONFIG_FREERAMDISK=y
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_MKSWAP=y
+# CONFIG_FEATURE_MKSWAP_V0 is not set
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_MOUNT=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_READPROFILE=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+CONFIG_DEBUG_CROND_OPTION=y
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+CONFIG_LAST=y
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+# CONFIG_FEATURE_LESS_MARKS is not set
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+# CONFIG_NMETER is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+CONFIG_RUNLEVEL=y
+# CONFIG_RX is not set
+CONFIG_STRINGS=y
+CONFIG_SETSID=y
+# CONFIG_TASKSET is not set
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_ARP is not set
+CONFIG_ARPING=y
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
+CONFIG_IFUPDOWN=y
+CONFIG_FEATURE_IFUPDOWN_IP=y
+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_IPX is not set
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_INETD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+CONFIG_NAMEIF=y
+# CONFIG_NC is not set
+# CONFIG_NC_SERVER is not set
+# CONFIG_NC_EXTRA is not set
+CONFIG_NETSTAT=y
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+# CONFIG_PING6 is not set
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_ROUTE=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+CONFIG_TFTP=y
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+CONFIG_APP_UDHCPD=y
+CONFIG_APP_DHCPRELAY=y
+CONFIG_APP_DUMPLEASES=y
+CONFIG_APP_UDHCPC=y
+CONFIG_FEATURE_UDHCP_SYSLOG=y
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+# CONFIG_ZCIP is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_UPTIME=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_LASH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+# CONFIG_ASH_GETOPTS is not set
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_SV is not set
+# CONFIG_SVLOGD is not set
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
diff --git a/cleopatre/buildroot/package/busybox/busybox.mk b/cleopatre/buildroot/package/busybox/busybox.mk
new file mode 100644
index 0000000000..c616e451de
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/busybox.mk
@@ -0,0 +1,153 @@
+#############################################################
+#
+# busybox
+#
+#############################################################
+
+
+ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
+# Be aware that this changes daily....
+BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox
+BUSYBOX_SOURCE:=busybox-snapshot.tar.bz2
+BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots
+else
+BUSYBOX_VERSION=$(strip $(subst ",, $(BR2_BUSYBOX_VERSION)))
+#"))
+BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox-$(BUSYBOX_VERSION)
+BUSYBOX_SOURCE:=busybox-$(BUSYBOX_VERSION).tar.bz2
+BUSYBOX_SITE:=http://www.busybox.net/downloads
+endif
+
+BUSYBOX_UNZIP=$(BZCAT)
+
+ifndef BUSYBOX_CONFIG_FILE
+BUSYBOX_CONFIG_FILE=$(subst ",, $(strip $(BR2_PACKAGE_BUSYBOX_CONFIG)))
+#")
+endif
+
+$(DL_DIR)/$(BUSYBOX_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BUSYBOX_SITE)/$(BUSYBOX_SOURCE)
+
+$(BUSYBOX_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE)
+ $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) -
+ifeq ($(BR2_PACKAGE_SYSKLOGD),y)
+ # if we have external syslogd, force busybox to use it
+ $(SED) "/#include.*busybox\.h/a#define CONFIG_SYSLOGD" $(BUSYBOX_DIR)/init/init.c
+endif
+ # Allow busybox patches.
+ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
+ toolchain/patch-kernel.sh $(BUSYBOX_DIR) package/busybox busybox.\*.patch
+else
+ toolchain/patch-kernel.sh $(BUSYBOX_DIR) package/busybox busybox-$(BUSYBOX_VERSION)-\*.patch
+endif
+ touch $@
+
+$(BUSYBOX_DIR)/.configured: $(BUSYBOX_DIR)/.unpacked $(BUSYBOX_CONFIG_FILE)
+ cp -f $(BUSYBOX_CONFIG_FILE) $(BUSYBOX_DIR)/.config
+ $(SED) s,^CONFIG_PREFIX=.*,CONFIG_PREFIX=\"$(TARGET_DIR)\", \
+ $(BUSYBOX_DIR)/.config
+ifeq ($(BR2_BUSYBOX_VERSION_1_0_1),y)
+ $(SED) "s,^CROSS.*,CROSS=$(TARGET_CROSS)\n\PREFIX=$(TARGET_DIR),;" \
+ $(BUSYBOX_DIR)/Rules.mak
+endif
+ifeq ($(BR2_BUSYBOX_VERSION_1_1_3),y)
+ $(SED) s,^PREFIX=.*,CONFIG_PREFIX=\"$(TARGET_DIR)\", \
+ $(BUSYBOX_DIR)/.config
+endif
+ifeq ($(BR2_BUSYBOX_VERSION_1_2_2_1),y)
+ $(SED) s,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
+ $(BUSYBOX_DIR)/.config
+ $(SED) s,^PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
+ $(BUSYBOX_DIR)/.config
+endif
+ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
+ $(SED) s,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
+ $(BUSYBOX_DIR)/.config
+ $(SED) s,^PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
+ $(BUSYBOX_DIR)/.config
+endif
+ifeq ($(BR2_LARGEFILE),y)
+ $(SED) "s/^.*CONFIG_LFS.*/CONFIG_LFS=y/;" $(BUSYBOX_DIR)/.config
+ $(SED) "s/^.*CONFIG_FDISK_SUPPORT_LARGE_DISKS.*/CONFIG_FDISK_SUPPORT_LARGE_DISKS=y/;" $(BUSYBOX_DIR)/.config
+else
+ $(SED) "s/^.*CONFIG_LFS.*/CONFIG_LFS=n/;" $(BUSYBOX_DIR)/.config
+ $(SED) "s/^.*FDISK_SUPPORT_LARGE_DISKS.*/CONFIG_FDISK_SUPPORT_LARGE_DISKS=n/;" $(BUSYBOX_DIR)/.config
+endif
+ifeq ($(BR2_INET_IPV6),y)
+ $(SED) "s/^.*CONFIG_FEATURE_IPV6.*/CONFIG_FEATURE_IPV6=y/;" $(BUSYBOX_DIR)/.config
+else
+ $(SED) "s/^.*CONFIG_FEATURE_IPV6.*/CONFIG_FEATURE_IPV6=n/;" $(BUSYBOX_DIR)/.config
+endif
+ifeq ($(BR2_PACKAGE_BUSYBOX_SKELETON),y)
+ # force mdev on
+ $(SED) "s/^.*CONFIG_MDEV.*/CONFIG_MDEV=y/" $(BUSYBOX_DIR)/.config
+endif
+ifeq ($(BR2_PACKAGE_NETKITBASE),y)
+ # disable usage of inetd if netkit-base package is selected
+ $(SED) "s/^.*CONFIG_INETD.*/CONFIG_INETD=n/;" $(BUSYBOX_DIR)/.config
+ @echo "WARNING!! CONFIG_INETD option disabled!"
+endif
+ifeq ($(BR2_PACKAGE_NETKITTELNET),y)
+ # disable usage of telnetd if netkit-telnetd package is selected
+ $(SED) "s/^.*CONFIG_TELNETD.*/CONFIG_TELNETD=n/;" $(BUSYBOX_DIR)/.config
+ @echo "WARNING!! CONFIG_TELNETD option disabled!"
+endif
+ yes "" | $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_DIR) oldconfig
+ touch $@
+
+
+$(BUSYBOX_DIR)/busybox: $(BUSYBOX_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
+ ARCH=$(KERNEL_ARCH) \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR)
+ifeq ($(BR2_PREFER_IMA)$(BR2_PACKAGE_BUSYBOX_SNAPSHOT),yy)
+ rm -f $@
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
+ ARCH=$(KERNEL_ARCH) STRIP="$(STRIPCMD)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR) \
+ -f scripts/Makefile.IMA
+endif
+
+$(TARGET_DIR)/bin/busybox: $(BUSYBOX_DIR)/busybox
+ifeq ($(BR2_PACKAGE_BUSYBOX_FULLINSTALL),y)
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
+ ARCH=$(KERNEL_ARCH) \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR) install
+else
+ install -D -m 0755 $(BUSYBOX_DIR)/busybox $(TARGET_DIR)/bin/busybox
+endif
+ # Just in case
+ -chmod a+x $(TARGET_DIR)/usr/share/udhcpc/default.script
+
+busybox: uclibc $(TARGET_DIR)/bin/busybox
+
+busybox-source: $(DL_DIR)/$(BUSYBOX_SOURCE)
+
+busybox-unpacked: $(BUSYBOX_DIR)/.unpacked
+
+busybox-config: $(BUSYBOX_DIR)/.configured
+
+busybox-menuconfig: host-sed $(PROJECT_BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.configured
+ $(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_DIR) menuconfig
+
+busybox-update:
+ cp -f $(BUSYBOX_DIR)/.config $(BUSYBOX_CONFIG_FILE)
+
+busybox-clean:
+ rm -f $(TARGET_DIR)/bin/busybox
+ -$(MAKE) -C $(BUSYBOX_DIR) clean
+
+busybox-dirclean:
+ rm -rf $(BUSYBOX_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+TARGETS+=busybox
+endif
diff --git a/cleopatre/buildroot/package/busybox/initramfs.mk b/cleopatre/buildroot/package/busybox/initramfs.mk
new file mode 100644
index 0000000000..47de1e7b58
--- /dev/null
+++ b/cleopatre/buildroot/package/busybox/initramfs.mk
@@ -0,0 +1,149 @@
+#############################################################
+#
+# busybox image for initramfs
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BUSYBOX_INITRAMFS)),y)
+
+BUSYBOX_INITRAMFS_DIR:=$(BUSYBOX_DIR)-initramfs
+BR2_INITRAMFS_DIR:=$(PROJECT_BUILD_DIR)/initramfs
+BB_INITRAMFS_TARGET:=$(IMAGE).initramfs_lst
+
+$(BUSYBOX_INITRAMFS_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE)
+ rm -rf $(BUILD_DIR)/tmp $(BUSYBOX_INITRAMFS_DIR)
+ mkdir -p $(BUILD_DIR)/tmp
+ $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(BUILD_DIR)/tmp $(TAR_OPTIONS) -
+ifeq ($(strip $(BR2_PACKAGE_BUSYBOX_SNAPSHOT)),y)
+ mv $(BUILD_DIR)/tmp/busybox $(BUSYBOX_INITRAMFS_DIR)
+else
+ mv $(BUILD_DIR)/tmp/busybox-$(BUSYBOX_VERSION) $(BUSYBOX_INITRAMFS_DIR)
+endif
+ touch $@
+
+$(BUSYBOX_INITRAMFS_DIR)/.config $(BUSYBOX_INITRAMFS_DIR)/.configured: $(BUSYBOX_INITRAMFS_DIR)/.unpacked
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_INITRAMFS_DIR) \
+ allnoconfig
+ mv $(BUSYBOX_INITRAMFS_DIR)/.config $(BUSYBOX_INITRAMFS_DIR)/.config.no
+ (echo CONFIG_PREFIX=\"$(BR2_INITRAMFS_DIR)\"; \
+ echo CONFIG_NITPICK=y; \
+ echo CONFIG_FEATURE_BUFFERS_USE_MALLOC=y; \
+ echo CONFIG_INCLUDE_SUSv2=n; \
+ echo CONFIG_CAT=y; \
+ echo CONFIG_CHROOT=y; \
+ echo CONFIG_DD=y; \
+ echo CONFIG_FEATURE_DD_IBS_OBS=y; \
+ echo CONFIG_FALSE=y; \
+ echo CONFIG_GUNZIP=y; \
+ echo CONFIG_HALT=y; \
+ echo CONFIG_INIT=y; \
+ echo CONFIG_INSMOD=y; \
+ echo CONFIG_KILL=y; \
+ echo CONFIG_LN=y; \
+ echo CONFIG_MDEV=y; \
+ echo CONFIG_MKDIR=y; \
+ echo CONFIG_MKFIFO=y; \
+ echo CONFIG_MKNOD=y; \
+ echo CONFIG_MODPROBE=y; \
+ echo CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y; \
+ echo CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y; \
+ echo CONFIG_FEATURE_CHECK_TAINTED_MODULE=n; \
+ echo CONFIG_FEATURE_2_4_MODULES=n; \
+ echo CONFIG_MOUNT=y; \
+ echo CONFIG_MSH=y; \
+ echo CONFIG_FEATURE_SH_IS_MSH=y; \
+ echo CONFIG_PS=y; \
+ echo CONFIG_READLINK=y; \
+ echo CONFIG_RMMOD=y; \
+ echo CONFIG_STATIC=y; \
+ echo CONFIG_SWITCH_ROOT=y; \
+ echo CONFIG_SYNC=y; \
+ echo CONFIG_TFTP=y; \
+ echo CONFIG_FEATURE_TFTP_GET=y; \
+ echo CONFIG_FEATURE_TFTP_PUT=y; \
+ echo CONFIG_TRUE=y; \
+ echo CONFIG_UMOUNT=y; \
+ echo CONFIG_FEATURE_UMOUNT_ALL=y; \
+ echo CONFIG_UNAME=y; \
+ ) > $(BUSYBOX_INITRAMFS_DIR)/.config
+ cp -f $(BUSYBOX_INITRAMFS_DIR)/.config \
+ $(BUSYBOX_INITRAMFS_DIR)/.config.prune
+ $(SED) 's|\([^=]*\)=.*|/\1[^_]*/d|g' \
+ $(BUSYBOX_INITRAMFS_DIR)/.config.prune
+ $(SED) '' -f $(BUSYBOX_INITRAMFS_DIR)/.config.prune \
+ $(BUSYBOX_INITRAMFS_DIR)/.config.no
+ cat $(BUSYBOX_INITRAMFS_DIR)/.config.no >> \
+ $(BUSYBOX_INITRAMFS_DIR)/.config
+ yes "" | $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_INITRAMFS_DIR) \
+ oldconfig
+ touch $@
+
+
+$(BUSYBOX_INITRAMFS_DIR)/busybox: $(BUSYBOX_INITRAMFS_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
+ ARCH=$(KERNEL_ARCH) \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_INITRAMFS_DIR) \
+ busybox.links busybox
+ifeq ($(BR2_PREFER_IMA)$(BR2_PACKAGE_BUSYBOX_SNAPSHOT),yy)
+ rm -f $@
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
+ ARCH=$(KERNEL_ARCH) STRIP="$(STRIPCMD)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_INITRAMFS_DIR) \
+ -f scripts/Makefile.IMA
+endif
+
+$(BR2_INITRAMFS_DIR)/bin/busybox: $(BUSYBOX_INITRAMFS_DIR)/busybox
+ $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
+ CROSS="$(TARGET_CROSS)" \
+ ARCH=$(KERNEL_ARCH) STRIP="$(STRIPCMD)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_INITRAMFS_DIR) \
+ install
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $@
+
+
+$(BB_INITRAMFS_TARGET): host-fakeroot $(BR2_INITRAMFS_DIR)/bin/busybox
+ ln -fs bin/busybox $(PROJECT_BUILD_DIR)/initramfs/init
+ mkdir -p $(PROJECT_BUILD_DIR)/initramfs/etc
+ cat target/generic/target_busybox_skeleton/etc/inittab > \
+ $(PROJECT_BUILD_DIR)/initramfs/etc/inittab
+ rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
+ (echo "chown -R 0:0 $(PROJECT_BUILD_DIR)/initramfs"; \
+ echo "$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(PROJECT_BUILD_DIR)/initramfs"; \
+ echo "$(CONFIG_SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(PROJECT_BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \
+ ) > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
+ chmod +x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
+ $(STAGING_DIR)/usr/bin/fakeroot -- \
+ $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
+ rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
+ touch -c $@
+
+$(PROJECT_BUILD_DIR)/.initramfs_done: $(BR2_INITRAMFS_DIR)/bin/busybox \
+ $(BB_INITRAMFS_TARGET)
+ touch $@
+
+busybox-initramfs-source:
+busybox-initramfs: uclibc $(PROJECT_BUILD_DIR)/.initramfs_done
+
+busybox-initramfs-menuconfig: host-sed $(BUILD_DIR) busybox-source $(BUSYBOX_INITRAMFS_DIR)/.configured
+ $(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_INITRAMFS_DIR) menuconfig
+
+busybox-initramfs-clean:
+ rm -f $(BUSYBOX_INITRAMFS_DIR)/busybox $(PROJECT_BUILD_DIR)/.initramfs_*
+ rm -rf $(BR2_INITRAMFS_DIR) $(BB_INITRAMFS_TARGET)
+ -$(MAKE) -C $(BUSYBOX_INITRAMFS_DIR) clean
+
+busybox-initramfs-dirclean:
+ rm -rf $(BUSYBOX_INITRAMFS_DIR) $(BR2_INITRAMFS_DIR) \
+ $(PROJECT_BUILD_DIR)/.initramfs_*
+endif
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BUSYBOX_INITRAMFS)),y)
+TARGETS+=busybox-initramfs
+endif
diff --git a/cleopatre/buildroot/package/bzip2/Config.in b/cleopatre/buildroot/package/bzip2/Config.in
new file mode 100644
index 0000000000..1b17b0ed14
--- /dev/null
+++ b/cleopatre/buildroot/package/bzip2/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_BZIP2
+ bool "bzip2"
+ help
+ Freely available, patent free, high-quality data compressor.
+ It typically compresses files to within 10% to 15% of the best
+ available techniques, while being around twice as fast at
+ compression and six times faster at decompression.
+
+ http://sources.redhat.com/bzip2/
diff --git a/cleopatre/buildroot/package/bzip2/bzip2.mk b/cleopatre/buildroot/package/bzip2/bzip2.mk
new file mode 100644
index 0000000000..0d444ca615
--- /dev/null
+++ b/cleopatre/buildroot/package/bzip2/bzip2.mk
@@ -0,0 +1,120 @@
+#############################################################
+#
+# bzip2
+#
+#############################################################
+BZIP2_VERSION:=1.0.4
+BZIP2_SOURCE:=bzip2-$(BZIP2_VERSION).tar.gz
+BZIP2_SITE:=http://www.bzip.org/$(BZIP2_VERSION)
+BZIP2_DIR:=$(BUILD_DIR)/bzip2-$(BZIP2_VERSION)
+BZIP2_CAT:=$(ZCAT)
+BZIP2_BINARY:=$(BZIP2_DIR)/bzip2
+BZIP2_TARGET_BINARY:=$(TARGET_DIR)/usr/bin/bzmore
+
+$(DL_DIR)/$(BZIP2_SOURCE):
+ $(WGET) -P $(DL_DIR) $(BZIP2_SITE)/$(BZIP2_SOURCE)
+
+bzip2-source: $(DL_DIR)/$(BZIP2_SOURCE)
+
+$(BZIP2_DIR)/.unpacked: $(DL_DIR)/$(BZIP2_SOURCE)
+ $(BZIP2_CAT) $(DL_DIR)/$(BZIP2_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(SED) "s,ln \$$(,ln -snf \$$(,g" $(BZIP2_DIR)/Makefile
+ $(SED) "s,ln -s (lib.*),ln -snf \$$1; ln -snf libbz2.so.$(BZIP2_VERSION) \
+ libbz2.so,g" $(BZIP2_DIR)/Makefile-libbz2_so
+ifneq ($(BR2_LARGEFILE),y)
+ $(SED) "s,^BIGFILES,#BIGFILES,g" $(BZIP2_DIR)/Makefile
+ $(SED) "s,^BIGFILES,#BIGFILES,g" $(BZIP2_DIR)/Makefile-libbz2_so
+endif
+ $(SED) "s:-O2:$(TARGET_CFLAGS):" $(BZIP2_DIR)/Makefile
+ $(SED) "s:-O2:$(TARGET_CFLAGS):" $(BZIP2_DIR)/Makefile-libbz2_so
+ touch $@
+
+$(STAGING_DIR)/usr/lib/libbz2.so.$(BZIP2_VERSION): $(BZIP2_DIR)/.unpacked
+ $(TARGET_CONFIGURE_OPTS) \
+ $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) \
+ -C $(BZIP2_DIR) -f Makefile-libbz2_so
+ $(TARGET_CONFIGURE_OPTS) \
+ $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) \
+ -C $(BZIP2_DIR) libbz2.a
+ cp $(BZIP2_DIR)/bzlib.h $(STAGING_DIR)/usr/include/
+ cp $(BZIP2_DIR)/libbz2.so.$(BZIP2_VERSION) $(STAGING_DIR)/usr/lib/
+ cp $(BZIP2_DIR)/libbz2.a $(STAGING_DIR)/usr/lib/
+ (cd $(STAGING_DIR)/usr/lib/; \
+ ln -snf ../../lib/libbz2.so.$(BZIP2_VERSION) libbz2.so; \
+ )
+ (cd $(STAGING_DIR)/usr/lib; \
+ ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1.0; \
+ ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1; \
+ )
+
+$(BZIP2_BINARY): $(STAGING_DIR)/usr/lib/libbz2.so.$(BZIP2_VERSION)
+ $(TARGET_CONFIGURE_OPTS) \
+ $(MAKE) CC=$(TARGET_CC) -C $(BZIP2_DIR) bzip2 bzip2recover
+ touch -c $@
+
+$(BZIP2_TARGET_BINARY): $(BZIP2_BINARY)
+ (cd $(TARGET_DIR)/usr/bin; \
+ rm -f bzip2 bunzip2 bzcat bzip2recover \
+ bzgrep bzegrep bzfgrep bzmore bzless bzdiff bzcmp; \
+ )
+ $(TARGET_CONFIGURE_OPTS) \
+ $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(BZIP2_DIR) install
+ rm -f $(TARGET_DIR)/usr/lib/libbz2.a
+ rm -f $(TARGET_DIR)/usr/include/bzlib.h
+ cp $(BZIP2_DIR)/libbz2.so.$(BZIP2_VERSION) $(TARGET_DIR)/usr/lib/
+ (cd $(TARGET_DIR)/usr/lib; \
+ ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1.0; \
+ ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so; \
+ )
+ (cd $(TARGET_DIR)/usr/bin; \
+ ln -snf bzip2 bunzip2; \
+ ln -snf bzip2 bzcat; \
+ ln -snf bzdiff bzcmp; \
+ ln -snf bzmore bzless; \
+ ln -snf bzgrep bzegrep; \
+ ln -snf bzgrep bzfgrep; \
+ )
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+
+$(TARGET_DIR)/usr/lib/libbz2.a: $(STAGING_DIR)/usr/lib/libbz2.a
+ mkdir -p $(TARGET_DIR)/usr/include
+ cp $(STAGING_DIR)/usr/include/bzlib.h $(TARGET_DIR)/usr/include/
+ cp $(STAGING_DIR)/usr/lib/libbz2.a $(TARGET_DIR)/usr/lib/
+ rm -f $(TARGET_DIR)/lib/libbz2.so
+ (cd $(TARGET_DIR)/usr/lib; \
+ ln -fs /usr/lib/libbz2.so.1.0 libbz2.so; \
+ )
+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libbz2.so.1.0
+ touch -c $@
+
+bzip2-headers: $(TARGET_DIR)/usr/lib/libbz2.a
+
+bzip2: uclibc $(BZIP2_TARGET_BINARY)
+
+bzip2-clean:
+ rm -f $(addprefix $(TARGET_DIR),/lib/libbz2.* \
+ /usr/lib/libbz2.* \
+ /usr/include/bzlib.h)
+ rm -f $(addprefix $(STAGING_DIR),/lib/libbz2.* \
+ /usr/lib/libbz2.* \
+ /usr/include/bzlib.h)
+ -$(MAKE) -C $(BZIP2_DIR) clean
+
+bzip2-dirclean:
+ rm -rf $(BZIP2_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_BZIP2)),y)
+TARGETS+=bzip2
+endif
diff --git a/cleopatre/buildroot/package/cairo/Config.in b/cleopatre/buildroot/package/cairo/Config.in
new file mode 100644
index 0000000000..5247204e27
--- /dev/null
+++ b/cleopatre/buildroot/package/cairo/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_CAIRO
+ bool "cairo"
+ select BR2_PACKAGE_PKGCONFIG
+ select BR2_PACKAGE_LIBPNG
+ select BR2_PACKAGE_ZLIB
+ select BR2_PACKAGE_FONTCONFIG
+ depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7||BR2_PACKAGE_TINYX||BR2_PACKAGE_DIRECTFB
+ help
+ Cairo is a 2D graphics library with support for multiple
+ output devices. Currently supported output targets include
+ the X Window System, Win32, image buffers, and PostScript,
+ PDF, and SVG file output. Experimental backends include
+ OpenGL (through glitz), Quartz, and XCB.
+
+ http://cairographics.org/
diff --git a/cleopatre/buildroot/package/cairo/cairo.mk b/cleopatre/buildroot/package/cairo/cairo.mk
new file mode 100644
index 0000000000..c712567cc2
--- /dev/null
+++ b/cleopatre/buildroot/package/cairo/cairo.mk
@@ -0,0 +1,51 @@
+#############################################################
+#
+# cairo
+#
+#############################################################
+CAIRO_VERSION = 1.4.14
+CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.gz
+CAIRO_SITE = http://cairographics.org/releases
+CAIRO_AUTORECONF = NO
+CAIRO_INSTALL_STAGING = YES
+CAIRO_INSTALL_TARGET = YES
+CAIRO_INSTALL_STAGING_OPT = DESTDIR=$(STAGING_DIR) install
+
+CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
+ glib_cv_uscore=no ac_cv_func_strtod=yes \
+ ac_fsusage_space=yes fu_cv_sys_stat_statfs2_bsize=yes \
+ ac_cv_func_closedir_void=no ac_cv_func_getloadavg=no \
+ ac_cv_lib_util_getloadavg=no ac_cv_lib_getloadavg_getloadavg=no \
+ ac_cv_func_getgroups=yes ac_cv_func_getgroups_works=yes \
+ ac_cv_func_chown_works=yes ac_cv_have_decl_euidaccess=no \
+ ac_cv_func_euidaccess=no ac_cv_have_decl_strnlen=yes \
+ ac_cv_func_strnlen_working=yes ac_cv_func_lstat_dereferences_slashed_symlink=yes \
+ ac_cv_func_lstat_empty_string_bug=no ac_cv_func_stat_empty_string_bug=no \
+ vb_cv_func_rename_trailing_slash_bug=no ac_cv_have_decl_nanosleep=yes \
+ jm_cv_func_nanosleep_works=yes gl_cv_func_working_utimes=yes \
+ ac_cv_func_utime_null=yes ac_cv_have_decl_strerror_r=yes \
+ ac_cv_func_strerror_r_char_p=no jm_cv_func_svid_putenv=yes \
+ ac_cv_func_getcwd_null=yes ac_cv_func_getdelim=yes \
+ ac_cv_func_mkstemp=yes utils_cv_func_mkstemp_limitations=no \
+ utils_cv_func_mkdir_trailing_slash_bug=no ac_cv_func_memcmp_working=yes \
+ ac_cv_have_decl_malloc=yes gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_malloc_0_nonnull=yes ac_cv_func_calloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes jm_cv_func_gettimeofday_clobber=no \
+ gl_cv_func_working_readdir=yes jm_ac_cv_func_link_follows_symlink=no \
+ utils_cv_localtime_cache=no ac_cv_struct_st_mtim_nsec=no \
+ gl_cv_func_tzset_clobber=no gl_cv_func_getcwd_null=yes \
+ gl_cv_func_getcwd_path_max=yes ac_cv_func_fnmatch_gnu=yes \
+ am_getline_needs_run_time_check=no am_cv_func_working_getline=yes \
+ gl_cv_func_mkdir_trailing_slash_bug=no gl_cv_func_mkstemp_limitations=no \
+ ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \
+ ac_use_included_regex=no gl_cv_c_restrict=no \
+ ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal
+
+ifeq ($(BR2_PACKAGE_DIRECTFB),y)
+ CAIRO_CONF_OPT = --disable-xlib --without-x --enable-directfb
+ CAIRO_DEPENDENCIES_EXTRA = directfb
+endif
+
+CAIRO_DEPENDENCIES = uclibc gettext libintl pkgconfig libglib2 zlib png fontconfig $(CAIRO_DEPENDENCIES_EXTRA) $(XSERVER)
+
+$(eval $(call AUTOTARGETS,package,cairo))
diff --git a/cleopatre/buildroot/package/cairo/old_patches/0001-Add-autoconf-macro-AX_C_FLOAT_WORDS_BIGENDIAN.patch b/cleopatre/buildroot/package/cairo/old_patches/0001-Add-autoconf-macro-AX_C_FLOAT_WORDS_BIGENDIAN.patch
new file mode 100644
index 0000000000..90718d4976
--- /dev/null
+++ b/cleopatre/buildroot/package/cairo/old_patches/0001-Add-autoconf-macro-AX_C_FLOAT_WORDS_BIGENDIAN.patch
@@ -0,0 +1,103 @@
+From nobody Mon Sep 17 00:00:00 2001
+From: Dan Amelang <dan@amelang.net>
+Date: Sun Oct 29 21:30:08 2006 -0800
+Subject: [PATCH] Add autoconf macro AX_C_FLOAT_WORDS_BIGENDIAN
+
+The symbol that this macro defines (FLOAT_WORDS_BIGENDIAN) can be used
+to make double arithmetic tricks portable.
+
+---
+
+ acinclude.m4 | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.in | 1 +
+ 2 files changed, 66 insertions(+), 0 deletions(-)
+
+3231d91b59a6c2e1c40bbaa8b143694b6c693662
+diff --git a/acinclude.m4 b/acinclude.m4
+index af73800..a0eb13a 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -51,3 +51,68 @@ ifelse([$1],[],,
+ AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
+ AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL")
+ ])
++
++# AX_C_FLOAT_WORDS_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE],
++# [ACTION-IF-UNKNOWN])
++#
++# Checks the ordering of words within a multi-word float. This check
++# is necessary because on some systems (e.g. certain ARM systems), the
++# float word ordering can be different from the byte ordering. In a
++# multi-word float context, "big-endian" implies that the word containing
++# the sign bit is found in the memory location with the lowest address.
++# This implemenation was inspired by the AC_C_BIGENDIAN macro in autoconf.
++# -------------------------------------------------------------------------
++AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN],
++ [AC_CACHE_CHECK(whether float word ordering is bigendian,
++ ax_cv_c_float_words_bigendian, [
++
++# The endianess is detected by first compiling C code that contains a special
++# double float value, then grepping the resulting object file for certain
++# strings of ascii values. The double is specially crafted to have a
++# binary representation that corresponds with a simple string. In this
++# implementation, the string "noonsees" was selected because the individual
++# word values ("noon" and "sees") are palindromes, thus making this test
++# byte-order agnostic. If grep finds the string "noonsees" in the object
++# file, the target platform stores float words in big-endian order. If grep
++# finds "seesnoon", float words are in little-endian order. If neither value
++# is found, the user is instructed to specify the ordering.
++
++ax_cv_c_float_words_bigendian=unknown
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
++
++double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0;
++
++]])], [
++
++if grep noonsees conftest.$ac_objext >/dev/null ; then
++ ax_cv_c_float_words_bigendian=yes
++fi
++if grep seesnoon conftest.$ac_objext >/dev/null ; then
++ if test "$ax_cv_c_float_words_bigendian" = unknown; then
++ ax_cv_c_float_words_bigendian=no
++ else
++ ax_cv_c_float_words_bigendian=unknown
++ fi
++fi
++
++])])
++
++case $ax_cv_c_float_words_bigendian in
++ yes)
++ m4_default([$1],
++ [AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1,
++ [Define to 1 if your system stores words within floats
++ with the most significant word first])]) ;;
++ no)
++ $2 ;;
++ *)
++ m4_default([$3],
++ [AC_MSG_ERROR([
++
++Unknown float word ordering. You need to manually preset
++ax_cv_c_float_words_bigendian=no (or yes) according to your system.
++
++ ])]) ;;
++esac
++
++])# AX_C_FLOAT_WORDS_BIGENDIAN
+diff --git a/configure.in b/configure.in
+index 2d2bf9f..797c7ce 100644
+--- a/configure.in
++++ b/configure.in
+@@ -55,6 +55,7 @@ AC_PROG_CPP
+ AC_PROG_LIBTOOL dnl required version (1.4) DON'T REMOVE!
+ AC_STDC_HEADERS
+ AC_C_BIGENDIAN
++AX_C_FLOAT_WORDS_BIGENDIAN
+
+ dnl ===========================================================================
+ dnl === Local macros
+--
+1.2.6
+
diff --git a/cleopatre/buildroot/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch b/cleopatre/buildroot/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch
new file mode 100644
index 0000000000..56d8b7e99a
--- /dev/null
+++ b/cleopatre/buildroot/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch
@@ -0,0 +1,79 @@
+From nobody Mon Sep 17 00:00:00 2001
+From: Dan Amelang <dan@amelang.net>
+Date: Sun Oct 29 21:31:23 2006 -0800
+Subject: [PATCH] Change _cairo_fixed_from_double to use the "magic number" technique
+
+See long thread here:
+http://lists.freedesktop.org/archives/cairo/2006-October/008285.html
+
+---
+
+ src/cairo-fixed.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 47 insertions(+), 1 deletions(-)
+
+d88acddcabe770e17664b34a2d5f74d3926e1642
+diff --git a/src/cairo-fixed.c b/src/cairo-fixed.c
+index 604c9e7..fe6c2dc 100644
+--- a/src/cairo-fixed.c
++++ b/src/cairo-fixed.c
+@@ -42,10 +42,56 @@ _cairo_fixed_from_int (int i)
+ return i << 16;
+ }
+
++/* This is the "magic number" approach to converting a double into fixed
++ * point as described here:
++ *
++ * http://www.stereopsis.com/sree/fpu2006.html (an overview)
++ * http://www.d6.com/users/checker/pdfs/gdmfp.pdf (in detail)
++ *
++ * The basic idea is to add a large enough number to the double that the
++ * literal floating point is moved up to the extent that it forces the
++ * double's value to be shifted down to the bottom of the mantissa (to make
++ * room for the large number being added in). Since the mantissa is, at a
++ * given moment in time, a fixed point integer itself, one can convert a
++ * float to various fixed point representations by moving around the point
++ * of a floating point number through arithmetic operations. This behavior
++ * is reliable on most modern platforms as it is mandated by the IEEE-754
++ * standard for floating point arithmetic.
++ *
++ * For our purposes, a "magic number" must be carefully selected that is
++ * both large enough to produce the desired point-shifting effect, and also
++ * has no lower bits in its representation that would interfere with our
++ * value at the bottom of the mantissa. The magic number is calculated as
++ * follows:
++ *
++ * (2 ^ (MANTISSA_SIZE - FRACTIONAL_SIZE)) * 1.5
++ *
++ * where in our case:
++ * - MANTISSA_SIZE for 64-bit doubles is 52
++ * - FRACTIONAL_SIZE for 16.16 fixed point is 16
++ *
++ * Although this approach provides a very large speedup of this function
++ * on a wide-array of systems, it does come with two caveats:
++ *
++ * 1) It uses banker's rounding as opposed to arithmetic rounding.
++ * 2) It doesn't function properly if the FPU is in single-precision
++ * mode.
++ */
++#define CAIRO_MAGIC_NUMBER_FIXED_16_16 (103079215104.0)
+ cairo_fixed_t
+ _cairo_fixed_from_double (double d)
+ {
+- return (cairo_fixed_t) floor (d * 65536 + 0.5);
++ union {
++ double d;
++ int32_t i[2];
++ } u;
++
++ u.d = d + CAIRO_MAGIC_NUMBER_FIXED_16_16;
++#ifdef FLOAT_WORDS_BIGENDIAN
++ return u.i[1];
++#else
++ return u.i[0];
++#endif
+ }
+
+ cairo_fixed_t
+--
+1.2.6
+
diff --git a/cleopatre/buildroot/package/config/Makefile b/cleopatre/buildroot/package/config/Makefile
new file mode 100644
index 0000000000..3af4bd8de6
--- /dev/null
+++ b/cleopatre/buildroot/package/config/Makefile
@@ -0,0 +1,40 @@
+obj := .
+src := .
+top_srcdir=../../
+top_builddir=../../
+srctree := .
+
+include Makefile.kconfig
+#HOSTCFLAGS+=-Dinline="" -include foo.h
+-include .depend
+.depend: $(wildcard *.h *.c)
+ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) -MM *.c > .depend 2>/dev/null || :
+
+__hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
+host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
+host-cmulti := $(foreach m,$(__hostprogs),\
+ $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
+host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
+
+$(host-csingle): %: %.c
+ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< $(HOST_LOADLIBES) -o $@
+
+$(host-cmulti): %: $(host-cobjs) $(host-cshlib)
+ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $(HOST_LOADLIBES) -o $@
+
+$(host-cobjs): %.o: %.c
+ $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) -c $< -o $@
+
+$(obj)/%:: $(src)/%_shipped
+ $(Q)cat $< > $@
+
+clean:
+ $(Q)rm -f $(clean-files)
+distclean: clean
+ $(Q)rm -f $(lxdialog) $(conf-objs) $(mconf-objs) $(kxgettext-objs) \
+ $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \
+ mconf .depend
+ $(Q)rm -rf buildroot-config
+
+FORCE:
+.PHONY: FORCE clean distclean
diff --git a/cleopatre/buildroot/package/config/Makefile.kconfig b/cleopatre/buildroot/package/config/Makefile.kconfig
new file mode 100644
index 0000000000..457d46ec09
--- /dev/null
+++ b/cleopatre/buildroot/package/config/Makefile.kconfig
@@ -0,0 +1,279 @@
+# ===========================================================================
+# Kernel configuration targets
+# These targets are used from top-level makefile
+
+PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
+
+Kconfig := arch/$(SRCARCH)/Kconfig
+
+xconfig: $(obj)/qconf
+ $< $(Kconfig)
+
+gconfig: $(obj)/gconf
+ $< $(Kconfig)
+
+menuconfig: $(obj)/mconf
+ $< $(Kconfig)
+
+config: $(obj)/conf
+ $< $(Kconfig)
+
+oldconfig: $(obj)/conf
+ $< -o $(Kconfig)
+
+silentoldconfig: $(obj)/conf
+ $< -s $(Kconfig)
+
+# Create new linux.po file
+# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
+# The symlink is used to repair a deficiency in arch/um
+update-po-config: $(obj)/kxgettext
+ xgettext --default-domain=linux \
+ --add-comments --keyword=_ --keyword=N_ \
+ --from-code=UTF-8 \
+ --files-from=scripts/kconfig/POTFILES.in \
+ --output $(obj)/config.pot
+ $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
+ $(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
+ (for i in `ls arch/`; \
+ do \
+ $(obj)/kxgettext arch/$$i/Kconfig; \
+ done ) >> $(obj)/config.pot
+ msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
+ --output $(obj)/linux.pot
+ $(Q)rm -f arch/um/Kconfig.arch
+ $(Q)rm -f $(obj)/config.pot
+
+PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig
+
+randconfig: $(obj)/conf
+ $< -r $(Kconfig)
+
+allyesconfig: $(obj)/conf
+ $< -y $(Kconfig)
+
+allnoconfig: $(obj)/conf
+ $< -n $(Kconfig)
+
+allmodconfig: $(obj)/conf
+ $< -m $(Kconfig)
+
+defconfig: $(obj)/conf
+ifeq ($(KBUILD_DEFCONFIG),)
+ $< -d $(Kconfig)
+else
+ @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
+ $(Q)$< -D arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
+endif
+
+%_defconfig: $(obj)/conf
+ $(Q)$< -D arch/$(SRCARCH)/configs/$@ $(Kconfig)
+
+# Help text used by make help
+help:
+ @echo ' config - Update current config utilising a line-oriented program'
+ @echo ' menuconfig - Update current config utilising a menu based program'
+ @echo ' xconfig - Update current config utilising a QT based front-end'
+ @echo ' gconfig - Update current config utilising a GTK based front-end'
+ @echo ' oldconfig - Update current config utilising a provided .config as base'
+ @echo ' silentoldconfig - Same as oldconfig, but quietly'
+ @echo ' randconfig - New config with random answer to all options'
+ @echo ' defconfig - New config with default answer to all options'
+ @echo ' allmodconfig - New config selecting modules when possible'
+ @echo ' allyesconfig - New config where all options are accepted with yes'
+ @echo ' allnoconfig - New config where all options are answered with no'
+
+# lxdialog stuff
+check-lxdialog := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
+
+# Use recursively expanded variables so we do not call gcc unless
+# we really need to do so. (Do not call gcc as part of make mrproper)
+HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
+HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
+
+HOST_EXTRACFLAGS += -DLOCALE
+
+PHONY += $(obj)/dochecklxdialog
+$(obj)/dochecklxdialog:
+ $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
+
+always := dochecklxdialog
+
+
+# ===========================================================================
+# Shared Makefile for the various kconfig executables:
+# conf: Used for defconfig, oldconfig and related targets
+# mconf: Used for the mconfig target.
+# Utilizes the lxdialog package
+# qconf: Used for the xconfig target
+# Based on QT which needs to be installed to compile it
+# gconf: Used for the gconfig target
+# Based on GTK which needs to be installed to compile it
+# object files used by all kconfig flavours
+
+lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o
+lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
+
+conf-objs := conf.o zconf.tab.o
+mconf-objs := mconf.o zconf.tab.o $(lxdialog)
+kxgettext-objs := kxgettext.o zconf.tab.o
+
+hostprogs-y := conf qconf gconf kxgettext
+
+ifeq ($(MAKECMDGOALS),menuconfig)
+ hostprogs-y += mconf
+endif
+ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
+ hostprogs-y += mconf
+endif
+
+ifeq ($(MAKECMDGOALS),xconfig)
+ qconf-target := 1
+endif
+ifeq ($(MAKECMDGOALS),gconfig)
+ gconf-target := 1
+endif
+
+
+ifeq ($(qconf-target),1)
+qconf-cxxobjs := qconf.o
+qconf-objs := kconfig_load.o zconf.tab.o
+endif
+
+ifeq ($(gconf-target),1)
+gconf-objs := gconf.o kconfig_load.o zconf.tab.o
+endif
+
+clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
+ .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
+clean-files += mconf qconf gconf
+
+# Add environment specific flags
+HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
+
+# generated files seem to need this to find local include files
+HOSTCFLAGS_lex.zconf.o := -I$(src)
+HOSTCFLAGS_zconf.tab.o := -I$(src)
+
+HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
+HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
+
+HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
+HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
+ -D LKC_DIRECT_LINK
+
+$(obj)/qconf.o: $(obj)/.tmp_qtcheck
+
+ifeq ($(qconf-target),1)
+$(obj)/.tmp_qtcheck: $(src)/Makefile
+-include $(obj)/.tmp_qtcheck
+
+# QT needs some extra effort...
+$(obj)/.tmp_qtcheck:
+ @set -e; echo " CHECK qt"; dir=""; pkg=""; \
+ pkg-config --exists qt 2> /dev/null && pkg=qt; \
+ pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
+ if [ -n "$$pkg" ]; then \
+ cflags="\$$(shell pkg-config $$pkg --cflags)"; \
+ libs="\$$(shell pkg-config $$pkg --libs)"; \
+ moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
+ dir="$$(pkg-config $$pkg --variable=prefix)"; \
+ else \
+ for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
+ if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
+ done; \
+ if [ -z "$$dir" ]; then \
+ echo "*"; \
+ echo "* Unable to find the QT installation. Please make sure that"; \
+ echo "* the QT development package is correctly installed and"; \
+ echo "* either install pkg-config or set the QTDIR environment"; \
+ echo "* variable to the correct location."; \
+ echo "*"; \
+ false; \
+ fi; \
+ libpath=$$dir/lib; lib=qt; osdir=""; \
+ $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
+ osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
+ test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
+ test -f $$libpath/libqt-mt.so && lib=qt-mt; \
+ cflags="-I$$dir/include"; \
+ libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
+ moc="$$dir/bin/moc"; \
+ fi; \
+ if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
+ echo "*"; \
+ echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
+ echo "*"; \
+ moc="/usr/bin/moc"; \
+ fi; \
+ echo "KC_QT_CFLAGS=$$cflags" > $@; \
+ echo "KC_QT_LIBS=$$libs" >> $@; \
+ echo "KC_QT_MOC=$$moc" >> $@
+endif
+
+$(obj)/gconf.o: $(obj)/.tmp_gtkcheck
+
+ifeq ($(gconf-target),1)
+-include $(obj)/.tmp_gtkcheck
+
+# GTK needs some extra effort, too...
+$(obj)/.tmp_gtkcheck:
+ @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \
+ if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
+ touch $@; \
+ else \
+ echo "*"; \
+ echo "* GTK+ is present but version >= 2.0.0 is required."; \
+ echo "*"; \
+ false; \
+ fi \
+ else \
+ echo "*"; \
+ echo "* Unable to find the GTK+ installation. Please make sure that"; \
+ echo "* the GTK+ 2.0 development package is correctly installed..."; \
+ echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \
+ echo "*"; \
+ false; \
+ fi
+endif
+
+$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
+
+$(obj)/kconfig_load.o: $(obj)/lkc_defs.h
+
+$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h
+
+$(obj)/gconf.o: $(obj)/lkc_defs.h
+
+$(obj)/%.moc: $(src)/%.h
+ $(KC_QT_MOC) -i $< -o $@
+
+$(obj)/lkc_defs.h: $(src)/lkc_proto.h
+ sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
+
+
+###
+# The following requires flex/bison/gperf
+# By default we use the _shipped versions, uncomment the following line if
+# you are modifying the flex/bison src.
+# LKC_GENPARSER := 1
+
+ifdef LKC_GENPARSER
+
+$(obj)/zconf.tab.c: $(src)/zconf.y
+$(obj)/lex.zconf.c: $(src)/zconf.l
+$(obj)/zconf.hash.c: $(src)/zconf.gperf
+
+%.tab.c: %.y
+ bison -l -b $* -p $(notdir $*) $<
+ cp $@ $@_shipped
+
+lex.%.c: %.l
+ flex -L -P$(notdir $*) -o$@ $<
+ cp $@ $@_shipped
+
+%.hash.c: %.gperf
+ gperf < $< > $@
+ cp $@ $@_shipped
+
+endif
diff --git a/cleopatre/buildroot/package/config/POTFILES.in b/cleopatre/buildroot/package/config/POTFILES.in
new file mode 100644
index 0000000000..cc94e46a79
--- /dev/null
+++ b/cleopatre/buildroot/package/config/POTFILES.in
@@ -0,0 +1,5 @@
+scripts/kconfig/mconf.c
+scripts/kconfig/conf.c
+scripts/kconfig/confdata.c
+scripts/kconfig/gconf.c
+scripts/kconfig/qconf.cc
diff --git a/cleopatre/buildroot/package/config/README.buildroot2 b/cleopatre/buildroot/package/config/README.buildroot2
new file mode 100644
index 0000000000..bd4479060c
--- /dev/null
+++ b/cleopatre/buildroot/package/config/README.buildroot2
@@ -0,0 +1,22 @@
+This is a copy of the kconfig code in the kernel (currently 2.6.24.4) tweaked
+to suit Buildroot.
+
+To update:
+ cp -r /usr/src/linux/scripts/kconfig package/config.new
+ cd package/config.new
+ cp /usr/src/linux/Documentation/kbuild/kconfig-language.txt .
+ patch -p1 < ../config/kconfig-to-buildroot2.patch
+ mv Makefile Makefile.kconfig
+ cp ../config/README.buildroot2 .
+ cp ../config/foo.h .
+ cp ../config/Makefile .
+ cp ../config/kconfig-to-buildroot2.patch .
+ cd ..
+ rm -rf config
+ mv config.new config
+
+Then verify the toplevel targets work:
+ config
+ defconfig
+ menuconfig
+ oldconfig
diff --git a/cleopatre/buildroot/package/config/check.sh b/cleopatre/buildroot/package/config/check.sh
new file mode 100755
index 0000000000..fa59cbf9d6
--- /dev/null
+++ b/cleopatre/buildroot/package/config/check.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Needed for systems without gettext
+$* -xc -o /dev/null - > /dev/null 2>&1 << EOF
+#include <libintl.h>
+int main()
+{
+ gettext("");
+ return 0;
+}
+EOF
+if [ ! "$?" -eq "0" ]; then
+ echo -DKBUILD_NO_NLS;
+fi
+
diff --git a/cleopatre/buildroot/package/config/conf.c b/cleopatre/buildroot/package/config/conf.c
new file mode 100644
index 0000000000..d69b0aff42
--- /dev/null
+++ b/cleopatre/buildroot/package/config/conf.c
@@ -0,0 +1,631 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/stat.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+static void conf(struct menu *menu);
+static void check_conf(struct menu *menu);
+
+enum {
+ ask_all,
+ ask_new,
+ ask_silent,
+ set_default,
+ set_yes,
+ set_mod,
+ set_no,
+ set_random
+} input_mode = ask_all;
+char *defconfig_file;
+
+static int indent = 1;
+static int valid_stdin = 1;
+static int conf_cnt;
+static char line[128];
+static struct menu *rootEntry;
+
+static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n");
+
+static const char *get_help(struct menu *menu)
+{
+ if (menu_has_help(menu))
+ return menu_get_help(menu);
+ else
+ return nohelp_text;
+}
+
+static void strip(char *str)
+{
+ char *p = str;
+ int l;
+
+ while ((isspace(*p)))
+ p++;
+ l = strlen(p);
+ if (p != str)
+ memmove(str, p, l + 1);
+ if (!l)
+ return;
+ p = str + l - 1;
+ while ((isspace(*p)))
+ *p-- = 0;
+}
+
+static void check_stdin(void)
+{
+ if (!valid_stdin && input_mode == ask_silent) {
+ printf(_("aborted!\n\n"));
+ printf(_("Console input/output is redirected. "));
+ printf(_("Run 'make oldconfig' to update configuration.\n\n"));
+ exit(1);
+ }
+}
+
+static int conf_askvalue(struct symbol *sym, const char *def)
+{
+ enum symbol_type type = sym_get_type(sym);
+ tristate val;
+
+ if (!sym_has_value(sym))
+ printf("(NEW) ");
+
+ line[0] = '\n';
+ line[1] = 0;
+
+ if (!sym_is_changable(sym)) {
+ printf("%s\n", def);
+ line[0] = '\n';
+ line[1] = 0;
+ return 0;
+ }
+
+ switch (input_mode) {
+ case set_no:
+ case set_mod:
+ case set_yes:
+ case set_random:
+ if (sym_has_value(sym)) {
+ printf("%s\n", def);
+ return 0;
+ }
+ break;
+ case ask_new:
+ case ask_silent:
+ if (sym_has_value(sym)) {
+ printf("%s\n", def);
+ return 0;
+ }
+ check_stdin();
+ case ask_all:
+ fflush(stdout);
+ fgets(line, 128, stdin);
+ return 1;
+ case set_default:
+ printf("%s\n", def);
+ return 1;
+ default:
+ break;
+ }
+
+ switch (type) {
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ printf("%s\n", def);
+ return 1;
+ default:
+ ;
+ }
+ switch (input_mode) {
+ case set_yes:
+ if (sym_tristate_within_range(sym, yes)) {
+ line[0] = 'y';
+ line[1] = '\n';
+ line[2] = 0;
+ break;
+ }
+ case set_mod:
+ if (type == S_TRISTATE) {
+ if (sym_tristate_within_range(sym, mod)) {
+ line[0] = 'm';
+ line[1] = '\n';
+ line[2] = 0;
+ break;
+ }
+ } else {
+ if (sym_tristate_within_range(sym, yes)) {
+ line[0] = 'y';
+ line[1] = '\n';
+ line[2] = 0;
+ break;
+ }
+ }
+ case set_no:
+ if (sym_tristate_within_range(sym, no)) {
+ line[0] = 'n';
+ line[1] = '\n';
+ line[2] = 0;
+ break;
+ }
+ case set_random:
+ do {
+ val = (tristate)(random() % 3);
+ } while (!sym_tristate_within_range(sym, val));
+ switch (val) {
+ case no: line[0] = 'n'; break;
+ case mod: line[0] = 'm'; break;
+ case yes: line[0] = 'y'; break;
+ }
+ line[1] = '\n';
+ line[2] = 0;
+ break;
+ default:
+ break;
+ }
+ printf("%s", line);
+ return 1;
+}
+
+int conf_string(struct menu *menu)
+{
+ struct symbol *sym = menu->sym;
+ const char *def;
+
+ while (1) {
+ printf("%*s%s ", indent - 1, "", menu->prompt->text);
+ printf("(%s) ", sym->name);
+ def = sym_get_string_value(sym);
+ if (sym_get_string_value(sym))
+ printf("[%s] ", def);
+ if (!conf_askvalue(sym, def))
+ return 0;
+ switch (line[0]) {
+ case '\n':
+ break;
+ case '?':
+ /* print help */
+ if (line[1] == '\n') {
+ printf("\n%s\n", get_help(menu));
+ def = NULL;
+ break;
+ }
+ default:
+ line[strlen(line)-1] = 0;
+ def = line;
+ }
+ if (def && sym_set_string_value(sym, def))
+ return 0;
+ }
+}
+
+static int conf_sym(struct menu *menu)
+{
+ struct symbol *sym = menu->sym;
+ int type;
+ tristate oldval, newval;
+
+ while (1) {
+ printf("%*s%s ", indent - 1, "", menu->prompt->text);
+ if (sym->name)
+ printf("(%s) ", sym->name);
+ type = sym_get_type(sym);
+ putchar('[');
+ oldval = sym_get_tristate_value(sym);
+ switch (oldval) {
+ case no:
+ putchar('N');
+ break;
+ case mod:
+ putchar('M');
+ break;
+ case yes:
+ putchar('Y');
+ break;
+ }
+ if (oldval != no && sym_tristate_within_range(sym, no))
+ printf("/n");
+ if (oldval != mod && sym_tristate_within_range(sym, mod))
+ printf("/m");
+ if (oldval != yes && sym_tristate_within_range(sym, yes))
+ printf("/y");
+ if (menu_has_help(menu))
+ printf("/?");
+ printf("] ");
+ if (!conf_askvalue(sym, sym_get_string_value(sym)))
+ return 0;
+ strip(line);
+
+ switch (line[0]) {
+ case 'n':
+ case 'N':
+ newval = no;
+ if (!line[1] || !strcmp(&line[1], "o"))
+ break;
+ continue;
+ case 'm':
+ case 'M':
+ newval = mod;
+ if (!line[1])
+ break;
+ continue;
+ case 'y':
+ case 'Y':
+ newval = yes;
+ if (!line[1] || !strcmp(&line[1], "es"))
+ break;
+ continue;
+ case 0:
+ newval = oldval;
+ break;
+ case '?':
+ goto help;
+ default:
+ continue;
+ }
+ if (sym_set_tristate_value(sym, newval))
+ return 0;
+help:
+ printf("\n%s\n", get_help(menu));
+ }
+}
+
+static int conf_choice(struct menu *menu)
+{
+ struct symbol *sym, *def_sym;
+ struct menu *child;
+ int type;
+ bool is_new;
+
+ sym = menu->sym;
+ type = sym_get_type(sym);
+ is_new = !sym_has_value(sym);
+ if (sym_is_changable(sym)) {
+ conf_sym(menu);
+ sym_calc_value(sym);
+ switch (sym_get_tristate_value(sym)) {
+ case no:
+ return 1;
+ case mod:
+ return 0;
+ case yes:
+ break;
+ }
+ } else {
+ switch (sym_get_tristate_value(sym)) {
+ case no:
+ return 1;
+ case mod:
+ printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
+ return 0;
+ case yes:
+ break;
+ }
+ }
+
+ while (1) {
+ int cnt, def;
+
+ printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
+ def_sym = sym_get_choice_value(sym);
+ cnt = def = 0;
+ line[0] = 0;
+ for (child = menu->list; child; child = child->next) {
+ if (!menu_is_visible(child))
+ continue;
+ if (!child->sym) {
+ printf("%*c %s\n", indent, '*', menu_get_prompt(child));
+ continue;
+ }
+ cnt++;
+ if (child->sym == def_sym) {
+ def = cnt;
+ printf("%*c", indent, '>');
+ } else
+ printf("%*c", indent, ' ');
+ printf(" %d. %s", cnt, menu_get_prompt(child));
+ if (child->sym->name)
+ printf(" (%s)", child->sym->name);
+ if (!sym_has_value(child->sym))
+ printf(" (NEW)");
+ printf("\n");
+ }
+ printf("%*schoice", indent - 1, "");
+ if (cnt == 1) {
+ printf("[1]: 1\n");
+ goto conf_childs;
+ }
+ printf("[1-%d", cnt);
+ if (menu_has_help(menu))
+ printf("?");
+ printf("]: ");
+ switch (input_mode) {
+ case ask_new:
+ case ask_silent:
+ if (!is_new) {
+ cnt = def;
+ printf("%d\n", cnt);
+ break;
+ }
+ check_stdin();
+ case ask_all:
+ fflush(stdout);
+ fgets(line, 128, stdin);
+ strip(line);
+ if (line[0] == '?') {
+ printf("\n%s\n", get_help(menu));
+ continue;
+ }
+ if (!line[0])
+ cnt = def;
+ else if (isdigit(line[0]))
+ cnt = atoi(line);
+ else
+ continue;
+ break;
+ case set_random:
+ if (is_new)
+ def = (random() % cnt) + 1;
+ case set_default:
+ case set_yes:
+ case set_mod:
+ case set_no:
+ cnt = def;
+ printf("%d\n", cnt);
+ break;
+ }
+
+ conf_childs:
+ for (child = menu->list; child; child = child->next) {
+ if (!child->sym || !menu_is_visible(child))
+ continue;
+ if (!--cnt)
+ break;
+ }
+ if (!child)
+ continue;
+ if (line[strlen(line) - 1] == '?') {
+ printf("\n%s\n", get_help(child));
+ continue;
+ }
+ sym_set_choice_value(sym, child->sym);
+ if (child->list) {
+ indent += 2;
+ conf(child->list);
+ indent -= 2;
+ }
+ return 1;
+ }
+}
+
+static void conf(struct menu *menu)
+{
+ struct symbol *sym;
+ struct property *prop;
+ struct menu *child;
+
+ if (!menu_is_visible(menu))
+ return;
+
+ sym = menu->sym;
+ prop = menu->prompt;
+ if (prop) {
+ const char *prompt;
+
+ switch (prop->type) {
+ case P_MENU:
+ if (input_mode == ask_silent && rootEntry != menu) {
+ check_conf(menu);
+ return;
+ }
+ case P_COMMENT:
+ prompt = menu_get_prompt(menu);
+ if (prompt)
+ printf("%*c\n%*c %s\n%*c\n",
+ indent, '*',
+ indent, '*', prompt,
+ indent, '*');
+ default:
+ ;
+ }
+ }
+
+ if (!sym)
+ goto conf_childs;
+
+ if (sym_is_choice(sym)) {
+ conf_choice(menu);
+ if (sym->curr.tri != mod)
+ return;
+ goto conf_childs;
+ }
+
+ switch (sym->type) {
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ conf_string(menu);
+ break;
+ default:
+ conf_sym(menu);
+ break;
+ }
+
+conf_childs:
+ if (sym)
+ indent += 2;
+ for (child = menu->list; child; child = child->next)
+ conf(child);
+ if (sym)
+ indent -= 2;
+}
+
+static void check_conf(struct menu *menu)
+{
+ struct symbol *sym;
+ struct menu *child;
+
+ if (!menu_is_visible(menu))
+ return;
+
+ sym = menu->sym;
+ if (sym && !sym_has_value(sym)) {
+ if (sym_is_changable(sym) ||
+ (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
+ if (!conf_cnt++)
+ printf(_("*\n* Restart config...\n*\n"));
+ rootEntry = menu_get_parent_menu(menu);
+ conf(rootEntry);
+ }
+ }
+
+ for (child = menu->list; child; child = child->next)
+ check_conf(child);
+}
+
+int main(int ac, char **av)
+{
+ int i = 1;
+ const char *name;
+ struct stat tmpstat;
+
+ if (ac > i && av[i][0] == '-') {
+ switch (av[i++][1]) {
+ case 'o':
+ input_mode = ask_new;
+ break;
+ case 's':
+ input_mode = ask_silent;
+ valid_stdin = isatty(0) && isatty(1) && isatty(2);
+ break;
+ case 'd':
+ input_mode = set_default;
+ break;
+ case 'D':
+ input_mode = set_default;
+ defconfig_file = av[i++];
+ if (!defconfig_file) {
+ printf(_("%s: No default config file specified\n"),
+ av[0]);
+ exit(1);
+ }
+ break;
+ case 'n':
+ input_mode = set_no;
+ break;
+ case 'm':
+ input_mode = set_mod;
+ break;
+ case 'y':
+ input_mode = set_yes;
+ break;
+ case 'r':
+ input_mode = set_random;
+ srandom(time(NULL));
+ break;
+ case 'h':
+ case '?':
+ fprintf(stderr, "See README for usage info\n");
+ exit(0);
+ }
+ }
+ name = av[i];
+ if (!name) {
+ printf(_("%s: Kconfig file missing\n"), av[0]);
+ exit(1);
+ }
+ conf_parse(name);
+ /*zconfdump(stdout);*/
+ switch (input_mode) {
+ case set_default:
+ if (!defconfig_file)
+ defconfig_file = conf_get_default_confname();
+ if (conf_read(defconfig_file)) {
+ printf("***\n"
+ "*** Can't find default configuration \"%s\"!\n"
+ "***\n", defconfig_file);
+ exit(1);
+ }
+ break;
+ case ask_silent:
+ if (stat(".config", &tmpstat)) {
+ printf(_("***\n"
+ "*** You have not yet configured Buildroot!\n"
+ "*** (missing .config file)\n"
+ "***\n"
+ "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
+ "*** \"make menuconfig\" or \"make config\").\n"
+ "***\n"));
+ exit(1);
+ }
+ case ask_all:
+ case ask_new:
+ conf_read(NULL);
+ break;
+ case set_no:
+ case set_mod:
+ case set_yes:
+ case set_random:
+ name = getenv("KCONFIG_ALLCONFIG");
+ if (name && !stat(name, &tmpstat)) {
+ conf_read_simple(name, S_DEF_USER);
+ break;
+ }
+ switch (input_mode) {
+ case set_no: name = "allno.config"; break;
+ case set_mod: name = "allmod.config"; break;
+ case set_yes: name = "allyes.config"; break;
+ case set_random: name = "allrandom.config"; break;
+ default: break;
+ }
+ if (!stat(name, &tmpstat))
+ conf_read_simple(name, S_DEF_USER);
+ else if (!stat("all.config", &tmpstat))
+ conf_read_simple("all.config", S_DEF_USER);
+ break;
+ default:
+ break;
+ }
+
+ if (input_mode != ask_silent) {
+ rootEntry = &rootmenu;
+ conf(&rootmenu);
+ if (input_mode == ask_all) {
+ input_mode = ask_silent;
+ valid_stdin = 1;
+ }
+ } else if (conf_get_changed()) {
+ name = getenv("KCONFIG_NOSILENTUPDATE");
+ if (name && *name) {
+ fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n"));
+ return 1;
+ }
+ } else
+ goto skip_check;
+
+ do {
+ conf_cnt = 0;
+ check_conf(&rootmenu);
+ } while (conf_cnt);
+ if (conf_write(NULL)) {
+ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
+ return 1;
+ }
+skip_check:
+ if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) {
+ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/cleopatre/buildroot/package/config/confdata.c b/cleopatre/buildroot/package/config/confdata.c
new file mode 100644
index 0000000000..7f06da4f16
--- /dev/null
+++ b/cleopatre/buildroot/package/config/confdata.c
@@ -0,0 +1,824 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <sys/stat.h>
+#include <ctype.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <libgen.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+static void conf_warning(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+
+static const char *conf_filename;
+static int conf_lineno, conf_warnings, conf_unsaved;
+
+const char conf_defname[] = ".defconfig";
+
+static void conf_warning(const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ fprintf(stderr, "%s:%d:warning: ", conf_filename, conf_lineno);
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+ va_end(ap);
+ conf_warnings++;
+}
+
+const char *conf_get_configname(void)
+{
+ char *name = getenv("BUILDROOT_CONFIG");
+
+ return name ? name : ".config";
+}
+
+static char *conf_expand_value(const char *in)
+{
+ struct symbol *sym;
+ const char *src;
+ static char res_value[SYMBOL_MAXLENGTH];
+ char *dst, name[SYMBOL_MAXLENGTH];
+
+ res_value[0] = 0;
+ dst = name;
+ while ((src = strchr(in, '$'))) {
+ strncat(res_value, in, src - in);
+ src++;
+ dst = name;
+ while (isalnum(*src) || *src == '_')
+ *dst++ = *src++;
+ *dst = 0;
+ sym = sym_lookup(name, 0);
+ sym_calc_value(sym);
+ strcat(res_value, sym_get_string_value(sym));
+ in = src;
+ }
+ strcat(res_value, in);
+
+ return res_value;
+}
+
+char *conf_get_default_confname(void)
+{
+ struct stat buf;
+ static char fullname[PATH_MAX+1];
+ char *env, *name;
+
+ name = conf_expand_value(conf_defname);
+ env = getenv(SRCTREE);
+ if (env) {
+ sprintf(fullname, "%s/%s", env, name);
+ if (!stat(fullname, &buf))
+ return fullname;
+ }
+ return name;
+}
+
+static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
+{
+ char *p2;
+
+ switch (sym->type) {
+ case S_TRISTATE:
+ if (p[0] == 'm') {
+ sym->def[def].tri = mod;
+ sym->flags |= def_flags;
+ break;
+ }
+ case S_BOOLEAN:
+ if (p[0] == 'y') {
+ sym->def[def].tri = yes;
+ sym->flags |= def_flags;
+ break;
+ }
+ if (p[0] == 'n') {
+ sym->def[def].tri = no;
+ sym->flags |= def_flags;
+ break;
+ }
+ conf_warning("symbol value '%s' invalid for %s", p, sym->name);
+ break;
+ case S_OTHER:
+ if (*p != '"') {
+ for (p2 = p; *p2 && !isspace(*p2); p2++)
+ ;
+ sym->type = S_STRING;
+ goto done;
+ }
+ case S_STRING:
+ if (*p++ != '"')
+ break;
+ for (p2 = p; (p2 = strpbrk(p2, "\"\\")); p2++) {
+ if (*p2 == '"') {
+ *p2 = 0;
+ break;
+ }
+ memmove(p2, p2 + 1, strlen(p2));
+ }
+ if (!p2) {
+ conf_warning("invalid string found");
+ return 1;
+ }
+ case S_INT:
+ case S_HEX:
+ done:
+ if (sym_string_valid(sym, p)) {
+ sym->def[def].val = strdup(p);
+ sym->flags |= def_flags;
+ } else {
+ conf_warning("symbol value '%s' invalid for %s", p, sym->name);
+ return 1;
+ }
+ break;
+ default:
+ ;
+ }
+ return 0;
+}
+
+int conf_read_simple(const char *name, int def)
+{
+ FILE *in = NULL;
+ char line[1024];
+ char *p, *p2;
+ struct symbol *sym;
+ int i, def_flags;
+
+ if (name) {
+ in = zconf_fopen(name);
+ } else {
+ struct property *prop;
+
+ name = conf_get_configname();
+ in = zconf_fopen(name);
+ if (in)
+ goto load;
+ sym_add_change_count(1);
+ if (!sym_defconfig_list)
+ return 1;
+
+ for_all_defaults(sym_defconfig_list, prop) {
+ if (expr_calc_value(prop->visible.expr) == no ||
+ prop->expr->type != E_SYMBOL)
+ continue;
+ name = conf_expand_value(prop->expr->left.sym->name);
+ in = zconf_fopen(name);
+ if (in) {
+ printf(_("#\n"
+ "# using defaults found in %s\n"
+ "#\n"), name);
+ goto load;
+ }
+ }
+ }
+ if (!in)
+ return 1;
+
+load:
+ conf_filename = name;
+ conf_lineno = 0;
+ conf_warnings = 0;
+ conf_unsaved = 0;
+
+ def_flags = SYMBOL_DEF << def;
+ for_all_symbols(i, sym) {
+ sym->flags |= SYMBOL_CHANGED;
+ sym->flags &= ~(def_flags|SYMBOL_VALID);
+ if (sym_is_choice(sym))
+ sym->flags |= def_flags;
+ switch (sym->type) {
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ if (sym->def[def].val)
+ free(sym->def[def].val);
+ default:
+ sym->def[def].val = NULL;
+ sym->def[def].tri = no;
+ }
+ }
+
+ while (fgets(line, sizeof(line), in)) {
+ conf_lineno++;
+ sym = NULL;
+ switch (line[0]) {
+ case '#':
+ if (line[1]!=' ')
+ continue;
+ p = strchr(line + 2, ' ');
+ if (!p)
+ continue;
+ *p++ = 0;
+ if (strncmp(p, "is not set", 10))
+ continue;
+ if (def == S_DEF_USER) {
+ sym = sym_find(line + 2);
+ if (!sym) {
+ conf_warning("trying to assign nonexistent symbol %s", line + 2);
+ break;
+ }
+ } else {
+ sym = sym_lookup(line + 2, 0);
+ if (sym->type == S_UNKNOWN)
+ sym->type = S_BOOLEAN;
+ }
+ if (sym->flags & def_flags) {
+ conf_warning("trying to reassign symbol %s", sym->name);
+ break;
+ }
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ sym->def[def].tri = no;
+ sym->flags |= def_flags;
+ break;
+ default:
+ ;
+ }
+ break;
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z':
+ p = strchr(line, '=');
+ if (!p)
+ continue;
+ *p++ = 0;
+ p2 = strchr(p, '\n');
+ if (p2) {
+ *p2-- = 0;
+ if (*p2 == '\r')
+ *p2 = 0;
+ }
+ if (def == S_DEF_USER) {
+ sym = sym_find(line);
+ if (!sym) {
+ conf_warning("trying to assign nonexistent symbol %s", line);
+ break;
+ }
+ } else {
+ sym = sym_lookup(line, 0);
+ if (sym->type == S_UNKNOWN)
+ sym->type = S_OTHER;
+ }
+ if (sym->flags & def_flags) {
+ conf_warning("trying to reassign symbol %s", sym->name);
+ break;
+ }
+ if (conf_set_sym_val(sym, def, def_flags, p))
+ continue;
+ break;
+ case '\r':
+ case '\n':
+ break;
+ default:
+ conf_warning("unexpected data");
+ continue;
+ }
+ if (sym && sym_is_choice_value(sym)) {
+ struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
+ switch (sym->def[def].tri) {
+ case no:
+ break;
+ case mod:
+ if (cs->def[def].tri == yes) {
+ conf_warning("%s creates inconsistent choice state", sym->name);
+ cs->flags &= ~def_flags;
+ }
+ break;
+ case yes:
+ if (cs->def[def].tri != no) {
+ conf_warning("%s creates inconsistent choice state", sym->name);
+ cs->flags &= ~def_flags;
+ } else
+ cs->def[def].val = sym;
+ break;
+ }
+ cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri);
+ }
+ }
+ fclose(in);
+
+ if (modules_sym)
+ sym_calc_value(modules_sym);
+ return 0;
+}
+
+int conf_read(const char *name)
+{
+ struct symbol *sym;
+ struct property *prop;
+ struct expr *e;
+ int i, flags;
+
+ sym_set_change_count(0);
+
+ if (conf_read_simple(name, S_DEF_USER))
+ return 1;
+
+ for_all_symbols(i, sym) {
+ sym_calc_value(sym);
+ if (sym_is_choice(sym) || (sym->flags & SYMBOL_AUTO))
+ goto sym_ok;
+ if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
+ /* check that calculated value agrees with saved value */
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym))
+ break;
+ if (!sym_is_choice(sym))
+ goto sym_ok;
+ default:
+ if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
+ goto sym_ok;
+ break;
+ }
+ } else if (!sym_has_value(sym) && !(sym->flags & SYMBOL_WRITE))
+ /* no previous value and not saved */
+ goto sym_ok;
+ conf_unsaved++;
+ /* maybe print value in verbose mode... */
+ sym_ok:
+ if (!sym_is_choice(sym))
+ continue;
+ /* The choice symbol only has a set value (and thus is not new)
+ * if all its visible childs have values.
+ */
+ prop = sym_get_choice_prop(sym);
+ flags = sym->flags;
+ for (e = prop->expr; e; e = e->left.expr)
+ if (e->right.sym->visible != no)
+ flags &= e->right.sym->flags;
+ sym->flags &= flags | ~SYMBOL_DEF_USER;
+ }
+
+ for_all_symbols(i, sym) {
+ if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
+ /* Reset values of generates values, so they'll appear
+ * as new, if they should become visible, but that
+ * doesn't quite work if the Kconfig and the saved
+ * configuration disagree.
+ */
+ if (sym->visible == no && !conf_unsaved)
+ sym->flags &= ~SYMBOL_DEF_USER;
+ switch (sym->type) {
+ case S_STRING:
+ case S_INT:
+ case S_HEX:
+ /* Reset a string value if it's out of range */
+ if (sym_string_within_range(sym, sym->def[S_DEF_USER].val))
+ break;
+ sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
+ conf_unsaved++;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ sym_add_change_count(conf_warnings || conf_unsaved);
+
+ return 0;
+}
+
+int conf_write(const char *name)
+{
+ FILE *out;
+ struct symbol *sym;
+ struct menu *menu;
+ const char *basename;
+ char dirname[128], tmpname[128], newname[128];
+ int type, l;
+ const char *str;
+ time_t now;
+ int use_timestamp = 1;
+ char *env;
+
+ dirname[0] = 0;
+ if (name && name[0]) {
+ struct stat st;
+ char *slash;
+
+ if (!stat(name, &st) && S_ISDIR(st.st_mode)) {
+ strcpy(dirname, name);
+ strcat(dirname, "/");
+ basename = conf_get_configname();
+ } else if ((slash = strrchr(name, '/'))) {
+ int size = slash - name + 1;
+ memcpy(dirname, name, size);
+ dirname[size] = 0;
+ if (slash[1])
+ basename = slash + 1;
+ else
+ basename = conf_get_configname();
+ } else
+ basename = name;
+ } else
+ basename = conf_get_configname();
+
+ sprintf(newname, "%s%s", dirname, basename);
+ env = getenv("KCONFIG_OVERWRITECONFIG");
+ if (!env || !*env) {
+ sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
+ out = fopen(tmpname, "w");
+ } else {
+ *tmpname = 0;
+ out = fopen(newname, "w");
+ }
+ if (!out)
+ return 1;
+
+ sym = sym_lookup("BR2_VERSION", 0);
+ sym_calc_value(sym);
+ time(&now);
+ env = getenv("KCONFIG_NOTIMESTAMP");
+ if (env && *env)
+ use_timestamp = 0;
+
+ fprintf(out, _("#\n"
+ "# Automatically generated make config: don't edit\n"
+ "%s%s"
+ "#\n"),
+ use_timestamp ? "# " : "",
+ use_timestamp ? ctime(&now) : "");
+
+ if (!conf_get_changed())
+ sym_clear_all_valid();
+
+ menu = rootmenu.list;
+ while (menu) {
+ sym = menu->sym;
+ if (!sym) {
+ if (!menu_is_visible(menu))
+ goto next;
+ str = menu_get_prompt(menu);
+ fprintf(out, "\n"
+ "#\n"
+ "# %s\n"
+ "#\n", str);
+ } else if (!(sym->flags & SYMBOL_CHOICE)) {
+ sym_calc_value(sym);
+ if (!(sym->flags & SYMBOL_WRITE))
+ goto next;
+ sym->flags &= ~SYMBOL_WRITE;
+ type = sym->type;
+ if (type == S_TRISTATE) {
+ sym_calc_value(modules_sym);
+ if (modules_sym->curr.tri == no)
+ type = S_BOOLEAN;
+ }
+ switch (type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ switch (sym_get_tristate_value(sym)) {
+ case no:
+ fprintf(out, "# %s is not set\n", sym->name);
+ break;
+ case mod:
+ fprintf(out, "%s=m\n", sym->name);
+ break;
+ case yes:
+ fprintf(out, "%s=y\n", sym->name);
+ break;
+ }
+ break;
+ case S_STRING:
+ str = sym_get_string_value(sym);
+ fprintf(out, "%s=\"", sym->name);
+ while (1) {
+ l = strcspn(str, "\"\\");
+ if (l) {
+ fwrite(str, l, 1, out);
+ str += l;
+ }
+ if (!*str)
+ break;
+ fprintf(out, "\\%c", *str++);
+ }
+ fputs("\"\n", out);
+ break;
+ case S_HEX:
+ str = sym_get_string_value(sym);
+ if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
+ fprintf(out, "%s=%s\n", sym->name, str);
+ break;
+ }
+ case S_INT:
+ str = sym_get_string_value(sym);
+ fprintf(out, "%s=%s\n", sym->name, str);
+ break;
+ }
+ }
+
+ next:
+ if (menu->list) {
+ menu = menu->list;
+ continue;
+ }
+ if (menu->next)
+ menu = menu->next;
+ else while ((menu = menu->parent)) {
+ if (menu->next) {
+ menu = menu->next;
+ break;
+ }
+ }
+ }
+ fclose(out);
+
+ if (*tmpname) {
+ strcat(dirname, basename);
+ strcat(dirname, ".old");
+ rename(newname, dirname);
+ if (rename(tmpname, newname))
+ return 1;
+ }
+
+ printf(_("#\n"
+ "# configuration written to %s\n"
+ "#\n"), newname);
+
+ sym_set_change_count(0);
+
+ return 0;
+}
+
+int conf_split_config(void)
+{
+ char *name, path[128], *opwd, *dir, *_name;
+ char *s, *d, c;
+ struct symbol *sym;
+ struct stat sb;
+ int res, i, fd;
+
+ name = getenv("KCONFIG_AUTOCONFIG");
+ if (!name)
+ name = "include/config/auto.conf";
+ conf_read_simple(name, S_DEF_AUTO);
+
+ opwd = malloc(256);
+ _name = strdup(name);
+ if (opwd == NULL || _name == NULL)
+ return 1;
+ opwd = getcwd(opwd, 256);
+ dir = dirname(_name);
+ if (dir == NULL) {
+ res = 1;
+ goto err;
+ }
+ if (chdir(dir)) {
+ res = 1;
+ goto err;
+ }
+
+ res = 0;
+ for_all_symbols(i, sym) {
+ sym_calc_value(sym);
+ if ((sym->flags & SYMBOL_AUTO) || !sym->name)
+ continue;
+ if (sym->flags & SYMBOL_WRITE) {
+ if (sym->flags & SYMBOL_DEF_AUTO) {
+ /*
+ * symbol has old and new value,
+ * so compare them...
+ */
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ if (sym_get_tristate_value(sym) ==
+ sym->def[S_DEF_AUTO].tri)
+ continue;
+ break;
+ case S_STRING:
+ case S_HEX:
+ case S_INT:
+ if (!strcmp(sym_get_string_value(sym),
+ sym->def[S_DEF_AUTO].val))
+ continue;
+ break;
+ default:
+ break;
+ }
+ } else {
+ /*
+ * If there is no old value, only 'no' (unset)
+ * is allowed as new value.
+ */
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ if (sym_get_tristate_value(sym) == no)
+ continue;
+ break;
+ default:
+ break;
+ }
+ }
+ } else if (!(sym->flags & SYMBOL_DEF_AUTO))
+ /* There is neither an old nor a new value. */
+ continue;
+ /* else
+ * There is an old value, but no new value ('no' (unset)
+ * isn't saved in auto.conf, so the old value is always
+ * different from 'no').
+ */
+
+ /* Replace all '_' and append ".h" */
+ s = sym->name;
+ d = path;
+ while ((c = *s++)) {
+ c = tolower(c);
+ *d++ = (c == '_') ? '/' : c;
+ }
+ strcpy(d, ".h");
+
+ /* Assume directory path already exists. */
+ fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd == -1) {
+ if (errno != ENOENT) {
+ res = 1;
+ break;
+ }
+ /*
+ * Create directory components,
+ * unless they exist already.
+ */
+ d = path;
+ while ((d = strchr(d, '/'))) {
+ *d = 0;
+ if (stat(path, &sb) && mkdir(path, 0755)) {
+ res = 1;
+ goto out;
+ }
+ *d++ = '/';
+ }
+ /* Try it again. */
+ fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd == -1) {
+ res = 1;
+ break;
+ }
+ }
+ close(fd);
+ }
+out:
+ if (chdir(opwd))
+ res = 1;
+err:
+ free(opwd);
+ free(_name);
+ return res;
+}
+
+int conf_write_autoconf(void)
+{
+ struct symbol *sym;
+ const char *str;
+ char *name;
+ FILE *out, *out_h;
+ time_t now;
+ int i, l;
+
+ sym_clear_all_valid();
+
+ file_write_dep(".config.cmd");
+
+ if (conf_split_config())
+ return 1;
+
+ out = fopen(".tmpconfig", "w");
+ if (!out)
+ return 1;
+
+ out_h = fopen(".tmpconfig.h", "w");
+ if (!out_h) {
+ fclose(out);
+ return 1;
+ }
+
+ sym = sym_lookup("BR2_VERSION", 0);
+ sym_calc_value(sym);
+ time(&now);
+ fprintf(out, "#\n"
+ "# Automatically generated make config: don't edit\n"
+ "# %s"
+ "#\n",
+ ctime(&now));
+ fprintf(out_h, "/*\n"
+ " * Automatically generated C config: don't edit\n"
+ " * %s"
+ " */\n",
+ ctime(&now));
+
+ for_all_symbols(i, sym) {
+ sym_calc_value(sym);
+ if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
+ continue;
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ switch (sym_get_tristate_value(sym)) {
+ case no:
+ break;
+ case mod:
+ fprintf(out, "%s=m\n", sym->name);
+ fprintf(out_h, "#define %s_MODULE 1\n", sym->name);
+ break;
+ case yes:
+ fprintf(out, "%s=y\n", sym->name);
+ fprintf(out_h, "#define %s 1\n", sym->name);
+ break;
+ }
+ break;
+ case S_STRING:
+ str = sym_get_string_value(sym);
+ fprintf(out, "%s=\"", sym->name);
+ fprintf(out_h, "#define %s \"", sym->name);
+ while (1) {
+ l = strcspn(str, "\"\\");
+ if (l) {
+ fwrite(str, l, 1, out);
+ fwrite(str, l, 1, out_h);
+ str += l;
+ }
+ if (!*str)
+ break;
+ fprintf(out, "\\%c", *str);
+ fprintf(out_h, "\\%c", *str);
+ str++;
+ }
+ fputs("\"\n", out);
+ fputs("\"\n", out_h);
+ break;
+ case S_HEX:
+ str = sym_get_string_value(sym);
+ if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
+ fprintf(out, "%s=%s\n", sym->name, str);
+ fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
+ break;
+ }
+ case S_INT:
+ str = sym_get_string_value(sym);
+ fprintf(out, "%s=%s\n", sym->name, str);
+ fprintf(out_h, "#define %s %s\n", sym->name, str);
+ break;
+ default:
+ break;
+ }
+ }
+ fclose(out);
+ fclose(out_h);
+
+ name = getenv("KCONFIG_AUTOHEADER");
+ if (!name)
+ name = "include/linux/autoconf.h";
+ if (rename(".tmpconfig.h", name))
+ return 1;
+ name = getenv("KCONFIG_AUTOCONFIG");
+ if (!name)
+ name = "include/config/auto.conf";
+ /*
+ * This must be the last step, kbuild has a dependency on auto.conf
+ * and this marks the successful completion of the previous steps.
+ */
+ if (rename(".tmpconfig", name))
+ return 1;
+
+ return 0;
+}
+
+static int sym_change_count;
+static void (*conf_changed_callback)(void);
+
+void sym_set_change_count(int count)
+{
+ int _sym_change_count = sym_change_count;
+ sym_change_count = count;
+ if (conf_changed_callback &&
+ (bool)_sym_change_count != (bool)count)
+ conf_changed_callback();
+}
+
+void sym_add_change_count(int count)
+{
+ sym_set_change_count(count + sym_change_count);
+}
+
+bool conf_get_changed(void)
+{
+ return sym_change_count;
+}
+
+void conf_set_changed_callback(void (*fn)(void))
+{
+ conf_changed_callback = fn;
+}
diff --git a/cleopatre/buildroot/package/config/expr.c b/cleopatre/buildroot/package/config/expr.c
new file mode 100644
index 0000000000..5861468bcc
--- /dev/null
+++ b/cleopatre/buildroot/package/config/expr.c
@@ -0,0 +1,1100 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+#define DEBUG_EXPR 0
+
+struct expr *expr_alloc_symbol(struct symbol *sym)
+{
+ struct expr *e = malloc(sizeof(*e));
+ memset(e, 0, sizeof(*e));
+ e->type = E_SYMBOL;
+ e->left.sym = sym;
+ return e;
+}
+
+struct expr *expr_alloc_one(enum expr_type type, struct expr *ce)
+{
+ struct expr *e = malloc(sizeof(*e));
+ memset(e, 0, sizeof(*e));
+ e->type = type;
+ e->left.expr = ce;
+ return e;
+}
+
+struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2)
+{
+ struct expr *e = malloc(sizeof(*e));
+ memset(e, 0, sizeof(*e));
+ e->type = type;
+ e->left.expr = e1;
+ e->right.expr = e2;
+ return e;
+}
+
+struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2)
+{
+ struct expr *e = malloc(sizeof(*e));
+ memset(e, 0, sizeof(*e));
+ e->type = type;
+ e->left.sym = s1;
+ e->right.sym = s2;
+ return e;
+}
+
+struct expr *expr_alloc_and(struct expr *e1, struct expr *e2)
+{
+ if (!e1)
+ return e2;
+ return e2 ? expr_alloc_two(E_AND, e1, e2) : e1;
+}
+
+struct expr *expr_alloc_or(struct expr *e1, struct expr *e2)
+{
+ if (!e1)
+ return e2;
+ return e2 ? expr_alloc_two(E_OR, e1, e2) : e1;
+}
+
+struct expr *expr_copy(struct expr *org)
+{
+ struct expr *e;
+
+ if (!org)
+ return NULL;
+
+ e = malloc(sizeof(*org));
+ memcpy(e, org, sizeof(*org));
+ switch (org->type) {
+ case E_SYMBOL:
+ e->left = org->left;
+ break;
+ case E_NOT:
+ e->left.expr = expr_copy(org->left.expr);
+ break;
+ case E_EQUAL:
+ case E_UNEQUAL:
+ e->left.sym = org->left.sym;
+ e->right.sym = org->right.sym;
+ break;
+ case E_AND:
+ case E_OR:
+ case E_CHOICE:
+ e->left.expr = expr_copy(org->left.expr);
+ e->right.expr = expr_copy(org->right.expr);
+ break;
+ default:
+ printf("can't copy type %d\n", e->type);
+ free(e);
+ e = NULL;
+ break;
+ }
+
+ return e;
+}
+
+void expr_free(struct expr *e)
+{
+ if (!e)
+ return;
+
+ switch (e->type) {
+ case E_SYMBOL:
+ break;
+ case E_NOT:
+ expr_free(e->left.expr);
+ return;
+ case E_EQUAL:
+ case E_UNEQUAL:
+ break;
+ case E_OR:
+ case E_AND:
+ expr_free(e->left.expr);
+ expr_free(e->right.expr);
+ break;
+ default:
+ printf("how to free type %d?\n", e->type);
+ break;
+ }
+ free(e);
+}
+
+static int trans_count;
+
+#define e1 (*ep1)
+#define e2 (*ep2)
+
+static void __expr_eliminate_eq(enum expr_type type, struct expr **ep1, struct expr **ep2)
+{
+ if (e1->type == type) {
+ __expr_eliminate_eq(type, &e1->left.expr, &e2);
+ __expr_eliminate_eq(type, &e1->right.expr, &e2);
+ return;
+ }
+ if (e2->type == type) {
+ __expr_eliminate_eq(type, &e1, &e2->left.expr);
+ __expr_eliminate_eq(type, &e1, &e2->right.expr);
+ return;
+ }
+ if (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
+ e1->left.sym == e2->left.sym &&
+ (e1->left.sym == &symbol_yes || e1->left.sym == &symbol_no))
+ return;
+ if (!expr_eq(e1, e2))
+ return;
+ trans_count++;
+ expr_free(e1); expr_free(e2);
+ switch (type) {
+ case E_OR:
+ e1 = expr_alloc_symbol(&symbol_no);
+ e2 = expr_alloc_symbol(&symbol_no);
+ break;
+ case E_AND:
+ e1 = expr_alloc_symbol(&symbol_yes);
+ e2 = expr_alloc_symbol(&symbol_yes);
+ break;
+ default:
+ ;
+ }
+}
+
+void expr_eliminate_eq(struct expr **ep1, struct expr **ep2)
+{
+ if (!e1 || !e2)
+ return;
+ switch (e1->type) {
+ case E_OR:
+ case E_AND:
+ __expr_eliminate_eq(e1->type, ep1, ep2);
+ default:
+ ;
+ }
+ if (e1->type != e2->type) switch (e2->type) {
+ case E_OR:
+ case E_AND:
+ __expr_eliminate_eq(e2->type, ep1, ep2);
+ default:
+ ;
+ }
+ e1 = expr_eliminate_yn(e1);
+ e2 = expr_eliminate_yn(e2);
+}
+
+#undef e1
+#undef e2
+
+int expr_eq(struct expr *e1, struct expr *e2)
+{
+ int res, old_count;
+
+ if (e1->type != e2->type)
+ return 0;
+ switch (e1->type) {
+ case E_EQUAL:
+ case E_UNEQUAL:
+ return e1->left.sym == e2->left.sym && e1->right.sym == e2->right.sym;
+ case E_SYMBOL:
+ return e1->left.sym == e2->left.sym;
+ case E_NOT:
+ return expr_eq(e1->left.expr, e2->left.expr);
+ case E_AND:
+ case E_OR:
+ e1 = expr_copy(e1);
+ e2 = expr_copy(e2);
+ old_count = trans_count;
+ expr_eliminate_eq(&e1, &e2);
+ res = (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
+ e1->left.sym == e2->left.sym);
+ expr_free(e1);
+ expr_free(e2);
+ trans_count = old_count;
+ return res;
+ case E_CHOICE:
+ case E_RANGE:
+ case E_NONE:
+ /* panic */;
+ }
+
+ if (DEBUG_EXPR) {
+ expr_fprint(e1, stdout);
+ printf(" = ");
+ expr_fprint(e2, stdout);
+ printf(" ?\n");
+ }
+
+ return 0;
+}
+
+struct expr *expr_eliminate_yn(struct expr *e)
+{
+ struct expr *tmp;
+
+ if (e) switch (e->type) {
+ case E_AND:
+ e->left.expr = expr_eliminate_yn(e->left.expr);
+ e->right.expr = expr_eliminate_yn(e->right.expr);
+ if (e->left.expr->type == E_SYMBOL) {
+ if (e->left.expr->left.sym == &symbol_no) {
+ expr_free(e->left.expr);
+ expr_free(e->right.expr);
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_no;
+ e->right.expr = NULL;
+ return e;
+ } else if (e->left.expr->left.sym == &symbol_yes) {
+ free(e->left.expr);
+ tmp = e->right.expr;
+ *e = *(e->right.expr);
+ free(tmp);
+ return e;
+ }
+ }
+ if (e->right.expr->type == E_SYMBOL) {
+ if (e->right.expr->left.sym == &symbol_no) {
+ expr_free(e->left.expr);
+ expr_free(e->right.expr);
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_no;
+ e->right.expr = NULL;
+ return e;
+ } else if (e->right.expr->left.sym == &symbol_yes) {
+ free(e->right.expr);
+ tmp = e->left.expr;
+ *e = *(e->left.expr);
+ free(tmp);
+ return e;
+ }
+ }
+ break;
+ case E_OR:
+ e->left.expr = expr_eliminate_yn(e->left.expr);
+ e->right.expr = expr_eliminate_yn(e->right.expr);
+ if (e->left.expr->type == E_SYMBOL) {
+ if (e->left.expr->left.sym == &symbol_no) {
+ free(e->left.expr);
+ tmp = e->right.expr;
+ *e = *(e->right.expr);
+ free(tmp);
+ return e;
+ } else if (e->left.expr->left.sym == &symbol_yes) {
+ expr_free(e->left.expr);
+ expr_free(e->right.expr);
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_yes;
+ e->right.expr = NULL;
+ return e;
+ }
+ }
+ if (e->right.expr->type == E_SYMBOL) {
+ if (e->right.expr->left.sym == &symbol_no) {
+ free(e->right.expr);
+ tmp = e->left.expr;
+ *e = *(e->left.expr);
+ free(tmp);
+ return e;
+ } else if (e->right.expr->left.sym == &symbol_yes) {
+ expr_free(e->left.expr);
+ expr_free(e->right.expr);
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_yes;
+ e->right.expr = NULL;
+ return e;
+ }
+ }
+ break;
+ default:
+ ;
+ }
+ return e;
+}
+
+/*
+ * bool FOO!=n => FOO
+ */
+struct expr *expr_trans_bool(struct expr *e)
+{
+ if (!e)
+ return NULL;
+ switch (e->type) {
+ case E_AND:
+ case E_OR:
+ case E_NOT:
+ e->left.expr = expr_trans_bool(e->left.expr);
+ e->right.expr = expr_trans_bool(e->right.expr);
+ break;
+ case E_UNEQUAL:
+ /* FOO!=n -> FOO */
+ if (e->left.sym->type == S_TRISTATE) {
+ if (e->right.sym == &symbol_no) {
+ e->type = E_SYMBOL;
+ e->right.sym = NULL;
+ }
+ }
+ break;
+ default:
+ ;
+ }
+ return e;
+}
+
+/*
+ * e1 || e2 -> ?
+ */
+struct expr *expr_join_or(struct expr *e1, struct expr *e2)
+{
+ struct expr *tmp;
+ struct symbol *sym1, *sym2;
+
+ if (expr_eq(e1, e2))
+ return expr_copy(e1);
+ if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT)
+ return NULL;
+ if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
+ return NULL;
+ if (e1->type == E_NOT) {
+ tmp = e1->left.expr;
+ if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL)
+ return NULL;
+ sym1 = tmp->left.sym;
+ } else
+ sym1 = e1->left.sym;
+ if (e2->type == E_NOT) {
+ if (e2->left.expr->type != E_SYMBOL)
+ return NULL;
+ sym2 = e2->left.expr->left.sym;
+ } else
+ sym2 = e2->left.sym;
+ if (sym1 != sym2)
+ return NULL;
+ if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE)
+ return NULL;
+ if (sym1->type == S_TRISTATE) {
+ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
+ (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) {
+ /* (a='y') || (a='m') -> (a!='n') */
+ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no);
+ }
+ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) {
+ /* (a='y') || (a='n') -> (a!='m') */
+ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod);
+ }
+ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
+ ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) {
+ /* (a='m') || (a='n') -> (a!='y') */
+ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
+ }
+ }
+ if (sym1->type == S_BOOLEAN && sym1 == sym2) {
+ if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) ||
+ (e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL))
+ return expr_alloc_symbol(&symbol_yes);
+ }
+
+ if (DEBUG_EXPR) {
+ printf("optimize (");
+ expr_fprint(e1, stdout);
+ printf(") || (");
+ expr_fprint(e2, stdout);
+ printf(")?\n");
+ }
+ return NULL;
+}
+
+struct expr *expr_join_and(struct expr *e1, struct expr *e2)
+{
+ struct expr *tmp;
+ struct symbol *sym1, *sym2;
+
+ if (expr_eq(e1, e2))
+ return expr_copy(e1);
+ if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != E_SYMBOL && e1->type != E_NOT)
+ return NULL;
+ if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != E_SYMBOL && e2->type != E_NOT)
+ return NULL;
+ if (e1->type == E_NOT) {
+ tmp = e1->left.expr;
+ if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type != E_SYMBOL)
+ return NULL;
+ sym1 = tmp->left.sym;
+ } else
+ sym1 = e1->left.sym;
+ if (e2->type == E_NOT) {
+ if (e2->left.expr->type != E_SYMBOL)
+ return NULL;
+ sym2 = e2->left.expr->left.sym;
+ } else
+ sym2 = e2->left.sym;
+ if (sym1 != sym2)
+ return NULL;
+ if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE)
+ return NULL;
+
+ if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
+ (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
+ /* (a) && (a='y') -> (a='y') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
+
+ if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) ||
+ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no))
+ /* (a) && (a!='n') -> (a) */
+ return expr_alloc_symbol(sym1);
+
+ if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) ||
+ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod))
+ /* (a) && (a!='m') -> (a='y') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
+
+ if (sym1->type == S_TRISTATE) {
+ if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
+ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
+ sym2 = e1->right.sym;
+ if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
+ return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
+ : expr_alloc_symbol(&symbol_no);
+ }
+ if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
+ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
+ sym2 = e2->right.sym;
+ if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
+ return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
+ : expr_alloc_symbol(&symbol_no);
+ }
+ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes)))
+ /* (a!='y') && (a!='n') -> (a='m') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod);
+
+ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
+ (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes)))
+ /* (a!='y') && (a!='m') -> (a='n') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_no);
+
+ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
+ ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod)))
+ /* (a!='m') && (a!='n') -> (a='m') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
+
+ if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
+ (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_mod) ||
+ (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_yes) ||
+ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes))
+ return NULL;
+ }
+
+ if (DEBUG_EXPR) {
+ printf("optimize (");
+ expr_fprint(e1, stdout);
+ printf(") && (");
+ expr_fprint(e2, stdout);
+ printf(")?\n");
+ }
+ return NULL;
+}
+
+static void expr_eliminate_dups1(enum expr_type type, struct expr **ep1, struct expr **ep2)
+{
+#define e1 (*ep1)
+#define e2 (*ep2)
+ struct expr *tmp;
+
+ if (e1->type == type) {
+ expr_eliminate_dups1(type, &e1->left.expr, &e2);
+ expr_eliminate_dups1(type, &e1->right.expr, &e2);
+ return;
+ }
+ if (e2->type == type) {
+ expr_eliminate_dups1(type, &e1, &e2->left.expr);
+ expr_eliminate_dups1(type, &e1, &e2->right.expr);
+ return;
+ }
+ if (e1 == e2)
+ return;
+
+ switch (e1->type) {
+ case E_OR: case E_AND:
+ expr_eliminate_dups1(e1->type, &e1, &e1);
+ default:
+ ;
+ }
+
+ switch (type) {
+ case E_OR:
+ tmp = expr_join_or(e1, e2);
+ if (tmp) {
+ expr_free(e1); expr_free(e2);
+ e1 = expr_alloc_symbol(&symbol_no);
+ e2 = tmp;
+ trans_count++;
+ }
+ break;
+ case E_AND:
+ tmp = expr_join_and(e1, e2);
+ if (tmp) {
+ expr_free(e1); expr_free(e2);
+ e1 = expr_alloc_symbol(&symbol_yes);
+ e2 = tmp;
+ trans_count++;
+ }
+ break;
+ default:
+ ;
+ }
+#undef e1
+#undef e2
+}
+
+static void expr_eliminate_dups2(enum expr_type type, struct expr **ep1, struct expr **ep2)
+{
+#define e1 (*ep1)
+#define e2 (*ep2)
+ struct expr *tmp, *tmp1, *tmp2;
+
+ if (e1->type == type) {
+ expr_eliminate_dups2(type, &e1->left.expr, &e2);
+ expr_eliminate_dups2(type, &e1->right.expr, &e2);
+ return;
+ }
+ if (e2->type == type) {
+ expr_eliminate_dups2(type, &e1, &e2->left.expr);
+ expr_eliminate_dups2(type, &e1, &e2->right.expr);
+ }
+ if (e1 == e2)
+ return;
+
+ switch (e1->type) {
+ case E_OR:
+ expr_eliminate_dups2(e1->type, &e1, &e1);
+ /* (FOO || BAR) && (!FOO && !BAR) -> n */
+ tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
+ tmp2 = expr_copy(e2);
+ tmp = expr_extract_eq_and(&tmp1, &tmp2);
+ if (expr_is_yes(tmp1)) {
+ expr_free(e1);
+ e1 = expr_alloc_symbol(&symbol_no);
+ trans_count++;
+ }
+ expr_free(tmp2);
+ expr_free(tmp1);
+ expr_free(tmp);
+ break;
+ case E_AND:
+ expr_eliminate_dups2(e1->type, &e1, &e1);
+ /* (FOO && BAR) || (!FOO || !BAR) -> y */
+ tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
+ tmp2 = expr_copy(e2);
+ tmp = expr_extract_eq_or(&tmp1, &tmp2);
+ if (expr_is_no(tmp1)) {
+ expr_free(e1);
+ e1 = expr_alloc_symbol(&symbol_yes);
+ trans_count++;
+ }
+ expr_free(tmp2);
+ expr_free(tmp1);
+ expr_free(tmp);
+ break;
+ default:
+ ;
+ }
+#undef e1
+#undef e2
+}
+
+struct expr *expr_eliminate_dups(struct expr *e)
+{
+ int oldcount;
+ if (!e)
+ return e;
+
+ oldcount = trans_count;
+ while (1) {
+ trans_count = 0;
+ switch (e->type) {
+ case E_OR: case E_AND:
+ expr_eliminate_dups1(e->type, &e, &e);
+ expr_eliminate_dups2(e->type, &e, &e);
+ default:
+ ;
+ }
+ if (!trans_count)
+ break;
+ e = expr_eliminate_yn(e);
+ }
+ trans_count = oldcount;
+ return e;
+}
+
+struct expr *expr_transform(struct expr *e)
+{
+ struct expr *tmp;
+
+ if (!e)
+ return NULL;
+ switch (e->type) {
+ case E_EQUAL:
+ case E_UNEQUAL:
+ case E_SYMBOL:
+ case E_CHOICE:
+ break;
+ default:
+ e->left.expr = expr_transform(e->left.expr);
+ e->right.expr = expr_transform(e->right.expr);
+ }
+
+ switch (e->type) {
+ case E_EQUAL:
+ if (e->left.sym->type != S_BOOLEAN)
+ break;
+ if (e->right.sym == &symbol_no) {
+ e->type = E_NOT;
+ e->left.expr = expr_alloc_symbol(e->left.sym);
+ e->right.sym = NULL;
+ break;
+ }
+ if (e->right.sym == &symbol_mod) {
+ printf("boolean symbol %s tested for 'm'? test forced to 'n'\n", e->left.sym->name);
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_no;
+ e->right.sym = NULL;
+ break;
+ }
+ if (e->right.sym == &symbol_yes) {
+ e->type = E_SYMBOL;
+ e->right.sym = NULL;
+ break;
+ }
+ break;
+ case E_UNEQUAL:
+ if (e->left.sym->type != S_BOOLEAN)
+ break;
+ if (e->right.sym == &symbol_no) {
+ e->type = E_SYMBOL;
+ e->right.sym = NULL;
+ break;
+ }
+ if (e->right.sym == &symbol_mod) {
+ printf("boolean symbol %s tested for 'm'? test forced to 'y'\n", e->left.sym->name);
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_yes;
+ e->right.sym = NULL;
+ break;
+ }
+ if (e->right.sym == &symbol_yes) {
+ e->type = E_NOT;
+ e->left.expr = expr_alloc_symbol(e->left.sym);
+ e->right.sym = NULL;
+ break;
+ }
+ break;
+ case E_NOT:
+ switch (e->left.expr->type) {
+ case E_NOT:
+ /* !!a -> a */
+ tmp = e->left.expr->left.expr;
+ free(e->left.expr);
+ free(e);
+ e = tmp;
+ e = expr_transform(e);
+ break;
+ case E_EQUAL:
+ case E_UNEQUAL:
+ /* !a='x' -> a!='x' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+ e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL;
+ break;
+ case E_OR:
+ /* !(a || b) -> !a && !b */
+ tmp = e->left.expr;
+ e->type = E_AND;
+ e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
+ tmp->type = E_NOT;
+ tmp->right.expr = NULL;
+ e = expr_transform(e);
+ break;
+ case E_AND:
+ /* !(a && b) -> !a || !b */
+ tmp = e->left.expr;
+ e->type = E_OR;
+ e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
+ tmp->type = E_NOT;
+ tmp->right.expr = NULL;
+ e = expr_transform(e);
+ break;
+ case E_SYMBOL:
+ if (e->left.expr->left.sym == &symbol_yes) {
+ /* !'y' -> 'n' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_no;
+ break;
+ }
+ if (e->left.expr->left.sym == &symbol_mod) {
+ /* !'m' -> 'm' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_mod;
+ break;
+ }
+ if (e->left.expr->left.sym == &symbol_no) {
+ /* !'n' -> 'y' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+ e->type = E_SYMBOL;
+ e->left.sym = &symbol_yes;
+ break;
+ }
+ break;
+ default:
+ ;
+ }
+ break;
+ default:
+ ;
+ }
+ return e;
+}
+
+int expr_contains_symbol(struct expr *dep, struct symbol *sym)
+{
+ if (!dep)
+ return 0;
+
+ switch (dep->type) {
+ case E_AND:
+ case E_OR:
+ return expr_contains_symbol(dep->left.expr, sym) ||
+ expr_contains_symbol(dep->right.expr, sym);
+ case E_SYMBOL:
+ return dep->left.sym == sym;
+ case E_EQUAL:
+ case E_UNEQUAL:
+ return dep->left.sym == sym ||
+ dep->right.sym == sym;
+ case E_NOT:
+ return expr_contains_symbol(dep->left.expr, sym);
+ default:
+ ;
+ }
+ return 0;
+}
+
+bool expr_depends_symbol(struct expr *dep, struct symbol *sym)
+{
+ if (!dep)
+ return false;
+
+ switch (dep->type) {
+ case E_AND:
+ return expr_depends_symbol(dep->left.expr, sym) ||
+ expr_depends_symbol(dep->right.expr, sym);
+ case E_SYMBOL:
+ return dep->left.sym == sym;
+ case E_EQUAL:
+ if (dep->left.sym == sym) {
+ if (dep->right.sym == &symbol_yes || dep->right.sym == &symbol_mod)
+ return true;
+ }
+ break;
+ case E_UNEQUAL:
+ if (dep->left.sym == sym) {
+ if (dep->right.sym == &symbol_no)
+ return true;
+ }
+ break;
+ default:
+ ;
+ }
+ return false;
+}
+
+struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2)
+{
+ struct expr *tmp = NULL;
+ expr_extract_eq(E_AND, &tmp, ep1, ep2);
+ if (tmp) {
+ *ep1 = expr_eliminate_yn(*ep1);
+ *ep2 = expr_eliminate_yn(*ep2);
+ }
+ return tmp;
+}
+
+struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2)
+{
+ struct expr *tmp = NULL;
+ expr_extract_eq(E_OR, &tmp, ep1, ep2);
+ if (tmp) {
+ *ep1 = expr_eliminate_yn(*ep1);
+ *ep2 = expr_eliminate_yn(*ep2);
+ }
+ return tmp;
+}
+
+void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2)
+{
+#define e1 (*ep1)
+#define e2 (*ep2)
+ if (e1->type == type) {
+ expr_extract_eq(type, ep, &e1->left.expr, &e2);
+ expr_extract_eq(type, ep, &e1->right.expr, &e2);
+ return;
+ }
+ if (e2->type == type) {
+ expr_extract_eq(type, ep, ep1, &e2->left.expr);
+ expr_extract_eq(type, ep, ep1, &e2->right.expr);
+ return;
+ }
+ if (expr_eq(e1, e2)) {
+ *ep = *ep ? expr_alloc_two(type, *ep, e1) : e1;
+ expr_free(e2);
+ if (type == E_AND) {
+ e1 = expr_alloc_symbol(&symbol_yes);
+ e2 = expr_alloc_symbol(&symbol_yes);
+ } else if (type == E_OR) {
+ e1 = expr_alloc_symbol(&symbol_no);
+ e2 = expr_alloc_symbol(&symbol_no);
+ }
+ }
+#undef e1
+#undef e2
+}
+
+struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym)
+{
+ struct expr *e1, *e2;
+
+ if (!e) {
+ e = expr_alloc_symbol(sym);
+ if (type == E_UNEQUAL)
+ e = expr_alloc_one(E_NOT, e);
+ return e;
+ }
+ switch (e->type) {
+ case E_AND:
+ e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
+ e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
+ if (sym == &symbol_yes)
+ e = expr_alloc_two(E_AND, e1, e2);
+ if (sym == &symbol_no)
+ e = expr_alloc_two(E_OR, e1, e2);
+ if (type == E_UNEQUAL)
+ e = expr_alloc_one(E_NOT, e);
+ return e;
+ case E_OR:
+ e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
+ e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
+ if (sym == &symbol_yes)
+ e = expr_alloc_two(E_OR, e1, e2);
+ if (sym == &symbol_no)
+ e = expr_alloc_two(E_AND, e1, e2);
+ if (type == E_UNEQUAL)
+ e = expr_alloc_one(E_NOT, e);
+ return e;
+ case E_NOT:
+ return expr_trans_compare(e->left.expr, type == E_EQUAL ? E_UNEQUAL : E_EQUAL, sym);
+ case E_UNEQUAL:
+ case E_EQUAL:
+ if (type == E_EQUAL) {
+ if (sym == &symbol_yes)
+ return expr_copy(e);
+ if (sym == &symbol_mod)
+ return expr_alloc_symbol(&symbol_no);
+ if (sym == &symbol_no)
+ return expr_alloc_one(E_NOT, expr_copy(e));
+ } else {
+ if (sym == &symbol_yes)
+ return expr_alloc_one(E_NOT, expr_copy(e));
+ if (sym == &symbol_mod)
+ return expr_alloc_symbol(&symbol_yes);
+ if (sym == &symbol_no)
+ return expr_copy(e);
+ }
+ break;
+ case E_SYMBOL:
+ return expr_alloc_comp(type, e->left.sym, sym);
+ case E_CHOICE:
+ case E_RANGE:
+ case E_NONE:
+ /* panic */;
+ }
+ return NULL;
+}
+
+tristate expr_calc_value(struct expr *e)
+{
+ tristate val1, val2;
+ const char *str1, *str2;
+
+ if (!e)
+ return yes;
+
+ switch (e->type) {
+ case E_SYMBOL:
+ sym_calc_value(e->left.sym);
+ return e->left.sym->curr.tri;
+ case E_AND:
+ val1 = expr_calc_value(e->left.expr);
+ val2 = expr_calc_value(e->right.expr);
+ return E_AND(val1, val2);
+ case E_OR:
+ val1 = expr_calc_value(e->left.expr);
+ val2 = expr_calc_value(e->right.expr);
+ return E_OR(val1, val2);
+ case E_NOT:
+ val1 = expr_calc_value(e->left.expr);
+ return E_NOT(val1);
+ case E_EQUAL:
+ sym_calc_value(e->left.sym);
+ sym_calc_value(e->right.sym);
+ str1 = sym_get_string_value(e->left.sym);
+ str2 = sym_get_string_value(e->right.sym);
+ return !strcmp(str1, str2) ? yes : no;
+ case E_UNEQUAL:
+ sym_calc_value(e->left.sym);
+ sym_calc_value(e->right.sym);
+ str1 = sym_get_string_value(e->left.sym);
+ str2 = sym_get_string_value(e->right.sym);
+ return !strcmp(str1, str2) ? no : yes;
+ default:
+ printf("expr_calc_value: %d?\n", e->type);
+ return no;
+ }
+}
+
+int expr_compare_type(enum expr_type t1, enum expr_type t2)
+{
+#if 0
+ return 1;
+#else
+ if (t1 == t2)
+ return 0;
+ switch (t1) {
+ case E_EQUAL:
+ case E_UNEQUAL:
+ if (t2 == E_NOT)
+ return 1;
+ case E_NOT:
+ if (t2 == E_AND)
+ return 1;
+ case E_AND:
+ if (t2 == E_OR)
+ return 1;
+ case E_OR:
+ if (t2 == E_CHOICE)
+ return 1;
+ case E_CHOICE:
+ if (t2 == 0)
+ return 1;
+ default:
+ return -1;
+ }
+ printf("[%dgt%d?]", t1, t2);
+ return 0;
+#endif
+}
+
+void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken)
+{
+ if (!e) {
+ fn(data, NULL, "y");
+ return;
+ }
+
+ if (expr_compare_type(prevtoken, e->type) > 0)
+ fn(data, NULL, "(");
+ switch (e->type) {
+ case E_SYMBOL:
+ if (e->left.sym->name)
+ fn(data, e->left.sym, e->left.sym->name);
+ else
+ fn(data, NULL, "<choice>");
+ break;
+ case E_NOT:
+ fn(data, NULL, "!");
+ expr_print(e->left.expr, fn, data, E_NOT);
+ break;
+ case E_EQUAL:
+ fn(data, e->left.sym, e->left.sym->name);
+ fn(data, NULL, "=");
+ fn(data, e->right.sym, e->right.sym->name);
+ break;
+ case E_UNEQUAL:
+ fn(data, e->left.sym, e->left.sym->name);
+ fn(data, NULL, "!=");
+ fn(data, e->right.sym, e->right.sym->name);
+ break;
+ case E_OR:
+ expr_print(e->left.expr, fn, data, E_OR);
+ fn(data, NULL, " || ");
+ expr_print(e->right.expr, fn, data, E_OR);
+ break;
+ case E_AND:
+ expr_print(e->left.expr, fn, data, E_AND);
+ fn(data, NULL, " && ");
+ expr_print(e->right.expr, fn, data, E_AND);
+ break;
+ case E_CHOICE:
+ fn(data, e->right.sym, e->right.sym->name);
+ if (e->left.expr) {
+ fn(data, NULL, " ^ ");
+ expr_print(e->left.expr, fn, data, E_CHOICE);
+ }
+ break;
+ case E_RANGE:
+ fn(data, NULL, "[");
+ fn(data, e->left.sym, e->left.sym->name);
+ fn(data, NULL, " ");
+ fn(data, e->right.sym, e->right.sym->name);
+ fn(data, NULL, "]");
+ break;
+ default:
+ {
+ char buf[32];
+ sprintf(buf, "<unknown type %d>", e->type);
+ fn(data, NULL, buf);
+ break;
+ }
+ }
+ if (expr_compare_type(prevtoken, e->type) > 0)
+ fn(data, NULL, ")");
+}
+
+static void expr_print_file_helper(void *data, struct symbol *sym, const char *str)
+{
+ fwrite(str, strlen(str), 1, data);
+}
+
+void expr_fprint(struct expr *e, FILE *out)
+{
+ expr_print(e, expr_print_file_helper, out, E_NONE);
+}
+
+static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str)
+{
+ str_append((struct gstr*)data, str);
+}
+
+void expr_gstr_print(struct expr *e, struct gstr *gs)
+{
+ expr_print(e, expr_print_gstr_helper, gs, E_NONE);
+}
diff --git a/cleopatre/buildroot/package/config/expr.h b/cleopatre/buildroot/package/config/expr.h
new file mode 100644
index 0000000000..807e6f0440
--- /dev/null
+++ b/cleopatre/buildroot/package/config/expr.h
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#ifndef EXPR_H
+#define EXPR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+#ifndef __cplusplus
+#include <stdbool.h>
+#endif
+
+struct file {
+ struct file *next;
+ struct file *parent;
+ char *name;
+ int lineno;
+ int flags;
+};
+
+#define FILE_BUSY 0x0001
+#define FILE_SCANNED 0x0002
+#define FILE_PRINTED 0x0004
+
+typedef enum tristate {
+ no, mod, yes
+} tristate;
+
+enum expr_type {
+ E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, E_RANGE
+};
+
+union expr_data {
+ struct expr *expr;
+ struct symbol *sym;
+};
+
+struct expr {
+ enum expr_type type;
+ union expr_data left, right;
+};
+
+#define E_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
+#define E_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
+#define E_NOT(dep) (2-(dep))
+
+struct expr_value {
+ struct expr *expr;
+ tristate tri;
+};
+
+struct symbol_value {
+ void *val;
+ tristate tri;
+};
+
+enum symbol_type {
+ S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER
+};
+
+enum {
+ S_DEF_USER, /* main user value */
+ S_DEF_AUTO
+};
+
+struct symbol {
+ struct symbol *next;
+ char *name;
+ enum symbol_type type;
+ struct symbol_value curr;
+ struct symbol_value def[4];
+ tristate visible;
+ int flags;
+ struct property *prop;
+ struct expr_value rev_dep;
+};
+
+#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
+
+#define SYMBOL_CONST 0x0001
+#define SYMBOL_CHECK 0x0008
+#define SYMBOL_CHOICE 0x0010
+#define SYMBOL_CHOICEVAL 0x0020
+#define SYMBOL_PRINTED 0x0040
+#define SYMBOL_VALID 0x0080
+#define SYMBOL_OPTIONAL 0x0100
+#define SYMBOL_WRITE 0x0200
+#define SYMBOL_CHANGED 0x0400
+#define SYMBOL_AUTO 0x1000
+#define SYMBOL_CHECKED 0x2000
+#define SYMBOL_WARNED 0x8000
+#define SYMBOL_DEF 0x10000
+#define SYMBOL_DEF_USER 0x10000
+#define SYMBOL_DEF_AUTO 0x20000
+#define SYMBOL_DEF3 0x40000
+#define SYMBOL_DEF4 0x80000
+
+#define SYMBOL_MAXLENGTH 256
+#define SYMBOL_HASHSIZE 257
+#define SYMBOL_HASHMASK 0xff
+
+enum prop_type {
+ P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
+};
+
+struct property {
+ struct property *next;
+ struct symbol *sym;
+ enum prop_type type;
+ const char *text;
+ struct expr_value visible;
+ struct expr *expr;
+ struct menu *menu;
+ struct file *file;
+ int lineno;
+};
+
+#define for_all_properties(sym, st, tok) \
+ for (st = sym->prop; st; st = st->next) \
+ if (st->type == (tok))
+#define for_all_defaults(sym, st) for_all_properties(sym, st, P_DEFAULT)
+#define for_all_choices(sym, st) for_all_properties(sym, st, P_CHOICE)
+#define for_all_prompts(sym, st) \
+ for (st = sym->prop; st; st = st->next) \
+ if (st->text)
+
+struct menu {
+ struct menu *next;
+ struct menu *parent;
+ struct menu *list;
+ struct symbol *sym;
+ struct property *prompt;
+ struct expr *dep;
+ unsigned int flags;
+ char *help;
+ struct file *file;
+ int lineno;
+ void *data;
+};
+
+#define MENU_CHANGED 0x0001
+#define MENU_ROOT 0x0002
+
+#ifndef SWIG
+
+extern struct file *file_list;
+extern struct file *current_file;
+struct file *lookup_file(const char *name);
+
+extern struct symbol symbol_yes, symbol_no, symbol_mod;
+extern struct symbol *modules_sym;
+extern struct symbol *sym_defconfig_list;
+extern int cdebug;
+struct expr *expr_alloc_symbol(struct symbol *sym);
+struct expr *expr_alloc_one(enum expr_type type, struct expr *ce);
+struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2);
+struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2);
+struct expr *expr_alloc_and(struct expr *e1, struct expr *e2);
+struct expr *expr_alloc_or(struct expr *e1, struct expr *e2);
+struct expr *expr_copy(struct expr *org);
+void expr_free(struct expr *e);
+int expr_eq(struct expr *e1, struct expr *e2);
+void expr_eliminate_eq(struct expr **ep1, struct expr **ep2);
+tristate expr_calc_value(struct expr *e);
+struct expr *expr_eliminate_yn(struct expr *e);
+struct expr *expr_trans_bool(struct expr *e);
+struct expr *expr_eliminate_dups(struct expr *e);
+struct expr *expr_transform(struct expr *e);
+int expr_contains_symbol(struct expr *dep, struct symbol *sym);
+bool expr_depends_symbol(struct expr *dep, struct symbol *sym);
+struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2);
+struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2);
+void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2);
+struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym);
+
+void expr_fprint(struct expr *e, FILE *out);
+struct gstr; /* forward */
+void expr_gstr_print(struct expr *e, struct gstr *gs);
+
+static inline int expr_is_yes(struct expr *e)
+{
+ return !e || (e->type == E_SYMBOL && e->left.sym == &symbol_yes);
+}
+
+static inline int expr_is_no(struct expr *e)
+{
+ return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no);
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* EXPR_H */
diff --git a/cleopatre/buildroot/package/config/foo.h b/cleopatre/buildroot/package/config/foo.h
new file mode 100644
index 0000000000..b9cfdf8312
--- /dev/null
+++ b/cleopatre/buildroot/package/config/foo.h
@@ -0,0 +1,12 @@
+#ifndef __KCONFIG_FOO_H
+#define __KCONFIG_FOO_H
+
+#ifndef __APPLE__
+#include <features.h>
+#endif
+#include <limits.h>
+
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+#endif /* __KCONFIG_FOO_H */
diff --git a/cleopatre/buildroot/package/config/gconf.c b/cleopatre/buildroot/package/config/gconf.c
new file mode 100644
index 0000000000..afbddec65d
--- /dev/null
+++ b/cleopatre/buildroot/package/config/gconf.c
@@ -0,0 +1,1630 @@
+/* Hey EMACS -*- linux-c -*- */
+/*
+ *
+ * Copyright (C) 2002-2003 Romain Lievin <roms@tilp.info>
+ * Released under the terms of the GNU GPL v2.0.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "lkc.h"
+#include "images.c"
+
+#include <glade/glade.h>
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <gdk/gdkkeysyms.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <stdlib.h>
+
+//#define DEBUG
+
+enum {
+ SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
+};
+
+static gint view_mode = FULL_VIEW;
+static gboolean show_name = TRUE;
+static gboolean show_range = TRUE;
+static gboolean show_value = TRUE;
+static gboolean show_all = FALSE;
+static gboolean show_debug = FALSE;
+static gboolean resizeable = FALSE;
+
+GtkWidget *main_wnd = NULL;
+GtkWidget *tree1_w = NULL; // left frame
+GtkWidget *tree2_w = NULL; // right frame
+GtkWidget *text_w = NULL;
+GtkWidget *hpaned = NULL;
+GtkWidget *vpaned = NULL;
+GtkWidget *back_btn = NULL;
+GtkWidget *save_btn = NULL;
+GtkWidget *save_menu_item = NULL;
+
+GtkTextTag *tag1, *tag2;
+GdkColor color;
+
+GtkTreeStore *tree1, *tree2, *tree;
+GtkTreeModel *model1, *model2;
+static GtkTreeIter *parents[256];
+static gint indent;
+
+static struct menu *current; // current node for SINGLE view
+static struct menu *browsed; // browsed node for SPLIT view
+
+enum {
+ COL_OPTION, COL_NAME, COL_NO, COL_MOD, COL_YES, COL_VALUE,
+ COL_MENU, COL_COLOR, COL_EDIT, COL_PIXBUF,
+ COL_PIXVIS, COL_BTNVIS, COL_BTNACT, COL_BTNINC, COL_BTNRAD,
+ COL_NUMBER
+};
+
+static void display_list(void);
+static void display_tree(struct menu *menu);
+static void display_tree_part(void);
+static void update_tree(struct menu *src, GtkTreeIter * dst);
+static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row);
+static gchar **fill_row(struct menu *menu);
+static void conf_changed(void);
+
+/* Helping/Debugging Functions */
+
+
+const char *dbg_print_stype(int val)
+{
+ static char buf[256];
+
+ bzero(buf, 256);
+
+ if (val == S_UNKNOWN)
+ strcpy(buf, "unknown");
+ if (val == S_BOOLEAN)
+ strcpy(buf, "boolean");
+ if (val == S_TRISTATE)
+ strcpy(buf, "tristate");
+ if (val == S_INT)
+ strcpy(buf, "int");
+ if (val == S_HEX)
+ strcpy(buf, "hex");
+ if (val == S_STRING)
+ strcpy(buf, "string");
+ if (val == S_OTHER)
+ strcpy(buf, "other");
+
+#ifdef DEBUG
+ printf("%s", buf);
+#endif
+
+ return buf;
+}
+
+const char *dbg_print_flags(int val)
+{
+ static char buf[256];
+
+ bzero(buf, 256);
+
+ if (val & SYMBOL_CONST)
+ strcat(buf, "const/");
+ if (val & SYMBOL_CHECK)
+ strcat(buf, "check/");
+ if (val & SYMBOL_CHOICE)
+ strcat(buf, "choice/");
+ if (val & SYMBOL_CHOICEVAL)
+ strcat(buf, "choiceval/");
+ if (val & SYMBOL_PRINTED)
+ strcat(buf, "printed/");
+ if (val & SYMBOL_VALID)
+ strcat(buf, "valid/");
+ if (val & SYMBOL_OPTIONAL)
+ strcat(buf, "optional/");
+ if (val & SYMBOL_WRITE)
+ strcat(buf, "write/");
+ if (val & SYMBOL_CHANGED)
+ strcat(buf, "changed/");
+ if (val & SYMBOL_AUTO)
+ strcat(buf, "auto/");
+
+ buf[strlen(buf) - 1] = '\0';
+#ifdef DEBUG
+ printf("%s", buf);
+#endif
+
+ return buf;
+}
+
+const char *dbg_print_ptype(int val)
+{
+ static char buf[256];
+
+ bzero(buf, 256);
+
+ if (val == P_UNKNOWN)
+ strcpy(buf, "unknown");
+ if (val == P_PROMPT)
+ strcpy(buf, "prompt");
+ if (val == P_COMMENT)
+ strcpy(buf, "comment");
+ if (val == P_MENU)
+ strcpy(buf, "menu");
+ if (val == P_DEFAULT)
+ strcpy(buf, "default");
+ if (val == P_CHOICE)
+ strcpy(buf, "choice");
+
+#ifdef DEBUG
+ printf("%s", buf);
+#endif
+
+ return buf;
+}
+
+
+void replace_button_icon(GladeXML * xml, GdkDrawable * window,
+ GtkStyle * style, gchar * btn_name, gchar ** xpm)
+{
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+ GtkToolButton *button;
+ GtkWidget *image;
+
+ pixmap = gdk_pixmap_create_from_xpm_d(window, &mask,
+ &style->bg[GTK_STATE_NORMAL],
+ xpm);
+
+ button = GTK_TOOL_BUTTON(glade_xml_get_widget(xml, btn_name));
+ image = gtk_image_new_from_pixmap(pixmap, mask);
+ gtk_widget_show(image);
+ gtk_tool_button_set_icon_widget(button, image);
+}
+
+/* Main Window Initialization */
+void init_main_window(const gchar * glade_file)
+{
+ GladeXML *xml;
+ GtkWidget *widget;
+ GtkTextBuffer *txtbuf;
+ char title[256];
+ GtkStyle *style;
+
+ xml = glade_xml_new(glade_file, "window1", NULL);
+ if (!xml)
+ g_error(_("GUI loading failed !\n"));
+ glade_xml_signal_autoconnect(xml);
+
+ main_wnd = glade_xml_get_widget(xml, "window1");
+ hpaned = glade_xml_get_widget(xml, "hpaned1");
+ vpaned = glade_xml_get_widget(xml, "vpaned1");
+ tree1_w = glade_xml_get_widget(xml, "treeview1");
+ tree2_w = glade_xml_get_widget(xml, "treeview2");
+ text_w = glade_xml_get_widget(xml, "textview3");
+
+ back_btn = glade_xml_get_widget(xml, "button1");
+ gtk_widget_set_sensitive(back_btn, FALSE);
+
+ widget = glade_xml_get_widget(xml, "show_name1");
+ gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
+ show_name);
+
+ widget = glade_xml_get_widget(xml, "show_range1");
+ gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
+ show_range);
+
+ widget = glade_xml_get_widget(xml, "show_data1");
+ gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
+ show_value);
+
+ save_btn = glade_xml_get_widget(xml, "button3");
+ save_menu_item = glade_xml_get_widget(xml, "save1");
+ conf_set_changed_callback(conf_changed);
+
+ style = gtk_widget_get_style(main_wnd);
+ widget = glade_xml_get_widget(xml, "toolbar1");
+
+#if 0 /* Use stock Gtk icons instead */
+ replace_button_icon(xml, main_wnd->window, style,
+ "button1", (gchar **) xpm_back);
+ replace_button_icon(xml, main_wnd->window, style,
+ "button2", (gchar **) xpm_load);
+ replace_button_icon(xml, main_wnd->window, style,
+ "button3", (gchar **) xpm_save);
+#endif
+ replace_button_icon(xml, main_wnd->window, style,
+ "button4", (gchar **) xpm_single_view);
+ replace_button_icon(xml, main_wnd->window, style,
+ "button5", (gchar **) xpm_split_view);
+ replace_button_icon(xml, main_wnd->window, style,
+ "button6", (gchar **) xpm_tree_view);
+
+#if 0
+ switch (view_mode) {
+ case SINGLE_VIEW:
+ widget = glade_xml_get_widget(xml, "button4");
+ g_signal_emit_by_name(widget, "clicked");
+ break;
+ case SPLIT_VIEW:
+ widget = glade_xml_get_widget(xml, "button5");
+ g_signal_emit_by_name(widget, "clicked");
+ break;
+ case FULL_VIEW:
+ widget = glade_xml_get_widget(xml, "button6");
+ g_signal_emit_by_name(widget, "clicked");
+ break;
+ }
+#endif
+ txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
+ tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1",
+ "foreground", "red",
+ "weight", PANGO_WEIGHT_BOLD,
+ NULL);
+ tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2",
+ /*"style", PANGO_STYLE_OBLIQUE, */
+ NULL);
+
+ sprintf(title, _("Buildroot v%s Configuration"),
+ getenv("BR2_VERSION"));
+ gtk_window_set_title(GTK_WINDOW(main_wnd), title);
+
+ gtk_widget_show(main_wnd);
+}
+
+void init_tree_model(void)
+{
+ gint i;
+
+ tree = tree2 = gtk_tree_store_new(COL_NUMBER,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_POINTER, GDK_TYPE_COLOR,
+ G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
+ G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN);
+ model2 = GTK_TREE_MODEL(tree2);
+
+ for (parents[0] = NULL, i = 1; i < 256; i++)
+ parents[i] = (GtkTreeIter *) g_malloc(sizeof(GtkTreeIter));
+
+ tree1 = gtk_tree_store_new(COL_NUMBER,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_POINTER, GDK_TYPE_COLOR,
+ G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
+ G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN);
+ model1 = GTK_TREE_MODEL(tree1);
+}
+
+void init_left_tree(void)
+{
+ GtkTreeView *view = GTK_TREE_VIEW(tree1_w);
+ GtkCellRenderer *renderer;
+ GtkTreeSelection *sel;
+ GtkTreeViewColumn *column;
+
+ gtk_tree_view_set_model(view, model1);
+ gtk_tree_view_set_headers_visible(view, TRUE);
+ gtk_tree_view_set_rules_hint(view, FALSE);
+
+ column = gtk_tree_view_column_new();
+ gtk_tree_view_append_column(view, column);
+ gtk_tree_view_column_set_title(column, _("Options"));
+
+ renderer = gtk_cell_renderer_toggle_new();
+ gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+ renderer, FALSE);
+ gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+ renderer,
+ "active", COL_BTNACT,
+ "inconsistent", COL_BTNINC,
+ "visible", COL_BTNVIS,
+ "radio", COL_BTNRAD, NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+ renderer, FALSE);
+ gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+ renderer,
+ "text", COL_OPTION,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+
+ sel = gtk_tree_view_get_selection(view);
+ gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
+ gtk_widget_realize(tree1_w);
+}
+
+static void renderer_edited(GtkCellRendererText * cell,
+ const gchar * path_string,
+ const gchar * new_text, gpointer user_data);
+static void renderer_toggled(GtkCellRendererToggle * cellrenderertoggle,
+ gchar * arg1, gpointer user_data);
+
+void init_right_tree(void)
+{
+ GtkTreeView *view = GTK_TREE_VIEW(tree2_w);
+ GtkCellRenderer *renderer;
+ GtkTreeSelection *sel;
+ GtkTreeViewColumn *column;
+ gint i;
+
+ gtk_tree_view_set_model(view, model2);
+ gtk_tree_view_set_headers_visible(view, TRUE);
+ gtk_tree_view_set_rules_hint(view, FALSE);
+
+ column = gtk_tree_view_column_new();
+ gtk_tree_view_append_column(view, column);
+ gtk_tree_view_column_set_title(column, _("Options"));
+
+ renderer = gtk_cell_renderer_pixbuf_new();
+ gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+ renderer, FALSE);
+ gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+ renderer,
+ "pixbuf", COL_PIXBUF,
+ "visible", COL_PIXVIS, NULL);
+ renderer = gtk_cell_renderer_toggle_new();
+ gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+ renderer, FALSE);
+ gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+ renderer,
+ "active", COL_BTNACT,
+ "inconsistent", COL_BTNINC,
+ "visible", COL_BTNVIS,
+ "radio", COL_BTNRAD, NULL);
+ /*g_signal_connect(G_OBJECT(renderer), "toggled",
+ G_CALLBACK(renderer_toggled), NULL); */
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+ renderer, FALSE);
+ gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+ renderer,
+ "text", COL_OPTION,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes(view, -1,
+ _("Name"), renderer,
+ "text", COL_NAME,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes(view, -1,
+ "N", renderer,
+ "text", COL_NO,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes(view, -1,
+ "M", renderer,
+ "text", COL_MOD,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes(view, -1,
+ "Y", renderer,
+ "text", COL_YES,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_insert_column_with_attributes(view, -1,
+ _("Value"), renderer,
+ "text", COL_VALUE,
+ "editable",
+ COL_EDIT,
+ "foreground-gdk",
+ COL_COLOR, NULL);
+ g_signal_connect(G_OBJECT(renderer), "edited",
+ G_CALLBACK(renderer_edited), NULL);
+
+ column = gtk_tree_view_get_column(view, COL_NAME);
+ gtk_tree_view_column_set_visible(column, show_name);
+ column = gtk_tree_view_get_column(view, COL_NO);
+ gtk_tree_view_column_set_visible(column, show_range);
+ column = gtk_tree_view_get_column(view, COL_MOD);
+ gtk_tree_view_column_set_visible(column, show_range);
+ column = gtk_tree_view_get_column(view, COL_YES);
+ gtk_tree_view_column_set_visible(column, show_range);
+ column = gtk_tree_view_get_column(view, COL_VALUE);
+ gtk_tree_view_column_set_visible(column, show_value);
+
+ if (resizeable) {
+ for (i = 0; i < COL_VALUE; i++) {
+ column = gtk_tree_view_get_column(view, i);
+ gtk_tree_view_column_set_resizable(column, TRUE);
+ }
+ }
+
+ sel = gtk_tree_view_get_selection(view);
+ gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
+}
+
+
+/* Utility Functions */
+
+
+static void text_insert_help(struct menu *menu)
+{
+ GtkTextBuffer *buffer;
+ GtkTextIter start, end;
+ const char *prompt = menu_get_prompt(menu);
+ gchar *name;
+ const char *help;
+
+ help = _(menu_get_help(menu));
+
+ if (menu->sym && menu->sym->name)
+ name = g_strdup_printf(_(menu->sym->name));
+ else
+ name = g_strdup("");
+
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
+ gtk_text_buffer_get_bounds(buffer, &start, &end);
+ gtk_text_buffer_delete(buffer, &start, &end);
+ gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
+
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1,
+ NULL);
+ gtk_text_buffer_insert_at_cursor(buffer, " ", 1);
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ gtk_text_buffer_insert_with_tags(buffer, &end, name, -1, tag1,
+ NULL);
+ gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2,
+ NULL);
+}
+
+
+static void text_insert_msg(const char *title, const char *message)
+{
+ GtkTextBuffer *buffer;
+ GtkTextIter start, end;
+ const char *msg = message;
+
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
+ gtk_text_buffer_get_bounds(buffer, &start, &end);
+ gtk_text_buffer_delete(buffer, &start, &end);
+ gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
+
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ gtk_text_buffer_insert_with_tags(buffer, &end, title, -1, tag1,
+ NULL);
+ gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ gtk_text_buffer_insert_with_tags(buffer, &end, msg, -1, tag2,
+ NULL);
+}
+
+
+/* Main Windows Callbacks */
+
+void on_save_activate(GtkMenuItem * menuitem, gpointer user_data);
+gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
+ gpointer user_data)
+{
+ GtkWidget *dialog, *label;
+ gint result;
+
+ if (!conf_get_changed())
+ return FALSE;
+
+ dialog = gtk_dialog_new_with_buttons(_("Warning !"),
+ GTK_WINDOW(main_wnd),
+ (GtkDialogFlags)
+ (GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT),
+ GTK_STOCK_OK,
+ GTK_RESPONSE_YES,
+ GTK_STOCK_NO,
+ GTK_RESPONSE_NO,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL, NULL);
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog),
+ GTK_RESPONSE_CANCEL);
+
+ label = gtk_label_new(_("\nSave configuration ?\n"));
+ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+ gtk_widget_show(label);
+
+ result = gtk_dialog_run(GTK_DIALOG(dialog));
+ switch (result) {
+ case GTK_RESPONSE_YES:
+ on_save_activate(NULL, NULL);
+ return FALSE;
+ case GTK_RESPONSE_NO:
+ return FALSE;
+ case GTK_RESPONSE_CANCEL:
+ case GTK_RESPONSE_DELETE_EVENT:
+ default:
+ gtk_widget_destroy(dialog);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+void on_window1_destroy(GtkObject * object, gpointer user_data)
+{
+ gtk_main_quit();
+}
+
+
+void
+on_window1_size_request(GtkWidget * widget,
+ GtkRequisition * requisition, gpointer user_data)
+{
+ static gint old_h;
+ gint w, h;
+
+ if (widget->window == NULL)
+ gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
+ else
+ gdk_window_get_size(widget->window, &w, &h);
+
+ if (h == old_h)
+ return;
+ old_h = h;
+
+ gtk_paned_set_position(GTK_PANED(vpaned), 2 * h / 3);
+}
+
+
+/* Menu & Toolbar Callbacks */
+
+
+static void
+load_filename(GtkFileSelection * file_selector, gpointer user_data)
+{
+ const gchar *fn;
+
+ fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
+ (user_data));
+
+ if (conf_read(fn))
+ text_insert_msg(_("Error"), _("Unable to load configuration !"));
+ else
+ display_tree(&rootmenu);
+}
+
+void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkWidget *fs;
+
+ fs = gtk_file_selection_new(_("Load file..."));
+ g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
+ "clicked",
+ G_CALLBACK(load_filename), (gpointer) fs);
+ g_signal_connect_swapped(GTK_OBJECT
+ (GTK_FILE_SELECTION(fs)->ok_button),
+ "clicked", G_CALLBACK(gtk_widget_destroy),
+ (gpointer) fs);
+ g_signal_connect_swapped(GTK_OBJECT
+ (GTK_FILE_SELECTION(fs)->cancel_button),
+ "clicked", G_CALLBACK(gtk_widget_destroy),
+ (gpointer) fs);
+ gtk_widget_show(fs);
+}
+
+
+void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ if (conf_write(NULL))
+ text_insert_msg(_("Error"), _("Unable to save configuration !"));
+}
+
+
+static void
+store_filename(GtkFileSelection * file_selector, gpointer user_data)
+{
+ const gchar *fn;
+
+ fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
+ (user_data));
+
+ if (conf_write(fn))
+ text_insert_msg(_("Error"), _("Unable to save configuration !"));
+
+ gtk_widget_destroy(GTK_WIDGET(user_data));
+}
+
+void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkWidget *fs;
+
+ fs = gtk_file_selection_new(_("Save file as..."));
+ g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
+ "clicked",
+ G_CALLBACK(store_filename), (gpointer) fs);
+ g_signal_connect_swapped(GTK_OBJECT
+ (GTK_FILE_SELECTION(fs)->ok_button),
+ "clicked", G_CALLBACK(gtk_widget_destroy),
+ (gpointer) fs);
+ g_signal_connect_swapped(GTK_OBJECT
+ (GTK_FILE_SELECTION(fs)->cancel_button),
+ "clicked", G_CALLBACK(gtk_widget_destroy),
+ (gpointer) fs);
+ gtk_widget_show(fs);
+}
+
+
+void on_quit1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ if (!on_window1_delete_event(NULL, NULL, NULL))
+ gtk_widget_destroy(GTK_WIDGET(main_wnd));
+}
+
+
+void on_show_name1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkTreeViewColumn *col;
+
+ show_name = GTK_CHECK_MENU_ITEM(menuitem)->active;
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NAME);
+ if (col)
+ gtk_tree_view_column_set_visible(col, show_name);
+}
+
+
+void on_show_range1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkTreeViewColumn *col;
+
+ show_range = GTK_CHECK_MENU_ITEM(menuitem)->active;
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NO);
+ if (col)
+ gtk_tree_view_column_set_visible(col, show_range);
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_MOD);
+ if (col)
+ gtk_tree_view_column_set_visible(col, show_range);
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_YES);
+ if (col)
+ gtk_tree_view_column_set_visible(col, show_range);
+
+}
+
+
+void on_show_data1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkTreeViewColumn *col;
+
+ show_value = GTK_CHECK_MENU_ITEM(menuitem)->active;
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_VALUE);
+ if (col)
+ gtk_tree_view_column_set_visible(col, show_value);
+}
+
+
+void
+on_show_all_options1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ show_all = GTK_CHECK_MENU_ITEM(menuitem)->active;
+
+ gtk_tree_store_clear(tree2);
+ display_tree(&rootmenu); // instead of update_tree to speed-up
+}
+
+
+void
+on_show_debug_info1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ show_debug = GTK_CHECK_MENU_ITEM(menuitem)->active;
+ update_tree(&rootmenu, NULL);
+}
+
+
+void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkWidget *dialog;
+ const gchar *intro_text = _(
+ "Welcome to gkc, the GTK+ graphical kernel configuration tool\n"
+ "for Linux.\n"
+ "For each option, a blank box indicates the feature is disabled, a\n"
+ "check indicates it is enabled, and a dot indicates that it is to\n"
+ "be compiled as a module. Clicking on the box will cycle through the three states.\n"
+ "\n"
+ "If you do not see an option (e.g., a device driver) that you\n"
+ "believe should be present, try turning on Show All Options\n"
+ "under the Options menu.\n"
+ "Although there is no cross reference yet to help you figure out\n"
+ "what other options must be enabled to support the option you\n"
+ "are interested in, you can still view the help of a grayed-out\n"
+ "option.\n"
+ "\n"
+ "Toggling Show Debug Info under the Options menu will show \n"
+ "the dependencies, which you can then match by examining other options.");
+
+ dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE, intro_text);
+ g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
+ G_CALLBACK(gtk_widget_destroy),
+ GTK_OBJECT(dialog));
+ gtk_widget_show_all(dialog);
+}
+
+
+void on_about1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkWidget *dialog;
+ const gchar *about_text =
+ _("gkc is copyright (c) 2002 Romain Lievin <roms@lpg.ticalc.org>.\n"
+ "Based on the source code from Roman Zippel.\n");
+
+ dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE, about_text);
+ g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
+ G_CALLBACK(gtk_widget_destroy),
+ GTK_OBJECT(dialog));
+ gtk_widget_show_all(dialog);
+}
+
+
+void on_license1_activate(GtkMenuItem * menuitem, gpointer user_data)
+{
+ GtkWidget *dialog;
+ const gchar *license_text =
+ _("gkc is released under the terms of the GNU GPL v2.\n"
+ "For more information, please see the source code or\n"
+ "visit http://www.fsf.org/licenses/licenses.html\n");
+
+ dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE, license_text);
+ g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
+ G_CALLBACK(gtk_widget_destroy),
+ GTK_OBJECT(dialog));
+ gtk_widget_show_all(dialog);
+}
+
+
+void on_back_clicked(GtkButton * button, gpointer user_data)
+{
+ enum prop_type ptype;
+
+ current = current->parent;
+ ptype = current->prompt ? current->prompt->type : P_UNKNOWN;
+ if (ptype != P_MENU)
+ current = current->parent;
+ display_tree_part();
+
+ if (current == &rootmenu)
+ gtk_widget_set_sensitive(back_btn, FALSE);
+}
+
+
+void on_load_clicked(GtkButton * button, gpointer user_data)
+{
+ on_load1_activate(NULL, user_data);
+}
+
+
+void on_single_clicked(GtkButton * button, gpointer user_data)
+{
+ view_mode = SINGLE_VIEW;
+ gtk_paned_set_position(GTK_PANED(hpaned), 0);
+ gtk_widget_hide(tree1_w);
+ current = &rootmenu;
+ display_tree_part();
+}
+
+
+void on_split_clicked(GtkButton * button, gpointer user_data)
+{
+ gint w, h;
+ view_mode = SPLIT_VIEW;
+ gtk_widget_show(tree1_w);
+ gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
+ gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
+ if (tree2)
+ gtk_tree_store_clear(tree2);
+ display_list();
+
+ /* Disable back btn, like in full mode. */
+ gtk_widget_set_sensitive(back_btn, FALSE);
+}
+
+
+void on_full_clicked(GtkButton * button, gpointer user_data)
+{
+ view_mode = FULL_VIEW;
+ gtk_paned_set_position(GTK_PANED(hpaned), 0);
+ gtk_widget_hide(tree1_w);
+ if (tree2)
+ gtk_tree_store_clear(tree2);
+ display_tree(&rootmenu);
+ gtk_widget_set_sensitive(back_btn, FALSE);
+}
+
+
+void on_collapse_clicked(GtkButton * button, gpointer user_data)
+{
+ gtk_tree_view_collapse_all(GTK_TREE_VIEW(tree2_w));
+}
+
+
+void on_expand_clicked(GtkButton * button, gpointer user_data)
+{
+ gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
+}
+
+
+/* CTree Callbacks */
+
+/* Change hex/int/string value in the cell */
+static void renderer_edited(GtkCellRendererText * cell,
+ const gchar * path_string,
+ const gchar * new_text, gpointer user_data)
+{
+ GtkTreePath *path = gtk_tree_path_new_from_string(path_string);
+ GtkTreeIter iter;
+ const char *old_def, *new_def;
+ struct menu *menu;
+ struct symbol *sym;
+
+ if (!gtk_tree_model_get_iter(model2, &iter, path))
+ return;
+
+ gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+ sym = menu->sym;
+
+ gtk_tree_model_get(model2, &iter, COL_VALUE, &old_def, -1);
+ new_def = new_text;
+
+ sym_set_string_value(sym, new_def);
+
+ update_tree(&rootmenu, NULL);
+
+ gtk_tree_path_free(path);
+}
+
+/* Change the value of a symbol and update the tree */
+static void change_sym_value(struct menu *menu, gint col)
+{
+ struct symbol *sym = menu->sym;
+ tristate oldval, newval;
+
+ if (!sym)
+ return;
+
+ if (col == COL_NO)
+ newval = no;
+ else if (col == COL_MOD)
+ newval = mod;
+ else if (col == COL_YES)
+ newval = yes;
+ else
+ return;
+
+ switch (sym_get_type(sym)) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ oldval = sym_get_tristate_value(sym);
+ if (!sym_tristate_within_range(sym, newval))
+ newval = yes;
+ sym_set_tristate_value(sym, newval);
+ if (view_mode == FULL_VIEW)
+ update_tree(&rootmenu, NULL);
+ else if (view_mode == SPLIT_VIEW) {
+ update_tree(browsed, NULL);
+ display_list();
+ }
+ else if (view_mode == SINGLE_VIEW)
+ display_tree_part(); //fixme: keep exp/coll
+ break;
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ default:
+ break;
+ }
+}
+
+static void toggle_sym_value(struct menu *menu)
+{
+ if (!menu->sym)
+ return;
+
+ sym_toggle_tristate_value(menu->sym);
+ if (view_mode == FULL_VIEW)
+ update_tree(&rootmenu, NULL);
+ else if (view_mode == SPLIT_VIEW) {
+ update_tree(browsed, NULL);
+ display_list();
+ }
+ else if (view_mode == SINGLE_VIEW)
+ display_tree_part(); //fixme: keep exp/coll
+}
+
+static void renderer_toggled(GtkCellRendererToggle * cell,
+ gchar * path_string, gpointer user_data)
+{
+ GtkTreePath *path, *sel_path = NULL;
+ GtkTreeIter iter, sel_iter;
+ GtkTreeSelection *sel;
+ struct menu *menu;
+
+ path = gtk_tree_path_new_from_string(path_string);
+ if (!gtk_tree_model_get_iter(model2, &iter, path))
+ return;
+
+ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree2_w));
+ if (gtk_tree_selection_get_selected(sel, NULL, &sel_iter))
+ sel_path = gtk_tree_model_get_path(model2, &sel_iter);
+ if (!sel_path)
+ goto out1;
+ if (gtk_tree_path_compare(path, sel_path))
+ goto out2;
+
+ gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+ toggle_sym_value(menu);
+
+ out2:
+ gtk_tree_path_free(sel_path);
+ out1:
+ gtk_tree_path_free(path);
+}
+
+static gint column2index(GtkTreeViewColumn * column)
+{
+ gint i;
+
+ for (i = 0; i < COL_NUMBER; i++) {
+ GtkTreeViewColumn *col;
+
+ col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), i);
+ if (col == column)
+ return i;
+ }
+
+ return -1;
+}
+
+
+/* User click: update choice (full) or goes down (single) */
+gboolean
+on_treeview2_button_press_event(GtkWidget * widget,
+ GdkEventButton * event, gpointer user_data)
+{
+ GtkTreeView *view = GTK_TREE_VIEW(widget);
+ GtkTreePath *path;
+ GtkTreeViewColumn *column;
+ GtkTreeIter iter;
+ struct menu *menu;
+ gint col;
+
+#if GTK_CHECK_VERSION(2,1,4) // bug in ctree with earlier version of GTK
+ gint tx = (gint) event->x;
+ gint ty = (gint) event->y;
+ gint cx, cy;
+
+ gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
+ &cy);
+#else
+ gtk_tree_view_get_cursor(view, &path, &column);
+#endif
+ if (path == NULL)
+ return FALSE;
+
+ if (!gtk_tree_model_get_iter(model2, &iter, path))
+ return FALSE;
+ gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+
+ col = column2index(column);
+ if (event->type == GDK_2BUTTON_PRESS) {
+ enum prop_type ptype;
+ ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+
+ if (ptype == P_MENU && view_mode != FULL_VIEW && col == COL_OPTION) {
+ // goes down into menu
+ current = menu;
+ display_tree_part();
+ gtk_widget_set_sensitive(back_btn, TRUE);
+ } else if ((col == COL_OPTION)) {
+ toggle_sym_value(menu);
+ gtk_tree_view_expand_row(view, path, TRUE);
+ }
+ } else {
+ if (col == COL_VALUE) {
+ toggle_sym_value(menu);
+ gtk_tree_view_expand_row(view, path, TRUE);
+ } else if (col == COL_NO || col == COL_MOD
+ || col == COL_YES) {
+ change_sym_value(menu, col);
+ gtk_tree_view_expand_row(view, path, TRUE);
+ }
+ }
+
+ return FALSE;
+}
+
+/* Key pressed: update choice */
+gboolean
+on_treeview2_key_press_event(GtkWidget * widget,
+ GdkEventKey * event, gpointer user_data)
+{
+ GtkTreeView *view = GTK_TREE_VIEW(widget);
+ GtkTreePath *path;
+ GtkTreeViewColumn *column;
+ GtkTreeIter iter;
+ struct menu *menu;
+ gint col;
+
+ gtk_tree_view_get_cursor(view, &path, &column);
+ if (path == NULL)
+ return FALSE;
+
+ if (event->keyval == GDK_space) {
+ if (gtk_tree_view_row_expanded(view, path))
+ gtk_tree_view_collapse_row(view, path);
+ else
+ gtk_tree_view_expand_row(view, path, FALSE);
+ return TRUE;
+ }
+ if (event->keyval == GDK_KP_Enter) {
+ }
+ if (widget == tree1_w)
+ return FALSE;
+
+ gtk_tree_model_get_iter(model2, &iter, path);
+ gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+
+ if (!strcasecmp(event->string, "n"))
+ col = COL_NO;
+ else if (!strcasecmp(event->string, "m"))
+ col = COL_MOD;
+ else if (!strcasecmp(event->string, "y"))
+ col = COL_YES;
+ else
+ col = -1;
+ change_sym_value(menu, col);
+
+ return FALSE;
+}
+
+
+/* Row selection changed: update help */
+void
+on_treeview2_cursor_changed(GtkTreeView * treeview, gpointer user_data)
+{
+ GtkTreeSelection *selection;
+ GtkTreeIter iter;
+ struct menu *menu;
+
+ selection = gtk_tree_view_get_selection(treeview);
+ if (gtk_tree_selection_get_selected(selection, &model2, &iter)) {
+ gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+ text_insert_help(menu);
+ }
+}
+
+
+/* User click: display sub-tree in the right frame. */
+gboolean
+on_treeview1_button_press_event(GtkWidget * widget,
+ GdkEventButton * event, gpointer user_data)
+{
+ GtkTreeView *view = GTK_TREE_VIEW(widget);
+ GtkTreePath *path;
+ GtkTreeViewColumn *column;
+ GtkTreeIter iter;
+ struct menu *menu;
+
+ gint tx = (gint) event->x;
+ gint ty = (gint) event->y;
+ gint cx, cy;
+
+ gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
+ &cy);
+ if (path == NULL)
+ return FALSE;
+
+ gtk_tree_model_get_iter(model1, &iter, path);
+ gtk_tree_model_get(model1, &iter, COL_MENU, &menu, -1);
+
+ if (event->type == GDK_2BUTTON_PRESS) {
+ toggle_sym_value(menu);
+ current = menu;
+ display_tree_part();
+ } else {
+ browsed = menu;
+ display_tree_part();
+ }
+
+ gtk_widget_realize(tree2_w);
+ gtk_tree_view_set_cursor(view, path, NULL, FALSE);
+ gtk_widget_grab_focus(tree2_w);
+
+ return FALSE;
+}
+
+
+/* Fill a row of strings */
+static gchar **fill_row(struct menu *menu)
+{
+ static gchar *row[COL_NUMBER];
+ struct symbol *sym = menu->sym;
+ const char *def;
+ int stype;
+ tristate val;
+ enum prop_type ptype;
+ int i;
+
+ for (i = COL_OPTION; i <= COL_COLOR; i++)
+ g_free(row[i]);
+ bzero(row, sizeof(row));
+
+ row[COL_OPTION] =
+ g_strdup_printf("%s %s", menu_get_prompt(menu),
+ sym && sym_has_value(sym) ? "(NEW)" : "");
+
+ if (show_all && !menu_is_visible(menu))
+ row[COL_COLOR] = g_strdup("DarkGray");
+ else
+ row[COL_COLOR] = g_strdup("Black");
+
+ ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+ switch (ptype) {
+ case P_MENU:
+ row[COL_PIXBUF] = (gchar *) xpm_menu;
+ if (view_mode == SINGLE_VIEW)
+ row[COL_PIXVIS] = GINT_TO_POINTER(TRUE);
+ row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+ break;
+ case P_COMMENT:
+ row[COL_PIXBUF] = (gchar *) xpm_void;
+ row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
+ row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+ break;
+ default:
+ row[COL_PIXBUF] = (gchar *) xpm_void;
+ row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
+ row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
+ break;
+ }
+
+ if (!sym)
+ return row;
+ row[COL_NAME] = g_strdup(sym->name);
+
+ sym_calc_value(sym);
+ sym->flags &= ~SYMBOL_CHANGED;
+
+ if (sym_is_choice(sym)) { // parse childs for getting final value
+ struct menu *child;
+ struct symbol *def_sym = sym_get_choice_value(sym);
+ struct menu *def_menu = NULL;
+
+ row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+
+ for (child = menu->list; child; child = child->next) {
+ if (menu_is_visible(child)
+ && child->sym == def_sym)
+ def_menu = child;
+ }
+
+ if (def_menu)
+ row[COL_VALUE] =
+ g_strdup(menu_get_prompt(def_menu));
+ }
+ if (sym->flags & SYMBOL_CHOICEVAL)
+ row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
+
+ stype = sym_get_type(sym);
+ switch (stype) {
+ case S_BOOLEAN:
+ if (GPOINTER_TO_INT(row[COL_PIXVIS]) == FALSE)
+ row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
+ if (sym_is_choice(sym))
+ break;
+ case S_TRISTATE:
+ val = sym_get_tristate_value(sym);
+ switch (val) {
+ case no:
+ row[COL_NO] = g_strdup("N");
+ row[COL_VALUE] = g_strdup("N");
+ row[COL_BTNACT] = GINT_TO_POINTER(FALSE);
+ row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
+ break;
+ case mod:
+ row[COL_MOD] = g_strdup("M");
+ row[COL_VALUE] = g_strdup("M");
+ row[COL_BTNINC] = GINT_TO_POINTER(TRUE);
+ break;
+ case yes:
+ row[COL_YES] = g_strdup("Y");
+ row[COL_VALUE] = g_strdup("Y");
+ row[COL_BTNACT] = GINT_TO_POINTER(TRUE);
+ row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
+ break;
+ }
+
+ if (val != no && sym_tristate_within_range(sym, no))
+ row[COL_NO] = g_strdup("_");
+ if (val != mod && sym_tristate_within_range(sym, mod))
+ row[COL_MOD] = g_strdup("_");
+ if (val != yes && sym_tristate_within_range(sym, yes))
+ row[COL_YES] = g_strdup("_");
+ break;
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ def = sym_get_string_value(sym);
+ row[COL_VALUE] = g_strdup(def);
+ row[COL_EDIT] = GINT_TO_POINTER(TRUE);
+ row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+ break;
+ }
+
+ return row;
+}
+
+
+/* Set the node content with a row of strings */
+static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row)
+{
+ GdkColor color;
+ gboolean success;
+ GdkPixbuf *pix;
+
+ pix = gdk_pixbuf_new_from_xpm_data((const char **)
+ row[COL_PIXBUF]);
+
+ gdk_color_parse(row[COL_COLOR], &color);
+ gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1,
+ FALSE, FALSE, &success);
+
+ gtk_tree_store_set(tree, node,
+ COL_OPTION, row[COL_OPTION],
+ COL_NAME, row[COL_NAME],
+ COL_NO, row[COL_NO],
+ COL_MOD, row[COL_MOD],
+ COL_YES, row[COL_YES],
+ COL_VALUE, row[COL_VALUE],
+ COL_MENU, (gpointer) menu,
+ COL_COLOR, &color,
+ COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]),
+ COL_PIXBUF, pix,
+ COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]),
+ COL_BTNVIS, GPOINTER_TO_INT(row[COL_BTNVIS]),
+ COL_BTNACT, GPOINTER_TO_INT(row[COL_BTNACT]),
+ COL_BTNINC, GPOINTER_TO_INT(row[COL_BTNINC]),
+ COL_BTNRAD, GPOINTER_TO_INT(row[COL_BTNRAD]),
+ -1);
+
+ g_object_unref(pix);
+}
+
+
+/* Add a node to the tree */
+static void place_node(struct menu *menu, char **row)
+{
+ GtkTreeIter *parent = parents[indent - 1];
+ GtkTreeIter *node = parents[indent];
+
+ gtk_tree_store_append(tree, node, parent);
+ set_node(node, menu, row);
+}
+
+
+/* Find a node in the GTK+ tree */
+static GtkTreeIter found;
+
+/*
+ * Find a menu in the GtkTree starting at parent.
+ */
+GtkTreeIter *gtktree_iter_find_node(GtkTreeIter * parent,
+ struct menu *tofind)
+{
+ GtkTreeIter iter;
+ GtkTreeIter *child = &iter;
+ gboolean valid;
+ GtkTreeIter *ret;
+
+ valid = gtk_tree_model_iter_children(model2, child, parent);
+ while (valid) {
+ struct menu *menu;
+
+ gtk_tree_model_get(model2, child, 6, &menu, -1);
+
+ if (menu == tofind) {
+ memcpy(&found, child, sizeof(GtkTreeIter));
+ return &found;
+ }
+
+ ret = gtktree_iter_find_node(child, tofind);
+ if (ret)
+ return ret;
+
+ valid = gtk_tree_model_iter_next(model2, child);
+ }
+
+ return NULL;
+}
+
+
+/*
+ * Update the tree by adding/removing entries
+ * Does not change other nodes
+ */
+static void update_tree(struct menu *src, GtkTreeIter * dst)
+{
+ struct menu *child1;
+ GtkTreeIter iter, tmp;
+ GtkTreeIter *child2 = &iter;
+ gboolean valid;
+ GtkTreeIter *sibling;
+ struct symbol *sym;
+ struct property *prop;
+ struct menu *menu1, *menu2;
+
+ if (src == &rootmenu)
+ indent = 1;
+
+ valid = gtk_tree_model_iter_children(model2, child2, dst);
+ for (child1 = src->list; child1; child1 = child1->next) {
+
+ prop = child1->prompt;
+ sym = child1->sym;
+
+ reparse:
+ menu1 = child1;
+ if (valid)
+ gtk_tree_model_get(model2, child2, COL_MENU,
+ &menu2, -1);
+ else
+ menu2 = NULL; // force adding of a first child
+
+#ifdef DEBUG
+ printf("%*c%s | %s\n", indent, ' ',
+ menu1 ? menu_get_prompt(menu1) : "nil",
+ menu2 ? menu_get_prompt(menu2) : "nil");
+#endif
+
+ if (!menu_is_visible(child1) && !show_all) { // remove node
+ if (gtktree_iter_find_node(dst, menu1) != NULL) {
+ memcpy(&tmp, child2, sizeof(GtkTreeIter));
+ valid = gtk_tree_model_iter_next(model2,
+ child2);
+ gtk_tree_store_remove(tree2, &tmp);
+ if (!valid)
+ return; // next parent
+ else
+ goto reparse; // next child
+ } else
+ continue;
+ }
+
+ if (menu1 != menu2) {
+ if (gtktree_iter_find_node(dst, menu1) == NULL) { // add node
+ if (!valid && !menu2)
+ sibling = NULL;
+ else
+ sibling = child2;
+ gtk_tree_store_insert_before(tree2,
+ child2,
+ dst, sibling);
+ set_node(child2, menu1, fill_row(menu1));
+ if (menu2 == NULL)
+ valid = TRUE;
+ } else { // remove node
+ memcpy(&tmp, child2, sizeof(GtkTreeIter));
+ valid = gtk_tree_model_iter_next(model2,
+ child2);
+ gtk_tree_store_remove(tree2, &tmp);
+ if (!valid)
+ return; // next parent
+ else
+ goto reparse; // next child
+ }
+ } else if (sym && (sym->flags & SYMBOL_CHANGED)) {
+ set_node(child2, menu1, fill_row(menu1));
+ }
+
+ indent++;
+ update_tree(child1, child2);
+ indent--;
+
+ valid = gtk_tree_model_iter_next(model2, child2);
+ }
+}
+
+
+/* Display the whole tree (single/split/full view) */
+static void display_tree(struct menu *menu)
+{
+ struct symbol *sym;
+ struct property *prop;
+ struct menu *child;
+ enum prop_type ptype;
+
+ if (menu == &rootmenu) {
+ indent = 1;
+ current = &rootmenu;
+ }
+
+ for (child = menu->list; child; child = child->next) {
+ prop = child->prompt;
+ sym = child->sym;
+ ptype = prop ? prop->type : P_UNKNOWN;
+
+ if (sym)
+ sym->flags &= ~SYMBOL_CHANGED;
+
+ if ((view_mode == SPLIT_VIEW)
+ && !(child->flags & MENU_ROOT) && (tree == tree1))
+ continue;
+
+ if ((view_mode == SPLIT_VIEW) && (child->flags & MENU_ROOT)
+ && (tree == tree2))
+ continue;
+
+ if (menu_is_visible(child) || show_all)
+ place_node(child, fill_row(child));
+#ifdef DEBUG
+ printf("%*c%s: ", indent, ' ', menu_get_prompt(child));
+ printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : "");
+ dbg_print_ptype(ptype);
+ printf(" | ");
+ if (sym) {
+ dbg_print_stype(sym->type);
+ printf(" | ");
+ dbg_print_flags(sym->flags);
+ printf("\n");
+ } else
+ printf("\n");
+#endif
+ if ((view_mode != FULL_VIEW) && (ptype == P_MENU)
+ && (tree == tree2))
+ continue;
+/*
+ if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
+ || (view_mode == FULL_VIEW)
+ || (view_mode == SPLIT_VIEW))*/
+ if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
+ || (view_mode == FULL_VIEW)
+ || (view_mode == SPLIT_VIEW)) {
+ indent++;
+ display_tree(child);
+ indent--;
+ }
+ }
+}
+
+/* Display a part of the tree starting at current node (single/split view) */
+static void display_tree_part(void)
+{
+ if (tree2)
+ gtk_tree_store_clear(tree2);
+ if (view_mode == SINGLE_VIEW)
+ display_tree(current);
+ else if (view_mode == SPLIT_VIEW)
+ display_tree(browsed);
+ gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
+}
+
+/* Display the list in the left frame (split view) */
+static void display_list(void)
+{
+ if (tree1)
+ gtk_tree_store_clear(tree1);
+
+ tree = tree1;
+ display_tree(&rootmenu);
+ gtk_tree_view_expand_all(GTK_TREE_VIEW(tree1_w));
+ tree = tree2;
+}
+
+void fixup_rootmenu(struct menu *menu)
+{
+ struct menu *child;
+ static int menu_cnt = 0;
+
+ menu->flags |= MENU_ROOT;
+ for (child = menu->list; child; child = child->next) {
+ if (child->prompt && child->prompt->type == P_MENU) {
+ menu_cnt++;
+ fixup_rootmenu(child);
+ menu_cnt--;
+ } else if (!menu_cnt)
+ fixup_rootmenu(child);
+ }
+}
+
+
+/* Main */
+int main(int ac, char *av[])
+{
+ const char *name;
+ char *env;
+ gchar *glade_file;
+
+#ifndef LKC_DIRECT_LINK
+ kconfig_load();
+#endif
+
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ bind_textdomain_codeset(PACKAGE, "UTF-8");
+ textdomain(PACKAGE);
+
+ /* GTK stuffs */
+ gtk_set_locale();
+ gtk_init(&ac, &av);
+ glade_init();
+
+ //add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
+ //add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps");
+
+ /* Determine GUI path */
+ env = getenv(SRCTREE);
+ if (env)
+ glade_file = g_strconcat(env, "/scripts/kconfig/gconf.glade", NULL);
+ else if (av[0][0] == '/')
+ glade_file = g_strconcat(av[0], ".glade", NULL);
+ else
+ glade_file = g_strconcat(g_get_current_dir(), "/", av[0], ".glade", NULL);
+
+ /* Load the interface and connect signals */
+ init_main_window(glade_file);
+ init_tree_model();
+ init_left_tree();
+ init_right_tree();
+
+ /* Conf stuffs */
+ if (ac > 1 && av[1][0] == '-') {
+ switch (av[1][1]) {
+ case 'a':
+ //showAll = 1;
+ break;
+ case 'h':
+ case '?':
+ printf("%s <config>\n", av[0]);
+ exit(0);
+ }
+ name = av[2];
+ } else
+ name = av[1];
+
+ conf_parse(name);
+ fixup_rootmenu(&rootmenu);
+ conf_read(NULL);
+
+ switch (view_mode) {
+ case SINGLE_VIEW:
+ display_tree_part();
+ break;
+ case SPLIT_VIEW:
+ display_list();
+ break;
+ case FULL_VIEW:
+ display_tree(&rootmenu);
+ break;
+ }
+
+ gtk_main();
+
+ return 0;
+}
+
+static void conf_changed(void)
+{
+ bool changed = conf_get_changed();
+ gtk_widget_set_sensitive(save_btn, changed);
+ gtk_widget_set_sensitive(save_menu_item, changed);
+}
diff --git a/cleopatre/buildroot/package/config/gconf.glade b/cleopatre/buildroot/package/config/gconf.glade
new file mode 100644
index 0000000000..5656bf7a3f
--- /dev/null
+++ b/cleopatre/buildroot/package/config/gconf.glade
@@ -0,0 +1,648 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+
+<widget class="GtkWindow" id="window1">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Gtk Buildroot Configurator</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="default_width">640</property>
+ <property name="default_height">480</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <signal name="destroy" handler="on_window1_destroy" object="window1"/>
+ <signal name="size_request" handler="on_window1_size_request" object="vpaned1" last_modification_time="Fri, 11 Jan 2002 16:17:11 GMT"/>
+ <signal name="delete_event" handler="on_window1_delete_event" object="window1" last_modification_time="Sun, 09 Mar 2003 19:42:46 GMT"/>
+
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkMenuBar" id="menubar1">
+ <property name="visible">True</property>
+
+ <child>
+ <widget class="GtkMenuItem" id="file1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_File</property>
+ <property name="use_underline">True</property>
+
+ <child>
+ <widget class="GtkMenu" id="file1_menu">
+
+ <child>
+ <widget class="GtkImageMenuItem" id="load1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Load a config file</property>
+ <property name="label" translatable="yes">_Load</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_load1_activate"/>
+ <accelerator key="L" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image39">
+ <property name="visible">True</property>
+ <property name="stock">gtk-open</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkImageMenuItem" id="save1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Save the config in .config</property>
+ <property name="label" translatable="yes">_Save</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_save_activate"/>
+ <accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image40">
+ <property name="visible">True</property>
+ <property name="stock">gtk-save</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkImageMenuItem" id="save_as1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Save the config in a file</property>
+ <property name="label" translatable="yes">Save _as</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_save_as1_activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image41">
+ <property name="visible">True</property>
+ <property name="stock">gtk-save-as</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkSeparatorMenuItem" id="separator1">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkImageMenuItem" id="quit1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Quit</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_quit1_activate"/>
+ <accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image42">
+ <property name="visible">True</property>
+ <property name="stock">gtk-quit</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkMenuItem" id="options1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Options</property>
+ <property name="use_underline">True</property>
+
+ <child>
+ <widget class="GtkMenu" id="options1_menu">
+
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_name1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show name</property>
+ <property name="label" translatable="yes">Show _name</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="activate" handler="on_show_name1_activate"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_range1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show range (Y/M/N)</property>
+ <property name="label" translatable="yes">Show _range</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="activate" handler="on_show_range1_activate"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_data1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show value of the option</property>
+ <property name="label" translatable="yes">Show _data</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="activate" handler="on_show_data1_activate"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkSeparatorMenuItem" id="separator2">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_all_options1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show all options</property>
+ <property name="label" translatable="yes">Show all _options</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="activate" handler="on_show_all_options1_activate"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkCheckMenuItem" id="show_debug_info1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Show masked options</property>
+ <property name="label" translatable="yes">Show _debug info</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="activate" handler="on_show_debug_info1_activate"/>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkMenuItem" id="help1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Help</property>
+ <property name="use_underline">True</property>
+
+ <child>
+ <widget class="GtkMenu" id="help1_menu">
+
+ <child>
+ <widget class="GtkImageMenuItem" id="introduction1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Introduction</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_introduction1_activate" last_modification_time="Fri, 15 Nov 2002 20:26:30 GMT"/>
+ <accelerator key="I" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image43">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-question</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkImageMenuItem" id="about1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_About</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_about1_activate" last_modification_time="Fri, 15 Nov 2002 20:26:30 GMT"/>
+ <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image44">
+ <property name="visible">True</property>
+ <property name="stock">gtk-properties</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkImageMenuItem" id="license1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_License</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_license1_activate" last_modification_time="Fri, 15 Nov 2002 20:26:30 GMT"/>
+
+ <child internal-child="image">
+ <widget class="GtkImage" id="image45">
+ <property name="visible">True</property>
+ <property name="stock">gtk-justify-fill</property>
+ <property name="icon_size">1</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHandleBox" id="handlebox1">
+ <property name="visible">True</property>
+ <property name="shadow_type">GTK_SHADOW_OUT</property>
+ <property name="handle_position">GTK_POS_LEFT</property>
+ <property name="snap_edge">GTK_POS_TOP</property>
+
+ <child>
+ <widget class="GtkToolbar" id="toolbar1">
+ <property name="visible">True</property>
+ <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
+ <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
+ <property name="tooltips">True</property>
+ <property name="show_arrow">True</property>
+
+ <child>
+ <widget class="GtkToolButton" id="button1">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Goes up of one level (single view)</property>
+ <property name="label" translatable="yes">Back</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-undo</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_back_clicked"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolItem" id="toolitem1">
+ <property name="visible">True</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+
+ <child>
+ <widget class="GtkVSeparator" id="vseparator1">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button2">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Load a config file</property>
+ <property name="label" translatable="yes">Load</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-open</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_load_clicked"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button3">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Save a config file</property>
+ <property name="label" translatable="yes">Save</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-save</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_save_activate"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolItem" id="toolitem2">
+ <property name="visible">True</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+
+ <child>
+ <widget class="GtkVSeparator" id="vseparator2">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button4">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Single view</property>
+ <property name="label" translatable="yes">Single</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-missing-image</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_single_clicked" last_modification_time="Sun, 12 Jan 2003 14:28:39 GMT"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button5">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Split view</property>
+ <property name="label" translatable="yes">Split</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-missing-image</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_split_clicked" last_modification_time="Sun, 12 Jan 2003 14:28:45 GMT"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button6">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Full view</property>
+ <property name="label" translatable="yes">Full</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-missing-image</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_full_clicked" last_modification_time="Sun, 12 Jan 2003 14:28:50 GMT"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolItem" id="toolitem3">
+ <property name="visible">True</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+
+ <child>
+ <widget class="GtkVSeparator" id="vseparator3">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button7">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Collapse the whole tree in the right frame</property>
+ <property name="label" translatable="yes">Collapse</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-remove</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_collapse_clicked"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToolButton" id="button8">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Expand the whole tree in the right frame</property>
+ <property name="label" translatable="yes">Expand</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-add</property>
+ <property name="visible_horizontal">True</property>
+ <property name="visible_vertical">True</property>
+ <property name="is_important">False</property>
+ <signal name="clicked" handler="on_expand_clicked"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHPaned" id="hpaned1">
+ <property name="width_request">1</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="position">0</property>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <widget class="GtkTreeView" id="treeview1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <signal name="cursor_changed" handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 15:58:22 GMT"/>
+ <signal name="button_press_event" handler="on_treeview1_button_press_event" last_modification_time="Sun, 12 Jan 2003 16:03:52 GMT"/>
+ <signal name="key_press_event" handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 16:11:44 GMT"/>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="shrink">True</property>
+ <property name="resize">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVPaned" id="vpaned1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="position">0</property>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <widget class="GtkTreeView" id="treeview2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <signal name="cursor_changed" handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 15:57:55 GMT"/>
+ <signal name="button_press_event" handler="on_treeview2_button_press_event" last_modification_time="Sun, 12 Jan 2003 15:57:58 GMT"/>
+ <signal name="key_press_event" handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 15:58:01 GMT"/>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="shrink">True</property>
+ <property name="resize">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <widget class="GtkTextView" id="textview3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
+ <property name="justification">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap_mode">GTK_WRAP_WORD</property>
+ <property name="cursor_visible">True</property>
+ <property name="pixels_above_lines">0</property>
+ <property name="pixels_below_lines">0</property>
+ <property name="pixels_inside_wrap">0</property>
+ <property name="left_margin">0</property>
+ <property name="right_margin">0</property>
+ <property name="indent">0</property>
+ <property name="text" translatable="yes">Sorry, no help available for this option yet.</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="shrink">True</property>
+ <property name="resize">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="shrink">True</property>
+ <property name="resize">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/cleopatre/buildroot/package/config/images.c b/cleopatre/buildroot/package/config/images.c
new file mode 100644
index 0000000000..d4f84bd4a9
--- /dev/null
+++ b/cleopatre/buildroot/package/config/images.c
@@ -0,0 +1,326 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+static const char *xpm_load[] = {
+"22 22 5 1",
+". c None",
+"# c #000000",
+"c c #838100",
+"a c #ffff00",
+"b c #ffffff",
+"......................",
+"......................",
+"......................",
+"............####....#.",
+"...........#....##.##.",
+"..................###.",
+".................####.",
+".####...........#####.",
+"#abab##########.......",
+"#babababababab#.......",
+"#ababababababa#.......",
+"#babababababab#.......",
+"#ababab###############",
+"#babab##cccccccccccc##",
+"#abab##cccccccccccc##.",
+"#bab##cccccccccccc##..",
+"#ab##cccccccccccc##...",
+"#b##cccccccccccc##....",
+"###cccccccccccc##.....",
+"##cccccccccccc##......",
+"###############.......",
+"......................"};
+
+static const char *xpm_save[] = {
+"22 22 5 1",
+". c None",
+"# c #000000",
+"a c #838100",
+"b c #c5c2c5",
+"c c #cdb6d5",
+"......................",
+".####################.",
+".#aa#bbbbbbbbbbbb#bb#.",
+".#aa#bbbbbbbbbbbb#bb#.",
+".#aa#bbbbbbbbbcbb####.",
+".#aa#bbbccbbbbbbb#aa#.",
+".#aa#bbbccbbbbbbb#aa#.",
+".#aa#bbbbbbbbbbbb#aa#.",
+".#aa#bbbbbbbbbbbb#aa#.",
+".#aa#bbbbbbbbbbbb#aa#.",
+".#aa#bbbbbbbbbbbb#aa#.",
+".#aaa############aaa#.",
+".#aaaaaaaaaaaaaaaaaa#.",
+".#aaaaaaaaaaaaaaaaaa#.",
+".#aaa#############aa#.",
+".#aaa#########bbb#aa#.",
+".#aaa#########bbb#aa#.",
+".#aaa#########bbb#aa#.",
+".#aaa#########bbb#aa#.",
+".#aaa#########bbb#aa#.",
+"..##################..",
+"......................"};
+
+static const char *xpm_back[] = {
+"22 22 3 1",
+". c None",
+"# c #000083",
+"a c #838183",
+"......................",
+"......................",
+"......................",
+"......................",
+"......................",
+"...........######a....",
+"..#......##########...",
+"..##...####......##a..",
+"..###.###.........##..",
+"..######..........##..",
+"..#####...........##..",
+"..######..........##..",
+"..#######.........##..",
+"..########.......##a..",
+"...............a###...",
+"...............###....",
+"......................",
+"......................",
+"......................",
+"......................",
+"......................",
+"......................"};
+
+static const char *xpm_tree_view[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"......................",
+"......................",
+"......#...............",
+"......#...............",
+"......#...............",
+"......#...............",
+"......#...............",
+"......########........",
+"......#...............",
+"......#...............",
+"......#...............",
+"......#...............",
+"......#...............",
+"......########........",
+"......#...............",
+"......#...............",
+"......#...............",
+"......#...............",
+"......#...............",
+"......########........",
+"......................",
+"......................"};
+
+static const char *xpm_single_view[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"......................",
+"......................",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"..........#...........",
+"......................",
+"......................"};
+
+static const char *xpm_split_view[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"......................",
+"......................",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......#......#........",
+"......................",
+"......................"};
+
+static const char *xpm_symbol_no[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .......... ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" .......... ",
+" "};
+
+static const char *xpm_symbol_mod[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .......... ",
+" . . ",
+" . . ",
+" . .. . ",
+" . .... . ",
+" . .... . ",
+" . .. . ",
+" . . ",
+" . . ",
+" .......... ",
+" "};
+
+static const char *xpm_symbol_yes[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .......... ",
+" . . ",
+" . . ",
+" . . . ",
+" . .. . ",
+" . . .. . ",
+" . .... . ",
+" . .. . ",
+" . . ",
+" .......... ",
+" "};
+
+static const char *xpm_choice_no[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .... ",
+" .. .. ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" .. .. ",
+" .... ",
+" "};
+
+static const char *xpm_choice_yes[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .... ",
+" .. .. ",
+" . . ",
+" . .. . ",
+" . .... . ",
+" . .... . ",
+" . .. . ",
+" . . ",
+" .. .. ",
+" .... ",
+" "};
+
+static const char *xpm_menu[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .......... ",
+" . . ",
+" . .. . ",
+" . .... . ",
+" . ...... . ",
+" . ...... . ",
+" . .... . ",
+" . .. . ",
+" . . ",
+" .......... ",
+" "};
+
+static const char *xpm_menu_inv[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .......... ",
+" .......... ",
+" .. ...... ",
+" .. .... ",
+" .. .. ",
+" .. .. ",
+" .. .... ",
+" .. ...... ",
+" .......... ",
+" .......... ",
+" "};
+
+static const char *xpm_menuback[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" .......... ",
+" . . ",
+" . .. . ",
+" . .... . ",
+" . ...... . ",
+" . ...... . ",
+" . .... . ",
+" . .. . ",
+" . . ",
+" .......... ",
+" "};
+
+static const char *xpm_void[] = {
+"12 12 2 1",
+" c white",
+". c black",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/cleopatre/buildroot/package/config/kconfig-language.txt b/cleopatre/buildroot/package/config/kconfig-language.txt
new file mode 100644
index 0000000000..616043a6da
--- /dev/null
+++ b/cleopatre/buildroot/package/config/kconfig-language.txt
@@ -0,0 +1,303 @@
+Introduction
+------------
+
+The configuration database is a collection of configuration options
+organized in a tree structure:
+
+ +- Code maturity level options
+ | +- Prompt for development and/or incomplete code/drivers
+ +- General setup
+ | +- Networking support
+ | +- System V IPC
+ | +- BSD Process Accounting
+ | +- Sysctl support
+ +- Loadable module support
+ | +- Enable loadable module support
+ | +- Set version information on all module symbols
+ | +- Kernel module loader
+ +- ...
+
+Every entry has its own dependencies. These dependencies are used
+to determine the visibility of an entry. Any child entry is only
+visible if its parent entry is also visible.
+
+Menu entries
+------------
+
+Most entries define a config option, all other entries help to organize
+them. A single configuration option is defined like this:
+
+config MODVERSIONS
+ bool "Set version information on all module symbols"
+ depends on MODULES
+ help
+ Usually, modules have to be recompiled whenever you switch to a new
+ kernel. ...
+
+Every line starts with a key word and can be followed by multiple
+arguments. "config" starts a new config entry. The following lines
+define attributes for this config option. Attributes can be the type of
+the config option, input prompt, dependencies, help text and default
+values. A config option can be defined multiple times with the same
+name, but every definition can have only a single input prompt and the
+type must not conflict.
+
+Menu attributes
+---------------
+
+A menu entry can have a number of attributes. Not all of them are
+applicable everywhere (see syntax).
+
+- type definition: "bool"/"tristate"/"string"/"hex"/"int"
+ Every config option must have a type. There are only two basic types:
+ tristate and string, the other types are based on these two. The type
+ definition optionally accepts an input prompt, so these two examples
+ are equivalent:
+
+ bool "Networking support"
+ and
+ bool
+ prompt "Networking support"
+
+- input prompt: "prompt" <prompt> ["if" <expr>]
+ Every menu entry can have at most one prompt, which is used to display
+ to the user. Optionally dependencies only for this prompt can be added
+ with "if".
+
+- default value: "default" <expr> ["if" <expr>]
+ A config option can have any number of default values. If multiple
+ default values are visible, only the first defined one is active.
+ Default values are not limited to the menu entry where they are
+ defined. This means the default can be defined somewhere else or be
+ overridden by an earlier definition.
+ The default value is only assigned to the config symbol if no other
+ value was set by the user (via the input prompt above). If an input
+ prompt is visible the default value is presented to the user and can
+ be overridden by him.
+ Optionally, dependencies only for this default value can be added with
+ "if".
+
+- type definition + default value:
+ "def_bool"/"def_tristate" <expr> ["if" <expr>]
+ This is a shorthand notation for a type definition plus a value.
+ Optionally dependencies for this default value can be added with "if".
+
+- dependencies: "depends on" <expr>
+ This defines a dependency for this menu entry. If multiple
+ dependencies are defined, they are connected with '&&'. Dependencies
+ are applied to all other options within this menu entry (which also
+ accept an "if" expression), so these two examples are equivalent:
+
+ bool "foo" if BAR
+ default y if BAR
+ and
+ depends on BAR
+ bool "foo"
+ default y
+
+- reverse dependencies: "select" <symbol> ["if" <expr>]
+ While normal dependencies reduce the upper limit of a symbol (see
+ below), reverse dependencies can be used to force a lower limit of
+ another symbol. The value of the current menu symbol is used as the
+ minimal value <symbol> can be set to. If <symbol> is selected multiple
+ times, the limit is set to the largest selection.
+ Reverse dependencies can only be used with boolean or tristate
+ symbols.
+ Note:
+ select is evil.... select will by brute force set a symbol
+ equal to 'y' without visiting the dependencies. So abusing
+ select you are able to select a symbol FOO even if FOO depends
+ on BAR that is not set. In general use select only for
+ non-visible symbols (no promts anywhere) and for symbols with
+ no dependencies. That will limit the usefulness but on the
+ other hand avoid the illegal configurations all over. kconfig
+ should one day warn about such things.
+
+- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
+ This allows to limit the range of possible input values for int
+ and hex symbols. The user can only input a value which is larger than
+ or equal to the first symbol and smaller than or equal to the second
+ symbol.
+
+- help text: "help" or "---help---"
+ This defines a help text. The end of the help text is determined by
+ the indentation level, this means it ends at the first line which has
+ a smaller indentation than the first line of the help text.
+ "---help---" and "help" do not differ in behaviour, "---help---" is
+ used to help visually separate configuration logic from help within
+ the file as an aid to developers.
+
+
+Menu dependencies
+-----------------
+
+Dependencies define the visibility of a menu entry and can also reduce
+the input range of tristate symbols. The tristate logic used in the
+expressions uses one more state than normal boolean logic to express the
+module state. Dependency expressions have the following syntax:
+
+<expr> ::= <symbol> (1)
+ <symbol> '=' <symbol> (2)
+ <symbol> '!=' <symbol> (3)
+ '(' <expr> ')' (4)
+ '!' <expr> (5)
+ <expr> '&&' <expr> (6)
+ <expr> '||' <expr> (7)
+
+Expressions are listed in decreasing order of precedence.
+
+(1) Convert the symbol into an expression. Boolean and tristate symbols
+ are simply converted into the respective expression values. All
+ other symbol types result in 'n'.
+(2) If the values of both symbols are equal, it returns 'y',
+ otherwise 'n'.
+(3) If the values of both symbols are equal, it returns 'n',
+ otherwise 'y'.
+(4) Returns the value of the expression. Used to override precedence.
+(5) Returns the result of (2-/expr/).
+(6) Returns the result of min(/expr/, /expr/).
+(7) Returns the result of max(/expr/, /expr/).
+
+An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
+respectively for calculations). A menu entry becomes visible when it's
+expression evaluates to 'm' or 'y'.
+
+There are two types of symbols: constant and nonconstant symbols.
+Nonconstant symbols are the most common ones and are defined with the
+'config' statement. Nonconstant symbols consist entirely of alphanumeric
+characters or underscores.
+Constant symbols are only part of expressions. Constant symbols are
+always surrounded by single or double quotes. Within the quote, any
+other character is allowed and the quotes can be escaped using '\'.
+
+Menu structure
+--------------
+
+The position of a menu entry in the tree is determined in two ways. First
+it can be specified explicitly:
+
+menu "Network device support"
+ depends on NET
+
+config NETDEVICES
+ ...
+
+endmenu
+
+All entries within the "menu" ... "endmenu" block become a submenu of
+"Network device support". All subentries inherit the dependencies from
+the menu entry, e.g. this means the dependency "NET" is added to the
+dependency list of the config option NETDEVICES.
+
+The other way to generate the menu structure is done by analyzing the
+dependencies. If a menu entry somehow depends on the previous entry, it
+can be made a submenu of it. First, the previous (parent) symbol must
+be part of the dependency list and then one of these two conditions
+must be true:
+- the child entry must become invisible, if the parent is set to 'n'
+- the child entry must only be visible, if the parent is visible
+
+config MODULES
+ bool "Enable loadable module support"
+
+config MODVERSIONS
+ bool "Set version information on all module symbols"
+ depends on MODULES
+
+comment "module support disabled"
+ depends on !MODULES
+
+MODVERSIONS directly depends on MODULES, this means it's only visible if
+MODULES is different from 'n'. The comment on the other hand is always
+visible when MODULES is visible (the (empty) dependency of MODULES is
+also part of the comment dependencies).
+
+
+Kconfig syntax
+--------------
+
+The configuration file describes a series of menu entries, where every
+line starts with a keyword (except help texts). The following keywords
+end a menu entry:
+- config
+- menuconfig
+- choice/endchoice
+- comment
+- menu/endmenu
+- if/endif
+- source
+The first five also start the definition of a menu entry.
+
+config:
+
+ "config" <symbol>
+ <config options>
+
+This defines a config symbol <symbol> and accepts any of above
+attributes as options.
+
+menuconfig:
+ "menuconfig" <symbol>
+ <config options>
+
+This is similar to the simple config entry above, but it also gives a
+hint to front ends, that all suboptions should be displayed as a
+separate list of options.
+
+choices:
+
+ "choice"
+ <choice options>
+ <choice block>
+ "endchoice"
+
+This defines a choice group and accepts any of the above attributes as
+options. A choice can only be of type bool or tristate, while a boolean
+choice only allows a single config entry to be selected, a tristate
+choice also allows any number of config entries to be set to 'm'. This
+can be used if multiple drivers for a single hardware exists and only a
+single driver can be compiled/loaded into the kernel, but all drivers
+can be compiled as modules.
+A choice accepts another option "optional", which allows to set the
+choice to 'n' and no entry needs to be selected.
+
+comment:
+
+ "comment" <prompt>
+ <comment options>
+
+This defines a comment which is displayed to the user during the
+configuration process and is also echoed to the output files. The only
+possible options are dependencies.
+
+menu:
+
+ "menu" <prompt>
+ <menu options>
+ <menu block>
+ "endmenu"
+
+This defines a menu block, see "Menu structure" above for more
+information. The only possible options are dependencies.
+
+if:
+
+ "if" <expr>
+ <if block>
+ "endif"
+
+This defines an if block. The dependency expression <expr> is appended
+to all enclosed menu entries.
+
+source:
+
+ "source" <prompt>
+
+This reads the specified configuration file. This file is always parsed.
+
+mainmenu:
+
+ "mainmenu" <prompt>
+
+This sets the config program's title bar if the config program chooses
+to use it.
diff --git a/cleopatre/buildroot/package/config/kconfig-to-buildroot2.patch b/cleopatre/buildroot/package/config/kconfig-to-buildroot2.patch
new file mode 100644
index 0000000000..a3a35ec7f6
--- /dev/null
+++ b/cleopatre/buildroot/package/config/kconfig-to-buildroot2.patch
@@ -0,0 +1,1425 @@
+diff -rduNp config.new.oorig/Makefile config.new/Makefile
+--- config.new.oorig/Makefile 2008-04-07 11:03:28.000000000 +0200
++++ config.new/Makefile 2008-04-07 11:06:30.000000000 +0200
+@@ -123,6 +123,9 @@ hostprogs-y := conf qconf gconf kxgettex
+ ifeq ($(MAKECMDGOALS),menuconfig)
+ hostprogs-y += mconf
+ endif
++ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
++ hostprogs-y += mconf
++endif
+
+ ifeq ($(MAKECMDGOALS),xconfig)
+ qconf-target := 1
+@@ -181,8 +184,8 @@ $(obj)/.tmp_qtcheck:
+ done; \
+ if [ -z "$$dir" ]; then \
+ echo "*"; \
+- echo "* Unable to find the QT3 installation. Please make sure that"; \
+- echo "* the QT3 development package is correctly installed and"; \
++ echo "* Unable to find the QT installation. Please make sure that"; \
++ echo "* the QT development package is correctly installed and"; \
+ echo "* either install pkg-config or set the QTDIR environment"; \
+ echo "* variable to the correct location."; \
+ echo "*"; \
+diff -rduNp config.new.oorig/conf.c config.new/conf.c
+--- config.new.oorig/conf.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/conf.c 2008-04-07 11:06:30.000000000 +0200
+@@ -545,7 +545,7 @@ int main(int ac, char **av)
+ exit(1);
+ }
+ conf_parse(name);
+- //zconfdump(stdout);
++ /*zconfdump(stdout);*/
+ switch (input_mode) {
+ case set_default:
+ if (!defconfig_file)
+@@ -560,11 +560,11 @@ int main(int ac, char **av)
+ case ask_silent:
+ if (stat(".config", &tmpstat)) {
+ printf(_("***\n"
+- "*** You have not yet configured your kernel!\n"
+- "*** (missing kernel .config file)\n"
++ "*** You have not yet configured Buildroot!\n"
++ "*** (missing .config file)\n"
+ "***\n"
+ "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
+- "*** \"make menuconfig\" or \"make xconfig\").\n"
++ "*** \"make menuconfig\" or \"make config\").\n"
+ "***\n"));
+ exit(1);
+ }
+@@ -607,7 +607,7 @@ int main(int ac, char **av)
+ } else if (conf_get_changed()) {
+ name = getenv("KCONFIG_NOSILENTUPDATE");
+ if (name && *name) {
+- fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n"));
++ fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n"));
+ return 1;
+ }
+ } else
+@@ -618,12 +618,12 @@ int main(int ac, char **av)
+ check_conf(&rootmenu);
+ } while (conf_cnt);
+ if (conf_write(NULL)) {
+- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
+ return 1;
+ }
+ skip_check:
+- if (input_mode == ask_silent && conf_write_autoconf()) {
+- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
++ if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) {
++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
+ return 1;
+ }
+
+diff -rduNp config.new.oorig/confdata.c config.new/confdata.c
+--- config.new.oorig/confdata.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/confdata.c 2008-04-07 11:06:30.000000000 +0200
+@@ -11,6 +11,7 @@
+ #include <string.h>
+ #include <time.h>
+ #include <unistd.h>
++#include <libgen.h>
+
+ #define LKC_DIRECT_LINK
+ #include "lkc.h"
+@@ -21,7 +22,7 @@ static void conf_warning(const char *fmt
+ static const char *conf_filename;
+ static int conf_lineno, conf_warnings, conf_unsaved;
+
+-const char conf_defname[] = "arch/$ARCH/defconfig";
++const char conf_defname[] = ".defconfig";
+
+ static void conf_warning(const char *fmt, ...)
+ {
+@@ -36,7 +37,7 @@ static void conf_warning(const char *fmt
+
+ const char *conf_get_configname(void)
+ {
+- char *name = getenv("KCONFIG_CONFIG");
++ char *name = getenv("BUILDROOT_CONFIG");
+
+ return name ? name : ".config";
+ }
+@@ -212,22 +213,22 @@ load:
+ sym = NULL;
+ switch (line[0]) {
+ case '#':
+- if (memcmp(line + 2, "CONFIG_", 7))
++ if (line[1]!=' ')
+ continue;
+- p = strchr(line + 9, ' ');
++ p = strchr(line + 2, ' ');
+ if (!p)
+ continue;
+ *p++ = 0;
+ if (strncmp(p, "is not set", 10))
+ continue;
+ if (def == S_DEF_USER) {
+- sym = sym_find(line + 9);
++ sym = sym_find(line + 2);
+ if (!sym) {
+- conf_warning("trying to assign nonexistent symbol %s", line + 9);
++ conf_warning("trying to assign nonexistent symbol %s", line + 2);
+ break;
+ }
+ } else {
+- sym = sym_lookup(line + 9, 0);
++ sym = sym_lookup(line + 2, 0);
+ if (sym->type == S_UNKNOWN)
+ sym->type = S_BOOLEAN;
+ }
+@@ -245,12 +246,8 @@ load:
+ ;
+ }
+ break;
+- case 'C':
+- if (memcmp(line, "CONFIG_", 7)) {
+- conf_warning("unexpected data");
+- continue;
+- }
+- p = strchr(line + 7, '=');
++ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z':
++ p = strchr(line, '=');
+ if (!p)
+ continue;
+ *p++ = 0;
+@@ -261,13 +258,13 @@ load:
+ *p2 = 0;
+ }
+ if (def == S_DEF_USER) {
+- sym = sym_find(line + 7);
++ sym = sym_find(line);
+ if (!sym) {
+- conf_warning("trying to assign nonexistent symbol %s", line + 7);
++ conf_warning("trying to assign nonexistent symbol %s", line);
+ break;
+ }
+ } else {
+- sym = sym_lookup(line + 7, 0);
++ sym = sym_lookup(line, 0);
+ if (sym->type == S_UNKNOWN)
+ sym->type = S_OTHER;
+ }
+@@ -440,7 +437,7 @@ int conf_write(const char *name)
+ if (!out)
+ return 1;
+
+- sym = sym_lookup("KERNELVERSION", 0);
++ sym = sym_lookup("BR2_VERSION", 0);
+ sym_calc_value(sym);
+ time(&now);
+ env = getenv("KCONFIG_NOTIMESTAMP");
+@@ -449,10 +446,8 @@ int conf_write(const char *name)
+
+ fprintf(out, _("#\n"
+ "# Automatically generated make config: don't edit\n"
+- "# Linux kernel version: %s\n"
+ "%s%s"
+ "#\n"),
+- sym_get_string_value(sym),
+ use_timestamp ? "# " : "",
+ use_timestamp ? ctime(&now) : "");
+
+@@ -486,19 +481,19 @@ int conf_write(const char *name)
+ case S_TRISTATE:
+ switch (sym_get_tristate_value(sym)) {
+ case no:
+- fprintf(out, "# CONFIG_%s is not set\n", sym->name);
++ fprintf(out, "# %s is not set\n", sym->name);
+ break;
+ case mod:
+- fprintf(out, "CONFIG_%s=m\n", sym->name);
++ fprintf(out, "%s=m\n", sym->name);
+ break;
+ case yes:
+- fprintf(out, "CONFIG_%s=y\n", sym->name);
++ fprintf(out, "%s=y\n", sym->name);
+ break;
+ }
+ break;
+ case S_STRING:
+ str = sym_get_string_value(sym);
+- fprintf(out, "CONFIG_%s=\"", sym->name);
++ fprintf(out, "%s=\"", sym->name);
+ while (1) {
+ l = strcspn(str, "\"\\");
+ if (l) {
+@@ -514,12 +509,12 @@ int conf_write(const char *name)
+ case S_HEX:
+ str = sym_get_string_value(sym);
+ if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
+- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
++ fprintf(out, "%s=%s\n", sym->name, str);
+ break;
+ }
+ case S_INT:
+ str = sym_get_string_value(sym);
+- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
++ fprintf(out, "%s=%s\n", sym->name, str);
+ break;
+ }
+ }
+@@ -559,7 +554,7 @@ int conf_write(const char *name)
+
+ int conf_split_config(void)
+ {
+- char *name, path[128];
++ char *name, path[128], *opwd, *dir, *_name;
+ char *s, *d, c;
+ struct symbol *sym;
+ struct stat sb;
+@@ -570,8 +565,20 @@ int conf_split_config(void)
+ name = "include/config/auto.conf";
+ conf_read_simple(name, S_DEF_AUTO);
+
+- if (chdir("include/config"))
++ opwd = malloc(256);
++ _name = strdup(name);
++ if (opwd == NULL || _name == NULL)
+ return 1;
++ opwd = getcwd(opwd, 256);
++ dir = dirname(_name);
++ if (dir == NULL) {
++ res = 1;
++ goto err;
++ }
++ if (chdir(dir)) {
++ res = 1;
++ goto err;
++ }
+
+ res = 0;
+ for_all_symbols(i, sym) {
+@@ -664,9 +671,11 @@ int conf_split_config(void)
+ close(fd);
+ }
+ out:
+- if (chdir("../.."))
+- return 1;
+-
++ if (chdir(opwd))
++ res = 1;
++err:
++ free(opwd);
++ free(_name);
+ return res;
+ }
+
+@@ -681,7 +690,7 @@ int conf_write_autoconf(void)
+
+ sym_clear_all_valid();
+
+- file_write_dep("include/config/auto.conf.cmd");
++ file_write_dep(".config.cmd");
+
+ if (conf_split_config())
+ return 1;
+@@ -696,22 +705,19 @@ int conf_write_autoconf(void)
+ return 1;
+ }
+
+- sym = sym_lookup("KERNELVERSION", 0);
++ sym = sym_lookup("BR2_VERSION", 0);
+ sym_calc_value(sym);
+ time(&now);
+ fprintf(out, "#\n"
+ "# Automatically generated make config: don't edit\n"
+- "# Linux kernel version: %s\n"
+ "# %s"
+ "#\n",
+- sym_get_string_value(sym), ctime(&now));
++ ctime(&now));
+ fprintf(out_h, "/*\n"
+ " * Automatically generated C config: don't edit\n"
+- " * Linux kernel version: %s\n"
+ " * %s"
+- " */\n"
+- "#define AUTOCONF_INCLUDED\n",
+- sym_get_string_value(sym), ctime(&now));
++ " */\n",
++ ctime(&now));
+
+ for_all_symbols(i, sym) {
+ sym_calc_value(sym);
+@@ -724,19 +730,19 @@ int conf_write_autoconf(void)
+ case no:
+ break;
+ case mod:
+- fprintf(out, "CONFIG_%s=m\n", sym->name);
+- fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
++ fprintf(out, "%s=m\n", sym->name);
++ fprintf(out_h, "#define %s_MODULE 1\n", sym->name);
+ break;
+ case yes:
+- fprintf(out, "CONFIG_%s=y\n", sym->name);
+- fprintf(out_h, "#define CONFIG_%s 1\n", sym->name);
++ fprintf(out, "%s=y\n", sym->name);
++ fprintf(out_h, "#define %s 1\n", sym->name);
+ break;
+ }
+ break;
+ case S_STRING:
+ str = sym_get_string_value(sym);
+- fprintf(out, "CONFIG_%s=\"", sym->name);
+- fprintf(out_h, "#define CONFIG_%s \"", sym->name);
++ fprintf(out, "%s=\"", sym->name);
++ fprintf(out_h, "#define %s \"", sym->name);
+ while (1) {
+ l = strcspn(str, "\"\\");
+ if (l) {
+@@ -756,14 +762,14 @@ int conf_write_autoconf(void)
+ case S_HEX:
+ str = sym_get_string_value(sym);
+ if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
+- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+- fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str);
++ fprintf(out, "%s=%s\n", sym->name, str);
++ fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
+ break;
+ }
+ case S_INT:
+ str = sym_get_string_value(sym);
+- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+- fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str);
++ fprintf(out, "%s=%s\n", sym->name, str);
++ fprintf(out_h, "#define %s %s\n", sym->name, str);
+ break;
+ default:
+ break;
+diff -rduNp config.new.oorig/expr.c config.new/expr.c
+--- config.new.oorig/expr.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/expr.c 2008-04-07 11:06:30.000000000 +0200
+@@ -331,7 +331,7 @@ struct expr *expr_trans_bool(struct expr
+ e->right.expr = expr_trans_bool(e->right.expr);
+ break;
+ case E_UNEQUAL:
+- // FOO!=n -> FOO
++ /* FOO!=n -> FOO */
+ if (e->left.sym->type == S_TRISTATE) {
+ if (e->right.sym == &symbol_no) {
+ e->type = E_SYMBOL;
+@@ -380,19 +380,19 @@ struct expr *expr_join_or(struct expr *e
+ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
+ (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) {
+- // (a='y') || (a='m') -> (a!='n')
++ /* (a='y') || (a='m') -> (a!='n') */
+ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no);
+ }
+ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) {
+- // (a='y') || (a='n') -> (a!='m')
++ /* (a='y') || (a='n') -> (a!='m') */
+ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod);
+ }
+ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
+ ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) {
+- // (a='m') || (a='n') -> (a!='y')
++ /* (a='m') || (a='n') -> (a!='y') */
+ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
+ }
+ }
+@@ -443,29 +443,29 @@ struct expr *expr_join_and(struct expr *
+
+ if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
+ (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
+- // (a) && (a='y') -> (a='y')
++ /* (a) && (a='y') -> (a='y') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
+
+ if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) ||
+ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no))
+- // (a) && (a!='n') -> (a)
++ /* (a) && (a!='n') -> (a) */
+ return expr_alloc_symbol(sym1);
+
+ if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) ||
+ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod))
+- // (a) && (a!='m') -> (a='y')
++ /* (a) && (a!='m') -> (a='y') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
+
+ if (sym1->type == S_TRISTATE) {
+ if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
+- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b'
++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
+ sym2 = e1->right.sym;
+ if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
+ return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
+ : expr_alloc_symbol(&symbol_no);
+ }
+ if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
+- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b'
++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
+ sym2 = e2->right.sym;
+ if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
+ return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
+@@ -474,19 +474,19 @@ struct expr *expr_join_and(struct expr *
+ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes)))
+- // (a!='y') && (a!='n') -> (a='m')
++ /* (a!='y') && (a!='n') -> (a='m') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod);
+
+ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
+ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
+ (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes)))
+- // (a!='y') && (a!='m') -> (a='n')
++ /* (a!='y') && (a!='m') -> (a='n') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_no);
+
+ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
+ ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
+ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod)))
+- // (a!='m') && (a!='n') -> (a='m')
++ /* (a!='m') && (a!='n') -> (a='m') */
+ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
+
+ if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
+@@ -579,7 +579,7 @@ static void expr_eliminate_dups2(enum ex
+ switch (e1->type) {
+ case E_OR:
+ expr_eliminate_dups2(e1->type, &e1, &e1);
+- // (FOO || BAR) && (!FOO && !BAR) -> n
++ /* (FOO || BAR) && (!FOO && !BAR) -> n */
+ tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
+ tmp2 = expr_copy(e2);
+ tmp = expr_extract_eq_and(&tmp1, &tmp2);
+@@ -594,7 +594,7 @@ static void expr_eliminate_dups2(enum ex
+ break;
+ case E_AND:
+ expr_eliminate_dups2(e1->type, &e1, &e1);
+- // (FOO && BAR) || (!FOO || !BAR) -> y
++ /* (FOO && BAR) || (!FOO || !BAR) -> y */
+ tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
+ tmp2 = expr_copy(e2);
+ tmp = expr_extract_eq_or(&tmp1, &tmp2);
+@@ -703,7 +703,7 @@ struct expr *expr_transform(struct expr
+ case E_NOT:
+ switch (e->left.expr->type) {
+ case E_NOT:
+- // !!a -> a
++ /* !!a -> a */
+ tmp = e->left.expr->left.expr;
+ free(e->left.expr);
+ free(e);
+@@ -712,14 +712,14 @@ struct expr *expr_transform(struct expr
+ break;
+ case E_EQUAL:
+ case E_UNEQUAL:
+- // !a='x' -> a!='x'
++ /* !a='x' -> a!='x' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+ e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL;
+ break;
+ case E_OR:
+- // !(a || b) -> !a && !b
++ /* !(a || b) -> !a && !b */
+ tmp = e->left.expr;
+ e->type = E_AND;
+ e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
+@@ -728,7 +728,7 @@ struct expr *expr_transform(struct expr
+ e = expr_transform(e);
+ break;
+ case E_AND:
+- // !(a && b) -> !a || !b
++ /* !(a && b) -> !a || !b */
+ tmp = e->left.expr;
+ e->type = E_OR;
+ e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
+@@ -738,7 +738,7 @@ struct expr *expr_transform(struct expr
+ break;
+ case E_SYMBOL:
+ if (e->left.expr->left.sym == &symbol_yes) {
+- // !'y' -> 'n'
++ /* !'y' -> 'n' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+@@ -747,7 +747,7 @@ struct expr *expr_transform(struct expr
+ break;
+ }
+ if (e->left.expr->left.sym == &symbol_mod) {
+- // !'m' -> 'm'
++ /* !'m' -> 'm' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+@@ -756,7 +756,7 @@ struct expr *expr_transform(struct expr
+ break;
+ }
+ if (e->left.expr->left.sym == &symbol_no) {
+- // !'n' -> 'y'
++ /* !'n' -> 'y' */
+ tmp = e->left.expr;
+ free(e);
+ e = tmp;
+diff -rduNp config.new.oorig/expr.h config.new/expr.h
+--- config.new.oorig/expr.h 2008-04-07 11:03:28.000000000 +0200
++++ config.new/expr.h 2008-04-07 11:06:30.000000000 +0200
+@@ -65,7 +65,7 @@ enum symbol_type {
+
+ enum {
+ S_DEF_USER, /* main user value */
+- S_DEF_AUTO,
++ S_DEF_AUTO
+ };
+
+ struct symbol {
+diff -rduNp config.new.oorig/gconf.c config.new/gconf.c
+--- config.new.oorig/gconf.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/gconf.c 2008-04-07 11:06:30.000000000 +0200
+@@ -268,8 +268,8 @@ void init_main_window(const gchar * glad
+ /*"style", PANGO_STYLE_OBLIQUE, */
+ NULL);
+
+- sprintf(title, _("Linux Kernel v%s Configuration"),
+- getenv("KERNELVERSION"));
++ sprintf(title, _("Buildroot v%s Configuration"),
++ getenv("BR2_VERSION"));
+ gtk_window_set_title(GTK_WINDOW(main_wnd), title);
+
+ gtk_widget_show(main_wnd);
+diff -rduNp config.new.oorig/gconf.glade config.new/gconf.glade
+--- config.new.oorig/gconf.glade 2008-04-07 11:03:28.000000000 +0200
++++ config.new/gconf.glade 2008-04-07 11:06:30.000000000 +0200
+@@ -5,7 +5,7 @@
+
+ <widget class="GtkWindow" id="window1">
+ <property name="visible">True</property>
+- <property name="title" translatable="yes">Gtk Kernel Configurator</property>
++ <property name="title" translatable="yes">Gtk Buildroot Configurator</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+diff -rduNp config.new.oorig/kconfig-to-buildroot2.patch config.new/kconfig-to-buildroot2.patch
+--- config.new.oorig/kconfig-to-buildroot2.patch 1970-01-01 01:00:00.000000000 +0100
++++ config.new/kconfig-to-buildroot2.patch 2008-04-07 11:12:30.000000000 +0200
+@@ -0,0 +1,562 @@
++diff -rduNp config.new.oorig/Makefile config.new/Makefile
++--- config.new.oorig/Makefile 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/Makefile 2008-04-07 11:06:30.000000000 +0200
++@@ -123,6 +123,9 @@ hostprogs-y := conf qconf gconf kxgettex
++ ifeq ($(MAKECMDGOALS),menuconfig)
++ hostprogs-y += mconf
++ endif
+++ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
+++ hostprogs-y += mconf
+++endif
++
++ ifeq ($(MAKECMDGOALS),xconfig)
++ qconf-target := 1
++@@ -181,8 +184,8 @@ $(obj)/.tmp_qtcheck:
++ done; \
++ if [ -z "$$dir" ]; then \
++ echo "*"; \
++- echo "* Unable to find the QT3 installation. Please make sure that"; \
++- echo "* the QT3 development package is correctly installed and"; \
+++ echo "* Unable to find the QT installation. Please make sure that"; \
+++ echo "* the QT development package is correctly installed and"; \
++ echo "* either install pkg-config or set the QTDIR environment"; \
++ echo "* variable to the correct location."; \
++ echo "*"; \
++diff -rduNp config.new.oorig/conf.c config.new/conf.c
++--- config.new.oorig/conf.c 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/conf.c 2008-04-07 11:06:30.000000000 +0200
++@@ -545,7 +545,7 @@ int main(int ac, char **av)
++ exit(1);
++ }
++ conf_parse(name);
++- //zconfdump(stdout);
+++ /*zconfdump(stdout);*/
++ switch (input_mode) {
++ case set_default:
++ if (!defconfig_file)
++@@ -560,11 +560,11 @@ int main(int ac, char **av)
++ case ask_silent:
++ if (stat(".config", &tmpstat)) {
++ printf(_("***\n"
++- "*** You have not yet configured your kernel!\n"
++- "*** (missing kernel .config file)\n"
+++ "*** You have not yet configured Buildroot!\n"
+++ "*** (missing .config file)\n"
++ "***\n"
++ "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
++- "*** \"make menuconfig\" or \"make xconfig\").\n"
+++ "*** \"make menuconfig\" or \"make config\").\n"
++ "***\n"));
++ exit(1);
++ }
++@@ -607,7 +607,7 @@ int main(int ac, char **av)
++ } else if (conf_get_changed()) {
++ name = getenv("KCONFIG_NOSILENTUPDATE");
++ if (name && *name) {
++- fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n"));
+++ fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n"));
++ return 1;
++ }
++ } else
++@@ -618,12 +618,12 @@ int main(int ac, char **av)
++ check_conf(&rootmenu);
++ } while (conf_cnt);
++ if (conf_write(NULL)) {
++- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
+++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
++ return 1;
++ }
++ skip_check:
++- if (input_mode == ask_silent && conf_write_autoconf()) {
++- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
+++ if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) {
+++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
++ return 1;
++ }
++
++diff -rduNp config.new.oorig/confdata.c config.new/confdata.c
++--- config.new.oorig/confdata.c 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/confdata.c 2008-04-07 11:06:30.000000000 +0200
++@@ -11,6 +11,7 @@
++ #include <string.h>
++ #include <time.h>
++ #include <unistd.h>
+++#include <libgen.h>
++
++ #define LKC_DIRECT_LINK
++ #include "lkc.h"
++@@ -21,7 +22,7 @@ static void conf_warning(const char *fmt
++ static const char *conf_filename;
++ static int conf_lineno, conf_warnings, conf_unsaved;
++
++-const char conf_defname[] = "arch/$ARCH/defconfig";
+++const char conf_defname[] = ".defconfig";
++
++ static void conf_warning(const char *fmt, ...)
++ {
++@@ -36,7 +37,7 @@ static void conf_warning(const char *fmt
++
++ const char *conf_get_configname(void)
++ {
++- char *name = getenv("KCONFIG_CONFIG");
+++ char *name = getenv("BUILDROOT_CONFIG");
++
++ return name ? name : ".config";
++ }
++@@ -212,22 +213,22 @@ load:
++ sym = NULL;
++ switch (line[0]) {
++ case '#':
++- if (memcmp(line + 2, "CONFIG_", 7))
+++ if (line[1]!=' ')
++ continue;
++- p = strchr(line + 9, ' ');
+++ p = strchr(line + 2, ' ');
++ if (!p)
++ continue;
++ *p++ = 0;
++ if (strncmp(p, "is not set", 10))
++ continue;
++ if (def == S_DEF_USER) {
++- sym = sym_find(line + 9);
+++ sym = sym_find(line + 2);
++ if (!sym) {
++- conf_warning("trying to assign nonexistent symbol %s", line + 9);
+++ conf_warning("trying to assign nonexistent symbol %s", line + 2);
++ break;
++ }
++ } else {
++- sym = sym_lookup(line + 9, 0);
+++ sym = sym_lookup(line + 2, 0);
++ if (sym->type == S_UNKNOWN)
++ sym->type = S_BOOLEAN;
++ }
++@@ -245,12 +246,8 @@ load:
++ ;
++ }
++ break;
++- case 'C':
++- if (memcmp(line, "CONFIG_", 7)) {
++- conf_warning("unexpected data");
++- continue;
++- }
++- p = strchr(line + 7, '=');
+++ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z':
+++ p = strchr(line, '=');
++ if (!p)
++ continue;
++ *p++ = 0;
++@@ -261,13 +258,13 @@ load:
++ *p2 = 0;
++ }
++ if (def == S_DEF_USER) {
++- sym = sym_find(line + 7);
+++ sym = sym_find(line);
++ if (!sym) {
++- conf_warning("trying to assign nonexistent symbol %s", line + 7);
+++ conf_warning("trying to assign nonexistent symbol %s", line);
++ break;
++ }
++ } else {
++- sym = sym_lookup(line + 7, 0);
+++ sym = sym_lookup(line, 0);
++ if (sym->type == S_UNKNOWN)
++ sym->type = S_OTHER;
++ }
++@@ -440,7 +437,7 @@ int conf_write(const char *name)
++ if (!out)
++ return 1;
++
++- sym = sym_lookup("KERNELVERSION", 0);
+++ sym = sym_lookup("BR2_VERSION", 0);
++ sym_calc_value(sym);
++ time(&now);
++ env = getenv("KCONFIG_NOTIMESTAMP");
++@@ -449,10 +446,8 @@ int conf_write(const char *name)
++
++ fprintf(out, _("#\n"
++ "# Automatically generated make config: don't edit\n"
++- "# Linux kernel version: %s\n"
++ "%s%s"
++ "#\n"),
++- sym_get_string_value(sym),
++ use_timestamp ? "# " : "",
++ use_timestamp ? ctime(&now) : "");
++
++@@ -486,19 +481,19 @@ int conf_write(const char *name)
++ case S_TRISTATE:
++ switch (sym_get_tristate_value(sym)) {
++ case no:
++- fprintf(out, "# CONFIG_%s is not set\n", sym->name);
+++ fprintf(out, "# %s is not set\n", sym->name);
++ break;
++ case mod:
++- fprintf(out, "CONFIG_%s=m\n", sym->name);
+++ fprintf(out, "%s=m\n", sym->name);
++ break;
++ case yes:
++- fprintf(out, "CONFIG_%s=y\n", sym->name);
+++ fprintf(out, "%s=y\n", sym->name);
++ break;
++ }
++ break;
++ case S_STRING:
++ str = sym_get_string_value(sym);
++- fprintf(out, "CONFIG_%s=\"", sym->name);
+++ fprintf(out, "%s=\"", sym->name);
++ while (1) {
++ l = strcspn(str, "\"\\");
++ if (l) {
++@@ -514,12 +509,12 @@ int conf_write(const char *name)
++ case S_HEX:
++ str = sym_get_string_value(sym);
++ if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
++- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+++ fprintf(out, "%s=%s\n", sym->name, str);
++ break;
++ }
++ case S_INT:
++ str = sym_get_string_value(sym);
++- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+++ fprintf(out, "%s=%s\n", sym->name, str);
++ break;
++ }
++ }
++@@ -559,7 +554,7 @@ int conf_write(const char *name)
++
++ int conf_split_config(void)
++ {
++- char *name, path[128];
+++ char *name, path[128], *opwd, *dir, *_name;
++ char *s, *d, c;
++ struct symbol *sym;
++ struct stat sb;
++@@ -570,8 +565,20 @@ int conf_split_config(void)
++ name = "include/config/auto.conf";
++ conf_read_simple(name, S_DEF_AUTO);
++
++- if (chdir("include/config"))
+++ opwd = malloc(256);
+++ _name = strdup(name);
+++ if (opwd == NULL || _name == NULL)
++ return 1;
+++ opwd = getcwd(opwd, 256);
+++ dir = dirname(_name);
+++ if (dir == NULL) {
+++ res = 1;
+++ goto err;
+++ }
+++ if (chdir(dir)) {
+++ res = 1;
+++ goto err;
+++ }
++
++ res = 0;
++ for_all_symbols(i, sym) {
++@@ -664,9 +671,11 @@ int conf_split_config(void)
++ close(fd);
++ }
++ out:
++- if (chdir("../.."))
++- return 1;
++-
+++ if (chdir(opwd))
+++ res = 1;
+++err:
+++ free(opwd);
+++ free(_name);
++ return res;
++ }
++
++@@ -681,7 +690,7 @@ int conf_write_autoconf(void)
++
++ sym_clear_all_valid();
++
++- file_write_dep("include/config/auto.conf.cmd");
+++ file_write_dep(".config.cmd");
++
++ if (conf_split_config())
++ return 1;
++@@ -696,22 +705,19 @@ int conf_write_autoconf(void)
++ return 1;
++ }
++
++- sym = sym_lookup("KERNELVERSION", 0);
+++ sym = sym_lookup("BR2_VERSION", 0);
++ sym_calc_value(sym);
++ time(&now);
++ fprintf(out, "#\n"
++ "# Automatically generated make config: don't edit\n"
++- "# Linux kernel version: %s\n"
++ "# %s"
++ "#\n",
++- sym_get_string_value(sym), ctime(&now));
+++ ctime(&now));
++ fprintf(out_h, "/*\n"
++ " * Automatically generated C config: don't edit\n"
++- " * Linux kernel version: %s\n"
++ " * %s"
++- " */\n"
++- "#define AUTOCONF_INCLUDED\n",
++- sym_get_string_value(sym), ctime(&now));
+++ " */\n",
+++ ctime(&now));
++
++ for_all_symbols(i, sym) {
++ sym_calc_value(sym);
++@@ -724,19 +730,19 @@ int conf_write_autoconf(void)
++ case no:
++ break;
++ case mod:
++- fprintf(out, "CONFIG_%s=m\n", sym->name);
++- fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
+++ fprintf(out, "%s=m\n", sym->name);
+++ fprintf(out_h, "#define %s_MODULE 1\n", sym->name);
++ break;
++ case yes:
++- fprintf(out, "CONFIG_%s=y\n", sym->name);
++- fprintf(out_h, "#define CONFIG_%s 1\n", sym->name);
+++ fprintf(out, "%s=y\n", sym->name);
+++ fprintf(out_h, "#define %s 1\n", sym->name);
++ break;
++ }
++ break;
++ case S_STRING:
++ str = sym_get_string_value(sym);
++- fprintf(out, "CONFIG_%s=\"", sym->name);
++- fprintf(out_h, "#define CONFIG_%s \"", sym->name);
+++ fprintf(out, "%s=\"", sym->name);
+++ fprintf(out_h, "#define %s \"", sym->name);
++ while (1) {
++ l = strcspn(str, "\"\\");
++ if (l) {
++@@ -756,14 +762,14 @@ int conf_write_autoconf(void)
++ case S_HEX:
++ str = sym_get_string_value(sym);
++ if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
++- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
++- fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str);
+++ fprintf(out, "%s=%s\n", sym->name, str);
+++ fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
++ break;
++ }
++ case S_INT:
++ str = sym_get_string_value(sym);
++- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
++- fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str);
+++ fprintf(out, "%s=%s\n", sym->name, str);
+++ fprintf(out_h, "#define %s %s\n", sym->name, str);
++ break;
++ default:
++ break;
++diff -rduNp config.new.oorig/expr.c config.new/expr.c
++--- config.new.oorig/expr.c 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/expr.c 2008-04-07 11:06:30.000000000 +0200
++@@ -331,7 +331,7 @@ struct expr *expr_trans_bool(struct expr
++ e->right.expr = expr_trans_bool(e->right.expr);
++ break;
++ case E_UNEQUAL:
++- // FOO!=n -> FOO
+++ /* FOO!=n -> FOO */
++ if (e->left.sym->type == S_TRISTATE) {
++ if (e->right.sym == &symbol_no) {
++ e->type = E_SYMBOL;
++@@ -380,19 +380,19 @@ struct expr *expr_join_or(struct expr *e
++ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
++ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
++ (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) {
++- // (a='y') || (a='m') -> (a!='n')
+++ /* (a='y') || (a='m') -> (a!='n') */
++ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no);
++ }
++ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
++ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
++ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) {
++- // (a='y') || (a='n') -> (a!='m')
+++ /* (a='y') || (a='n') -> (a!='m') */
++ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod);
++ }
++ if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
++ ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
++ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) {
++- // (a='m') || (a='n') -> (a!='y')
+++ /* (a='m') || (a='n') -> (a!='y') */
++ return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
++ }
++ }
++@@ -443,29 +443,29 @@ struct expr *expr_join_and(struct expr *
++
++ if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) ||
++ (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes))
++- // (a) && (a='y') -> (a='y')
+++ /* (a) && (a='y') -> (a='y') */
++ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
++
++ if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) ||
++ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no))
++- // (a) && (a!='n') -> (a)
+++ /* (a) && (a!='n') -> (a) */
++ return expr_alloc_symbol(sym1);
++
++ if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) ||
++ (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod))
++- // (a) && (a!='m') -> (a='y')
+++ /* (a) && (a!='m') -> (a='y') */
++ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
++
++ if (sym1->type == S_TRISTATE) {
++ if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
++- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b'
+++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
++ sym2 = e1->right.sym;
++ if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
++ return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
++ : expr_alloc_symbol(&symbol_no);
++ }
++ if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
++- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b'
+++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
++ sym2 = e2->right.sym;
++ if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST))
++ return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2)
++@@ -474,19 +474,19 @@ struct expr *expr_join_and(struct expr *
++ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
++ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) ||
++ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes)))
++- // (a!='y') && (a!='n') -> (a='m')
+++ /* (a!='y') && (a!='n') -> (a='m') */
++ return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod);
++
++ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
++ ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) ||
++ (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes)))
++- // (a!='y') && (a!='m') -> (a='n')
+++ /* (a!='y') && (a!='m') -> (a='n') */
++ return expr_alloc_comp(E_EQUAL, sym1, &symbol_no);
++
++ if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
++ ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) ||
++ (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod)))
++- // (a!='m') && (a!='n') -> (a='m')
+++ /* (a!='m') && (a!='n') -> (a='m') */
++ return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
++
++ if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) ||
++@@ -579,7 +579,7 @@ static void expr_eliminate_dups2(enum ex
++ switch (e1->type) {
++ case E_OR:
++ expr_eliminate_dups2(e1->type, &e1, &e1);
++- // (FOO || BAR) && (!FOO && !BAR) -> n
+++ /* (FOO || BAR) && (!FOO && !BAR) -> n */
++ tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
++ tmp2 = expr_copy(e2);
++ tmp = expr_extract_eq_and(&tmp1, &tmp2);
++@@ -594,7 +594,7 @@ static void expr_eliminate_dups2(enum ex
++ break;
++ case E_AND:
++ expr_eliminate_dups2(e1->type, &e1, &e1);
++- // (FOO && BAR) || (!FOO || !BAR) -> y
+++ /* (FOO && BAR) || (!FOO || !BAR) -> y */
++ tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
++ tmp2 = expr_copy(e2);
++ tmp = expr_extract_eq_or(&tmp1, &tmp2);
++@@ -703,7 +703,7 @@ struct expr *expr_transform(struct expr
++ case E_NOT:
++ switch (e->left.expr->type) {
++ case E_NOT:
++- // !!a -> a
+++ /* !!a -> a */
++ tmp = e->left.expr->left.expr;
++ free(e->left.expr);
++ free(e);
++@@ -712,14 +712,14 @@ struct expr *expr_transform(struct expr
++ break;
++ case E_EQUAL:
++ case E_UNEQUAL:
++- // !a='x' -> a!='x'
+++ /* !a='x' -> a!='x' */
++ tmp = e->left.expr;
++ free(e);
++ e = tmp;
++ e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL;
++ break;
++ case E_OR:
++- // !(a || b) -> !a && !b
+++ /* !(a || b) -> !a && !b */
++ tmp = e->left.expr;
++ e->type = E_AND;
++ e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
++@@ -728,7 +728,7 @@ struct expr *expr_transform(struct expr
++ e = expr_transform(e);
++ break;
++ case E_AND:
++- // !(a && b) -> !a || !b
+++ /* !(a && b) -> !a || !b */
++ tmp = e->left.expr;
++ e->type = E_OR;
++ e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
++@@ -738,7 +738,7 @@ struct expr *expr_transform(struct expr
++ break;
++ case E_SYMBOL:
++ if (e->left.expr->left.sym == &symbol_yes) {
++- // !'y' -> 'n'
+++ /* !'y' -> 'n' */
++ tmp = e->left.expr;
++ free(e);
++ e = tmp;
++@@ -747,7 +747,7 @@ struct expr *expr_transform(struct expr
++ break;
++ }
++ if (e->left.expr->left.sym == &symbol_mod) {
++- // !'m' -> 'm'
+++ /* !'m' -> 'm' */
++ tmp = e->left.expr;
++ free(e);
++ e = tmp;
++@@ -756,7 +756,7 @@ struct expr *expr_transform(struct expr
++ break;
++ }
++ if (e->left.expr->left.sym == &symbol_no) {
++- // !'n' -> 'y'
+++ /* !'n' -> 'y' */
++ tmp = e->left.expr;
++ free(e);
++ e = tmp;
++diff -rduNp config.new.oorig/expr.h config.new/expr.h
++--- config.new.oorig/expr.h 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/expr.h 2008-04-07 11:06:30.000000000 +0200
++@@ -65,7 +65,7 @@ enum symbol_type {
++
++ enum {
++ S_DEF_USER, /* main user value */
++- S_DEF_AUTO,
+++ S_DEF_AUTO
++ };
++
++ struct symbol {
++diff -rduNp config.new.oorig/gconf.c config.new/gconf.c
++--- config.new.oorig/gconf.c 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/gconf.c 2008-04-07 11:06:30.000000000 +0200
++@@ -268,8 +268,8 @@ void init_main_window(const gchar * glad
++ /*"style", PANGO_STYLE_OBLIQUE, */
++ NULL);
++
++- sprintf(title, _("Linux Kernel v%s Configuration"),
++- getenv("KERNELVERSION"));
+++ sprintf(title, _("Buildroot v%s Configuration"),
+++ getenv("BR2_VERSION"));
++ gtk_window_set_title(GTK_WINDOW(main_wnd), title);
++
++ gtk_widget_show(main_wnd);
++diff -rduNp config.new.oorig/gconf.glade config.new/gconf.glade
++--- config.new.oorig/gconf.glade 2008-04-07 11:03:28.000000000 +0200
+++++ config.new/gconf.glade 2008-04-07 11:06:30.000000000 +0200
++@@ -5,7 +5,7 @@
++
++ <widget class="GtkWindow" id="window1">
++ <property name="visible">True</property>
++- <property name="title" translatable="yes">Gtk Kernel Configurator</property>
+++ <property name="title" translatable="yes">Gtk Buildroot Configurator</property>
++ <property name="type">GTK_WINDOW_TOPLEVEL</property>
++ <property name="window_position">GTK_WIN_POS_NONE</property>
++ <property name="modal">False</property>
+diff -rduNp config.new.oorig/mconf.c config.new/mconf.c
+--- config.new.oorig/mconf.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/mconf.c 2008-04-07 11:09:01.000000000 +0200
+@@ -29,10 +29,9 @@
+ static const char mconf_readme[] = N_(
+ "Overview\n"
+ "--------\n"
+-"Some kernel features may be built directly into the kernel.\n"
+-"Some may be made into loadable runtime modules. Some features\n"
++"Some features may be built directly into Buildroot. Some features\n"
+ "may be completely removed altogether. There are also certain\n"
+-"kernel parameters which are not really features, but must be\n"
++"parameters which are not really features, but must be\n"
+ "entered in as decimal or hexadecimal numbers or possibly text.\n"
+ "\n"
+ "Menu items beginning with following braces represent features that\n"
+@@ -119,7 +118,7 @@ static const char mconf_readme[] = N_(
+ "-----------------------------\n"
+ "Menuconfig supports the use of alternate configuration files for\n"
+ "those who, for various reasons, find it necessary to switch\n"
+-"between different kernel configurations.\n"
++"between different configurations.\n"
+ "\n"
+ "At the end of the main menu you will find two options. One is\n"
+ "for saving the current configuration to a file of your choosing.\n"
+@@ -152,7 +151,7 @@ static const char mconf_readme[] = N_(
+ "\n"
+ "Optional personality available\n"
+ "------------------------------\n"
+-"If you prefer to have all of the kernel options listed in a single\n"
++"If you prefer to have all of the options listed in a single\n"
+ "menu, rather than the default multimenu hierarchy, run the menuconfig\n"
+ "with MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
+ "\n"
+@@ -182,9 +181,9 @@ menu_instructions[] = N_(
+ "Arrow keys navigate the menu. "
+ "<Enter> selects submenus --->. "
+ "Highlighted letters are hotkeys. "
+- "Pressing <Y> includes, <N> excludes, <M> modularizes features. "
++ "Pressing <Y> selectes a feature, while <N> will exclude a feature. "
+ "Press <Esc><Esc> to exit, <?> for Help, </> for Search. "
+- "Legend: [*] built-in [ ] excluded <M> module < > module capable"),
++ "Legend: [*] feature is selected [ ] feature is excluded"),
+ radiolist_instructions[] = N_(
+ "Use the arrow keys to navigate this window or "
+ "press the hotkey of the item you wish to select "
+@@ -204,18 +203,18 @@ setmod_text[] = N_(
+ "This feature depends on another which has been configured as a module.\n"
+ "As a result, this feature will be built as a module."),
+ nohelp_text[] = N_(
+- "There is no help available for this kernel option.\n"),
++ "There is no help available for this option.\n"),
+ load_config_text[] = N_(
+ "Enter the name of the configuration file you wish to load. "
+ "Accept the name shown to restore the configuration you "
+ "last retrieved. Leave blank to abort."),
+ load_config_help[] = N_(
+ "\n"
+- "For various reasons, one may wish to keep several different kernel\n"
++ "For various reasons, one may wish to keep several different Buildroot\n"
+ "configurations available on a single machine.\n"
+ "\n"
+ "If you have saved a previous configuration in a file other than the\n"
+- "kernel's default, entering the name of the file here will allow you\n"
++ "Buildroot's default, entering the name of the file here will allow you\n"
+ "to modify that configuration.\n"
+ "\n"
+ "If you are uncertain, then you have probably never used alternate\n"
+@@ -225,7 +224,7 @@ save_config_text[] = N_(
+ "as an alternate. Leave blank to abort."),
+ save_config_help[] = N_(
+ "\n"
+- "For various reasons, one may wish to keep different kernel\n"
++ "For various reasons, one may wish to keep different Buildroot\n"
+ "configurations available on a single machine.\n"
+ "\n"
+ "Entering a file name here will allow you to later retrieve, modify\n"
+@@ -405,10 +404,10 @@ static void set_config_filename(const ch
+ int size;
+ struct symbol *sym;
+
+- sym = sym_lookup("KERNELVERSION", 0);
++ sym = sym_lookup("BR2_VERSION", 0);
+ sym_calc_value(sym);
+ size = snprintf(menu_backtitle, sizeof(menu_backtitle),
+- _("%s - Linux Kernel v%s Configuration"),
++ _("%s - buildroot v%s Configuration"),
+ config_filename, sym_get_string_value(sym));
+ if (size >= sizeof(menu_backtitle))
+ menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
+@@ -935,7 +934,7 @@ int main(int ac, char **av)
+ if (conf_get_changed())
+ res = dialog_yesno(NULL,
+ _("Do you wish to save your "
+- "new kernel configuration?\n"
++ "new Buildroot configuration?\n"
+ "<ESC><ESC> to continue."),
+ 6, 60);
+ else
+@@ -947,22 +946,22 @@ int main(int ac, char **av)
+ case 0:
+ if (conf_write(filename)) {
+ fprintf(stderr, _("\n\n"
+- "Error during writing of the kernel configuration.\n"
+- "Your kernel configuration changes were NOT saved."
++ "Error during writing of the Buildroot configuration.\n"
++ "Your Buildroot configuration changes were NOT saved."
+ "\n\n"));
+ return 1;
+ }
+ case -1:
+ printf(_("\n\n"
+- "*** End of Linux kernel configuration.\n"
+- "*** Execute 'make' to build the kernel or try 'make help'."
++ "*** End of Buildroot configuration.\n"
++ "*** Execute 'make' to build Buildroot or try 'make help'."
+ "\n\n"));
+ break;
+ default:
+ fprintf(stderr, _("\n\n"
+- "Your kernel configuration changes were NOT saved."
++ "Your Buildroot configuration changes were NOT saved."
+ "\n\n"));
+ }
+
+- return 0;
++ return conf_write_autoconf();
+ }
+diff -rduNp config.new.oorig/symbol.c config.new/symbol.c
+--- config.new.oorig/symbol.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/symbol.c 2008-04-07 11:06:30.000000000 +0200
+@@ -61,10 +61,10 @@ void sym_init(void)
+ if (p)
+ sym_add_default(sym, p);
+
+- sym = sym_lookup("KERNELVERSION", 0);
++ sym = sym_lookup("BR2_VERSION", 0);
+ sym->type = S_STRING;
+ sym->flags |= SYMBOL_AUTO;
+- p = getenv("KERNELVERSION");
++ p = getenv("BR2_VERSION");
+ if (p)
+ sym_add_default(sym, p);
+
+diff -rduNp config.new.oorig/util.c config.new/util.c
+--- config.new.oorig/util.c 2008-04-07 11:03:28.000000000 +0200
++++ config.new/util.c 2008-04-07 11:06:30.000000000 +0200
+@@ -26,6 +26,109 @@ struct file *file_lookup(const char *nam
+ return file;
+ }
+
++static char* br2_symbol_printer(const char * const in)
++{
++ ssize_t i, j, len = strlen(in);
++ char *ret;
++ if (len < 1)
++ return NULL;
++ ret = malloc(len);
++ if (!ret) {
++ printf("Out of memory!");
++ exit(1);
++ }
++ memset(ret, 0, len);
++ i = j = 0;
++ if (strncmp("BR2_", in, 4) == 0)
++ i += 4;
++ if (strncmp("PACKAGE_", in + i, 8) == 0)
++ i += 8;
++ else if (strncmp("TARGET_", in + i, 7) == 0)
++ i += 7;
++ while (i <= len)
++ ret[j++] = tolower(in[i++]);
++ return ret;
++}
++
++/* write dependencies of the infividual config-symbols */
++static int write_make_deps(const char *name)
++{
++ struct menu *menu;
++ struct symbol *sym;
++ struct property *prop, *p;
++ unsigned done;
++ const char * const name_tmp = "..make.deps.tmp";
++ FILE *out;
++ if (!name)
++ name = ".auto.deps";
++ out = fopen(name_tmp, "w");
++ if (!out)
++ return 1;
++ fprintf(out, "# ATTENTION! This does not handle 'depends', just 'select'! \n"
++ "# See package/config/util.c write_make_deps()\n#\n");
++ menu = &rootmenu;//rootmenu.list;
++ while (menu) {
++ sym = menu->sym;
++ if (!sym) {
++ if (!menu_is_visible(menu))
++ goto next;
++ } else if (!(sym->flags & SYMBOL_CHOICE)) {
++ sym_calc_value(sym);
++ if (sym->type == S_BOOLEAN
++ && sym_get_tristate_value(sym) != no) {
++ done = 0;
++ for_all_prompts(sym, prop) {
++ struct expr *e;
++//printf("\nname=%s\n", sym->name);
++ for_all_properties(sym, p, P_SELECT) {
++ e = p->expr;
++ if (e && e->left.sym->name) {
++ if (!done) {
++ fprintf(out, "%s: $(BASE_TARGETS)", br2_symbol_printer(sym->name));
++ done = 1;
++ }
++//printf("SELECTS %s\n",e->left.sym->name);
++ fprintf(out, " %s",br2_symbol_printer(e->left.sym->name));
++ }
++ }
++ if (done)
++ fprintf(out, "\n");
++#if 0
++ e = sym->rev_dep.expr;
++ if (e && e->type == E_SYMBOL
++ && e->left.sym->name) {
++ fprintf(out, "%s: %s", br2_symbol_printer(e->left.sym->name),
++ br2_symbol_printer(sym->name));
++printf("%s is Selected BY: %s", sym->name, e->left.sym->name);
++ }
++#endif
++ }
++ }
++ }
++next:
++ if (menu->list) {
++ menu = menu->list;
++ continue;
++ }
++ if (menu->next)
++ menu = menu->next;
++ else while ((menu = menu->parent)) {
++ if (menu->next) {
++ menu = menu->next;
++ break;
++ }
++ }
++ }
++ fclose(out);
++ rename(name_tmp, name);
++ printf(_("#\n"
++ "# make dependencies written to %s\n"
++ "# ATTENTION buildroot devels!\n"
++ "# See top of this file before playing with this auto-preprequisites!\n"
++ "#\n"), name);
++ return 0;
++}
++
+ /* write a dependency file as used by kbuild to track dependencies */
+ int file_write_dep(const char *name)
+ {
+@@ -44,12 +147,13 @@ int file_write_dep(const char *name)
+ else
+ fprintf(out, "\t%s\n", file->name);
+ }
+- fprintf(out, "\ninclude/config/auto.conf: \\\n"
++ fprintf(out, "\n$(BR2_DEPENDS_DIR)/config/auto.conf: \\\n"
+ "\t$(deps_config)\n\n"
+ "$(deps_config): ;\n");
+ fclose(out);
+ rename("..config.tmp", name);
+- return 0;
++
++ return write_make_deps(NULL);
+ }
+
+
+diff -rduNp config.new.oorig/zconf.tab.c_shipped config.new/zconf.tab.c_shipped
+--- config.new.oorig/zconf.tab.c_shipped 2008-04-07 11:03:28.000000000 +0200
++++ config.new/zconf.tab.c_shipped 2008-04-07 11:06:30.000000000 +0200
+@@ -2248,7 +2248,7 @@ void conf_parse(const char *name)
+ modules_sym = sym_lookup(NULL, 0);
+ modules_sym->type = S_BOOLEAN;
+ modules_sym->flags |= SYMBOL_AUTO;
+- rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL);
++ rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL);
+
+ #if YYDEBUG
+ if (getenv("ZCONF_DEBUG"))
+diff -rduNp config.new.oorig/zconf.y config.new/zconf.y
+--- config.new.oorig/zconf.y 2008-04-07 11:03:28.000000000 +0200
++++ config.new/zconf.y 2008-04-07 11:06:30.000000000 +0200
+@@ -473,7 +473,7 @@ void conf_parse(const char *name)
+ modules_sym = sym_lookup(NULL, 0);
+ modules_sym->type = S_BOOLEAN;
+ modules_sym->flags |= SYMBOL_AUTO;
+- rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL);
++ rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL);
+
+ #if YYDEBUG
+ if (getenv("ZCONF_DEBUG"))
diff --git a/cleopatre/buildroot/package/config/kconfig_load.c b/cleopatre/buildroot/package/config/kconfig_load.c
new file mode 100644
index 0000000000..dbdcaad823
--- /dev/null
+++ b/cleopatre/buildroot/package/config/kconfig_load.c
@@ -0,0 +1,35 @@
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "lkc.h"
+
+#define P(name,type,arg) type (*name ## _p) arg
+#include "lkc_proto.h"
+#undef P
+
+void kconfig_load(void)
+{
+ void *handle;
+ char *error;
+
+ handle = dlopen("./libkconfig.so", RTLD_LAZY);
+ if (!handle) {
+ handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY);
+ if (!handle) {
+ fprintf(stderr, "%s\n", dlerror());
+ exit(1);
+ }
+ }
+
+#define P(name,type,arg) \
+{ \
+ name ## _p = dlsym(handle, #name); \
+ if ((error = dlerror())) { \
+ fprintf(stderr, "%s\n", error); \
+ exit(1); \
+ } \
+}
+#include "lkc_proto.h"
+#undef P
+}
diff --git a/cleopatre/buildroot/package/config/kxgettext.c b/cleopatre/buildroot/package/config/kxgettext.c
new file mode 100644
index 0000000000..6eb72a7f25
--- /dev/null
+++ b/cleopatre/buildroot/package/config/kxgettext.c
@@ -0,0 +1,229 @@
+/*
+ * Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 2005
+ *
+ * Released under the terms of the GNU GPL v2.0
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+static char *escape(const char* text, char *bf, int len)
+{
+ char *bfp = bf;
+ int multiline = strchr(text, '\n') != NULL;
+ int eol = 0;
+ int textlen = strlen(text);
+
+ if ((textlen > 0) && (text[textlen-1] == '\n'))
+ eol = 1;
+
+ *bfp++ = '"';
+ --len;
+
+ if (multiline) {
+ *bfp++ = '"';
+ *bfp++ = '\n';
+ *bfp++ = '"';
+ len -= 3;
+ }
+
+ while (*text != '\0' && len > 1) {
+ if (*text == '"')
+ *bfp++ = '\\';
+ else if (*text == '\n') {
+ *bfp++ = '\\';
+ *bfp++ = 'n';
+ *bfp++ = '"';
+ *bfp++ = '\n';
+ *bfp++ = '"';
+ len -= 5;
+ ++text;
+ goto next;
+ }
+ *bfp++ = *text++;
+next:
+ --len;
+ }
+
+ if (multiline && eol)
+ bfp -= 3;
+
+ *bfp++ = '"';
+ *bfp = '\0';
+
+ return bf;
+}
+
+struct file_line {
+ struct file_line *next;
+ char* file;
+ int lineno;
+};
+
+static struct file_line *file_line__new(char *file, int lineno)
+{
+ struct file_line *self = malloc(sizeof(*self));
+
+ if (self == NULL)
+ goto out;
+
+ self->file = file;
+ self->lineno = lineno;
+ self->next = NULL;
+out:
+ return self;
+}
+
+struct message {
+ const char *msg;
+ const char *option;
+ struct message *next;
+ struct file_line *files;
+};
+
+static struct message *message__list;
+
+static struct message *message__new(const char *msg, char *option, char *file, int lineno)
+{
+ struct message *self = malloc(sizeof(*self));
+
+ if (self == NULL)
+ goto out;
+
+ self->files = file_line__new(file, lineno);
+ if (self->files == NULL)
+ goto out_fail;
+
+ self->msg = strdup(msg);
+ if (self->msg == NULL)
+ goto out_fail_msg;
+
+ self->option = option;
+ self->next = NULL;
+out:
+ return self;
+out_fail_msg:
+ free(self->files);
+out_fail:
+ free(self);
+ self = NULL;
+ goto out;
+}
+
+static struct message *mesage__find(const char *msg)
+{
+ struct message *m = message__list;
+
+ while (m != NULL) {
+ if (strcmp(m->msg, msg) == 0)
+ break;
+ m = m->next;
+ }
+
+ return m;
+}
+
+static int message__add_file_line(struct message *self, char *file, int lineno)
+{
+ int rc = -1;
+ struct file_line *fl = file_line__new(file, lineno);
+
+ if (fl == NULL)
+ goto out;
+
+ fl->next = self->files;
+ self->files = fl;
+ rc = 0;
+out:
+ return rc;
+}
+
+static int message__add(const char *msg, char *option, char *file, int lineno)
+{
+ int rc = 0;
+ char bf[16384];
+ char *escaped = escape(msg, bf, sizeof(bf));
+ struct message *m = mesage__find(escaped);
+
+ if (m != NULL)
+ rc = message__add_file_line(m, file, lineno);
+ else {
+ m = message__new(escaped, option, file, lineno);
+
+ if (m != NULL) {
+ m->next = message__list;
+ message__list = m;
+ } else
+ rc = -1;
+ }
+ return rc;
+}
+
+void menu_build_message_list(struct menu *menu)
+{
+ struct menu *child;
+
+ message__add(menu_get_prompt(menu), NULL,
+ menu->file == NULL ? "Root Menu" : menu->file->name,
+ menu->lineno);
+
+ if (menu->sym != NULL && menu_has_help(menu))
+ message__add(menu_get_help(menu), menu->sym->name,
+ menu->file == NULL ? "Root Menu" : menu->file->name,
+ menu->lineno);
+
+ for (child = menu->list; child != NULL; child = child->next)
+ if (child->prompt != NULL)
+ menu_build_message_list(child);
+}
+
+static void message__print_file_lineno(struct message *self)
+{
+ struct file_line *fl = self->files;
+
+ putchar('\n');
+ if (self->option != NULL)
+ printf("# %s:00000\n", self->option);
+
+ printf("#: %s:%d", fl->file, fl->lineno);
+ fl = fl->next;
+
+ while (fl != NULL) {
+ printf(", %s:%d", fl->file, fl->lineno);
+ fl = fl->next;
+ }
+
+ putchar('\n');
+}
+
+static void message__print_gettext_msgid_msgstr(struct message *self)
+{
+ message__print_file_lineno(self);
+
+ printf("msgid %s\n"
+ "msgstr \"\"\n", self->msg);
+}
+
+void menu__xgettext(void)
+{
+ struct message *m = message__list;
+
+ while (m != NULL) {
+ /* skip empty lines ("") */
+ if (strlen(m->msg) > sizeof("\"\""))
+ message__print_gettext_msgid_msgstr(m);
+ m = m->next;
+ }
+}
+
+int main(int ac, char **av)
+{
+ conf_parse(av[1]);
+
+ menu_build_message_list(menu_get_root_menu(NULL));
+ menu__xgettext();
+ return 0;
+}
diff --git a/cleopatre/buildroot/package/config/lex.zconf.c_shipped b/cleopatre/buildroot/package/config/lex.zconf.c_shipped
new file mode 100644
index 0000000000..a065d5a57c
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lex.zconf.c_shipped
@@ -0,0 +1,2369 @@
+
+#line 3 "scripts/kconfig/lex.zconf.c"
+
+#define YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define yy_create_buffer zconf_create_buffer
+#define yy_delete_buffer zconf_delete_buffer
+#define yy_flex_debug zconf_flex_debug
+#define yy_init_buffer zconf_init_buffer
+#define yy_flush_buffer zconf_flush_buffer
+#define yy_load_buffer_state zconf_load_buffer_state
+#define yy_switch_to_buffer zconf_switch_to_buffer
+#define yyin zconfin
+#define yyleng zconfleng
+#define yylex zconflex
+#define yylineno zconflineno
+#define yyout zconfout
+#define yyrestart zconfrestart
+#define yytext zconftext
+#define yywrap zconfwrap
+#define yyalloc zconfalloc
+#define yyrealloc zconfrealloc
+#define yyfree zconffree
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 33
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types.
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t;
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX (4294967295U)
+#endif
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_CONST
+
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE zconfrestart(zconfin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+extern int zconfleng;
+
+extern FILE *zconfin, *zconfout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+ #define YY_LESS_LINENO(n)
+
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up zconftext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ *yy_cp = (yy_hold_char); \
+ YY_RESTORE_YY_MORE_OFFSET \
+ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
+ } \
+ while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr) )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef unsigned int yy_size_t;
+#endif
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ int yy_bs_lineno; /**< The line count. */
+ int yy_bs_column; /**< The column count. */
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via zconfrestart()), so that the user can continue scanning by
+ * just pointing zconfin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+
+ };
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+ : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when zconftext is formed. */
+static char yy_hold_char;
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+int zconfleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow zconfwrap()'s to do buffer switches
+ * instead of setting up a fresh zconfin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void zconfrestart (FILE *input_file );
+void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer );
+YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size );
+void zconf_delete_buffer (YY_BUFFER_STATE b );
+void zconf_flush_buffer (YY_BUFFER_STATE b );
+void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer );
+void zconfpop_buffer_state (void );
+
+static void zconfensure_buffer_stack (void );
+static void zconf_load_buffer_state (void );
+static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file );
+
+#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size );
+YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str );
+YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len );
+
+void *zconfalloc (yy_size_t );
+void *zconfrealloc (void *,yy_size_t );
+void zconffree (void * );
+
+#define yy_new_buffer zconf_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ zconfensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+ }
+
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){\
+ zconfensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+ }
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define zconfwrap(n) 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int zconflineno;
+
+int zconflineno = 1;
+
+extern char *zconftext;
+#define yytext_ptr zconftext
+static yyconst flex_int16_t yy_nxt[][17] =
+ {
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0
+ },
+
+ {
+ 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12
+ },
+
+ {
+ 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12
+ },
+
+ {
+ 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 18, 16, 16, 16
+ },
+
+ {
+ 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 18, 16, 16, 16
+
+ },
+
+ {
+ 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19
+ },
+
+ {
+ 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19
+ },
+
+ {
+ 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
+ 22, 22, 22, 22, 22, 25, 22
+ },
+
+ {
+ 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
+ 22, 22, 22, 22, 22, 25, 22
+ },
+
+ {
+ 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
+ 33, 34, 35, 35, 36, 37, 38
+
+ },
+
+ {
+ 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
+ 33, 34, 35, 35, 36, 37, 38
+ },
+
+ {
+ -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+ -11, -11, -11, -11, -11, -11, -11
+ },
+
+ {
+ 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
+ -12, -12, -12, -12, -12, -12, -12
+ },
+
+ {
+ 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
+ -13, -13, -13, -13, -13, -13, -13
+ },
+
+ {
+ 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
+ -14, -14, -14, -14, -14, -14, -14
+
+ },
+
+ {
+ 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42
+ },
+
+ {
+ 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
+ -16, -16, -16, -16, -16, -16, -16
+ },
+
+ {
+ 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
+ -17, -17, -17, -17, -17, -17, -17
+ },
+
+ {
+ 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
+ -18, -18, -18, 44, -18, -18, -18
+ },
+
+ {
+ 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45
+
+ },
+
+ {
+ 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
+ -20, -20, -20, -20, -20, -20, -20
+ },
+
+ {
+ 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48
+ },
+
+ {
+ 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
+ 49, 49, 49, 49, 49, -22, 49
+ },
+
+ {
+ 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
+ -23, -23, -23, -23, -23, -23, -23
+ },
+
+ {
+ 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
+ -24, -24, -24, -24, -24, -24, -24
+
+ },
+
+ {
+ 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51
+ },
+
+ {
+ 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
+ -26, -26, -26, -26, -26, -26, -26
+ },
+
+ {
+ 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
+ -27, -27, -27, -27, -27, -27, -27
+ },
+
+ {
+ 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
+ -28, -28, -28, -28, 53, -28, -28
+ },
+
+ {
+ 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
+ -29, -29, -29, -29, -29, -29, -29
+
+ },
+
+ {
+ 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54
+ },
+
+ {
+ 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
+ -31, -31, -31, -31, -31, -31, -31
+ },
+
+ {
+ 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
+ -32, -32, -32, -32, -32, -32, -32
+ },
+
+ {
+ 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
+ -33, -33, -33, -33, -33, -33, -33
+ },
+
+ {
+ 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
+ -34, 56, 57, 57, -34, -34, -34
+
+ },
+
+ {
+ 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
+ -35, 57, 57, 57, -35, -35, -35
+ },
+
+ {
+ 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
+ -36, -36, -36, -36, -36, -36, -36
+ },
+
+ {
+ 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
+ -37, -37, -37, -37, -37, -37, -37
+ },
+
+ {
+ 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
+ -38, -38, -38, -38, -38, -38, 59
+ },
+
+ {
+ 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
+ -39, -39, -39, -39, -39, -39, -39
+
+ },
+
+ {
+ 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
+ -40, -40, -40, -40, -40, -40, -40
+ },
+
+ {
+ 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42
+ },
+
+ {
+ 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42
+ },
+
+ {
+ 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
+ -43, -43, -43, -43, -43, -43, -43
+ },
+
+ {
+ 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
+ -44, -44, -44, 44, -44, -44, -44
+
+ },
+
+ {
+ 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45
+ },
+
+ {
+ 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
+ -46, -46, -46, -46, -46, -46, -46
+ },
+
+ {
+ 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48
+ },
+
+ {
+ 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
+ -48, -48, -48, -48, -48, -48, -48
+ },
+
+ {
+ 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
+ 49, 49, 49, 49, 49, -49, 49
+
+ },
+
+ {
+ 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
+ -50, -50, -50, -50, -50, -50, -50
+ },
+
+ {
+ 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
+ -51, -51, -51, -51, -51, -51, -51
+ },
+
+ {
+ 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
+ -52, -52, -52, -52, -52, -52, -52
+ },
+
+ {
+ 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
+ -53, -53, -53, -53, -53, -53, -53
+ },
+
+ {
+ 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54
+
+ },
+
+ {
+ 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
+ -55, -55, -55, -55, -55, -55, -55
+ },
+
+ {
+ 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
+ -56, 60, 57, 57, -56, -56, -56
+ },
+
+ {
+ 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
+ -57, 57, 57, 57, -57, -57, -57
+ },
+
+ {
+ 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
+ -58, -58, -58, -58, -58, -58, -58
+ },
+
+ {
+ 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
+ -59, -59, -59, -59, -59, -59, -59
+
+ },
+
+ {
+ 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
+ -60, 57, 57, 57, -60, -60, -60
+ },
+
+ } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[] );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up zconftext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ (yytext_ptr) = yy_bp; \
+ zconfleng = (size_t) (yy_cp - yy_bp); \
+ (yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+ (yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 33
+#define YY_END_OF_BUFFER 34
+/* This struct is not used in this scanner,
+ but its presence is necessary. */
+struct yy_trans_info
+ {
+ flex_int32_t yy_verify;
+ flex_int32_t yy_nxt;
+ };
+static yyconst flex_int16_t yy_accept[61] =
+ { 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 34, 5, 4, 2, 3, 7, 8, 6, 32, 29,
+ 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
+ 22, 11, 12, 19, 19, 14, 22, 22, 4, 2,
+ 3, 3, 1, 6, 32, 29, 31, 30, 24, 23,
+ 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
+ } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
+ 10, 1, 1, 1, 11, 12, 12, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 1, 1, 1,
+ 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
+
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1
+ } ;
+
+extern int zconf_flex_debug;
+int zconf_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *zconftext;
+
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+#define START_STRSIZE 16
+
+static struct {
+ struct file *file;
+ int lineno;
+} current_pos;
+
+static char *text;
+static int text_size, text_asize;
+
+struct buffer {
+ struct buffer *parent;
+ YY_BUFFER_STATE state;
+};
+
+struct buffer *current_buf;
+
+static int last_ts, first_ts;
+
+static void zconf_endhelp(void);
+static void zconf_endfile(void);
+
+void new_string(void)
+{
+ text = malloc(START_STRSIZE);
+ text_asize = START_STRSIZE;
+ text_size = 0;
+ *text = 0;
+}
+
+void append_string(const char *str, int size)
+{
+ int new_size = text_size + size + 1;
+ if (new_size > text_asize) {
+ new_size += START_STRSIZE - 1;
+ new_size &= -START_STRSIZE;
+ text = realloc(text, new_size);
+ text_asize = new_size;
+ }
+ memcpy(text + text_size, str, size);
+ text_size += size;
+ text[text_size] = 0;
+}
+
+void alloc_string(const char *str, int size)
+{
+ text = malloc(size + 1);
+ memcpy(text, str, size);
+ text[size] = 0;
+}
+
+#define INITIAL 0
+#define COMMAND 1
+#define HELP 2
+#define STRING 3
+#define PARAM 4
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int zconfwrap (void );
+#else
+extern int zconfwrap (void );
+#endif
+#endif
+
+ static void yyunput (int c,char *buf_ptr );
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
+#endif
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+ errno=0; \
+ while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
+ { \
+ if( errno != EINTR) \
+ { \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ break; \
+ } \
+ errno=0; \
+ clearerr(zconfin); \
+ }\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int zconflex (void);
+
+#define YY_DECL int zconflex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after zconftext and zconfleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+ YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ int str = 0;
+ int ts, i;
+
+ if ( !(yy_init) )
+ {
+ (yy_init) = 1;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! (yy_start) )
+ (yy_start) = 1; /* first start state */
+
+ if ( ! zconfin )
+ zconfin = stdin;
+
+ if ( ! zconfout )
+ zconfout = stdout;
+
+ if ( ! YY_CURRENT_BUFFER ) {
+ zconfensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+ zconf_create_buffer(zconfin,YY_BUF_SIZE );
+ }
+
+ zconf_load_buffer_state( );
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = (yy_c_buf_p);
+
+ /* Support of zconftext. */
+ *yy_cp = (yy_hold_char);
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+ yy_current_state = (yy_start);
+yy_match:
+ while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
+ ++yy_cp;
+
+ yy_current_state = -yy_current_state;
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+
+ YY_DO_BEFORE_ACTION;
+
+do_action: /* This label is used only to access EOF actions. */
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+case 1:
+/* rule 1 can match eol */
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+{
+ current_file->lineno++;
+ return T_EOL;
+}
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+{
+ BEGIN(COMMAND);
+}
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+{
+ unput(zconftext[0]);
+ BEGIN(COMMAND);
+}
+ YY_BREAK
+
+case 6:
+YY_RULE_SETUP
+{
+ struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
+ BEGIN(PARAM);
+ current_pos.file = current_file;
+ current_pos.lineno = current_file->lineno;
+ if (id && id->flags & TF_COMMAND) {
+ zconflval.id = id;
+ return id->token;
+ }
+ alloc_string(zconftext, zconfleng);
+ zconflval.string = text;
+ return T_WORD;
+ }
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+
+ YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+{
+ BEGIN(INITIAL);
+ current_file->lineno++;
+ return T_EOL;
+ }
+ YY_BREAK
+
+case 9:
+YY_RULE_SETUP
+return T_AND;
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+return T_OR;
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+return T_OPEN_PAREN;
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+return T_CLOSE_PAREN;
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+return T_NOT;
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+return T_EQUAL;
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+return T_UNEQUAL;
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+{
+ str = zconftext[0];
+ new_string();
+ BEGIN(STRING);
+ }
+ YY_BREAK
+case 17:
+/* rule 17 can match eol */
+YY_RULE_SETUP
+BEGIN(INITIAL); current_file->lineno++; return T_EOL;
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+/* ignore */
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+{
+ struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
+ if (id && id->flags & TF_PARAM) {
+ zconflval.id = id;
+ return id->token;
+ }
+ alloc_string(zconftext, zconfleng);
+ zconflval.string = text;
+ return T_WORD;
+ }
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+/* comment */
+ YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+current_file->lineno++;
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+
+ YY_BREAK
+case YY_STATE_EOF(PARAM):
+{
+ BEGIN(INITIAL);
+ }
+ YY_BREAK
+
+case 23:
+/* rule 23 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up zconftext again */
+YY_RULE_SETUP
+{
+ append_string(zconftext, zconfleng);
+ zconflval.string = text;
+ return T_WORD_QUOTE;
+ }
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+{
+ append_string(zconftext, zconfleng);
+ }
+ YY_BREAK
+case 25:
+/* rule 25 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up zconftext again */
+YY_RULE_SETUP
+{
+ append_string(zconftext + 1, zconfleng - 1);
+ zconflval.string = text;
+ return T_WORD_QUOTE;
+ }
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+{
+ append_string(zconftext + 1, zconfleng - 1);
+ }
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+{
+ if (str == zconftext[0]) {
+ BEGIN(PARAM);
+ zconflval.string = text;
+ return T_WORD_QUOTE;
+ } else
+ append_string(zconftext, 1);
+ }
+ YY_BREAK
+case 28:
+/* rule 28 can match eol */
+YY_RULE_SETUP
+{
+ printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
+ current_file->lineno++;
+ BEGIN(INITIAL);
+ return T_EOL;
+ }
+ YY_BREAK
+case YY_STATE_EOF(STRING):
+{
+ BEGIN(INITIAL);
+ }
+ YY_BREAK
+
+case 29:
+YY_RULE_SETUP
+{
+ ts = 0;
+ for (i = 0; i < zconfleng; i++) {
+ if (zconftext[i] == '\t')
+ ts = (ts & ~7) + 8;
+ else
+ ts++;
+ }
+ last_ts = ts;
+ if (first_ts) {
+ if (ts < first_ts) {
+ zconf_endhelp();
+ return T_HELPTEXT;
+ }
+ ts -= first_ts;
+ while (ts > 8) {
+ append_string(" ", 8);
+ ts -= 8;
+ }
+ append_string(" ", ts);
+ }
+ }
+ YY_BREAK
+case 30:
+/* rule 30 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up zconftext again */
+YY_RULE_SETUP
+{
+ current_file->lineno++;
+ zconf_endhelp();
+ return T_HELPTEXT;
+ }
+ YY_BREAK
+case 31:
+/* rule 31 can match eol */
+YY_RULE_SETUP
+{
+ current_file->lineno++;
+ append_string("\n", 1);
+ }
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+{
+ append_string(zconftext, zconfleng);
+ if (!first_ts)
+ first_ts = last_ts;
+ }
+ YY_BREAK
+case YY_STATE_EOF(HELP):
+{
+ zconf_endhelp();
+ return T_HELPTEXT;
+ }
+ YY_BREAK
+
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(COMMAND):
+{
+ if (current_file) {
+ zconf_endfile();
+ return T_EOL;
+ }
+ fclose(zconfin);
+ yyterminate();
+}
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+YY_FATAL_ERROR( "flex scanner jammed" );
+ YY_BREAK
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = (yy_hold_char);
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed zconfin at a new source and called
+ * zconflex(). If so, then we have to assure
+ * consistency between YY_CURRENT_BUFFER and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( );
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++(yy_c_buf_p);
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = (yy_c_buf_p);
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer( ) )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ (yy_did_buffer_switch_on_eof) = 0;
+
+ if ( zconfwrap( ) )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * zconftext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! (yy_did_buffer_switch_on_eof) )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ (yy_c_buf_p) =
+ (yytext_ptr) + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( );
+
+ yy_cp = (yy_c_buf_p);
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ (yy_c_buf_p) =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+ yy_current_state = yy_get_previous_state( );
+
+ yy_cp = (yy_c_buf_p);
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+} /* end of zconflex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+ register char *source = (yytext_ptr);
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+ else
+ {
+ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+
+ int yy_c_buf_p_offset =
+ (int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+ number_to_move - 1;
+
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+ (yy_n_chars), num_to_read );
+
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ if ( (yy_n_chars) == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ zconfrestart(zconfin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ (yy_n_chars) += number_to_move;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+ (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+ return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+ static yy_state_type yy_get_previous_state (void)
+{
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+
+ yy_current_state = (yy_start);
+
+ for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+ {
+ yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+ }
+
+ return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
+{
+ register int yy_is_jam;
+
+ yy_current_state = yy_nxt[yy_current_state][1];
+ yy_is_jam = (yy_current_state <= 0);
+
+ return yy_is_jam ? 0 : yy_current_state;
+}
+
+ static void yyunput (int c, register char * yy_bp )
+{
+ register char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
+
+ /* undo effects of setting up zconftext */
+ *yy_cp = (yy_hold_char);
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = (yy_n_chars) + 2;
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+ register char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+ (yytext_ptr) = yy_bp;
+ (yy_hold_char) = *yy_cp;
+ (yy_c_buf_p) = yy_cp;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+ static int yyinput (void)
+#else
+ static int input (void)
+#endif
+
+{
+ int c;
+
+ *(yy_c_buf_p) = (yy_hold_char);
+
+ if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+ {
+ /* yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+ /* This was really a NUL. */
+ *(yy_c_buf_p) = '\0';
+
+ else
+ { /* need more input */
+ int offset = (yy_c_buf_p) - (yytext_ptr);
+ ++(yy_c_buf_p);
+
+ switch ( yy_get_next_buffer( ) )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ zconfrestart(zconfin );
+
+ /*FALLTHROUGH*/
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( zconfwrap( ) )
+ return EOF;
+
+ if ( ! (yy_did_buffer_switch_on_eof) )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ (yy_c_buf_p) = (yytext_ptr) + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
+ *(yy_c_buf_p) = '\0'; /* preserve zconftext */
+ (yy_hold_char) = *++(yy_c_buf_p);
+
+ return c;
+}
+#endif /* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ *
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+ void zconfrestart (FILE * input_file )
+{
+
+ if ( ! YY_CURRENT_BUFFER ){
+ zconfensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+ zconf_create_buffer(zconfin,YY_BUF_SIZE );
+ }
+
+ zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
+ zconf_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ *
+ */
+ void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
+{
+
+ /* TODO. We should be able to replace this entire function body
+ * with
+ * zconfpop_buffer_state();
+ * zconfpush_buffer_state(new_buffer);
+ */
+ zconfensure_buffer_stack ();
+ if ( YY_CURRENT_BUFFER == new_buffer )
+ return;
+
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *(yy_c_buf_p) = (yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+ zconf_load_buffer_state( );
+
+ /* We don't actually know whether we did this switch during
+ * EOF (zconfwrap()) processing, but the only time this flag
+ * is looked at is after zconfwrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ (yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void zconf_load_buffer_state (void)
+{
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+ zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+ (yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ *
+ * @return the allocated buffer state.
+ */
+ YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
+{
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ zconf_init_buffer(b,file );
+
+ return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with zconf_create_buffer()
+ *
+ */
+ void zconf_delete_buffer (YY_BUFFER_STATE b )
+{
+
+ if ( ! b )
+ return;
+
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ zconffree((void *) b->yy_ch_buf );
+
+ zconffree((void *) b );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a zconfrestart() or at EOF.
+ */
+ static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file )
+
+{
+ int oerrno = errno;
+
+ zconf_flush_buffer(b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+ /* If b is the current buffer, then zconf_init_buffer was _probably_
+ * called from zconfrestart() or through yy_get_next_buffer.
+ * In that case, we don't want to reset the lineno or column.
+ */
+ if (b != YY_CURRENT_BUFFER){
+ b->yy_bs_lineno = 1;
+ b->yy_bs_column = 0;
+ }
+
+ b->yy_is_interactive = 0;
+
+ errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ *
+ */
+ void zconf_flush_buffer (YY_BUFFER_STATE b )
+{
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == YY_CURRENT_BUFFER )
+ zconf_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ * the current state. This function will allocate the stack
+ * if necessary.
+ * @param new_buffer The new state.
+ *
+ */
+void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+ if (new_buffer == NULL)
+ return;
+
+ zconfensure_buffer_stack();
+
+ /* This block is copied from zconf_switch_to_buffer. */
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *(yy_c_buf_p) = (yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ /* Only push if top exists. Otherwise, replace top. */
+ if (YY_CURRENT_BUFFER)
+ (yy_buffer_stack_top)++;
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+ /* copied from zconf_switch_to_buffer. */
+ zconf_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ * The next element becomes the new top.
+ *
+ */
+void zconfpop_buffer_state (void)
+{
+ if (!YY_CURRENT_BUFFER)
+ return;
+
+ zconf_delete_buffer(YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ if ((yy_buffer_stack_top) > 0)
+ --(yy_buffer_stack_top);
+
+ if (YY_CURRENT_BUFFER) {
+ zconf_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+ }
+}
+
+/* Allocates the stack if it does not exist.
+ * Guarantees space for at least one push.
+ */
+static void zconfensure_buffer_stack (void)
+{
+ int num_to_alloc;
+
+ if (!(yy_buffer_stack)) {
+
+ /* First allocation is just for 2 elements, since we don't know if this
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+ num_to_alloc = 1;
+ (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+
+ memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+
+ (yy_buffer_stack_max) = num_to_alloc;
+ (yy_buffer_stack_top) = 0;
+ return;
+ }
+
+ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+ /* Increase the buffer to prepare for a possible push. */
+ int grow_size = 8 /* arbitrary grow size */;
+
+ num_to_alloc = (yy_buffer_stack_max) + grow_size;
+ (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
+ ((yy_buffer_stack),
+ num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+
+ /* zero only the new slots.*/
+ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+ (yy_buffer_stack_max) = num_to_alloc;
+ }
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ *
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
+{
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ zconf_switch_to_buffer(b );
+
+ return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to zconflex() will
+ * scan from a @e copy of @a str.
+ * @param str a NUL-terminated string to scan
+ *
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ * zconf_scan_bytes() instead.
+ */
+YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
+{
+
+ return zconf_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
+ * scan from a @e copy of @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
+ *
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len )
+{
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = _yybytes_len + 2;
+ buf = (char *) zconfalloc(n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
+
+ for ( i = 0; i < _yybytes_len; ++i )
+ buf[i] = yybytes[i];
+
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = zconf_scan_buffer(buf,n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up zconftext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ zconftext[zconfleng] = (yy_hold_char); \
+ (yy_c_buf_p) = zconftext + yyless_macro_arg; \
+ (yy_hold_char) = *(yy_c_buf_p); \
+ *(yy_c_buf_p) = '\0'; \
+ zconfleng = yyless_macro_arg; \
+ } \
+ while ( 0 )
+
+/* Accessor methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ *
+ */
+int zconfget_lineno (void)
+{
+
+ return zconflineno;
+}
+
+/** Get the input stream.
+ *
+ */
+FILE *zconfget_in (void)
+{
+ return zconfin;
+}
+
+/** Get the output stream.
+ *
+ */
+FILE *zconfget_out (void)
+{
+ return zconfout;
+}
+
+/** Get the length of the current token.
+ *
+ */
+int zconfget_leng (void)
+{
+ return zconfleng;
+}
+
+/** Get the current token.
+ *
+ */
+
+char *zconfget_text (void)
+{
+ return zconftext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ *
+ */
+void zconfset_lineno (int line_number )
+{
+
+ zconflineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ *
+ * @see zconf_switch_to_buffer
+ */
+void zconfset_in (FILE * in_str )
+{
+ zconfin = in_str ;
+}
+
+void zconfset_out (FILE * out_str )
+{
+ zconfout = out_str ;
+}
+
+int zconfget_debug (void)
+{
+ return zconf_flex_debug;
+}
+
+void zconfset_debug (int bdebug )
+{
+ zconf_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+ /* Initialization is the same as for the non-reentrant scanner.
+ * This function is called from zconflex_destroy(), so don't allocate here.
+ */
+
+ (yy_buffer_stack) = 0;
+ (yy_buffer_stack_top) = 0;
+ (yy_buffer_stack_max) = 0;
+ (yy_c_buf_p) = (char *) 0;
+ (yy_init) = 0;
+ (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+ zconfin = stdin;
+ zconfout = stdout;
+#else
+ zconfin = (FILE *) 0;
+ zconfout = (FILE *) 0;
+#endif
+
+ /* For future reference: Set errno on error, since we are called by
+ * zconflex_init()
+ */
+ return 0;
+}
+
+/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
+int zconflex_destroy (void)
+{
+
+ /* Pop the buffer stack, destroying each element. */
+ while(YY_CURRENT_BUFFER){
+ zconf_delete_buffer(YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ zconfpop_buffer_state();
+ }
+
+ /* Destroy the stack itself. */
+ zconffree((yy_buffer_stack) );
+ (yy_buffer_stack) = NULL;
+
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
+ * zconflex() is called, initialization will occur. */
+ yy_init_globals( );
+
+ return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+}
+#endif
+
+void *zconfalloc (yy_size_t size )
+{
+ return (void *) malloc( size );
+}
+
+void *zconfrealloc (void * ptr, yy_size_t size )
+{
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+}
+
+void zconffree (void * ptr )
+{
+ free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+void zconf_starthelp(void)
+{
+ new_string();
+ last_ts = first_ts = 0;
+ BEGIN(HELP);
+}
+
+static void zconf_endhelp(void)
+{
+ zconflval.string = text;
+ BEGIN(INITIAL);
+}
+
+/*
+ * Try to open specified file with following names:
+ * ./name
+ * $(srctree)/name
+ * The latter is used when srctree is separate from objtree
+ * when compiling the kernel.
+ * Return NULL if file is not found.
+ */
+FILE *zconf_fopen(const char *name)
+{
+ char *env, fullname[PATH_MAX+1];
+ FILE *f;
+
+ f = fopen(name, "r");
+ if (!f && name != NULL && name[0] != '/') {
+ env = getenv(SRCTREE);
+ if (env) {
+ sprintf(fullname, "%s/%s", env, name);
+ f = fopen(fullname, "r");
+ }
+ }
+ return f;
+}
+
+void zconf_initscan(const char *name)
+{
+ zconfin = zconf_fopen(name);
+ if (!zconfin) {
+ printf("can't find file %s\n", name);
+ exit(1);
+ }
+
+ current_buf = malloc(sizeof(*current_buf));
+ memset(current_buf, 0, sizeof(*current_buf));
+
+ current_file = file_lookup(name);
+ current_file->lineno = 1;
+ current_file->flags = FILE_BUSY;
+}
+
+void zconf_nextfile(const char *name)
+{
+ struct file *file = file_lookup(name);
+ struct buffer *buf = malloc(sizeof(*buf));
+ memset(buf, 0, sizeof(*buf));
+
+ current_buf->state = YY_CURRENT_BUFFER;
+ zconfin = zconf_fopen(name);
+ if (!zconfin) {
+ printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
+ exit(1);
+ }
+ zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
+ buf->parent = current_buf;
+ current_buf = buf;
+
+ if (file->flags & FILE_BUSY) {
+ printf("recursive scan (%s)?\n", name);
+ exit(1);
+ }
+ if (file->flags & FILE_SCANNED) {
+ printf("file %s already scanned?\n", name);
+ exit(1);
+ }
+ file->flags |= FILE_BUSY;
+ file->lineno = 1;
+ file->parent = current_file;
+ current_file = file;
+}
+
+static void zconf_endfile(void)
+{
+ struct buffer *parent;
+
+ current_file->flags |= FILE_SCANNED;
+ current_file->flags &= ~FILE_BUSY;
+ current_file = current_file->parent;
+
+ parent = current_buf->parent;
+ if (parent) {
+ fclose(zconfin);
+ zconf_delete_buffer(YY_CURRENT_BUFFER);
+ zconf_switch_to_buffer(parent->state);
+ }
+ free(current_buf);
+ current_buf = parent;
+}
+
+int zconf_lineno(void)
+{
+ return current_pos.lineno;
+}
+
+char *zconf_curname(void)
+{
+ return current_pos.file ? current_pos.file->name : "<none>";
+}
+
diff --git a/cleopatre/buildroot/package/config/lkc.h b/cleopatre/buildroot/package/config/lkc.h
new file mode 100644
index 0000000000..8a07ee4f6b
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lkc.h
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#ifndef LKC_H
+#define LKC_H
+
+#include "expr.h"
+
+#ifndef KBUILD_NO_NLS
+# include <libintl.h>
+#else
+# define gettext(Msgid) ((const char *) (Msgid))
+# define textdomain(Domainname) ((const char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef LKC_DIRECT_LINK
+#define P(name,type,arg) extern type name arg
+#else
+#include "lkc_defs.h"
+#define P(name,type,arg) extern type (*name ## _p) arg
+#endif
+#include "lkc_proto.h"
+#undef P
+
+#define SRCTREE "srctree"
+
+#define PACKAGE "linux"
+#define LOCALEDIR "/usr/share/locale"
+
+#define _(text) gettext(text)
+#define N_(text) (text)
+
+
+#define TF_COMMAND 0x0001
+#define TF_PARAM 0x0002
+#define TF_OPTION 0x0004
+
+#define T_OPT_MODULES 1
+#define T_OPT_DEFCONFIG_LIST 2
+
+struct kconf_id {
+ int name;
+ int token;
+ unsigned int flags;
+ enum symbol_type stype;
+};
+
+int zconfparse(void);
+void zconfdump(FILE *out);
+
+extern int zconfdebug;
+void zconf_starthelp(void);
+FILE *zconf_fopen(const char *name);
+void zconf_initscan(const char *name);
+void zconf_nextfile(const char *name);
+int zconf_lineno(void);
+char *zconf_curname(void);
+
+/* confdata.c */
+const char *conf_get_configname(void);
+char *conf_get_default_confname(void);
+void sym_set_change_count(int count);
+void sym_add_change_count(int count);
+
+/* kconfig_load.c */
+void kconfig_load(void);
+
+/* menu.c */
+void menu_init(void);
+struct menu *menu_add_menu(void);
+void menu_end_menu(void);
+void menu_add_entry(struct symbol *sym);
+void menu_end_entry(void);
+void menu_add_dep(struct expr *dep);
+struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
+struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
+void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
+void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
+void menu_add_option(int token, char *arg);
+void menu_finalize(struct menu *parent);
+void menu_set_type(int type);
+
+/* util.c */
+struct file *file_lookup(const char *name);
+int file_write_dep(const char *name);
+
+struct gstr {
+ size_t len;
+ char *s;
+};
+struct gstr str_new(void);
+struct gstr str_assign(const char *s);
+void str_free(struct gstr *gs);
+void str_append(struct gstr *gs, const char *s);
+void str_printf(struct gstr *gs, const char *fmt, ...);
+const char *str_get(struct gstr *gs);
+
+/* symbol.c */
+void sym_init(void);
+void sym_clear_all_valid(void);
+void sym_set_all_changed(void);
+void sym_set_changed(struct symbol *sym);
+struct symbol *sym_check_deps(struct symbol *sym);
+struct property *prop_alloc(enum prop_type type, struct symbol *sym);
+struct symbol *prop_get_symbol(struct property *prop);
+
+static inline tristate sym_get_tristate_value(struct symbol *sym)
+{
+ return sym->curr.tri;
+}
+
+
+static inline struct symbol *sym_get_choice_value(struct symbol *sym)
+{
+ return (struct symbol *)sym->curr.val;
+}
+
+static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
+{
+ return sym_set_tristate_value(chval, yes);
+}
+
+static inline bool sym_is_choice(struct symbol *sym)
+{
+ return sym->flags & SYMBOL_CHOICE ? true : false;
+}
+
+static inline bool sym_is_choice_value(struct symbol *sym)
+{
+ return sym->flags & SYMBOL_CHOICEVAL ? true : false;
+}
+
+static inline bool sym_is_optional(struct symbol *sym)
+{
+ return sym->flags & SYMBOL_OPTIONAL ? true : false;
+}
+
+static inline bool sym_has_value(struct symbol *sym)
+{
+ return sym->flags & SYMBOL_DEF_USER ? true : false;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LKC_H */
diff --git a/cleopatre/buildroot/package/config/lkc_proto.h b/cleopatre/buildroot/package/config/lkc_proto.h
new file mode 100644
index 0000000000..4d09f6ddef
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lkc_proto.h
@@ -0,0 +1,45 @@
+
+/* confdata.c */
+P(conf_parse,void,(const char *name));
+P(conf_read,int,(const char *name));
+P(conf_read_simple,int,(const char *name, int));
+P(conf_write,int,(const char *name));
+P(conf_write_autoconf,int,(void));
+P(conf_get_changed,bool,(void));
+P(conf_set_changed_callback, void,(void (*fn)(void)));
+
+/* menu.c */
+P(rootmenu,struct menu,);
+
+P(menu_is_visible,bool,(struct menu *menu));
+P(menu_get_prompt,const char *,(struct menu *menu));
+P(menu_get_root_menu,struct menu *,(struct menu *menu));
+P(menu_get_parent_menu,struct menu *,(struct menu *menu));
+P(menu_has_help,bool,(struct menu *menu));
+P(menu_get_help,const char *,(struct menu *menu));
+
+/* symbol.c */
+P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
+
+P(sym_lookup,struct symbol *,(const char *name, int isconst));
+P(sym_find,struct symbol *,(const char *name));
+P(sym_re_search,struct symbol **,(const char *pattern));
+P(sym_type_name,const char *,(enum symbol_type type));
+P(sym_calc_value,void,(struct symbol *sym));
+P(sym_get_type,enum symbol_type,(struct symbol *sym));
+P(sym_tristate_within_range,bool,(struct symbol *sym,tristate tri));
+P(sym_set_tristate_value,bool,(struct symbol *sym,tristate tri));
+P(sym_toggle_tristate_value,tristate,(struct symbol *sym));
+P(sym_string_valid,bool,(struct symbol *sym, const char *newval));
+P(sym_string_within_range,bool,(struct symbol *sym, const char *str));
+P(sym_set_string_value,bool,(struct symbol *sym, const char *newval));
+P(sym_is_changable,bool,(struct symbol *sym));
+P(sym_get_choice_prop,struct property *,(struct symbol *sym));
+P(sym_get_default_prop,struct property *,(struct symbol *sym));
+P(sym_get_string_value,const char *,(struct symbol *sym));
+
+P(prop_get_type_name,const char *,(enum prop_type type));
+
+/* expr.c */
+P(expr_compare_type,int,(enum expr_type t1, enum expr_type t2));
+P(expr_print,void,(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken));
diff --git a/cleopatre/buildroot/package/config/lxdialog/BIG.FAT.WARNING b/cleopatre/buildroot/package/config/lxdialog/BIG.FAT.WARNING
new file mode 100644
index 0000000000..a8999d82bd
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/BIG.FAT.WARNING
@@ -0,0 +1,4 @@
+This is NOT the official version of dialog. This version has been
+significantly modified from the original. It is for use by the Linux
+kernel configuration script. Please do not bother Savio Lam with
+questions about this program.
diff --git a/cleopatre/buildroot/package/config/lxdialog/check-lxdialog.sh b/cleopatre/buildroot/package/config/lxdialog/check-lxdialog.sh
new file mode 100644
index 0000000000..9681476b96
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/check-lxdialog.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+# Check ncurses compatibility
+
+# What library to link
+ldflags()
+{
+ for ext in so a dylib ; do
+ for lib in ncursesw ncurses curses ; do
+ $cc -print-file-name=lib${lib}.${ext} | grep -q /
+ if [ $? -eq 0 ]; then
+ echo "-l${lib}"
+ exit
+ fi
+ done
+ done
+ exit 1
+}
+
+# Where is ncurses.h?
+ccflags()
+{
+ if [ -f /usr/include/ncurses/ncurses.h ]; then
+ echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
+ elif [ -f /usr/include/ncurses/curses.h ]; then
+ echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
+ elif [ -f /usr/include/ncurses.h ]; then
+ echo '-DCURSES_LOC="<ncurses.h>"'
+ else
+ echo '-DCURSES_LOC="<curses.h>"'
+ fi
+}
+
+# Temp file, try to clean up after us
+tmp=.lxdialog.tmp
+trap "rm -f $tmp" 0 1 2 3 15
+
+# Check if we can link to ncurses
+check() {
+ echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null
+ if [ $? != 0 ]; then
+ echo " *** Unable to find the ncurses libraries." 1>&2
+ echo " *** make menuconfig require the ncurses libraries" 1>&2
+ echo " *** " 1>&2
+ echo " *** Install ncurses (ncurses-devel) and try again" 1>&2
+ echo " *** " 1>&2
+ exit 1
+ fi
+}
+
+usage() {
+ printf "Usage: $0 [-check compiler options|-header|-library]\n"
+}
+
+if [ $# -eq 0 ]; then
+ usage
+ exit 1
+fi
+
+cc=""
+case "$1" in
+ "-check")
+ shift
+ cc="$@"
+ check
+ ;;
+ "-ccflags")
+ ccflags
+ ;;
+ "-ldflags")
+ shift
+ cc="$@"
+ ldflags
+ ;;
+ "*")
+ usage
+ exit 1
+ ;;
+esac
diff --git a/cleopatre/buildroot/package/config/lxdialog/checklist.c b/cleopatre/buildroot/package/config/lxdialog/checklist.c
new file mode 100644
index 0000000000..cf697080dd
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/checklist.c
@@ -0,0 +1,325 @@
+/*
+ * checklist.c -- implements the checklist box
+ *
+ * ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ * Stuart Herbert - S.Herbert@sheffield.ac.uk: radiolist extension
+ * Alessandro Rubini - rubini@ipvvis.unipv.it: merged the two
+ * MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "dialog.h"
+
+static int list_width, check_x, item_x;
+
+/*
+ * Print list item
+ */
+static void print_item(WINDOW * win, int choice, int selected)
+{
+ int i;
+
+ /* Clear 'residue' of last item */
+ wattrset(win, dlg.menubox.atr);
+ wmove(win, choice, 0);
+ for (i = 0; i < list_width; i++)
+ waddch(win, ' ');
+
+ wmove(win, choice, check_x);
+ wattrset(win, selected ? dlg.check_selected.atr
+ : dlg.check.atr);
+ wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
+
+ wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
+ mvwaddch(win, choice, item_x, item_str()[0]);
+ wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr);
+ waddstr(win, (char *)item_str() + 1);
+ if (selected) {
+ wmove(win, choice, check_x + 1);
+ wrefresh(win);
+ }
+}
+
+/*
+ * Print the scroll indicators.
+ */
+static void print_arrows(WINDOW * win, int choice, int item_no, int scroll,
+ int y, int x, int height)
+{
+ wmove(win, y, x);
+
+ if (scroll > 0) {
+ wattrset(win, dlg.uarrow.atr);
+ waddch(win, ACS_UARROW);
+ waddstr(win, "(-)");
+ } else {
+ wattrset(win, dlg.menubox.atr);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ }
+
+ y = y + height + 1;
+ wmove(win, y, x);
+
+ if ((height < item_no) && (scroll + choice < item_no - 1)) {
+ wattrset(win, dlg.darrow.atr);
+ waddch(win, ACS_DARROW);
+ waddstr(win, "(+)");
+ } else {
+ wattrset(win, dlg.menubox_border.atr);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ }
+}
+
+/*
+ * Display the termination buttons
+ */
+static void print_buttons(WINDOW * dialog, int height, int width, int selected)
+{
+ int x = width / 2 - 11;
+ int y = height - 2;
+
+ print_button(dialog, "Select", y, x, selected == 0);
+ print_button(dialog, " Help ", y, x + 14, selected == 1);
+
+ wmove(dialog, y, x + 1 + 14 * selected);
+ wrefresh(dialog);
+}
+
+/*
+ * Display a dialog box with a list of options that can be turned on or off
+ * in the style of radiolist (only one option turned on at a time).
+ */
+int dialog_checklist(const char *title, const char *prompt, int height,
+ int width, int list_height)
+{
+ int i, x, y, box_x, box_y;
+ int key = 0, button = 0, choice = 0, scroll = 0, max_choice;
+ WINDOW *dialog, *list;
+
+ /* which item to highlight */
+ item_foreach() {
+ if (item_is_tag('X'))
+ choice = item_n();
+ if (item_is_selected()) {
+ choice = item_n();
+ break;
+ }
+ }
+
+do_resize:
+ if (getmaxy(stdscr) < (height + 6))
+ return -ERRDISPLAYTOOSMALL;
+ if (getmaxx(stdscr) < (width + 6))
+ return -ERRDISPLAYTOOSMALL;
+
+ max_choice = MIN(list_height, item_count());
+
+ /* center dialog box on screen */
+ x = (COLS - width) / 2;
+ y = (LINES - height) / 2;
+
+ draw_shadow(stdscr, y, x, height, width);
+
+ dialog = newwin(height, width, y, x);
+ keypad(dialog, TRUE);
+
+ draw_box(dialog, 0, 0, height, width,
+ dlg.dialog.atr, dlg.border.atr);
+ wattrset(dialog, dlg.border.atr);
+ mvwaddch(dialog, height - 3, 0, ACS_LTEE);
+ for (i = 0; i < width - 2; i++)
+ waddch(dialog, ACS_HLINE);
+ wattrset(dialog, dlg.dialog.atr);
+ waddch(dialog, ACS_RTEE);
+
+ print_title(dialog, title, width);
+
+ wattrset(dialog, dlg.dialog.atr);
+ print_autowrap(dialog, prompt, width - 2, 1, 3);
+
+ list_width = width - 6;
+ box_y = height - list_height - 5;
+ box_x = (width - list_width) / 2 - 1;
+
+ /* create new window for the list */
+ list = subwin(dialog, list_height, list_width, y + box_y + 1,
+ x + box_x + 1);
+
+ keypad(list, TRUE);
+
+ /* draw a box around the list items */
+ draw_box(dialog, box_y, box_x, list_height + 2, list_width + 2,
+ dlg.menubox_border.atr, dlg.menubox.atr);
+
+ /* Find length of longest item in order to center checklist */
+ check_x = 0;
+ item_foreach()
+ check_x = MAX(check_x, strlen(item_str()) + 4);
+
+ check_x = (list_width - check_x) / 2;
+ item_x = check_x + 4;
+
+ if (choice >= list_height) {
+ scroll = choice - list_height + 1;
+ choice -= scroll;
+ }
+
+ /* Print the list */
+ for (i = 0; i < max_choice; i++) {
+ item_set(scroll + i);
+ print_item(list, i, i == choice);
+ }
+
+ print_arrows(dialog, choice, item_count(), scroll,
+ box_y, box_x + check_x + 5, list_height);
+
+ print_buttons(dialog, height, width, 0);
+
+ wnoutrefresh(dialog);
+ wnoutrefresh(list);
+ doupdate();
+
+ while (key != KEY_ESC) {
+ key = wgetch(dialog);
+
+ for (i = 0; i < max_choice; i++) {
+ item_set(i + scroll);
+ if (toupper(key) == toupper(item_str()[0]))
+ break;
+ }
+
+ if (i < max_choice || key == KEY_UP || key == KEY_DOWN ||
+ key == '+' || key == '-') {
+ if (key == KEY_UP || key == '-') {
+ if (!choice) {
+ if (!scroll)
+ continue;
+ /* Scroll list down */
+ if (list_height > 1) {
+ /* De-highlight current first item */
+ item_set(scroll);
+ print_item(list, 0, FALSE);
+ scrollok(list, TRUE);
+ wscrl(list, -1);
+ scrollok(list, FALSE);
+ }
+ scroll--;
+ item_set(scroll);
+ print_item(list, 0, TRUE);
+ print_arrows(dialog, choice, item_count(),
+ scroll, box_y, box_x + check_x + 5, list_height);
+
+ wnoutrefresh(dialog);
+ wrefresh(list);
+
+ continue; /* wait for another key press */
+ } else
+ i = choice - 1;
+ } else if (key == KEY_DOWN || key == '+') {
+ if (choice == max_choice - 1) {
+ if (scroll + choice >= item_count() - 1)
+ continue;
+ /* Scroll list up */
+ if (list_height > 1) {
+ /* De-highlight current last item before scrolling up */
+ item_set(scroll + max_choice - 1);
+ print_item(list,
+ max_choice - 1,
+ FALSE);
+ scrollok(list, TRUE);
+ wscrl(list, 1);
+ scrollok(list, FALSE);
+ }
+ scroll++;
+ item_set(scroll + max_choice - 1);
+ print_item(list, max_choice - 1, TRUE);
+
+ print_arrows(dialog, choice, item_count(),
+ scroll, box_y, box_x + check_x + 5, list_height);
+
+ wnoutrefresh(dialog);
+ wrefresh(list);
+
+ continue; /* wait for another key press */
+ } else
+ i = choice + 1;
+ }
+ if (i != choice) {
+ /* De-highlight current item */
+ item_set(scroll + choice);
+ print_item(list, choice, FALSE);
+ /* Highlight new item */
+ choice = i;
+ item_set(scroll + choice);
+ print_item(list, choice, TRUE);
+ wnoutrefresh(dialog);
+ wrefresh(list);
+ }
+ continue; /* wait for another key press */
+ }
+ switch (key) {
+ case 'H':
+ case 'h':
+ case '?':
+ button = 1;
+ /* fall-through */
+ case 'S':
+ case 's':
+ case ' ':
+ case '\n':
+ item_foreach()
+ item_set_selected(0);
+ item_set(scroll + choice);
+ item_set_selected(1);
+ delwin(list);
+ delwin(dialog);
+ return button;
+ case TAB:
+ case KEY_LEFT:
+ case KEY_RIGHT:
+ button = ((key == KEY_LEFT ? --button : ++button) < 0)
+ ? 1 : (button > 1 ? 0 : button);
+
+ print_buttons(dialog, height, width, button);
+ wrefresh(dialog);
+ break;
+ case 'X':
+ case 'x':
+ key = KEY_ESC;
+ break;
+ case KEY_ESC:
+ key = on_key_esc(dialog);
+ break;
+ case KEY_RESIZE:
+ delwin(list);
+ delwin(dialog);
+ on_key_resize();
+ goto do_resize;
+ }
+
+ /* Now, update everything... */
+ doupdate();
+ }
+ delwin(list);
+ delwin(dialog);
+ return key; /* ESC pressed */
+}
diff --git a/cleopatre/buildroot/package/config/lxdialog/dialog.h b/cleopatre/buildroot/package/config/lxdialog/dialog.h
new file mode 100644
index 0000000000..7e17eba75a
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/dialog.h
@@ -0,0 +1,225 @@
+/*
+ * dialog.h -- common declarations for all dialog modules
+ *
+ * AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <sys/types.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdbool.h>
+
+#ifdef __sun__
+#define CURS_MACROS
+#endif
+#include CURSES_LOC
+
+/*
+ * Colors in ncurses 1.9.9e do not work properly since foreground and
+ * background colors are OR'd rather than separately masked. This version
+ * of dialog was hacked to work with ncurses 1.9.9e, making it incompatible
+ * with standard curses. The simplest fix (to make this work with standard
+ * curses) uses the wbkgdset() function, not used in the original hack.
+ * Turn it off if we're building with 1.9.9e, since it just confuses things.
+ */
+#if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
+#define OLD_NCURSES 1
+#undef wbkgdset
+#define wbkgdset(w,p) /*nothing */
+#else
+#define OLD_NCURSES 0
+#endif
+
+#define TR(params) _tracef params
+
+#define KEY_ESC 27
+#define TAB 9
+#define MAX_LEN 2048
+#define BUF_SIZE (10*1024)
+#define MIN(x,y) (x < y ? x : y)
+#define MAX(x,y) (x > y ? x : y)
+
+#ifndef ACS_ULCORNER
+#define ACS_ULCORNER '+'
+#endif
+#ifndef ACS_LLCORNER
+#define ACS_LLCORNER '+'
+#endif
+#ifndef ACS_URCORNER
+#define ACS_URCORNER '+'
+#endif
+#ifndef ACS_LRCORNER
+#define ACS_LRCORNER '+'
+#endif
+#ifndef ACS_HLINE
+#define ACS_HLINE '-'
+#endif
+#ifndef ACS_VLINE
+#define ACS_VLINE '|'
+#endif
+#ifndef ACS_LTEE
+#define ACS_LTEE '+'
+#endif
+#ifndef ACS_RTEE
+#define ACS_RTEE '+'
+#endif
+#ifndef ACS_UARROW
+#define ACS_UARROW '^'
+#endif
+#ifndef ACS_DARROW
+#define ACS_DARROW 'v'
+#endif
+
+/* error return codes */
+#define ERRDISPLAYTOOSMALL (KEY_MAX + 1)
+
+/*
+ * Color definitions
+ */
+struct dialog_color {
+ chtype atr; /* Color attribute */
+ int fg; /* foreground */
+ int bg; /* background */
+ int hl; /* highlight this item */
+};
+
+struct dialog_info {
+ const char *backtitle;
+ struct dialog_color screen;
+ struct dialog_color shadow;
+ struct dialog_color dialog;
+ struct dialog_color title;
+ struct dialog_color border;
+ struct dialog_color button_active;
+ struct dialog_color button_inactive;
+ struct dialog_color button_key_active;
+ struct dialog_color button_key_inactive;
+ struct dialog_color button_label_active;
+ struct dialog_color button_label_inactive;
+ struct dialog_color inputbox;
+ struct dialog_color inputbox_border;
+ struct dialog_color searchbox;
+ struct dialog_color searchbox_title;
+ struct dialog_color searchbox_border;
+ struct dialog_color position_indicator;
+ struct dialog_color menubox;
+ struct dialog_color menubox_border;
+ struct dialog_color item;
+ struct dialog_color item_selected;
+ struct dialog_color tag;
+ struct dialog_color tag_selected;
+ struct dialog_color tag_key;
+ struct dialog_color tag_key_selected;
+ struct dialog_color check;
+ struct dialog_color check_selected;
+ struct dialog_color uarrow;
+ struct dialog_color darrow;
+};
+
+/*
+ * Global variables
+ */
+extern struct dialog_info dlg;
+extern char dialog_input_result[];
+
+/*
+ * Function prototypes
+ */
+
+/* item list as used by checklist and menubox */
+void item_reset(void);
+void item_make(const char *fmt, ...);
+void item_add_str(const char *fmt, ...);
+void item_set_tag(char tag);
+void item_set_data(void *p);
+void item_set_selected(int val);
+int item_activate_selected(void);
+void *item_data(void);
+char item_tag(void);
+
+/* item list manipulation for lxdialog use */
+#define MAXITEMSTR 200
+struct dialog_item {
+ char str[MAXITEMSTR]; /* promtp displayed */
+ char tag;
+ void *data; /* pointer to menu item - used by menubox+checklist */
+ int selected; /* Set to 1 by dialog_*() function if selected. */
+};
+
+/* list of lialog_items */
+struct dialog_list {
+ struct dialog_item node;
+ struct dialog_list *next;
+};
+
+extern struct dialog_list *item_cur;
+extern struct dialog_list item_nil;
+extern struct dialog_list *item_head;
+
+int item_count(void);
+void item_set(int n);
+int item_n(void);
+const char *item_str(void);
+int item_is_selected(void);
+int item_is_tag(char tag);
+#define item_foreach() \
+ for (item_cur = item_head ? item_head: item_cur; \
+ item_cur && (item_cur != &item_nil); item_cur = item_cur->next)
+
+/* generic key handlers */
+int on_key_esc(WINDOW *win);
+int on_key_resize(void);
+
+void init_dialog(const char *backtitle);
+void set_dialog_backtitle(const char *backtitle);
+void reset_dialog(void);
+void end_dialog(void);
+void attr_clear(WINDOW * win, int height, int width, chtype attr);
+void dialog_clear(void);
+void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x);
+void print_button(WINDOW * win, const char *label, int y, int x, int selected);
+void print_title(WINDOW *dialog, const char *title, int width);
+void draw_box(WINDOW * win, int y, int x, int height, int width, chtype box,
+ chtype border);
+void draw_shadow(WINDOW * win, int y, int x, int height, int width);
+
+int first_alpha(const char *string, const char *exempt);
+int dialog_yesno(const char *title, const char *prompt, int height, int width);
+int dialog_msgbox(const char *title, const char *prompt, int height,
+ int width, int pause);
+int dialog_textbox(const char *title, const char *file, int height, int width);
+int dialog_menu(const char *title, const char *prompt,
+ const void *selected, int *s_scroll);
+int dialog_checklist(const char *title, const char *prompt, int height,
+ int width, int list_height);
+extern char dialog_input_result[];
+int dialog_inputbox(const char *title, const char *prompt, int height,
+ int width, const char *init);
+
+/*
+ * This is the base for fictitious keys, which activate
+ * the buttons.
+ *
+ * Mouse-generated keys are the following:
+ * -- the first 32 are used as numbers, in addition to '0'-'9'
+ * -- the lowercase are used to signal mouse-enter events (M_EVENT + 'o')
+ * -- uppercase chars are used to invoke the button (M_EVENT + 'O')
+ */
+#define M_EVENT (KEY_MAX+1)
diff --git a/cleopatre/buildroot/package/config/lxdialog/inputbox.c b/cleopatre/buildroot/package/config/lxdialog/inputbox.c
new file mode 100644
index 0000000000..05e72066b3
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/inputbox.c
@@ -0,0 +1,238 @@
+/*
+ * inputbox.c -- implements the input box
+ *
+ * ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ * MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "dialog.h"
+
+char dialog_input_result[MAX_LEN + 1];
+
+/*
+ * Print the termination buttons
+ */
+static void print_buttons(WINDOW * dialog, int height, int width, int selected)
+{
+ int x = width / 2 - 11;
+ int y = height - 2;
+
+ print_button(dialog, " Ok ", y, x, selected == 0);
+ print_button(dialog, " Help ", y, x + 14, selected == 1);
+
+ wmove(dialog, y, x + 1 + 14 * selected);
+ wrefresh(dialog);
+}
+
+/*
+ * Display a dialog box for inputing a string
+ */
+int dialog_inputbox(const char *title, const char *prompt, int height, int width,
+ const char *init)
+{
+ int i, x, y, box_y, box_x, box_width;
+ int input_x = 0, scroll = 0, key = 0, button = -1;
+ char *instr = dialog_input_result;
+ WINDOW *dialog;
+
+ if (!init)
+ instr[0] = '\0';
+ else
+ strcpy(instr, init);
+
+do_resize:
+ if (getmaxy(stdscr) <= (height - 2))
+ return -ERRDISPLAYTOOSMALL;
+ if (getmaxx(stdscr) <= (width - 2))
+ return -ERRDISPLAYTOOSMALL;
+
+ /* center dialog box on screen */
+ x = (COLS - width) / 2;
+ y = (LINES - height) / 2;
+
+ draw_shadow(stdscr, y, x, height, width);
+
+ dialog = newwin(height, width, y, x);
+ keypad(dialog, TRUE);
+
+ draw_box(dialog, 0, 0, height, width,
+ dlg.dialog.atr, dlg.border.atr);
+ wattrset(dialog, dlg.border.atr);
+ mvwaddch(dialog, height - 3, 0, ACS_LTEE);
+ for (i = 0; i < width - 2; i++)
+ waddch(dialog, ACS_HLINE);
+ wattrset(dialog, dlg.dialog.atr);
+ waddch(dialog, ACS_RTEE);
+
+ print_title(dialog, title, width);
+
+ wattrset(dialog, dlg.dialog.atr);
+ print_autowrap(dialog, prompt, width - 2, 1, 3);
+
+ /* Draw the input field box */
+ box_width = width - 6;
+ getyx(dialog, y, x);
+ box_y = y + 2;
+ box_x = (width - box_width) / 2;
+ draw_box(dialog, y + 1, box_x - 1, 3, box_width + 2,
+ dlg.border.atr, dlg.dialog.atr);
+
+ print_buttons(dialog, height, width, 0);
+
+ /* Set up the initial value */
+ wmove(dialog, box_y, box_x);
+ wattrset(dialog, dlg.inputbox.atr);
+
+ input_x = strlen(instr);
+
+ if (input_x >= box_width) {
+ scroll = input_x - box_width + 1;
+ input_x = box_width - 1;
+ for (i = 0; i < box_width - 1; i++)
+ waddch(dialog, instr[scroll + i]);
+ } else {
+ waddstr(dialog, instr);
+ }
+
+ wmove(dialog, box_y, box_x + input_x);
+
+ wrefresh(dialog);
+
+ while (key != KEY_ESC) {
+ key = wgetch(dialog);
+
+ if (button == -1) { /* Input box selected */
+ switch (key) {
+ case TAB:
+ case KEY_UP:
+ case KEY_DOWN:
+ break;
+ case KEY_LEFT:
+ continue;
+ case KEY_RIGHT:
+ continue;
+ case KEY_BACKSPACE:
+ case 127:
+ if (input_x || scroll) {
+ wattrset(dialog, dlg.inputbox.atr);
+ if (!input_x) {
+ scroll = scroll < box_width - 1 ? 0 : scroll - (box_width - 1);
+ wmove(dialog, box_y, box_x);
+ for (i = 0; i < box_width; i++)
+ waddch(dialog,
+ instr[scroll + input_x + i] ?
+ instr[scroll + input_x + i] : ' ');
+ input_x = strlen(instr) - scroll;
+ } else
+ input_x--;
+ instr[scroll + input_x] = '\0';
+ mvwaddch(dialog, box_y, input_x + box_x, ' ');
+ wmove(dialog, box_y, input_x + box_x);
+ wrefresh(dialog);
+ }
+ continue;
+ default:
+ if (key < 0x100 && isprint(key)) {
+ if (scroll + input_x < MAX_LEN) {
+ wattrset(dialog, dlg.inputbox.atr);
+ instr[scroll + input_x] = key;
+ instr[scroll + input_x + 1] = '\0';
+ if (input_x == box_width - 1) {
+ scroll++;
+ wmove(dialog, box_y, box_x);
+ for (i = 0; i < box_width - 1; i++)
+ waddch(dialog, instr [scroll + i]);
+ } else {
+ wmove(dialog, box_y, input_x++ + box_x);
+ waddch(dialog, key);
+ }
+ wrefresh(dialog);
+ } else
+ flash(); /* Alarm user about overflow */
+ continue;
+ }
+ }
+ }
+ switch (key) {
+ case 'O':
+ case 'o':
+ delwin(dialog);
+ return 0;
+ case 'H':
+ case 'h':
+ delwin(dialog);
+ return 1;
+ case KEY_UP:
+ case KEY_LEFT:
+ switch (button) {
+ case -1:
+ button = 1; /* Indicates "Cancel" button is selected */
+ print_buttons(dialog, height, width, 1);
+ break;
+ case 0:
+ button = -1; /* Indicates input box is selected */
+ print_buttons(dialog, height, width, 0);
+ wmove(dialog, box_y, box_x + input_x);
+ wrefresh(dialog);
+ break;
+ case 1:
+ button = 0; /* Indicates "OK" button is selected */
+ print_buttons(dialog, height, width, 0);
+ break;
+ }
+ break;
+ case TAB:
+ case KEY_DOWN:
+ case KEY_RIGHT:
+ switch (button) {
+ case -1:
+ button = 0; /* Indicates "OK" button is selected */
+ print_buttons(dialog, height, width, 0);
+ break;
+ case 0:
+ button = 1; /* Indicates "Cancel" button is selected */
+ print_buttons(dialog, height, width, 1);
+ break;
+ case 1:
+ button = -1; /* Indicates input box is selected */
+ print_buttons(dialog, height, width, 0);
+ wmove(dialog, box_y, box_x + input_x);
+ wrefresh(dialog);
+ break;
+ }
+ break;
+ case ' ':
+ case '\n':
+ delwin(dialog);
+ return (button == -1 ? 0 : button);
+ case 'X':
+ case 'x':
+ key = KEY_ESC;
+ break;
+ case KEY_ESC:
+ key = on_key_esc(dialog);
+ break;
+ case KEY_RESIZE:
+ delwin(dialog);
+ on_key_resize();
+ goto do_resize;
+ }
+ }
+
+ delwin(dialog);
+ return KEY_ESC; /* ESC pressed */
+}
diff --git a/cleopatre/buildroot/package/config/lxdialog/menubox.c b/cleopatre/buildroot/package/config/lxdialog/menubox.c
new file mode 100644
index 0000000000..0d83159d90
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/menubox.c
@@ -0,0 +1,434 @@
+/*
+ * menubox.c -- implements the menu box
+ *
+ * ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ * MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcapw@cfw.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*
+ * Changes by Clifford Wolf (god@clifford.at)
+ *
+ * [ 1998-06-13 ]
+ *
+ * *) A bugfix for the Page-Down problem
+ *
+ * *) Formerly when I used Page Down and Page Up, the cursor would be set
+ * to the first position in the menu box. Now lxdialog is a bit
+ * smarter and works more like other menu systems (just have a look at
+ * it).
+ *
+ * *) Formerly if I selected something my scrolling would be broken because
+ * lxdialog is re-invoked by the Menuconfig shell script, can't
+ * remember the last scrolling position, and just sets it so that the
+ * cursor is at the bottom of the box. Now it writes the temporary file
+ * lxdialog.scrltmp which contains this information. The file is
+ * deleted by lxdialog if the user leaves a submenu or enters a new
+ * one, but it would be nice if Menuconfig could make another "rm -f"
+ * just to be sure. Just try it out - you will recognise a difference!
+ *
+ * [ 1998-06-14 ]
+ *
+ * *) Now lxdialog is crash-safe against broken "lxdialog.scrltmp" files
+ * and menus change their size on the fly.
+ *
+ * *) If for some reason the last scrolling position is not saved by
+ * lxdialog, it sets the scrolling so that the selected item is in the
+ * middle of the menu box, not at the bottom.
+ *
+ * 02 January 1999, Michael Elizabeth Chastain (mec@shout.net)
+ * Reset 'scroll' to 0 if the value from lxdialog.scrltmp is bogus.
+ * This fixes a bug in Menuconfig where using ' ' to descend into menus
+ * would leave mis-synchronized lxdialog.scrltmp files lying around,
+ * fscanf would read in 'scroll', and eventually that value would get used.
+ */
+
+#include "dialog.h"
+
+static int menu_width, item_x;
+
+/*
+ * Print menu item
+ */
+static void do_print_item(WINDOW * win, const char *item, int line_y,
+ int selected, int hotkey)
+{
+ int j;
+ char *menu_item = malloc(menu_width + 1);
+
+ strncpy(menu_item, item, menu_width - item_x);
+ menu_item[menu_width - item_x] = '\0';
+ j = first_alpha(menu_item, "YyNnMmHh");
+
+ /* Clear 'residue' of last item */
+ wattrset(win, dlg.menubox.atr);
+ wmove(win, line_y, 0);
+#if OLD_NCURSES
+ {
+ int i;
+ for (i = 0; i < menu_width; i++)
+ waddch(win, ' ');
+ }
+#else
+ wclrtoeol(win);
+#endif
+ wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr);
+ mvwaddstr(win, line_y, item_x, menu_item);
+ if (hotkey) {
+ wattrset(win, selected ? dlg.tag_key_selected.atr
+ : dlg.tag_key.atr);
+ mvwaddch(win, line_y, item_x + j, menu_item[j]);
+ }
+ if (selected) {
+ wmove(win, line_y, item_x + 1);
+ }
+ free(menu_item);
+ wrefresh(win);
+}
+
+#define print_item(index, choice, selected) \
+do { \
+ item_set(index); \
+ do_print_item(menu, item_str(), choice, selected, !item_is_tag(':')); \
+} while (0)
+
+/*
+ * Print the scroll indicators.
+ */
+static void print_arrows(WINDOW * win, int item_no, int scroll, int y, int x,
+ int height)
+{
+ int cur_y, cur_x;
+
+ getyx(win, cur_y, cur_x);
+
+ wmove(win, y, x);
+
+ if (scroll > 0) {
+ wattrset(win, dlg.uarrow.atr);
+ waddch(win, ACS_UARROW);
+ waddstr(win, "(-)");
+ } else {
+ wattrset(win, dlg.menubox.atr);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ }
+
+ y = y + height + 1;
+ wmove(win, y, x);
+ wrefresh(win);
+
+ if ((height < item_no) && (scroll + height < item_no)) {
+ wattrset(win, dlg.darrow.atr);
+ waddch(win, ACS_DARROW);
+ waddstr(win, "(+)");
+ } else {
+ wattrset(win, dlg.menubox_border.atr);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ waddch(win, ACS_HLINE);
+ }
+
+ wmove(win, cur_y, cur_x);
+ wrefresh(win);
+}
+
+/*
+ * Display the termination buttons.
+ */
+static void print_buttons(WINDOW * win, int height, int width, int selected)
+{
+ int x = width / 2 - 16;
+ int y = height - 2;
+
+ print_button(win, "Select", y, x, selected == 0);
+ print_button(win, " Exit ", y, x + 12, selected == 1);
+ print_button(win, " Help ", y, x + 24, selected == 2);
+
+ wmove(win, y, x + 1 + 12 * selected);
+ wrefresh(win);
+}
+
+/* scroll up n lines (n may be negative) */
+static void do_scroll(WINDOW *win, int *scroll, int n)
+{
+ /* Scroll menu up */
+ scrollok(win, TRUE);
+ wscrl(win, n);
+ scrollok(win, FALSE);
+ *scroll = *scroll + n;
+ wrefresh(win);
+}
+
+/*
+ * Display a menu for choosing among a number of options
+ */
+int dialog_menu(const char *title, const char *prompt,
+ const void *selected, int *s_scroll)
+{
+ int i, j, x, y, box_x, box_y;
+ int height, width, menu_height;
+ int key = 0, button = 0, scroll = 0, choice = 0;
+ int first_item = 0, max_choice;
+ WINDOW *dialog, *menu;
+
+do_resize:
+ height = getmaxy(stdscr);
+ width = getmaxx(stdscr);
+ if (height < 15 || width < 65)
+ return -ERRDISPLAYTOOSMALL;
+
+ height -= 4;
+ width -= 5;
+ menu_height = height - 10;
+
+ max_choice = MIN(menu_height, item_count());
+
+ /* center dialog box on screen */
+ x = (COLS - width) / 2;
+ y = (LINES - height) / 2;
+
+ draw_shadow(stdscr, y, x, height, width);
+
+ dialog = newwin(height, width, y, x);
+ keypad(dialog, TRUE);
+
+ draw_box(dialog, 0, 0, height, width,
+ dlg.dialog.atr, dlg.border.atr);
+ wattrset(dialog, dlg.border.atr);
+ mvwaddch(dialog, height - 3, 0, ACS_LTEE);
+ for (i = 0; i < width - 2; i++)
+ waddch(dialog, ACS_HLINE);
+ wattrset(dialog, dlg.dialog.atr);
+ wbkgdset(dialog, dlg.dialog.atr & A_COLOR);
+ waddch(dialog, ACS_RTEE);
+
+ print_title(dialog, title, width);
+
+ wattrset(dialog, dlg.dialog.atr);
+ print_autowrap(dialog, prompt, width - 2, 1, 3);
+
+ menu_width = width - 6;
+ box_y = height - menu_height - 5;
+ box_x = (width - menu_width) / 2 - 1;
+
+ /* create new window for the menu */
+ menu = subwin(dialog, menu_height, menu_width,
+ y + box_y + 1, x + box_x + 1);
+ keypad(menu, TRUE);
+
+ /* draw a box around the menu items */
+ draw_box(dialog, box_y, box_x, menu_height + 2, menu_width + 2,
+ dlg.menubox_border.atr, dlg.menubox.atr);
+
+ if (menu_width >= 80)
+ item_x = (menu_width - 70) / 2;
+ else
+ item_x = 4;
+
+ /* Set choice to default item */
+ item_foreach()
+ if (selected && (selected == item_data()))
+ choice = item_n();
+ /* get the saved scroll info */
+ scroll = *s_scroll;
+ if ((scroll <= choice) && (scroll + max_choice > choice) &&
+ (scroll >= 0) && (scroll + max_choice <= item_count())) {
+ first_item = scroll;
+ choice = choice - scroll;
+ } else {
+ scroll = 0;
+ }
+ if ((choice >= max_choice)) {
+ if (choice >= item_count() - max_choice / 2)
+ scroll = first_item = item_count() - max_choice;
+ else
+ scroll = first_item = choice - max_choice / 2;
+ choice = choice - scroll;
+ }
+
+ /* Print the menu */
+ for (i = 0; i < max_choice; i++) {
+ print_item(first_item + i, i, i == choice);
+ }
+
+ wnoutrefresh(menu);
+
+ print_arrows(dialog, item_count(), scroll,
+ box_y, box_x + item_x + 1, menu_height);
+
+ print_buttons(dialog, height, width, 0);
+ wmove(menu, choice, item_x + 1);
+ wrefresh(menu);
+
+ while (key != KEY_ESC) {
+ key = wgetch(menu);
+
+ if (key < 256 && isalpha(key))
+ key = tolower(key);
+
+ if (strchr("ynmh", key))
+ i = max_choice;
+ else {
+ for (i = choice + 1; i < max_choice; i++) {
+ item_set(scroll + i);
+ j = first_alpha(item_str(), "YyNnMmHh");
+ if (key == tolower(item_str()[j]))
+ break;
+ }
+ if (i == max_choice)
+ for (i = 0; i < max_choice; i++) {
+ item_set(scroll + i);
+ j = first_alpha(item_str(), "YyNnMmHh");
+ if (key == tolower(item_str()[j]))
+ break;
+ }
+ }
+
+ if (i < max_choice ||
+ key == KEY_UP || key == KEY_DOWN ||
+ key == '-' || key == '+' ||
+ key == KEY_PPAGE || key == KEY_NPAGE) {
+ /* Remove highligt of current item */
+ print_item(scroll + choice, choice, FALSE);
+
+ if (key == KEY_UP || key == '-') {
+ if (choice < 2 && scroll) {
+ /* Scroll menu down */
+ do_scroll(menu, &scroll, -1);
+
+ print_item(scroll, 0, FALSE);
+ } else
+ choice = MAX(choice - 1, 0);
+
+ } else if (key == KEY_DOWN || key == '+') {
+ print_item(scroll+choice, choice, FALSE);
+
+ if ((choice > max_choice - 3) &&
+ (scroll + max_choice < item_count())) {
+ /* Scroll menu up */
+ do_scroll(menu, &scroll, 1);
+
+ print_item(scroll+max_choice - 1,
+ max_choice - 1, FALSE);
+ } else
+ choice = MIN(choice + 1, max_choice - 1);
+
+ } else if (key == KEY_PPAGE) {
+ scrollok(menu, TRUE);
+ for (i = 0; (i < max_choice); i++) {
+ if (scroll > 0) {
+ do_scroll(menu, &scroll, -1);
+ print_item(scroll, 0, FALSE);
+ } else {
+ if (choice > 0)
+ choice--;
+ }
+ }
+
+ } else if (key == KEY_NPAGE) {
+ for (i = 0; (i < max_choice); i++) {
+ if (scroll + max_choice < item_count()) {
+ do_scroll(menu, &scroll, 1);
+ print_item(scroll+max_choice-1,
+ max_choice - 1, FALSE);
+ } else {
+ if (choice + 1 < max_choice)
+ choice++;
+ }
+ }
+ } else
+ choice = i;
+
+ print_item(scroll + choice, choice, TRUE);
+
+ print_arrows(dialog, item_count(), scroll,
+ box_y, box_x + item_x + 1, menu_height);
+
+ wnoutrefresh(dialog);
+ wrefresh(menu);
+
+ continue; /* wait for another key press */
+ }
+
+ switch (key) {
+ case KEY_LEFT:
+ case TAB:
+ case KEY_RIGHT:
+ button = ((key == KEY_LEFT ? --button : ++button) < 0)
+ ? 2 : (button > 2 ? 0 : button);
+
+ print_buttons(dialog, height, width, button);
+ wrefresh(menu);
+ break;
+ case ' ':
+ case 's':
+ case 'y':
+ case 'n':
+ case 'm':
+ case '/':
+ /* save scroll info */
+ *s_scroll = scroll;
+ delwin(menu);
+ delwin(dialog);
+ item_set(scroll + choice);
+ item_set_selected(1);
+ switch (key) {
+ case 's':
+ return 3;
+ case 'y':
+ return 3;
+ case 'n':
+ return 4;
+ case 'm':
+ return 5;
+ case ' ':
+ return 6;
+ case '/':
+ return 7;
+ }
+ return 0;
+ case 'h':
+ case '?':
+ button = 2;
+ case '\n':
+ *s_scroll = scroll;
+ delwin(menu);
+ delwin(dialog);
+ item_set(scroll + choice);
+ item_set_selected(1);
+ return button;
+ case 'e':
+ case 'x':
+ key = KEY_ESC;
+ break;
+ case KEY_ESC:
+ key = on_key_esc(menu);
+ break;
+ case KEY_RESIZE:
+ on_key_resize();
+ delwin(menu);
+ delwin(dialog);
+ goto do_resize;
+ }
+ }
+ delwin(menu);
+ delwin(dialog);
+ return key; /* ESC pressed */
+}
diff --git a/cleopatre/buildroot/package/config/lxdialog/textbox.c b/cleopatre/buildroot/package/config/lxdialog/textbox.c
new file mode 100644
index 0000000000..fabfc1ad78
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/textbox.c
@@ -0,0 +1,391 @@
+/*
+ * textbox.c -- implements the text box
+ *
+ * ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ * MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "dialog.h"
+
+static void back_lines(int n);
+static void print_page(WINDOW * win, int height, int width);
+static void print_line(WINDOW * win, int row, int width);
+static char *get_line(void);
+static void print_position(WINDOW * win);
+
+static int hscroll;
+static int begin_reached, end_reached, page_length;
+static const char *buf;
+static const char *page;
+
+/*
+ * refresh window content
+ */
+static void refresh_text_box(WINDOW *dialog, WINDOW *box, int boxh, int boxw,
+ int cur_y, int cur_x)
+{
+ print_page(box, boxh, boxw);
+ print_position(dialog);
+ wmove(dialog, cur_y, cur_x); /* Restore cursor position */
+ wrefresh(dialog);
+}
+
+
+/*
+ * Display text from a file in a dialog box.
+ */
+int dialog_textbox(const char *title, const char *tbuf,
+ int initial_height, int initial_width)
+{
+ int i, x, y, cur_x, cur_y, key = 0;
+ int height, width, boxh, boxw;
+ int passed_end;
+ WINDOW *dialog, *box;
+
+ begin_reached = 1;
+ end_reached = 0;
+ page_length = 0;
+ hscroll = 0;
+ buf = tbuf;
+ page = buf; /* page is pointer to start of page to be displayed */
+
+do_resize:
+ getmaxyx(stdscr, height, width);
+ if (height < 8 || width < 8)
+ return -ERRDISPLAYTOOSMALL;
+ if (initial_height != 0)
+ height = initial_height;
+ else
+ if (height > 4)
+ height -= 4;
+ else
+ height = 0;
+ if (initial_width != 0)
+ width = initial_width;
+ else
+ if (width > 5)
+ width -= 5;
+ else
+ width = 0;
+
+ /* center dialog box on screen */
+ x = (COLS - width) / 2;
+ y = (LINES - height) / 2;
+
+ draw_shadow(stdscr, y, x, height, width);
+
+ dialog = newwin(height, width, y, x);
+ keypad(dialog, TRUE);
+
+ /* Create window for box region, used for scrolling text */
+ boxh = height - 4;
+ boxw = width - 2;
+ box = subwin(dialog, boxh, boxw, y + 1, x + 1);
+ wattrset(box, dlg.dialog.atr);
+ wbkgdset(box, dlg.dialog.atr & A_COLOR);
+
+ keypad(box, TRUE);
+
+ /* register the new window, along with its borders */
+ draw_box(dialog, 0, 0, height, width,
+ dlg.dialog.atr, dlg.border.atr);
+
+ wattrset(dialog, dlg.border.atr);
+ mvwaddch(dialog, height - 3, 0, ACS_LTEE);
+ for (i = 0; i < width - 2; i++)
+ waddch(dialog, ACS_HLINE);
+ wattrset(dialog, dlg.dialog.atr);
+ wbkgdset(dialog, dlg.dialog.atr & A_COLOR);
+ waddch(dialog, ACS_RTEE);
+
+ print_title(dialog, title, width);
+
+ print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
+ wnoutrefresh(dialog);
+ getyx(dialog, cur_y, cur_x); /* Save cursor position */
+
+ /* Print first page of text */
+ attr_clear(box, boxh, boxw, dlg.dialog.atr);
+ refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x);
+
+ while ((key != KEY_ESC) && (key != '\n')) {
+ key = wgetch(dialog);
+ switch (key) {
+ case 'E': /* Exit */
+ case 'e':
+ case 'X':
+ case 'x':
+ delwin(box);
+ delwin(dialog);
+ return 0;
+ case 'g': /* First page */
+ case KEY_HOME:
+ if (!begin_reached) {
+ begin_reached = 1;
+ page = buf;
+ refresh_text_box(dialog, box, boxh, boxw,
+ cur_y, cur_x);
+ }
+ break;
+ case 'G': /* Last page */
+ case KEY_END:
+
+ end_reached = 1;
+ /* point to last char in buf */
+ page = buf + strlen(buf);
+ back_lines(boxh);
+ refresh_text_box(dialog, box, boxh, boxw,
+ cur_y, cur_x);
+ break;
+ case 'K': /* Previous line */
+ case 'k':
+ case KEY_UP:
+ if (!begin_reached) {
+ back_lines(page_length + 1);
+
+ /* We don't call print_page() here but use
+ * scrolling to ensure faster screen update.
+ * However, 'end_reached' and 'page_length'
+ * should still be updated, and 'page' should
+ * point to start of next page. This is done
+ * by calling get_line() in the following
+ * 'for' loop. */
+ scrollok(box, TRUE);
+ wscrl(box, -1); /* Scroll box region down one line */
+ scrollok(box, FALSE);
+ page_length = 0;
+ passed_end = 0;
+ for (i = 0; i < boxh; i++) {
+ if (!i) {
+ /* print first line of page */
+ print_line(box, 0, boxw);
+ wnoutrefresh(box);
+ } else
+ /* Called to update 'end_reached' and 'page' */
+ get_line();
+ if (!passed_end)
+ page_length++;
+ if (end_reached && !passed_end)
+ passed_end = 1;
+ }
+
+ print_position(dialog);
+ wmove(dialog, cur_y, cur_x); /* Restore cursor position */
+ wrefresh(dialog);
+ }
+ break;
+ case 'B': /* Previous page */
+ case 'b':
+ case KEY_PPAGE:
+ if (begin_reached)
+ break;
+ back_lines(page_length + boxh);
+ refresh_text_box(dialog, box, boxh, boxw,
+ cur_y, cur_x);
+ break;
+ case 'J': /* Next line */
+ case 'j':
+ case KEY_DOWN:
+ if (!end_reached) {
+ begin_reached = 0;
+ scrollok(box, TRUE);
+ scroll(box); /* Scroll box region up one line */
+ scrollok(box, FALSE);
+ print_line(box, boxh - 1, boxw);
+ wnoutrefresh(box);
+ print_position(dialog);
+ wmove(dialog, cur_y, cur_x); /* Restore cursor position */
+ wrefresh(dialog);
+ }
+ break;
+ case KEY_NPAGE: /* Next page */
+ case ' ':
+ if (end_reached)
+ break;
+
+ begin_reached = 0;
+ refresh_text_box(dialog, box, boxh, boxw,
+ cur_y, cur_x);
+ break;
+ case '0': /* Beginning of line */
+ case 'H': /* Scroll left */
+ case 'h':
+ case KEY_LEFT:
+ if (hscroll <= 0)
+ break;
+
+ if (key == '0')
+ hscroll = 0;
+ else
+ hscroll--;
+ /* Reprint current page to scroll horizontally */
+ back_lines(page_length);
+ refresh_text_box(dialog, box, boxh, boxw,
+ cur_y, cur_x);
+ break;
+ case 'L': /* Scroll right */
+ case 'l':
+ case KEY_RIGHT:
+ if (hscroll >= MAX_LEN)
+ break;
+ hscroll++;
+ /* Reprint current page to scroll horizontally */
+ back_lines(page_length);
+ refresh_text_box(dialog, box, boxh, boxw,
+ cur_y, cur_x);
+ break;
+ case KEY_ESC:
+ key = on_key_esc(dialog);
+ break;
+ case KEY_RESIZE:
+ back_lines(height);
+ delwin(box);
+ delwin(dialog);
+ on_key_resize();
+ goto do_resize;
+ }
+ }
+ delwin(box);
+ delwin(dialog);
+ return key; /* ESC pressed */
+}
+
+/*
+ * Go back 'n' lines in text. Called by dialog_textbox().
+ * 'page' will be updated to point to the desired line in 'buf'.
+ */
+static void back_lines(int n)
+{
+ int i;
+
+ begin_reached = 0;
+ /* Go back 'n' lines */
+ for (i = 0; i < n; i++) {
+ if (*page == '\0') {
+ if (end_reached) {
+ end_reached = 0;
+ continue;
+ }
+ }
+ if (page == buf) {
+ begin_reached = 1;
+ return;
+ }
+ page--;
+ do {
+ if (page == buf) {
+ begin_reached = 1;
+ return;
+ }
+ page--;
+ } while (*page != '\n');
+ page++;
+ }
+}
+
+/*
+ * Print a new page of text. Called by dialog_textbox().
+ */
+static void print_page(WINDOW * win, int height, int width)
+{
+ int i, passed_end = 0;
+
+ page_length = 0;
+ for (i = 0; i < height; i++) {
+ print_line(win, i, width);
+ if (!passed_end)
+ page_length++;
+ if (end_reached && !passed_end)
+ passed_end = 1;
+ }
+ wnoutrefresh(win);
+}
+
+/*
+ * Print a new line of text. Called by dialog_textbox() and print_page().
+ */
+static void print_line(WINDOW * win, int row, int width)
+{
+ int y, x;
+ char *line;
+
+ line = get_line();
+ line += MIN(strlen(line), hscroll); /* Scroll horizontally */
+ wmove(win, row, 0); /* move cursor to correct line */
+ waddch(win, ' ');
+ waddnstr(win, line, MIN(strlen(line), width - 2));
+
+ getyx(win, y, x);
+ /* Clear 'residue' of previous line */
+#if OLD_NCURSES
+ {
+ int i;
+ for (i = 0; i < width - x; i++)
+ waddch(win, ' ');
+ }
+#else
+ wclrtoeol(win);
+#endif
+}
+
+/*
+ * Return current line of text. Called by dialog_textbox() and print_line().
+ * 'page' should point to start of current line before calling, and will be
+ * updated to point to start of next line.
+ */
+static char *get_line(void)
+{
+ int i = 0;
+ static char line[MAX_LEN + 1];
+
+ end_reached = 0;
+ while (*page != '\n') {
+ if (*page == '\0') {
+ if (!end_reached) {
+ end_reached = 1;
+ break;
+ }
+ } else if (i < MAX_LEN)
+ line[i++] = *(page++);
+ else {
+ /* Truncate lines longer than MAX_LEN characters */
+ if (i == MAX_LEN)
+ line[i++] = '\0';
+ page++;
+ }
+ }
+ if (i <= MAX_LEN)
+ line[i] = '\0';
+ if (!end_reached)
+ page++; /* move pass '\n' */
+
+ return line;
+}
+
+/*
+ * Print current position
+ */
+static void print_position(WINDOW * win)
+{
+ int percent;
+
+ wattrset(win, dlg.position_indicator.atr);
+ wbkgdset(win, dlg.position_indicator.atr & A_COLOR);
+ percent = (page - buf) * 100 / strlen(buf);
+ wmove(win, getmaxy(win) - 3, getmaxx(win) - 9);
+ wprintw(win, "(%3d%%)", percent);
+}
diff --git a/cleopatre/buildroot/package/config/lxdialog/util.c b/cleopatre/buildroot/package/config/lxdialog/util.c
new file mode 100644
index 0000000000..a1bddefe73
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/util.c
@@ -0,0 +1,645 @@
+/*
+ * util.c
+ *
+ * ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ * MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "dialog.h"
+
+struct dialog_info dlg;
+
+static void set_mono_theme(void)
+{
+ dlg.screen.atr = A_NORMAL;
+ dlg.shadow.atr = A_NORMAL;
+ dlg.dialog.atr = A_NORMAL;
+ dlg.title.atr = A_BOLD;
+ dlg.border.atr = A_NORMAL;
+ dlg.button_active.atr = A_REVERSE;
+ dlg.button_inactive.atr = A_DIM;
+ dlg.button_key_active.atr = A_REVERSE;
+ dlg.button_key_inactive.atr = A_BOLD;
+ dlg.button_label_active.atr = A_REVERSE;
+ dlg.button_label_inactive.atr = A_NORMAL;
+ dlg.inputbox.atr = A_NORMAL;
+ dlg.inputbox_border.atr = A_NORMAL;
+ dlg.searchbox.atr = A_NORMAL;
+ dlg.searchbox_title.atr = A_BOLD;
+ dlg.searchbox_border.atr = A_NORMAL;
+ dlg.position_indicator.atr = A_BOLD;
+ dlg.menubox.atr = A_NORMAL;
+ dlg.menubox_border.atr = A_NORMAL;
+ dlg.item.atr = A_NORMAL;
+ dlg.item_selected.atr = A_REVERSE;
+ dlg.tag.atr = A_BOLD;
+ dlg.tag_selected.atr = A_REVERSE;
+ dlg.tag_key.atr = A_BOLD;
+ dlg.tag_key_selected.atr = A_REVERSE;
+ dlg.check.atr = A_BOLD;
+ dlg.check_selected.atr = A_REVERSE;
+ dlg.uarrow.atr = A_BOLD;
+ dlg.darrow.atr = A_BOLD;
+}
+
+#define DLG_COLOR(dialog, f, b, h) \
+do { \
+ dlg.dialog.fg = (f); \
+ dlg.dialog.bg = (b); \
+ dlg.dialog.hl = (h); \
+} while (0)
+
+static void set_classic_theme(void)
+{
+ DLG_COLOR(screen, COLOR_CYAN, COLOR_BLUE, true);
+ DLG_COLOR(shadow, COLOR_BLACK, COLOR_BLACK, true);
+ DLG_COLOR(dialog, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(title, COLOR_YELLOW, COLOR_WHITE, true);
+ DLG_COLOR(border, COLOR_WHITE, COLOR_WHITE, true);
+ DLG_COLOR(button_active, COLOR_WHITE, COLOR_BLUE, true);
+ DLG_COLOR(button_inactive, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(button_key_active, COLOR_WHITE, COLOR_BLUE, true);
+ DLG_COLOR(button_key_inactive, COLOR_RED, COLOR_WHITE, false);
+ DLG_COLOR(button_label_active, COLOR_YELLOW, COLOR_BLUE, true);
+ DLG_COLOR(button_label_inactive, COLOR_BLACK, COLOR_WHITE, true);
+ DLG_COLOR(inputbox, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(inputbox_border, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(searchbox, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(searchbox_title, COLOR_YELLOW, COLOR_WHITE, true);
+ DLG_COLOR(searchbox_border, COLOR_WHITE, COLOR_WHITE, true);
+ DLG_COLOR(position_indicator, COLOR_YELLOW, COLOR_WHITE, true);
+ DLG_COLOR(menubox, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(menubox_border, COLOR_WHITE, COLOR_WHITE, true);
+ DLG_COLOR(item, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(item_selected, COLOR_WHITE, COLOR_BLUE, true);
+ DLG_COLOR(tag, COLOR_YELLOW, COLOR_WHITE, true);
+ DLG_COLOR(tag_selected, COLOR_YELLOW, COLOR_BLUE, true);
+ DLG_COLOR(tag_key, COLOR_YELLOW, COLOR_WHITE, true);
+ DLG_COLOR(tag_key_selected, COLOR_YELLOW, COLOR_BLUE, true);
+ DLG_COLOR(check, COLOR_BLACK, COLOR_WHITE, false);
+ DLG_COLOR(check_selected, COLOR_WHITE, COLOR_BLUE, true);
+ DLG_COLOR(uarrow, COLOR_GREEN, COLOR_WHITE, true);
+ DLG_COLOR(darrow, COLOR_GREEN, COLOR_WHITE, true);
+}
+
+static void set_blackbg_theme(void)
+{
+ DLG_COLOR(screen, COLOR_RED, COLOR_BLACK, true);
+ DLG_COLOR(shadow, COLOR_BLACK, COLOR_BLACK, false);
+ DLG_COLOR(dialog, COLOR_WHITE, COLOR_BLACK, false);
+ DLG_COLOR(title, COLOR_RED, COLOR_BLACK, false);
+ DLG_COLOR(border, COLOR_BLACK, COLOR_BLACK, true);
+
+ DLG_COLOR(button_active, COLOR_YELLOW, COLOR_RED, false);
+ DLG_COLOR(button_inactive, COLOR_YELLOW, COLOR_BLACK, false);
+ DLG_COLOR(button_key_active, COLOR_YELLOW, COLOR_RED, true);
+ DLG_COLOR(button_key_inactive, COLOR_RED, COLOR_BLACK, false);
+ DLG_COLOR(button_label_active, COLOR_WHITE, COLOR_RED, false);
+ DLG_COLOR(button_label_inactive, COLOR_BLACK, COLOR_BLACK, true);
+
+ DLG_COLOR(inputbox, COLOR_YELLOW, COLOR_BLACK, false);
+ DLG_COLOR(inputbox_border, COLOR_YELLOW, COLOR_BLACK, false);
+
+ DLG_COLOR(searchbox, COLOR_YELLOW, COLOR_BLACK, false);
+ DLG_COLOR(searchbox_title, COLOR_YELLOW, COLOR_BLACK, true);
+ DLG_COLOR(searchbox_border, COLOR_BLACK, COLOR_BLACK, true);
+
+ DLG_COLOR(position_indicator, COLOR_RED, COLOR_BLACK, false);
+
+ DLG_COLOR(menubox, COLOR_YELLOW, COLOR_BLACK, false);
+ DLG_COLOR(menubox_border, COLOR_BLACK, COLOR_BLACK, true);
+
+ DLG_COLOR(item, COLOR_WHITE, COLOR_BLACK, false);
+ DLG_COLOR(item_selected, COLOR_WHITE, COLOR_RED, false);
+
+ DLG_COLOR(tag, COLOR_RED, COLOR_BLACK, false);
+ DLG_COLOR(tag_selected, COLOR_YELLOW, COLOR_RED, true);
+ DLG_COLOR(tag_key, COLOR_RED, COLOR_BLACK, false);
+ DLG_COLOR(tag_key_selected, COLOR_YELLOW, COLOR_RED, true);
+
+ DLG_COLOR(check, COLOR_YELLOW, COLOR_BLACK, false);
+ DLG_COLOR(check_selected, COLOR_YELLOW, COLOR_RED, true);
+
+ DLG_COLOR(uarrow, COLOR_RED, COLOR_BLACK, false);
+ DLG_COLOR(darrow, COLOR_RED, COLOR_BLACK, false);
+}
+
+static void set_bluetitle_theme(void)
+{
+ set_classic_theme();
+ DLG_COLOR(title, COLOR_BLUE, COLOR_WHITE, true);
+ DLG_COLOR(button_key_active, COLOR_YELLOW, COLOR_BLUE, true);
+ DLG_COLOR(button_label_active, COLOR_WHITE, COLOR_BLUE, true);
+ DLG_COLOR(searchbox_title, COLOR_BLUE, COLOR_WHITE, true);
+ DLG_COLOR(position_indicator, COLOR_BLUE, COLOR_WHITE, true);
+ DLG_COLOR(tag, COLOR_BLUE, COLOR_WHITE, true);
+ DLG_COLOR(tag_key, COLOR_BLUE, COLOR_WHITE, true);
+
+}
+
+/*
+ * Select color theme
+ */
+static int set_theme(const char *theme)
+{
+ int use_color = 1;
+ if (!theme)
+ set_bluetitle_theme();
+ else if (strcmp(theme, "classic") == 0)
+ set_classic_theme();
+ else if (strcmp(theme, "bluetitle") == 0)
+ set_bluetitle_theme();
+ else if (strcmp(theme, "blackbg") == 0)
+ set_blackbg_theme();
+ else if (strcmp(theme, "mono") == 0)
+ use_color = 0;
+
+ return use_color;
+}
+
+static void init_one_color(struct dialog_color *color)
+{
+ static int pair = 0;
+
+ pair++;
+ init_pair(pair, color->fg, color->bg);
+ if (color->hl)
+ color->atr = A_BOLD | COLOR_PAIR(pair);
+ else
+ color->atr = COLOR_PAIR(pair);
+}
+
+static void init_dialog_colors(void)
+{
+ init_one_color(&dlg.screen);
+ init_one_color(&dlg.shadow);
+ init_one_color(&dlg.dialog);
+ init_one_color(&dlg.title);
+ init_one_color(&dlg.border);
+ init_one_color(&dlg.button_active);
+ init_one_color(&dlg.button_inactive);
+ init_one_color(&dlg.button_key_active);
+ init_one_color(&dlg.button_key_inactive);
+ init_one_color(&dlg.button_label_active);
+ init_one_color(&dlg.button_label_inactive);
+ init_one_color(&dlg.inputbox);
+ init_one_color(&dlg.inputbox_border);
+ init_one_color(&dlg.searchbox);
+ init_one_color(&dlg.searchbox_title);
+ init_one_color(&dlg.searchbox_border);
+ init_one_color(&dlg.position_indicator);
+ init_one_color(&dlg.menubox);
+ init_one_color(&dlg.menubox_border);
+ init_one_color(&dlg.item);
+ init_one_color(&dlg.item_selected);
+ init_one_color(&dlg.tag);
+ init_one_color(&dlg.tag_selected);
+ init_one_color(&dlg.tag_key);
+ init_one_color(&dlg.tag_key_selected);
+ init_one_color(&dlg.check);
+ init_one_color(&dlg.check_selected);
+ init_one_color(&dlg.uarrow);
+ init_one_color(&dlg.darrow);
+}
+
+/*
+ * Setup for color display
+ */
+static void color_setup(const char *theme)
+{
+ int use_color;
+
+ use_color = set_theme(theme);
+ if (use_color && has_colors()) {
+ start_color();
+ init_dialog_colors();
+ } else
+ set_mono_theme();
+}
+
+/*
+ * Set window to attribute 'attr'
+ */
+void attr_clear(WINDOW * win, int height, int width, chtype attr)
+{
+ int i, j;
+
+ wattrset(win, attr);
+ for (i = 0; i < height; i++) {
+ wmove(win, i, 0);
+ for (j = 0; j < width; j++)
+ waddch(win, ' ');
+ }
+ touchwin(win);
+}
+
+void dialog_clear(void)
+{
+ attr_clear(stdscr, LINES, COLS, dlg.screen.atr);
+ /* Display background title if it exists ... - SLH */
+ if (dlg.backtitle != NULL) {
+ int i;
+
+ wattrset(stdscr, dlg.screen.atr);
+ mvwaddstr(stdscr, 0, 1, (char *)dlg.backtitle);
+ wmove(stdscr, 1, 1);
+ for (i = 1; i < COLS - 1; i++)
+ waddch(stdscr, ACS_HLINE);
+ }
+ wnoutrefresh(stdscr);
+}
+
+/*
+ * Do some initialization for dialog
+ */
+void init_dialog(const char *backtitle)
+{
+ dlg.backtitle = backtitle;
+ color_setup(getenv("MENUCONFIG_COLOR"));
+}
+
+void set_dialog_backtitle(const char *backtitle)
+{
+ dlg.backtitle = backtitle;
+}
+
+void reset_dialog(void)
+{
+ initscr(); /* Init curses */
+ keypad(stdscr, TRUE);
+ cbreak();
+ noecho();
+ dialog_clear();
+}
+
+/*
+ * End using dialog functions.
+ */
+void end_dialog(void)
+{
+ endwin();
+}
+
+/* Print the title of the dialog. Center the title and truncate
+ * tile if wider than dialog (- 2 chars).
+ **/
+void print_title(WINDOW *dialog, const char *title, int width)
+{
+ if (title) {
+ int tlen = MIN(width - 2, strlen(title));
+ wattrset(dialog, dlg.title.atr);
+ mvwaddch(dialog, 0, (width - tlen) / 2 - 1, ' ');
+ mvwaddnstr(dialog, 0, (width - tlen)/2, title, tlen);
+ waddch(dialog, ' ');
+ }
+}
+
+/*
+ * Print a string of text in a window, automatically wrap around to the
+ * next line if the string is too long to fit on one line. Newline
+ * characters '\n' are replaced by spaces. We start on a new line
+ * if there is no room for at least 4 nonblanks following a double-space.
+ */
+void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
+{
+ int newl, cur_x, cur_y;
+ int i, prompt_len, room, wlen;
+ char tempstr[MAX_LEN + 1], *word, *sp, *sp2;
+
+ strcpy(tempstr, prompt);
+
+ prompt_len = strlen(tempstr);
+
+ /*
+ * Remove newlines
+ */
+ for (i = 0; i < prompt_len; i++) {
+ if (tempstr[i] == '\n')
+ tempstr[i] = ' ';
+ }
+
+ if (prompt_len <= width - x * 2) { /* If prompt is short */
+ wmove(win, y, (width - prompt_len) / 2);
+ waddstr(win, tempstr);
+ } else {
+ cur_x = x;
+ cur_y = y;
+ newl = 1;
+ word = tempstr;
+ while (word && *word) {
+ sp = strchr(word, ' ');
+ if (sp)
+ *sp++ = 0;
+
+ /* Wrap to next line if either the word does not fit,
+ or it is the first word of a new sentence, and it is
+ short, and the next word does not fit. */
+ room = width - cur_x;
+ wlen = strlen(word);
+ if (wlen > room ||
+ (newl && wlen < 4 && sp
+ && wlen + 1 + strlen(sp) > room
+ && (!(sp2 = strchr(sp, ' '))
+ || wlen + 1 + (sp2 - sp) > room))) {
+ cur_y++;
+ cur_x = x;
+ }
+ wmove(win, cur_y, cur_x);
+ waddstr(win, word);
+ getyx(win, cur_y, cur_x);
+ cur_x++;
+ if (sp && *sp == ' ') {
+ cur_x++; /* double space */
+ while (*++sp == ' ') ;
+ newl = 1;
+ } else
+ newl = 0;
+ word = sp;
+ }
+ }
+}
+
+/*
+ * Print a button
+ */
+void print_button(WINDOW * win, const char *label, int y, int x, int selected)
+{
+ int i, temp;
+
+ wmove(win, y, x);
+ wattrset(win, selected ? dlg.button_active.atr
+ : dlg.button_inactive.atr);
+ waddstr(win, "<");
+ temp = strspn(label, " ");
+ label += temp;
+ wattrset(win, selected ? dlg.button_label_active.atr
+ : dlg.button_label_inactive.atr);
+ for (i = 0; i < temp; i++)
+ waddch(win, ' ');
+ wattrset(win, selected ? dlg.button_key_active.atr
+ : dlg.button_key_inactive.atr);
+ waddch(win, label[0]);
+ wattrset(win, selected ? dlg.button_label_active.atr
+ : dlg.button_label_inactive.atr);
+ waddstr(win, (char *)label + 1);
+ wattrset(win, selected ? dlg.button_active.atr
+ : dlg.button_inactive.atr);
+ waddstr(win, ">");
+ wmove(win, y, x + temp + 1);
+}
+
+/*
+ * Draw a rectangular box with line drawing characters
+ */
+void
+draw_box(WINDOW * win, int y, int x, int height, int width,
+ chtype box, chtype border)
+{
+ int i, j;
+
+ wattrset(win, 0);
+ for (i = 0; i < height; i++) {
+ wmove(win, y + i, x);
+ for (j = 0; j < width; j++)
+ if (!i && !j)
+ waddch(win, border | ACS_ULCORNER);
+ else if (i == height - 1 && !j)
+ waddch(win, border | ACS_LLCORNER);
+ else if (!i && j == width - 1)
+ waddch(win, box | ACS_URCORNER);
+ else if (i == height - 1 && j == width - 1)
+ waddch(win, box | ACS_LRCORNER);
+ else if (!i)
+ waddch(win, border | ACS_HLINE);
+ else if (i == height - 1)
+ waddch(win, box | ACS_HLINE);
+ else if (!j)
+ waddch(win, border | ACS_VLINE);
+ else if (j == width - 1)
+ waddch(win, box | ACS_VLINE);
+ else
+ waddch(win, box | ' ');
+ }
+}
+
+/*
+ * Draw shadows along the right and bottom edge to give a more 3D look
+ * to the boxes
+ */
+void draw_shadow(WINDOW * win, int y, int x, int height, int width)
+{
+ int i;
+
+ if (has_colors()) { /* Whether terminal supports color? */
+ wattrset(win, dlg.shadow.atr);
+ wmove(win, y + height, x + 2);
+ for (i = 0; i < width; i++)
+ waddch(win, winch(win) & A_CHARTEXT);
+ for (i = y + 1; i < y + height + 1; i++) {
+ wmove(win, i, x + width);
+ waddch(win, winch(win) & A_CHARTEXT);
+ waddch(win, winch(win) & A_CHARTEXT);
+ }
+ wnoutrefresh(win);
+ }
+}
+
+/*
+ * Return the position of the first alphabetic character in a string.
+ */
+int first_alpha(const char *string, const char *exempt)
+{
+ int i, in_paren = 0, c;
+
+ for (i = 0; i < strlen(string); i++) {
+ c = tolower(string[i]);
+
+ if (strchr("<[(", c))
+ ++in_paren;
+ if (strchr(">])", c) && in_paren > 0)
+ --in_paren;
+
+ if ((!in_paren) && isalpha(c) && strchr(exempt, c) == 0)
+ return i;
+ }
+
+ return 0;
+}
+
+/*
+ * ncurses uses ESC to detect escaped char sequences. This resutl in
+ * a small timeout before ESC is actually delivered to the application.
+ * lxdialog suggest <ESC> <ESC> which is correctly translated to two
+ * times esc. But then we need to ignore the second esc to avoid stepping
+ * out one menu too much. Filter away all escaped key sequences since
+ * keypad(FALSE) turn off ncurses support for escape sequences - and thats
+ * needed to make notimeout() do as expected.
+ */
+int on_key_esc(WINDOW *win)
+{
+ int key;
+ int key2;
+ int key3;
+
+ nodelay(win, TRUE);
+ keypad(win, FALSE);
+ key = wgetch(win);
+ key2 = wgetch(win);
+ do {
+ key3 = wgetch(win);
+ } while (key3 != ERR);
+ nodelay(win, FALSE);
+ keypad(win, TRUE);
+ if (key == KEY_ESC && key2 == ERR)
+ return KEY_ESC;
+ else if (key != ERR && key != KEY_ESC && key2 == ERR)
+ ungetch(key);
+
+ return -1;
+}
+
+/* redraw screen in new size */
+int on_key_resize(void)
+{
+ dialog_clear();
+ return KEY_RESIZE;
+}
+
+struct dialog_list *item_cur;
+struct dialog_list item_nil;
+struct dialog_list *item_head;
+
+void item_reset(void)
+{
+ struct dialog_list *p, *next;
+
+ for (p = item_head; p; p = next) {
+ next = p->next;
+ free(p);
+ }
+ item_head = NULL;
+ item_cur = &item_nil;
+}
+
+void item_make(const char *fmt, ...)
+{
+ va_list ap;
+ struct dialog_list *p = malloc(sizeof(*p));
+
+ if (item_head)
+ item_cur->next = p;
+ else
+ item_head = p;
+ item_cur = p;
+ memset(p, 0, sizeof(*p));
+
+ va_start(ap, fmt);
+ vsnprintf(item_cur->node.str, sizeof(item_cur->node.str), fmt, ap);
+ va_end(ap);
+}
+
+void item_add_str(const char *fmt, ...)
+{
+ va_list ap;
+ size_t avail;
+
+ avail = sizeof(item_cur->node.str) - strlen(item_cur->node.str);
+
+ va_start(ap, fmt);
+ vsnprintf(item_cur->node.str + strlen(item_cur->node.str),
+ avail, fmt, ap);
+ item_cur->node.str[sizeof(item_cur->node.str) - 1] = '\0';
+ va_end(ap);
+}
+
+void item_set_tag(char tag)
+{
+ item_cur->node.tag = tag;
+}
+void item_set_data(void *ptr)
+{
+ item_cur->node.data = ptr;
+}
+
+void item_set_selected(int val)
+{
+ item_cur->node.selected = val;
+}
+
+int item_activate_selected(void)
+{
+ item_foreach()
+ if (item_is_selected())
+ return 1;
+ return 0;
+}
+
+void *item_data(void)
+{
+ return item_cur->node.data;
+}
+
+char item_tag(void)
+{
+ return item_cur->node.tag;
+}
+
+int item_count(void)
+{
+ int n = 0;
+ struct dialog_list *p;
+
+ for (p = item_head; p; p = p->next)
+ n++;
+ return n;
+}
+
+void item_set(int n)
+{
+ int i = 0;
+ item_foreach()
+ if (i++ == n)
+ return;
+}
+
+int item_n(void)
+{
+ int n = 0;
+ struct dialog_list *p;
+
+ for (p = item_head; p; p = p->next) {
+ if (p == item_cur)
+ return n;
+ n++;
+ }
+ return 0;
+}
+
+const char *item_str(void)
+{
+ return item_cur->node.str;
+}
+
+int item_is_selected(void)
+{
+ return (item_cur->node.selected != 0);
+}
+
+int item_is_tag(char tag)
+{
+ return (item_cur->node.tag == tag);
+}
diff --git a/cleopatre/buildroot/package/config/lxdialog/yesno.c b/cleopatre/buildroot/package/config/lxdialog/yesno.c
new file mode 100644
index 0000000000..ee0a04e3e0
--- /dev/null
+++ b/cleopatre/buildroot/package/config/lxdialog/yesno.c
@@ -0,0 +1,114 @@
+/*
+ * yesno.c -- implements the yes/no box
+ *
+ * ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
+ * MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "dialog.h"
+
+/*
+ * Display termination buttons
+ */
+static void print_buttons(WINDOW * dialog, int height, int width, int selected)
+{
+ int x = width / 2 - 10;
+ int y = height - 2;
+
+ print_button(dialog, " Yes ", y, x, selected == 0);
+ print_button(dialog, " No ", y, x + 13, selected == 1);
+
+ wmove(dialog, y, x + 1 + 13 * selected);
+ wrefresh(dialog);
+}
+
+/*
+ * Display a dialog box with two buttons - Yes and No
+ */
+int dialog_yesno(const char *title, const char *prompt, int height, int width)
+{
+ int i, x, y, key = 0, button = 0;
+ WINDOW *dialog;
+
+do_resize:
+ if (getmaxy(stdscr) < (height + 4))
+ return -ERRDISPLAYTOOSMALL;
+ if (getmaxx(stdscr) < (width + 4))
+ return -ERRDISPLAYTOOSMALL;
+
+ /* center dialog box on screen */
+ x = (COLS - width) / 2;
+ y = (LINES - height) / 2;
+
+ draw_shadow(stdscr, y, x, height, width);
+
+ dialog = newwin(height, width, y, x);
+ keypad(dialog, TRUE);
+
+ draw_box(dialog, 0, 0, height, width,
+ dlg.dialog.atr, dlg.border.atr);
+ wattrset(dialog, dlg.border.atr);
+ mvwaddch(dialog, height - 3, 0, ACS_LTEE);
+ for (i = 0; i < width - 2; i++)
+ waddch(dialog, ACS_HLINE);
+ wattrset(dialog, dlg.dialog.atr);
+ waddch(dialog, ACS_RTEE);
+
+ print_title(dialog, title, width);
+
+ wattrset(dialog, dlg.dialog.atr);
+ print_autowrap(dialog, prompt, width - 2, 1, 3);
+
+ print_buttons(dialog, height, width, 0);
+
+ while (key != KEY_ESC) {
+ key = wgetch(dialog);
+ switch (key) {
+ case 'Y':
+ case 'y':
+ delwin(dialog);
+ return 0;
+ case 'N':
+ case 'n':
+ delwin(dialog);
+ return 1;
+
+ case TAB:
+ case KEY_LEFT:
+ case KEY_RIGHT:
+ button = ((key == KEY_LEFT ? --button : ++button) < 0) ? 1 : (button > 1 ? 0 : button);
+
+ print_buttons(dialog, height, width, button);
+ wrefresh(dialog);
+ break;
+ case ' ':
+ case '\n':
+ delwin(dialog);
+ return button;
+ case KEY_ESC:
+ key = on_key_esc(dialog);
+ break;
+ case KEY_RESIZE:
+ delwin(dialog);
+ on_key_resize();
+ goto do_resize;
+ }
+ }
+
+ delwin(dialog);
+ return key; /* ESC pressed */
+}
diff --git a/cleopatre/buildroot/package/config/mconf.c b/cleopatre/buildroot/package/config/mconf.c
new file mode 100644
index 0000000000..bf5458acd4
--- /dev/null
+++ b/cleopatre/buildroot/package/config/mconf.c
@@ -0,0 +1,967 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ *
+ * Introduced single menu mode (show all sub-menus in one large tree).
+ * 2002-11-06 Petr Baudis <pasky@ucw.cz>
+ *
+ * i18n, 2005, Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ */
+
+#include <sys/ioctl.h>
+#include <sys/wait.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <termios.h>
+#include <unistd.h>
+#include <locale.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+#include "lxdialog/dialog.h"
+
+static const char mconf_readme[] = N_(
+"Overview\n"
+"--------\n"
+"Some features may be built directly into Buildroot. Some features\n"
+"may be completely removed altogether. There are also certain\n"
+"parameters which are not really features, but must be\n"
+"entered in as decimal or hexadecimal numbers or possibly text.\n"
+"\n"
+"Menu items beginning with following braces represent features that\n"
+" [ ] can be built in or removed\n"
+" < > can be built in, modularized or removed\n"
+" { } can be built in or modularized (selected by other feature)\n"
+" - - are selected by other feature,\n"
+"while *, M or whitespace inside braces means to build in, build as\n"
+"a module or to exclude the feature respectively.\n"
+"\n"
+"To change any of these features, highlight it with the cursor\n"
+"keys and press <Y> to build it in, <M> to make it a module or\n"
+"<N> to removed it. You may also press the <Space Bar> to cycle\n"
+"through the available options (ie. Y->N->M->Y).\n"
+"\n"
+"Some additional keyboard hints:\n"
+"\n"
+"Menus\n"
+"----------\n"
+"o Use the Up/Down arrow keys (cursor keys) to highlight the item\n"
+" you wish to change or submenu wish to select and press <Enter>.\n"
+" Submenus are designated by \"--->\".\n"
+"\n"
+" Shortcut: Press the option's highlighted letter (hotkey).\n"
+" Pressing a hotkey more than once will sequence\n"
+" through all visible items which use that hotkey.\n"
+"\n"
+" You may also use the <PAGE UP> and <PAGE DOWN> keys to scroll\n"
+" unseen options into view.\n"
+"\n"
+"o To exit a menu use the cursor keys to highlight the <Exit> button\n"
+" and press <ENTER>.\n"
+"\n"
+" Shortcut: Press <ESC><ESC> or <E> or <X> if there is no hotkey\n"
+" using those letters. You may press a single <ESC>, but\n"
+" there is a delayed response which you may find annoying.\n"
+"\n"
+" Also, the <TAB> and cursor keys will cycle between <Select>,\n"
+" <Exit> and <Help>\n"
+"\n"
+"o To get help with an item, use the cursor keys to highlight <Help>\n"
+" and Press <ENTER>.\n"
+"\n"
+" Shortcut: Press <H> or <?>.\n"
+"\n"
+"\n"
+"Radiolists (Choice lists)\n"
+"-----------\n"
+"o Use the cursor keys to select the option you wish to set and press\n"
+" <S> or the <SPACE BAR>.\n"
+"\n"
+" Shortcut: Press the first letter of the option you wish to set then\n"
+" press <S> or <SPACE BAR>.\n"
+"\n"
+"o To see available help for the item, use the cursor keys to highlight\n"
+" <Help> and Press <ENTER>.\n"
+"\n"
+" Shortcut: Press <H> or <?>.\n"
+"\n"
+" Also, the <TAB> and cursor keys will cycle between <Select> and\n"
+" <Help>\n"
+"\n"
+"\n"
+"Data Entry\n"
+"-----------\n"
+"o Enter the requested information and press <ENTER>\n"
+" If you are entering hexadecimal values, it is not necessary to\n"
+" add the '0x' prefix to the entry.\n"
+"\n"
+"o For help, use the <TAB> or cursor keys to highlight the help option\n"
+" and press <ENTER>. You can try <TAB><H> as well.\n"
+"\n"
+"\n"
+"Text Box (Help Window)\n"
+"--------\n"
+"o Use the cursor keys to scroll up/down/left/right. The VI editor\n"
+" keys h,j,k,l function here as do <SPACE BAR> and <B> for those\n"
+" who are familiar with less and lynx.\n"
+"\n"
+"o Press <E>, <X>, <Enter> or <Esc><Esc> to exit.\n"
+"\n"
+"\n"
+"Alternate Configuration Files\n"
+"-----------------------------\n"
+"Menuconfig supports the use of alternate configuration files for\n"
+"those who, for various reasons, find it necessary to switch\n"
+"between different configurations.\n"
+"\n"
+"At the end of the main menu you will find two options. One is\n"
+"for saving the current configuration to a file of your choosing.\n"
+"The other option is for loading a previously saved alternate\n"
+"configuration.\n"
+"\n"
+"Even if you don't use alternate configuration files, but you\n"
+"find during a Menuconfig session that you have completely messed\n"
+"up your settings, you may use the \"Load Alternate...\" option to\n"
+"restore your previously saved settings from \".config\" without\n"
+"restarting Menuconfig.\n"
+"\n"
+"Other information\n"
+"-----------------\n"
+"If you use Menuconfig in an XTERM window make sure you have your\n"
+"$TERM variable set to point to a xterm definition which supports color.\n"
+"Otherwise, Menuconfig will look rather bad. Menuconfig will not\n"
+"display correctly in a RXVT window because rxvt displays only one\n"
+"intensity of color, bright.\n"
+"\n"
+"Menuconfig will display larger menus on screens or xterms which are\n"
+"set to display more than the standard 25 row by 80 column geometry.\n"
+"In order for this to work, the \"stty size\" command must be able to\n"
+"display the screen's current row and column geometry. I STRONGLY\n"
+"RECOMMEND that you make sure you do NOT have the shell variables\n"
+"LINES and COLUMNS exported into your environment. Some distributions\n"
+"export those variables via /etc/profile. Some ncurses programs can\n"
+"become confused when those variables (LINES & COLUMNS) don't reflect\n"
+"the true screen size.\n"
+"\n"
+"Optional personality available\n"
+"------------------------------\n"
+"If you prefer to have all of the options listed in a single\n"
+"menu, rather than the default multimenu hierarchy, run the menuconfig\n"
+"with MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
+"\n"
+"make MENUCONFIG_MODE=single_menu menuconfig\n"
+"\n"
+"<Enter> will then unroll the appropriate category, or enfold it if it\n"
+"is already unrolled.\n"
+"\n"
+"Note that this mode can eventually be a little more CPU expensive\n"
+"(especially with a larger number of unrolled categories) than the\n"
+"default mode.\n"
+"\n"
+"Different color themes available\n"
+"--------------------------------\n"
+"It is possible to select different color themes using the variable\n"
+"MENUCONFIG_COLOR. To select a theme use:\n"
+"\n"
+"make MENUCONFIG_COLOR=<theme> menuconfig\n"
+"\n"
+"Available themes are\n"
+" mono => selects colors suitable for monochrome displays\n"
+" blackbg => selects a color scheme with black background\n"
+" classic => theme with blue background. The classic look\n"
+" bluetitle => a LCD friendly version of classic. (default)\n"
+"\n"),
+menu_instructions[] = N_(
+ "Arrow keys navigate the menu. "
+ "<Enter> selects submenus --->. "
+ "Highlighted letters are hotkeys. "
+ "Pressing <Y> selectes a feature, while <N> will exclude a feature. "
+ "Press <Esc><Esc> to exit, <?> for Help, </> for Search. "
+ "Legend: [*] feature is selected [ ] feature is excluded"),
+radiolist_instructions[] = N_(
+ "Use the arrow keys to navigate this window or "
+ "press the hotkey of the item you wish to select "
+ "followed by the <SPACE BAR>. "
+ "Press <?> for additional information about this option."),
+inputbox_instructions_int[] = N_(
+ "Please enter a decimal value. "
+ "Fractions will not be accepted. "
+ "Use the <TAB> key to move from the input field to the buttons below it."),
+inputbox_instructions_hex[] = N_(
+ "Please enter a hexadecimal value. "
+ "Use the <TAB> key to move from the input field to the buttons below it."),
+inputbox_instructions_string[] = N_(
+ "Please enter a string value. "
+ "Use the <TAB> key to move from the input field to the buttons below it."),
+setmod_text[] = N_(
+ "This feature depends on another which has been configured as a module.\n"
+ "As a result, this feature will be built as a module."),
+nohelp_text[] = N_(
+ "There is no help available for this option.\n"),
+load_config_text[] = N_(
+ "Enter the name of the configuration file you wish to load. "
+ "Accept the name shown to restore the configuration you "
+ "last retrieved. Leave blank to abort."),
+load_config_help[] = N_(
+ "\n"
+ "For various reasons, one may wish to keep several different Buildroot\n"
+ "configurations available on a single machine.\n"
+ "\n"
+ "If you have saved a previous configuration in a file other than the\n"
+ "Buildroot's default, entering the name of the file here will allow you\n"
+ "to modify that configuration.\n"
+ "\n"
+ "If you are uncertain, then you have probably never used alternate\n"
+ "configuration files. You should therefor leave this blank to abort.\n"),
+save_config_text[] = N_(
+ "Enter a filename to which this configuration should be saved "
+ "as an alternate. Leave blank to abort."),
+save_config_help[] = N_(
+ "\n"
+ "For various reasons, one may wish to keep different Buildroot\n"
+ "configurations available on a single machine.\n"
+ "\n"
+ "Entering a file name here will allow you to later retrieve, modify\n"
+ "and use the current configuration as an alternate to whatever\n"
+ "configuration options you have selected at that time.\n"
+ "\n"
+ "If you are uncertain what all this means then you should probably\n"
+ "leave this blank.\n"),
+search_help[] = N_(
+ "\n"
+ "Search for CONFIG_ symbols and display their relations.\n"
+ "Regular expressions are allowed.\n"
+ "Example: search for \"^FOO\"\n"
+ "Result:\n"
+ "-----------------------------------------------------------------\n"
+ "Symbol: FOO [=m]\n"
+ "Prompt: Foo bus is used to drive the bar HW\n"
+ "Defined at drivers/pci/Kconfig:47\n"
+ "Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
+ "Location:\n"
+ " -> Bus options (PCI, PCMCIA, EISA, MCA, ISA)\n"
+ " -> PCI support (PCI [=y])\n"
+ " -> PCI access mode (<choice> [=y])\n"
+ "Selects: LIBCRC32\n"
+ "Selected by: BAR\n"
+ "-----------------------------------------------------------------\n"
+ "o The line 'Prompt:' shows the text used in the menu structure for\n"
+ " this CONFIG_ symbol\n"
+ "o The 'Defined at' line tell at what file / line number the symbol\n"
+ " is defined\n"
+ "o The 'Depends on:' line tell what symbols needs to be defined for\n"
+ " this symbol to be visible in the menu (selectable)\n"
+ "o The 'Location:' lines tell where in the menu structure this symbol\n"
+ " is located\n"
+ " A location followed by a [=y] indicate that this is a selectable\n"
+ " menu item - and current value is displayed inside brackets.\n"
+ "o The 'Selects:' line tell what symbol will be automatically\n"
+ " selected if this symbol is selected (y or m)\n"
+ "o The 'Selected by' line tell what symbol has selected this symbol\n"
+ "\n"
+ "Only relevant lines are shown.\n"
+ "\n\n"
+ "Search examples:\n"
+ "Examples: USB => find all CONFIG_ symbols containing USB\n"
+ " ^USB => find all CONFIG_ symbols starting with USB\n"
+ " USB$ => find all CONFIG_ symbols ending with USB\n"
+ "\n");
+
+static int indent;
+static struct termios ios_org;
+static int rows = 0, cols = 0;
+static struct menu *current_menu;
+static int child_count;
+static int single_menu_mode;
+
+static void conf(struct menu *menu);
+static void conf_choice(struct menu *menu);
+static void conf_string(struct menu *menu);
+static void conf_load(void);
+static void conf_save(void);
+static void show_textbox(const char *title, const char *text, int r, int c);
+static void show_helptext(const char *title, const char *text);
+static void show_help(struct menu *menu);
+
+static void init_wsize(void)
+{
+ struct winsize ws;
+ char *env;
+
+ if (!ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)) {
+ rows = ws.ws_row;
+ cols = ws.ws_col;
+ }
+
+ if (!rows) {
+ env = getenv("LINES");
+ if (env)
+ rows = atoi(env);
+ if (!rows)
+ rows = 24;
+ }
+ if (!cols) {
+ env = getenv("COLUMNS");
+ if (env)
+ cols = atoi(env);
+ if (!cols)
+ cols = 80;
+ }
+
+ if (rows < 19 || cols < 80) {
+ fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
+ fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
+ exit(1);
+ }
+
+ rows -= 4;
+ cols -= 5;
+}
+
+static void get_prompt_str(struct gstr *r, struct property *prop)
+{
+ int i, j;
+ struct menu *submenu[8], *menu;
+
+ str_printf(r, "Prompt: %s\n", prop->text);
+ str_printf(r, " Defined at %s:%d\n", prop->menu->file->name,
+ prop->menu->lineno);
+ if (!expr_is_yes(prop->visible.expr)) {
+ str_append(r, " Depends on: ");
+ expr_gstr_print(prop->visible.expr, r);
+ str_append(r, "\n");
+ }
+ menu = prop->menu->parent;
+ for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent)
+ submenu[i++] = menu;
+ if (i > 0) {
+ str_printf(r, " Location:\n");
+ for (j = 4; --i >= 0; j += 2) {
+ menu = submenu[i];
+ str_printf(r, "%*c-> %s", j, ' ', menu_get_prompt(menu));
+ if (menu->sym) {
+ str_printf(r, " (%s [=%s])", menu->sym->name ?
+ menu->sym->name : "<choice>",
+ sym_get_string_value(menu->sym));
+ }
+ str_append(r, "\n");
+ }
+ }
+}
+
+static void get_symbol_str(struct gstr *r, struct symbol *sym)
+{
+ bool hit;
+ struct property *prop;
+
+ if (sym && sym->name)
+ str_printf(r, "Symbol: %s [=%s]\n", sym->name,
+ sym_get_string_value(sym));
+ for_all_prompts(sym, prop)
+ get_prompt_str(r, prop);
+ hit = false;
+ for_all_properties(sym, prop, P_SELECT) {
+ if (!hit) {
+ str_append(r, " Selects: ");
+ hit = true;
+ } else
+ str_printf(r, " && ");
+ expr_gstr_print(prop->expr, r);
+ }
+ if (hit)
+ str_append(r, "\n");
+ if (sym->rev_dep.expr) {
+ str_append(r, " Selected by: ");
+ expr_gstr_print(sym->rev_dep.expr, r);
+ str_append(r, "\n");
+ }
+ str_append(r, "\n\n");
+}
+
+static struct gstr get_relations_str(struct symbol **sym_arr)
+{
+ struct symbol *sym;
+ struct gstr res = str_new();
+ int i;
+
+ for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
+ get_symbol_str(&res, sym);
+ if (!i)
+ str_append(&res, "No matches found.\n");
+ return res;
+}
+
+static char filename[PATH_MAX+1];
+static void set_config_filename(const char *config_filename)
+{
+ static char menu_backtitle[PATH_MAX+128];
+ int size;
+ struct symbol *sym;
+
+ sym = sym_lookup("BR2_VERSION", 0);
+ sym_calc_value(sym);
+ size = snprintf(menu_backtitle, sizeof(menu_backtitle),
+ _("%s - buildroot v%s Configuration"),
+ config_filename, sym_get_string_value(sym));
+ if (size >= sizeof(menu_backtitle))
+ menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
+ set_dialog_backtitle(menu_backtitle);
+
+ size = snprintf(filename, sizeof(filename), "%s", config_filename);
+ if (size >= sizeof(filename))
+ filename[sizeof(filename)-1] = '\0';
+}
+
+
+static void search_conf(void)
+{
+ struct symbol **sym_arr;
+ struct gstr res;
+ char *dialog_input;
+ int dres;
+again:
+ dialog_clear();
+ dres = dialog_inputbox(_("Search Configuration Parameter"),
+ _("Enter CONFIG_ (sub)string to search for "
+ "(with or without \"CONFIG\")"),
+ 10, 75, "");
+ switch (dres) {
+ case 0:
+ break;
+ case 1:
+ show_helptext(_("Search Configuration"), search_help);
+ goto again;
+ default:
+ return;
+ }
+
+ /* strip CONFIG_ if necessary */
+ dialog_input = dialog_input_result;
+ if (strncasecmp(dialog_input_result, "CONFIG_", 7) == 0)
+ dialog_input += 7;
+
+ sym_arr = sym_re_search(dialog_input);
+ res = get_relations_str(sym_arr);
+ free(sym_arr);
+ show_textbox(_("Search Results"), str_get(&res), 0, 0);
+ str_free(&res);
+}
+
+static void build_conf(struct menu *menu)
+{
+ struct symbol *sym;
+ struct property *prop;
+ struct menu *child;
+ int type, tmp, doint = 2;
+ tristate val;
+ char ch;
+
+ if (!menu_is_visible(menu))
+ return;
+
+ sym = menu->sym;
+ prop = menu->prompt;
+ if (!sym) {
+ if (prop && menu != current_menu) {
+ const char *prompt = menu_get_prompt(menu);
+ switch (prop->type) {
+ case P_MENU:
+ child_count++;
+ if (single_menu_mode) {
+ item_make("%s%*c%s",
+ menu->data ? "-->" : "++>",
+ indent + 1, ' ', prompt);
+ } else
+ item_make(" %*c%s --->", indent + 1, ' ', prompt);
+
+ item_set_tag('m');
+ item_set_data(menu);
+ if (single_menu_mode && menu->data)
+ goto conf_childs;
+ return;
+ case P_COMMENT:
+ if (prompt) {
+ child_count++;
+ item_make(" %*c*** %s ***", indent + 1, ' ', prompt);
+ item_set_tag(':');
+ item_set_data(menu);
+ }
+ break;
+ default:
+ if (prompt) {
+ child_count++;
+ item_make("---%*c%s", indent + 1, ' ', prompt);
+ item_set_tag(':');
+ item_set_data(menu);
+ }
+ }
+ } else
+ doint = 0;
+ goto conf_childs;
+ }
+
+ type = sym_get_type(sym);
+ if (sym_is_choice(sym)) {
+ struct symbol *def_sym = sym_get_choice_value(sym);
+ struct menu *def_menu = NULL;
+
+ child_count++;
+ for (child = menu->list; child; child = child->next) {
+ if (menu_is_visible(child) && child->sym == def_sym)
+ def_menu = child;
+ }
+
+ val = sym_get_tristate_value(sym);
+ if (sym_is_changable(sym)) {
+ switch (type) {
+ case S_BOOLEAN:
+ item_make("[%c]", val == no ? ' ' : '*');
+ break;
+ case S_TRISTATE:
+ switch (val) {
+ case yes: ch = '*'; break;
+ case mod: ch = 'M'; break;
+ default: ch = ' '; break;
+ }
+ item_make("<%c>", ch);
+ break;
+ }
+ item_set_tag('t');
+ item_set_data(menu);
+ } else {
+ item_make(" ");
+ item_set_tag(def_menu ? 't' : ':');
+ item_set_data(menu);
+ }
+
+ item_add_str("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
+ if (val == yes) {
+ if (def_menu) {
+ item_add_str(" (%s)", menu_get_prompt(def_menu));
+ item_add_str(" --->");
+ if (def_menu->list) {
+ indent += 2;
+ build_conf(def_menu);
+ indent -= 2;
+ }
+ }
+ return;
+ }
+ } else {
+ if (menu == current_menu) {
+ item_make("---%*c%s", indent + 1, ' ', menu_get_prompt(menu));
+ item_set_tag(':');
+ item_set_data(menu);
+ goto conf_childs;
+ }
+ child_count++;
+ val = sym_get_tristate_value(sym);
+ if (sym_is_choice_value(sym) && val == yes) {
+ item_make(" ");
+ item_set_tag(':');
+ item_set_data(menu);
+ } else {
+ switch (type) {
+ case S_BOOLEAN:
+ if (sym_is_changable(sym))
+ item_make("[%c]", val == no ? ' ' : '*');
+ else
+ item_make("-%c-", val == no ? ' ' : '*');
+ item_set_tag('t');
+ item_set_data(menu);
+ break;
+ case S_TRISTATE:
+ switch (val) {
+ case yes: ch = '*'; break;
+ case mod: ch = 'M'; break;
+ default: ch = ' '; break;
+ }
+ if (sym_is_changable(sym)) {
+ if (sym->rev_dep.tri == mod)
+ item_make("{%c}", ch);
+ else
+ item_make("<%c>", ch);
+ } else
+ item_make("-%c-", ch);
+ item_set_tag('t');
+ item_set_data(menu);
+ break;
+ default:
+ tmp = 2 + strlen(sym_get_string_value(sym)); /* () = 2 */
+ item_make("(%s)", sym_get_string_value(sym));
+ tmp = indent - tmp + 4;
+ if (tmp < 0)
+ tmp = 0;
+ item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
+ (sym_has_value(sym) || !sym_is_changable(sym)) ?
+ "" : " (NEW)");
+ item_set_tag('s');
+ item_set_data(menu);
+ goto conf_childs;
+ }
+ }
+ item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
+ (sym_has_value(sym) || !sym_is_changable(sym)) ?
+ "" : " (NEW)");
+ if (menu->prompt->type == P_MENU) {
+ item_add_str(" --->");
+ return;
+ }
+ }
+
+conf_childs:
+ indent += doint;
+ for (child = menu->list; child; child = child->next)
+ build_conf(child);
+ indent -= doint;
+}
+
+static void conf(struct menu *menu)
+{
+ struct menu *submenu;
+ const char *prompt = menu_get_prompt(menu);
+ struct symbol *sym;
+ struct menu *active_menu = NULL;
+ int res;
+ int s_scroll = 0;
+
+ while (1) {
+ item_reset();
+ current_menu = menu;
+ build_conf(menu);
+ if (!child_count)
+ break;
+ if (menu == &rootmenu) {
+ item_make("--- ");
+ item_set_tag(':');
+ item_make(_(" Load an Alternate Configuration File"));
+ item_set_tag('L');
+ item_make(_(" Save an Alternate Configuration File"));
+ item_set_tag('S');
+ }
+ dialog_clear();
+ res = dialog_menu(prompt ? prompt : _("Main Menu"),
+ _(menu_instructions),
+ active_menu, &s_scroll);
+ if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
+ break;
+ if (!item_activate_selected())
+ continue;
+ if (!item_tag())
+ continue;
+
+ submenu = item_data();
+ active_menu = item_data();
+ if (submenu)
+ sym = submenu->sym;
+ else
+ sym = NULL;
+
+ switch (res) {
+ case 0:
+ switch (item_tag()) {
+ case 'm':
+ if (single_menu_mode)
+ submenu->data = (void *) (long) !submenu->data;
+ else
+ conf(submenu);
+ break;
+ case 't':
+ if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
+ conf_choice(submenu);
+ else if (submenu->prompt->type == P_MENU)
+ conf(submenu);
+ break;
+ case 's':
+ conf_string(submenu);
+ break;
+ case 'L':
+ conf_load();
+ break;
+ case 'S':
+ conf_save();
+ break;
+ }
+ break;
+ case 2:
+ if (sym)
+ show_help(submenu);
+ else
+ show_helptext("README", _(mconf_readme));
+ break;
+ case 3:
+ if (item_is_tag('t')) {
+ if (sym_set_tristate_value(sym, yes))
+ break;
+ if (sym_set_tristate_value(sym, mod))
+ show_textbox(NULL, setmod_text, 6, 74);
+ }
+ break;
+ case 4:
+ if (item_is_tag('t'))
+ sym_set_tristate_value(sym, no);
+ break;
+ case 5:
+ if (item_is_tag('t'))
+ sym_set_tristate_value(sym, mod);
+ break;
+ case 6:
+ if (item_is_tag('t'))
+ sym_toggle_tristate_value(sym);
+ else if (item_is_tag('m'))
+ conf(submenu);
+ break;
+ case 7:
+ search_conf();
+ break;
+ }
+ }
+}
+
+static void show_textbox(const char *title, const char *text, int r, int c)
+{
+ dialog_clear();
+ dialog_textbox(title, text, r, c);
+}
+
+static void show_helptext(const char *title, const char *text)
+{
+ show_textbox(title, text, 0, 0);
+}
+
+static void show_help(struct menu *menu)
+{
+ struct gstr help = str_new();
+ struct symbol *sym = menu->sym;
+
+ if (menu_has_help(menu))
+ {
+ if (sym->name) {
+ str_printf(&help, "CONFIG_%s:\n\n", sym->name);
+ str_append(&help, _(menu_get_help(menu)));
+ str_append(&help, "\n");
+ }
+ } else {
+ str_append(&help, nohelp_text);
+ }
+ get_symbol_str(&help, sym);
+ show_helptext(menu_get_prompt(menu), str_get(&help));
+ str_free(&help);
+}
+
+static void conf_choice(struct menu *menu)
+{
+ const char *prompt = menu_get_prompt(menu);
+ struct menu *child;
+ struct symbol *active;
+
+ active = sym_get_choice_value(menu->sym);
+ while (1) {
+ int res;
+ int selected;
+ item_reset();
+
+ current_menu = menu;
+ for (child = menu->list; child; child = child->next) {
+ if (!menu_is_visible(child))
+ continue;
+ item_make("%s", menu_get_prompt(child));
+ item_set_data(child);
+ if (child->sym == active)
+ item_set_selected(1);
+ if (child->sym == sym_get_choice_value(menu->sym))
+ item_set_tag('X');
+ }
+ dialog_clear();
+ res = dialog_checklist(prompt ? prompt : _("Main Menu"),
+ _(radiolist_instructions),
+ 15, 70, 6);
+ selected = item_activate_selected();
+ switch (res) {
+ case 0:
+ if (selected) {
+ child = item_data();
+ sym_set_tristate_value(child->sym, yes);
+ }
+ return;
+ case 1:
+ if (selected) {
+ child = item_data();
+ show_help(child);
+ active = child->sym;
+ } else
+ show_help(menu);
+ break;
+ case KEY_ESC:
+ return;
+ case -ERRDISPLAYTOOSMALL:
+ return;
+ }
+ }
+}
+
+static void conf_string(struct menu *menu)
+{
+ const char *prompt = menu_get_prompt(menu);
+
+ while (1) {
+ int res;
+ char *heading;
+
+ switch (sym_get_type(menu->sym)) {
+ case S_INT:
+ heading = _(inputbox_instructions_int);
+ break;
+ case S_HEX:
+ heading = _(inputbox_instructions_hex);
+ break;
+ case S_STRING:
+ heading = _(inputbox_instructions_string);
+ break;
+ default:
+ heading = "Internal mconf error!";
+ }
+ dialog_clear();
+ res = dialog_inputbox(prompt ? prompt : _("Main Menu"),
+ heading, 10, 75,
+ sym_get_string_value(menu->sym));
+ switch (res) {
+ case 0:
+ if (sym_set_string_value(menu->sym, dialog_input_result))
+ return;
+ show_textbox(NULL, _("You have made an invalid entry."), 5, 43);
+ break;
+ case 1:
+ show_help(menu);
+ break;
+ case KEY_ESC:
+ return;
+ }
+ }
+}
+
+static void conf_load(void)
+{
+
+ while (1) {
+ int res;
+ dialog_clear();
+ res = dialog_inputbox(NULL, load_config_text,
+ 11, 55, filename);
+ switch(res) {
+ case 0:
+ if (!dialog_input_result[0])
+ return;
+ if (!conf_read(dialog_input_result)) {
+ set_config_filename(dialog_input_result);
+ return;
+ }
+ show_textbox(NULL, _("File does not exist!"), 5, 38);
+ break;
+ case 1:
+ show_helptext(_("Load Alternate Configuration"), load_config_help);
+ break;
+ case KEY_ESC:
+ return;
+ }
+ }
+}
+
+static void conf_save(void)
+{
+ while (1) {
+ int res;
+ dialog_clear();
+ res = dialog_inputbox(NULL, save_config_text,
+ 11, 55, filename);
+ switch(res) {
+ case 0:
+ if (!dialog_input_result[0])
+ return;
+ if (!conf_write(dialog_input_result)) {
+ set_config_filename(dialog_input_result);
+ return;
+ }
+ show_textbox(NULL, _("Can't create file! Probably a nonexistent directory."), 5, 60);
+ break;
+ case 1:
+ show_helptext(_("Save Alternate Configuration"), save_config_help);
+ break;
+ case KEY_ESC:
+ return;
+ }
+ }
+}
+
+static void conf_cleanup(void)
+{
+ tcsetattr(1, TCSAFLUSH, &ios_org);
+}
+
+int main(int ac, char **av)
+{
+ char *mode;
+ int res;
+
+ setlocale(LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+ conf_parse(av[1]);
+ conf_read(NULL);
+
+ mode = getenv("MENUCONFIG_MODE");
+ if (mode) {
+ if (!strcasecmp(mode, "single_menu"))
+ single_menu_mode = 1;
+ }
+
+ tcgetattr(1, &ios_org);
+ atexit(conf_cleanup);
+ init_wsize();
+ reset_dialog();
+ init_dialog(NULL);
+ set_config_filename(conf_get_configname());
+ do {
+ conf(&rootmenu);
+ dialog_clear();
+ if (conf_get_changed())
+ res = dialog_yesno(NULL,
+ _("Do you wish to save your "
+ "new Buildroot configuration?\n"
+ "<ESC><ESC> to continue."),
+ 6, 60);
+ else
+ res = -1;
+ } while (res == KEY_ESC);
+ end_dialog();
+
+ switch (res) {
+ case 0:
+ if (conf_write(filename)) {
+ fprintf(stderr, _("\n\n"
+ "Error during writing of the Buildroot configuration.\n"
+ "Your Buildroot configuration changes were NOT saved."
+ "\n\n"));
+ return 1;
+ }
+ case -1:
+ printf(_("\n\n"
+ "*** End of Buildroot configuration.\n"
+ "*** Execute 'make' to build Buildroot or try 'make help'."
+ "\n\n"));
+ break;
+ default:
+ fprintf(stderr, _("\n\n"
+ "Your Buildroot configuration changes were NOT saved."
+ "\n\n"));
+ }
+
+ return conf_write_autoconf();
+}
diff --git a/cleopatre/buildroot/package/config/menu.c b/cleopatre/buildroot/package/config/menu.c
new file mode 100644
index 0000000000..f9d0d91a3f
--- /dev/null
+++ b/cleopatre/buildroot/package/config/menu.c
@@ -0,0 +1,431 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+struct menu rootmenu;
+static struct menu **last_entry_ptr;
+
+struct file *file_list;
+struct file *current_file;
+
+static void menu_warn(struct menu *menu, const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ fprintf(stderr, "%s:%d:warning: ", menu->file->name, menu->lineno);
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+ va_end(ap);
+}
+
+static void prop_warn(struct property *prop, const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ fprintf(stderr, "%s:%d:warning: ", prop->file->name, prop->lineno);
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+ va_end(ap);
+}
+
+void menu_init(void)
+{
+ current_entry = current_menu = &rootmenu;
+ last_entry_ptr = &rootmenu.list;
+}
+
+void menu_add_entry(struct symbol *sym)
+{
+ struct menu *menu;
+
+ menu = malloc(sizeof(*menu));
+ memset(menu, 0, sizeof(*menu));
+ menu->sym = sym;
+ menu->parent = current_menu;
+ menu->file = current_file;
+ menu->lineno = zconf_lineno();
+
+ *last_entry_ptr = menu;
+ last_entry_ptr = &menu->next;
+ current_entry = menu;
+}
+
+void menu_end_entry(void)
+{
+}
+
+struct menu *menu_add_menu(void)
+{
+ menu_end_entry();
+ last_entry_ptr = &current_entry->list;
+ return current_menu = current_entry;
+}
+
+void menu_end_menu(void)
+{
+ last_entry_ptr = &current_menu->next;
+ current_menu = current_menu->parent;
+}
+
+struct expr *menu_check_dep(struct expr *e)
+{
+ if (!e)
+ return e;
+
+ switch (e->type) {
+ case E_NOT:
+ e->left.expr = menu_check_dep(e->left.expr);
+ break;
+ case E_OR:
+ case E_AND:
+ e->left.expr = menu_check_dep(e->left.expr);
+ e->right.expr = menu_check_dep(e->right.expr);
+ break;
+ case E_SYMBOL:
+ /* change 'm' into 'm' && MODULES */
+ if (e->left.sym == &symbol_mod)
+ return expr_alloc_and(e, expr_alloc_symbol(modules_sym));
+ break;
+ default:
+ break;
+ }
+ return e;
+}
+
+void menu_add_dep(struct expr *dep)
+{
+ current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
+}
+
+void menu_set_type(int type)
+{
+ struct symbol *sym = current_entry->sym;
+
+ if (sym->type == type)
+ return;
+ if (sym->type == S_UNKNOWN) {
+ sym->type = type;
+ return;
+ }
+ menu_warn(current_entry, "type of '%s' redefined from '%s' to '%s'",
+ sym->name ? sym->name : "<choice>",
+ sym_type_name(sym->type), sym_type_name(type));
+}
+
+struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep)
+{
+ struct property *prop = prop_alloc(type, current_entry->sym);
+
+ prop->menu = current_entry;
+ prop->expr = expr;
+ prop->visible.expr = menu_check_dep(dep);
+
+ if (prompt) {
+ if (isspace(*prompt)) {
+ prop_warn(prop, "leading whitespace ignored");
+ while (isspace(*prompt))
+ prompt++;
+ }
+ if (current_entry->prompt)
+ prop_warn(prop, "prompt redefined");
+ current_entry->prompt = prop;
+ }
+ prop->text = prompt;
+
+ return prop;
+}
+
+struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep)
+{
+ return menu_add_prop(type, prompt, NULL, dep);
+}
+
+void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
+{
+ menu_add_prop(type, NULL, expr, dep);
+}
+
+void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
+{
+ menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep);
+}
+
+void menu_add_option(int token, char *arg)
+{
+ struct property *prop;
+
+ switch (token) {
+ case T_OPT_MODULES:
+ prop = prop_alloc(P_DEFAULT, modules_sym);
+ prop->expr = expr_alloc_symbol(current_entry->sym);
+ break;
+ case T_OPT_DEFCONFIG_LIST:
+ if (!sym_defconfig_list)
+ sym_defconfig_list = current_entry->sym;
+ else if (sym_defconfig_list != current_entry->sym)
+ zconf_error("trying to redefine defconfig symbol");
+ break;
+ }
+}
+
+static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2)
+{
+ return sym2->type == S_INT || sym2->type == S_HEX ||
+ (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name));
+}
+
+void sym_check_prop(struct symbol *sym)
+{
+ struct property *prop;
+ struct symbol *sym2;
+ for (prop = sym->prop; prop; prop = prop->next) {
+ switch (prop->type) {
+ case P_DEFAULT:
+ if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&
+ prop->expr->type != E_SYMBOL)
+ prop_warn(prop,
+ "default for config symbol '%'"
+ " must be a single symbol", sym->name);
+ break;
+ case P_SELECT:
+ sym2 = prop_get_symbol(prop);
+ if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
+ prop_warn(prop,
+ "config symbol '%s' uses select, but is "
+ "not boolean or tristate", sym->name);
+ else if (sym2->type == S_UNKNOWN)
+ prop_warn(prop,
+ "'select' used by config symbol '%s' "
+ "refers to undefined symbol '%s'",
+ sym->name, sym2->name);
+ else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
+ prop_warn(prop,
+ "'%s' has wrong type. 'select' only "
+ "accept arguments of boolean and "
+ "tristate type", sym2->name);
+ break;
+ case P_RANGE:
+ if (sym->type != S_INT && sym->type != S_HEX)
+ prop_warn(prop, "range is only allowed "
+ "for int or hex symbols");
+ if (!menu_range_valid_sym(sym, prop->expr->left.sym) ||
+ !menu_range_valid_sym(sym, prop->expr->right.sym))
+ prop_warn(prop, "range is invalid");
+ break;
+ default:
+ ;
+ }
+ }
+}
+
+void menu_finalize(struct menu *parent)
+{
+ struct menu *menu, *last_menu;
+ struct symbol *sym;
+ struct property *prop;
+ struct expr *parentdep, *basedep, *dep, *dep2, **ep;
+
+ sym = parent->sym;
+ if (parent->list) {
+ if (sym && sym_is_choice(sym)) {
+ /* find the first choice value and find out choice type */
+ for (menu = parent->list; menu; menu = menu->next) {
+ if (menu->sym) {
+ current_entry = parent;
+ menu_set_type(menu->sym->type);
+ current_entry = menu;
+ menu_set_type(sym->type);
+ break;
+ }
+ }
+ parentdep = expr_alloc_symbol(sym);
+ } else if (parent->prompt)
+ parentdep = parent->prompt->visible.expr;
+ else
+ parentdep = parent->dep;
+
+ for (menu = parent->list; menu; menu = menu->next) {
+ basedep = expr_transform(menu->dep);
+ basedep = expr_alloc_and(expr_copy(parentdep), basedep);
+ basedep = expr_eliminate_dups(basedep);
+ menu->dep = basedep;
+ if (menu->sym)
+ prop = menu->sym->prop;
+ else
+ prop = menu->prompt;
+ for (; prop; prop = prop->next) {
+ if (prop->menu != menu)
+ continue;
+ dep = expr_transform(prop->visible.expr);
+ dep = expr_alloc_and(expr_copy(basedep), dep);
+ dep = expr_eliminate_dups(dep);
+ if (menu->sym && menu->sym->type != S_TRISTATE)
+ dep = expr_trans_bool(dep);
+ prop->visible.expr = dep;
+ if (prop->type == P_SELECT) {
+ struct symbol *es = prop_get_symbol(prop);
+ es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
+ expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
+ }
+ }
+ }
+ for (menu = parent->list; menu; menu = menu->next)
+ menu_finalize(menu);
+ } else if (sym) {
+ basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
+ basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no);
+ basedep = expr_eliminate_dups(expr_transform(basedep));
+ last_menu = NULL;
+ for (menu = parent->next; menu; menu = menu->next) {
+ dep = menu->prompt ? menu->prompt->visible.expr : menu->dep;
+ if (!expr_contains_symbol(dep, sym))
+ break;
+ if (expr_depends_symbol(dep, sym))
+ goto next;
+ dep = expr_trans_compare(dep, E_UNEQUAL, &symbol_no);
+ dep = expr_eliminate_dups(expr_transform(dep));
+ dep2 = expr_copy(basedep);
+ expr_eliminate_eq(&dep, &dep2);
+ expr_free(dep);
+ if (!expr_is_yes(dep2)) {
+ expr_free(dep2);
+ break;
+ }
+ expr_free(dep2);
+ next:
+ menu_finalize(menu);
+ menu->parent = parent;
+ last_menu = menu;
+ }
+ if (last_menu) {
+ parent->list = parent->next;
+ parent->next = last_menu->next;
+ last_menu->next = NULL;
+ }
+ }
+ for (menu = parent->list; menu; menu = menu->next) {
+ if (sym && sym_is_choice(sym) && menu->sym) {
+ menu->sym->flags |= SYMBOL_CHOICEVAL;
+ if (!menu->prompt)
+ menu_warn(menu, "choice value must have a prompt");
+ for (prop = menu->sym->prop; prop; prop = prop->next) {
+ if (prop->type == P_PROMPT && prop->menu != menu) {
+ prop_warn(prop, "choice values "
+ "currently only support a "
+ "single prompt");
+ }
+ if (prop->type == P_DEFAULT)
+ prop_warn(prop, "defaults for choice "
+ "values not supported");
+ }
+ current_entry = menu;
+ menu_set_type(sym->type);
+ menu_add_symbol(P_CHOICE, sym, NULL);
+ prop = sym_get_choice_prop(sym);
+ for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
+ ;
+ *ep = expr_alloc_one(E_CHOICE, NULL);
+ (*ep)->right.sym = menu->sym;
+ }
+ if (menu->list && (!menu->prompt || !menu->prompt->text)) {
+ for (last_menu = menu->list; ; last_menu = last_menu->next) {
+ last_menu->parent = parent;
+ if (!last_menu->next)
+ break;
+ }
+ last_menu->next = menu->next;
+ menu->next = menu->list;
+ menu->list = NULL;
+ }
+ }
+
+ if (sym && !(sym->flags & SYMBOL_WARNED)) {
+ if (sym->type == S_UNKNOWN)
+ menu_warn(parent, "config symbol defined without type");
+
+ if (sym_is_choice(sym) && !parent->prompt)
+ menu_warn(parent, "choice must have a prompt");
+
+ /* Check properties connected to this symbol */
+ sym_check_prop(sym);
+ sym->flags |= SYMBOL_WARNED;
+ }
+
+ if (sym && !sym_is_optional(sym) && parent->prompt) {
+ sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
+ expr_alloc_and(parent->prompt->visible.expr,
+ expr_alloc_symbol(&symbol_mod)));
+ }
+}
+
+bool menu_is_visible(struct menu *menu)
+{
+ struct menu *child;
+ struct symbol *sym;
+ tristate visible;
+
+ if (!menu->prompt)
+ return false;
+ sym = menu->sym;
+ if (sym) {
+ sym_calc_value(sym);
+ visible = menu->prompt->visible.tri;
+ } else
+ visible = menu->prompt->visible.tri = expr_calc_value(menu->prompt->visible.expr);
+
+ if (visible != no)
+ return true;
+ if (!sym || sym_get_tristate_value(menu->sym) == no)
+ return false;
+
+ for (child = menu->list; child; child = child->next)
+ if (menu_is_visible(child))
+ return true;
+ return false;
+}
+
+const char *menu_get_prompt(struct menu *menu)
+{
+ if (menu->prompt)
+ return _(menu->prompt->text);
+ else if (menu->sym)
+ return _(menu->sym->name);
+ return NULL;
+}
+
+struct menu *menu_get_root_menu(struct menu *menu)
+{
+ return &rootmenu;
+}
+
+struct menu *menu_get_parent_menu(struct menu *menu)
+{
+ enum prop_type type;
+
+ for (; menu != &rootmenu; menu = menu->parent) {
+ type = menu->prompt ? menu->prompt->type : 0;
+ if (type == P_MENU)
+ break;
+ }
+ return menu;
+}
+
+bool menu_has_help(struct menu *menu)
+{
+ return menu->help != NULL;
+}
+
+const char *menu_get_help(struct menu *menu)
+{
+ if (menu->help)
+ return menu->help;
+ else
+ return "";
+}
diff --git a/cleopatre/buildroot/package/config/qconf.cc b/cleopatre/buildroot/package/config/qconf.cc
new file mode 100644
index 0000000000..b9bb32dfd6
--- /dev/null
+++ b/cleopatre/buildroot/package/config/qconf.cc
@@ -0,0 +1,1760 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <qapplication.h>
+#include <qmainwindow.h>
+#include <qtoolbar.h>
+#include <qlayout.h>
+#include <qvbox.h>
+#include <qsplitter.h>
+#include <qlistview.h>
+#include <qtextbrowser.h>
+#include <qlineedit.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qmenubar.h>
+#include <qmessagebox.h>
+#include <qaction.h>
+#include <qheader.h>
+#include <qfiledialog.h>
+#include <qdragobject.h>
+#include <qregexp.h>
+
+#include <stdlib.h>
+
+#include "lkc.h"
+#include "qconf.h"
+
+#include "qconf.moc"
+#include "images.c"
+
+#ifdef _
+# undef _
+# define _ qgettext
+#endif
+
+static QApplication *configApp;
+static ConfigSettings *configSettings;
+
+QAction *ConfigMainWindow::saveAction;
+
+static inline QString qgettext(const char* str)
+{
+ return QString::fromLocal8Bit(gettext(str));
+}
+
+static inline QString qgettext(const QString& str)
+{
+ return QString::fromLocal8Bit(gettext(str.latin1()));
+}
+
+/**
+ * Reads a list of integer values from the application settings.
+ */
+QValueList<int> ConfigSettings::readSizes(const QString& key, bool *ok)
+{
+ QValueList<int> result;
+ QStringList entryList = readListEntry(key, ok);
+ if (ok) {
+ QStringList::Iterator it;
+ for (it = entryList.begin(); it != entryList.end(); ++it)
+ result.push_back((*it).toInt());
+ }
+
+ return result;
+}
+
+/**
+ * Writes a list of integer values to the application settings.
+ */
+bool ConfigSettings::writeSizes(const QString& key, const QValueList<int>& value)
+{
+ QStringList stringList;
+ QValueList<int>::ConstIterator it;
+
+ for (it = value.begin(); it != value.end(); ++it)
+ stringList.push_back(QString::number(*it));
+ return writeEntry(key, stringList);
+}
+
+
+#if QT_VERSION >= 300
+/*
+ * set the new data
+ * TODO check the value
+ */
+void ConfigItem::okRename(int col)
+{
+ Parent::okRename(col);
+ sym_set_string_value(menu->sym, text(dataColIdx).latin1());
+ listView()->updateList(this);
+}
+#endif
+
+/*
+ * update the displayed of a menu entry
+ */
+void ConfigItem::updateMenu(void)
+{
+ ConfigList* list;
+ struct symbol* sym;
+ struct property *prop;
+ QString prompt;
+ int type;
+ tristate expr;
+
+ list = listView();
+ if (goParent) {
+ setPixmap(promptColIdx, list->menuBackPix);
+ prompt = "..";
+ goto set_prompt;
+ }
+
+ sym = menu->sym;
+ prop = menu->prompt;
+ prompt = QString::fromLocal8Bit(menu_get_prompt(menu));
+
+ if (prop) switch (prop->type) {
+ case P_MENU:
+ if (list->mode == singleMode || list->mode == symbolMode) {
+ /* a menuconfig entry is displayed differently
+ * depending whether it's at the view root or a child.
+ */
+ if (sym && list->rootEntry == menu)
+ break;
+ setPixmap(promptColIdx, list->menuPix);
+ } else {
+ if (sym)
+ break;
+ setPixmap(promptColIdx, 0);
+ }
+ goto set_prompt;
+ case P_COMMENT:
+ setPixmap(promptColIdx, 0);
+ goto set_prompt;
+ default:
+ ;
+ }
+ if (!sym)
+ goto set_prompt;
+
+ setText(nameColIdx, QString::fromLocal8Bit(sym->name));
+
+ type = sym_get_type(sym);
+ switch (type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ char ch;
+
+ if (!sym_is_changable(sym) && !list->showAll) {
+ setPixmap(promptColIdx, 0);
+ setText(noColIdx, QString::null);
+ setText(modColIdx, QString::null);
+ setText(yesColIdx, QString::null);
+ break;
+ }
+ expr = sym_get_tristate_value(sym);
+ switch (expr) {
+ case yes:
+ if (sym_is_choice_value(sym) && type == S_BOOLEAN)
+ setPixmap(promptColIdx, list->choiceYesPix);
+ else
+ setPixmap(promptColIdx, list->symbolYesPix);
+ setText(yesColIdx, "Y");
+ ch = 'Y';
+ break;
+ case mod:
+ setPixmap(promptColIdx, list->symbolModPix);
+ setText(modColIdx, "M");
+ ch = 'M';
+ break;
+ default:
+ if (sym_is_choice_value(sym) && type == S_BOOLEAN)
+ setPixmap(promptColIdx, list->choiceNoPix);
+ else
+ setPixmap(promptColIdx, list->symbolNoPix);
+ setText(noColIdx, "N");
+ ch = 'N';
+ break;
+ }
+ if (expr != no)
+ setText(noColIdx, sym_tristate_within_range(sym, no) ? "_" : 0);
+ if (expr != mod)
+ setText(modColIdx, sym_tristate_within_range(sym, mod) ? "_" : 0);
+ if (expr != yes)
+ setText(yesColIdx, sym_tristate_within_range(sym, yes) ? "_" : 0);
+
+ setText(dataColIdx, QChar(ch));
+ break;
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ const char* data;
+
+ data = sym_get_string_value(sym);
+
+#if QT_VERSION >= 300
+ int i = list->mapIdx(dataColIdx);
+ if (i >= 0)
+ setRenameEnabled(i, TRUE);
+#endif
+ setText(dataColIdx, data);
+ if (type == S_STRING)
+ prompt = QString("%1: %2").arg(prompt).arg(data);
+ else
+ prompt = QString("(%2) %1").arg(prompt).arg(data);
+ break;
+ }
+ if (!sym_has_value(sym) && visible)
+ prompt += " (NEW)";
+set_prompt:
+ setText(promptColIdx, prompt);
+}
+
+void ConfigItem::testUpdateMenu(bool v)
+{
+ ConfigItem* i;
+
+ visible = v;
+ if (!menu)
+ return;
+
+ sym_calc_value(menu->sym);
+ if (menu->flags & MENU_CHANGED) {
+ /* the menu entry changed, so update all list items */
+ menu->flags &= ~MENU_CHANGED;
+ for (i = (ConfigItem*)menu->data; i; i = i->nextItem)
+ i->updateMenu();
+ } else if (listView()->updateAll)
+ updateMenu();
+}
+
+void ConfigItem::paintCell(QPainter* p, const QColorGroup& cg, int column, int width, int align)
+{
+ ConfigList* list = listView();
+
+ if (visible) {
+ if (isSelected() && !list->hasFocus() && list->mode == menuMode)
+ Parent::paintCell(p, list->inactivedColorGroup, column, width, align);
+ else
+ Parent::paintCell(p, cg, column, width, align);
+ } else
+ Parent::paintCell(p, list->disabledColorGroup, column, width, align);
+}
+
+/*
+ * construct a menu entry
+ */
+void ConfigItem::init(void)
+{
+ if (menu) {
+ ConfigList* list = listView();
+ nextItem = (ConfigItem*)menu->data;
+ menu->data = this;
+
+ if (list->mode != fullMode)
+ setOpen(TRUE);
+ sym_calc_value(menu->sym);
+ }
+ updateMenu();
+}
+
+/*
+ * destruct a menu entry
+ */
+ConfigItem::~ConfigItem(void)
+{
+ if (menu) {
+ ConfigItem** ip = (ConfigItem**)&menu->data;
+ for (; *ip; ip = &(*ip)->nextItem) {
+ if (*ip == this) {
+ *ip = nextItem;
+ break;
+ }
+ }
+ }
+}
+
+ConfigLineEdit::ConfigLineEdit(ConfigView* parent)
+ : Parent(parent)
+{
+ connect(this, SIGNAL(lostFocus()), SLOT(hide()));
+}
+
+void ConfigLineEdit::show(ConfigItem* i)
+{
+ item = i;
+ if (sym_get_string_value(item->menu->sym))
+ setText(QString::fromLocal8Bit(sym_get_string_value(item->menu->sym)));
+ else
+ setText(QString::null);
+ Parent::show();
+ setFocus();
+}
+
+void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
+{
+ switch (e->key()) {
+ case Key_Escape:
+ break;
+ case Key_Return:
+ case Key_Enter:
+ sym_set_string_value(item->menu->sym, text().latin1());
+ parent()->updateList(item);
+ break;
+ default:
+ Parent::keyPressEvent(e);
+ return;
+ }
+ e->accept();
+ parent()->list->setFocus();
+ hide();
+}
+
+ConfigList::ConfigList(ConfigView* p, const char *name)
+ : Parent(p, name),
+ updateAll(false),
+ symbolYesPix(xpm_symbol_yes), symbolModPix(xpm_symbol_mod), symbolNoPix(xpm_symbol_no),
+ choiceYesPix(xpm_choice_yes), choiceNoPix(xpm_choice_no),
+ menuPix(xpm_menu), menuInvPix(xpm_menu_inv), menuBackPix(xpm_menuback), voidPix(xpm_void),
+ showAll(false), showName(false), showRange(false), showData(false),
+ rootEntry(0), headerPopup(0)
+{
+ int i;
+
+ setSorting(-1);
+ setRootIsDecorated(TRUE);
+ disabledColorGroup = palette().active();
+ disabledColorGroup.setColor(QColorGroup::Text, palette().disabled().text());
+ inactivedColorGroup = palette().active();
+ inactivedColorGroup.setColor(QColorGroup::Highlight, palette().disabled().highlight());
+
+ connect(this, SIGNAL(selectionChanged(void)),
+ SLOT(updateSelection(void)));
+
+ if (name) {
+ configSettings->beginGroup(name);
+ showAll = configSettings->readBoolEntry("/showAll", false);
+ showName = configSettings->readBoolEntry("/showName", false);
+ showRange = configSettings->readBoolEntry("/showRange", false);
+ showData = configSettings->readBoolEntry("/showData", false);
+ configSettings->endGroup();
+ connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
+ }
+
+ for (i = 0; i < colNr; i++)
+ colMap[i] = colRevMap[i] = -1;
+ addColumn(promptColIdx, "Option");
+
+ reinit();
+}
+
+void ConfigList::reinit(void)
+{
+ removeColumn(dataColIdx);
+ removeColumn(yesColIdx);
+ removeColumn(modColIdx);
+ removeColumn(noColIdx);
+ removeColumn(nameColIdx);
+
+ if (showName)
+ addColumn(nameColIdx, "Name");
+ if (showRange) {
+ addColumn(noColIdx, "N");
+ addColumn(modColIdx, "M");
+ addColumn(yesColIdx, "Y");
+ }
+ if (showData)
+ addColumn(dataColIdx, "Value");
+
+ updateListAll();
+}
+
+void ConfigList::saveSettings(void)
+{
+ if (name()) {
+ configSettings->beginGroup(name());
+ configSettings->writeEntry("/showName", showName);
+ configSettings->writeEntry("/showRange", showRange);
+ configSettings->writeEntry("/showData", showData);
+ configSettings->writeEntry("/showAll", showAll);
+ configSettings->endGroup();
+ }
+}
+
+ConfigItem* ConfigList::findConfigItem(struct menu *menu)
+{
+ ConfigItem* item = (ConfigItem*)menu->data;
+
+ for (; item; item = item->nextItem) {
+ if (this == item->listView())
+ break;
+ }
+
+ return item;
+}
+
+void ConfigList::updateSelection(void)
+{
+ struct menu *menu;
+ enum prop_type type;
+
+ ConfigItem* item = (ConfigItem*)selectedItem();
+ if (!item)
+ return;
+
+ menu = item->menu;
+ emit menuChanged(menu);
+ if (!menu)
+ return;
+ type = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+ if (mode == menuMode && type == P_MENU)
+ emit menuSelected(menu);
+}
+
+void ConfigList::updateList(ConfigItem* item)
+{
+ ConfigItem* last = 0;
+
+ if (!rootEntry) {
+ if (mode != listMode)
+ goto update;
+ QListViewItemIterator it(this);
+ ConfigItem* item;
+
+ for (; it.current(); ++it) {
+ item = (ConfigItem*)it.current();
+ if (!item->menu)
+ continue;
+ item->testUpdateMenu(menu_is_visible(item->menu));
+ }
+ return;
+ }
+
+ if (rootEntry != &rootmenu && (mode == singleMode ||
+ (mode == symbolMode && rootEntry->parent != &rootmenu))) {
+ item = firstChild();
+ if (!item)
+ item = new ConfigItem(this, 0, true);
+ last = item;
+ }
+ if ((mode == singleMode || (mode == symbolMode && !(rootEntry->flags & MENU_ROOT))) &&
+ rootEntry->sym && rootEntry->prompt) {
+ item = last ? last->nextSibling() : firstChild();
+ if (!item)
+ item = new ConfigItem(this, last, rootEntry, true);
+ else
+ item->testUpdateMenu(true);
+
+ updateMenuList(item, rootEntry);
+ triggerUpdate();
+ return;
+ }
+update:
+ updateMenuList(this, rootEntry);
+ triggerUpdate();
+}
+
+void ConfigList::setValue(ConfigItem* item, tristate val)
+{
+ struct symbol* sym;
+ int type;
+ tristate oldval;
+
+ sym = item->menu ? item->menu->sym : 0;
+ if (!sym)
+ return;
+
+ type = sym_get_type(sym);
+ switch (type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ oldval = sym_get_tristate_value(sym);
+
+ if (!sym_set_tristate_value(sym, val))
+ return;
+ if (oldval == no && item->menu->list)
+ item->setOpen(TRUE);
+ parent()->updateList(item);
+ break;
+ }
+}
+
+void ConfigList::changeValue(ConfigItem* item)
+{
+ struct symbol* sym;
+ struct menu* menu;
+ int type, oldexpr, newexpr;
+
+ menu = item->menu;
+ if (!menu)
+ return;
+ sym = menu->sym;
+ if (!sym) {
+ if (item->menu->list)
+ item->setOpen(!item->isOpen());
+ return;
+ }
+
+ type = sym_get_type(sym);
+ switch (type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ oldexpr = sym_get_tristate_value(sym);
+ newexpr = sym_toggle_tristate_value(sym);
+ if (item->menu->list) {
+ if (oldexpr == newexpr)
+ item->setOpen(!item->isOpen());
+ else if (oldexpr == no)
+ item->setOpen(TRUE);
+ }
+ if (oldexpr != newexpr)
+ parent()->updateList(item);
+ break;
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+#if QT_VERSION >= 300
+ if (colMap[dataColIdx] >= 0)
+ item->startRename(colMap[dataColIdx]);
+ else
+#endif
+ parent()->lineEdit->show(item);
+ break;
+ }
+}
+
+void ConfigList::setRootMenu(struct menu *menu)
+{
+ enum prop_type type;
+
+ if (rootEntry == menu)
+ return;
+ type = menu && menu->prompt ? menu->prompt->type : P_UNKNOWN;
+ if (type != P_MENU)
+ return;
+ updateMenuList(this, 0);
+ rootEntry = menu;
+ updateListAll();
+ setSelected(currentItem(), hasFocus());
+ ensureItemVisible(currentItem());
+}
+
+void ConfigList::setParentMenu(void)
+{
+ ConfigItem* item;
+ struct menu *oldroot;
+
+ oldroot = rootEntry;
+ if (rootEntry == &rootmenu)
+ return;
+ setRootMenu(menu_get_parent_menu(rootEntry->parent));
+
+ QListViewItemIterator it(this);
+ for (; (item = (ConfigItem*)it.current()); it++) {
+ if (item->menu == oldroot) {
+ setCurrentItem(item);
+ ensureItemVisible(item);
+ break;
+ }
+ }
+}
+
+/*
+ * update all the children of a menu entry
+ * removes/adds the entries from the parent widget as necessary
+ *
+ * parent: either the menu list widget or a menu entry widget
+ * menu: entry to be updated
+ */
+template <class P>
+void ConfigList::updateMenuList(P* parent, struct menu* menu)
+{
+ struct menu* child;
+ ConfigItem* item;
+ ConfigItem* last;
+ bool visible;
+ enum prop_type type;
+
+ if (!menu) {
+ while ((item = parent->firstChild()))
+ delete item;
+ return;
+ }
+
+ last = parent->firstChild();
+ if (last && !last->goParent)
+ last = 0;
+ for (child = menu->list; child; child = child->next) {
+ item = last ? last->nextSibling() : parent->firstChild();
+ type = child->prompt ? child->prompt->type : P_UNKNOWN;
+
+ switch (mode) {
+ case menuMode:
+ if (!(child->flags & MENU_ROOT))
+ goto hide;
+ break;
+ case symbolMode:
+ if (child->flags & MENU_ROOT)
+ goto hide;
+ break;
+ default:
+ break;
+ }
+
+ visible = menu_is_visible(child);
+ if (showAll || visible) {
+ if (!child->sym && !child->list && !child->prompt)
+ continue;
+ if (!item || item->menu != child)
+ item = new ConfigItem(parent, last, child, visible);
+ else
+ item->testUpdateMenu(visible);
+
+ if (mode == fullMode || mode == menuMode || type != P_MENU)
+ updateMenuList(item, child);
+ else
+ updateMenuList(item, 0);
+ last = item;
+ continue;
+ }
+ hide:
+ if (item && item->menu == child) {
+ last = parent->firstChild();
+ if (last == item)
+ last = 0;
+ else while (last->nextSibling() != item)
+ last = last->nextSibling();
+ delete item;
+ }
+ }
+}
+
+void ConfigList::keyPressEvent(QKeyEvent* ev)
+{
+ QListViewItem* i = currentItem();
+ ConfigItem* item;
+ struct menu *menu;
+ enum prop_type type;
+
+ if (ev->key() == Key_Escape && mode != fullMode && mode != listMode) {
+ emit parentSelected();
+ ev->accept();
+ return;
+ }
+
+ if (!i) {
+ Parent::keyPressEvent(ev);
+ return;
+ }
+ item = (ConfigItem*)i;
+
+ switch (ev->key()) {
+ case Key_Return:
+ case Key_Enter:
+ if (item->goParent) {
+ emit parentSelected();
+ break;
+ }
+ menu = item->menu;
+ if (!menu)
+ break;
+ type = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+ if (type == P_MENU && rootEntry != menu &&
+ mode != fullMode && mode != menuMode) {
+ emit menuSelected(menu);
+ break;
+ }
+ case Key_Space:
+ changeValue(item);
+ break;
+ case Key_N:
+ setValue(item, no);
+ break;
+ case Key_M:
+ setValue(item, mod);
+ break;
+ case Key_Y:
+ setValue(item, yes);
+ break;
+ default:
+ Parent::keyPressEvent(ev);
+ return;
+ }
+ ev->accept();
+}
+
+void ConfigList::contentsMousePressEvent(QMouseEvent* e)
+{
+ //QPoint p(contentsToViewport(e->pos()));
+ //printf("contentsMousePressEvent: %d,%d\n", p.x(), p.y());
+ Parent::contentsMousePressEvent(e);
+}
+
+void ConfigList::contentsMouseReleaseEvent(QMouseEvent* e)
+{
+ QPoint p(contentsToViewport(e->pos()));
+ ConfigItem* item = (ConfigItem*)itemAt(p);
+ struct menu *menu;
+ enum prop_type ptype;
+ const QPixmap* pm;
+ int idx, x;
+
+ if (!item)
+ goto skip;
+
+ menu = item->menu;
+ x = header()->offset() + p.x();
+ idx = colRevMap[header()->sectionAt(x)];
+ switch (idx) {
+ case promptColIdx:
+ pm = item->pixmap(promptColIdx);
+ if (pm) {
+ int off = header()->sectionPos(0) + itemMargin() +
+ treeStepSize() * (item->depth() + (rootIsDecorated() ? 1 : 0));
+ if (x >= off && x < off + pm->width()) {
+ if (item->goParent) {
+ emit parentSelected();
+ break;
+ } else if (!menu)
+ break;
+ ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+ if (ptype == P_MENU && rootEntry != menu &&
+ mode != fullMode && mode != menuMode)
+ emit menuSelected(menu);
+ else
+ changeValue(item);
+ }
+ }
+ break;
+ case noColIdx:
+ setValue(item, no);
+ break;
+ case modColIdx:
+ setValue(item, mod);
+ break;
+ case yesColIdx:
+ setValue(item, yes);
+ break;
+ case dataColIdx:
+ changeValue(item);
+ break;
+ }
+
+skip:
+ //printf("contentsMouseReleaseEvent: %d,%d\n", p.x(), p.y());
+ Parent::contentsMouseReleaseEvent(e);
+}
+
+void ConfigList::contentsMouseMoveEvent(QMouseEvent* e)
+{
+ //QPoint p(contentsToViewport(e->pos()));
+ //printf("contentsMouseMoveEvent: %d,%d\n", p.x(), p.y());
+ Parent::contentsMouseMoveEvent(e);
+}
+
+void ConfigList::contentsMouseDoubleClickEvent(QMouseEvent* e)
+{
+ QPoint p(contentsToViewport(e->pos()));
+ ConfigItem* item = (ConfigItem*)itemAt(p);
+ struct menu *menu;
+ enum prop_type ptype;
+
+ if (!item)
+ goto skip;
+ if (item->goParent) {
+ emit parentSelected();
+ goto skip;
+ }
+ menu = item->menu;
+ if (!menu)
+ goto skip;
+ ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+ if (ptype == P_MENU && (mode == singleMode || mode == symbolMode))
+ emit menuSelected(menu);
+ else if (menu->sym)
+ changeValue(item);
+
+skip:
+ //printf("contentsMouseDoubleClickEvent: %d,%d\n", p.x(), p.y());
+ Parent::contentsMouseDoubleClickEvent(e);
+}
+
+void ConfigList::focusInEvent(QFocusEvent *e)
+{
+ struct menu *menu = NULL;
+
+ Parent::focusInEvent(e);
+
+ ConfigItem* item = (ConfigItem *)currentItem();
+ if (item) {
+ setSelected(item, TRUE);
+ menu = item->menu;
+ }
+ emit gotFocus(menu);
+}
+
+void ConfigList::contextMenuEvent(QContextMenuEvent *e)
+{
+ if (e->y() <= header()->geometry().bottom()) {
+ if (!headerPopup) {
+ QAction *action;
+
+ headerPopup = new QPopupMenu(this);
+ action = new QAction(NULL, "Show Name", 0, this);
+ action->setToggleAction(TRUE);
+ connect(action, SIGNAL(toggled(bool)),
+ parent(), SLOT(setShowName(bool)));
+ connect(parent(), SIGNAL(showNameChanged(bool)),
+ action, SLOT(setOn(bool)));
+ action->setOn(showName);
+ action->addTo(headerPopup);
+ action = new QAction(NULL, "Show Range", 0, this);
+ action->setToggleAction(TRUE);
+ connect(action, SIGNAL(toggled(bool)),
+ parent(), SLOT(setShowRange(bool)));
+ connect(parent(), SIGNAL(showRangeChanged(bool)),
+ action, SLOT(setOn(bool)));
+ action->setOn(showRange);
+ action->addTo(headerPopup);
+ action = new QAction(NULL, "Show Data", 0, this);
+ action->setToggleAction(TRUE);
+ connect(action, SIGNAL(toggled(bool)),
+ parent(), SLOT(setShowData(bool)));
+ connect(parent(), SIGNAL(showDataChanged(bool)),
+ action, SLOT(setOn(bool)));
+ action->setOn(showData);
+ action->addTo(headerPopup);
+ }
+ headerPopup->exec(e->globalPos());
+ e->accept();
+ } else
+ e->ignore();
+}
+
+ConfigView* ConfigView::viewList;
+
+ConfigView::ConfigView(QWidget* parent, const char *name)
+ : Parent(parent, name)
+{
+ list = new ConfigList(this, name);
+ lineEdit = new ConfigLineEdit(this);
+ lineEdit->hide();
+
+ this->nextView = viewList;
+ viewList = this;
+}
+
+ConfigView::~ConfigView(void)
+{
+ ConfigView** vp;
+
+ for (vp = &viewList; *vp; vp = &(*vp)->nextView) {
+ if (*vp == this) {
+ *vp = nextView;
+ break;
+ }
+ }
+}
+
+void ConfigView::setShowAll(bool b)
+{
+ if (list->showAll != b) {
+ list->showAll = b;
+ list->updateListAll();
+ emit showAllChanged(b);
+ }
+}
+
+void ConfigView::setShowName(bool b)
+{
+ if (list->showName != b) {
+ list->showName = b;
+ list->reinit();
+ emit showNameChanged(b);
+ }
+}
+
+void ConfigView::setShowRange(bool b)
+{
+ if (list->showRange != b) {
+ list->showRange = b;
+ list->reinit();
+ emit showRangeChanged(b);
+ }
+}
+
+void ConfigView::setShowData(bool b)
+{
+ if (list->showData != b) {
+ list->showData = b;
+ list->reinit();
+ emit showDataChanged(b);
+ }
+}
+
+void ConfigList::setAllOpen(bool open)
+{
+ QListViewItemIterator it(this);
+
+ for (; it.current(); it++)
+ it.current()->setOpen(open);
+}
+
+void ConfigView::updateList(ConfigItem* item)
+{
+ ConfigView* v;
+
+ for (v = viewList; v; v = v->nextView)
+ v->list->updateList(item);
+}
+
+void ConfigView::updateListAll(void)
+{
+ ConfigView* v;
+
+ for (v = viewList; v; v = v->nextView)
+ v->list->updateListAll();
+}
+
+ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
+ : Parent(parent, name), menu(0), sym(0)
+{
+ if (name) {
+ configSettings->beginGroup(name);
+ _showDebug = configSettings->readBoolEntry("/showDebug", false);
+ configSettings->endGroup();
+ connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
+ }
+}
+
+void ConfigInfoView::saveSettings(void)
+{
+ if (name()) {
+ configSettings->beginGroup(name());
+ configSettings->writeEntry("/showDebug", showDebug());
+ configSettings->endGroup();
+ }
+}
+
+void ConfigInfoView::setShowDebug(bool b)
+{
+ if (_showDebug != b) {
+ _showDebug = b;
+ if (menu)
+ menuInfo();
+ else if (sym)
+ symbolInfo();
+ emit showDebugChanged(b);
+ }
+}
+
+void ConfigInfoView::setInfo(struct menu *m)
+{
+ if (menu == m)
+ return;
+ menu = m;
+ sym = NULL;
+ if (!menu)
+ clear();
+ else
+ menuInfo();
+}
+
+void ConfigInfoView::setSource(const QString& name)
+{
+ const char *p = name.latin1();
+
+ menu = NULL;
+ sym = NULL;
+
+ switch (p[0]) {
+ case 'm':
+ struct menu *m;
+
+ if (sscanf(p, "m%p", &m) == 1 && menu != m) {
+ menu = m;
+ menuInfo();
+ emit menuSelected(menu);
+ }
+ break;
+ case 's':
+ struct symbol *s;
+
+ if (sscanf(p, "s%p", &s) == 1 && sym != s) {
+ sym = s;
+ symbolInfo();
+ }
+ break;
+ }
+}
+
+void ConfigInfoView::symbolInfo(void)
+{
+ QString str;
+
+ str += "<big>Symbol: <b>";
+ str += print_filter(sym->name);
+ str += "</b></big><br><br>value: ";
+ str += print_filter(sym_get_string_value(sym));
+ str += "<br>visibility: ";
+ str += sym->visible == yes ? "y" : sym->visible == mod ? "m" : "n";
+ str += "<br>";
+ str += debug_info(sym);
+
+ setText(str);
+}
+
+void ConfigInfoView::menuInfo(void)
+{
+ struct symbol* sym;
+ QString head, debug, help;
+
+ sym = menu->sym;
+ if (sym) {
+ if (menu->prompt) {
+ head += "<big><b>";
+ head += print_filter(_(menu->prompt->text));
+ head += "</b></big>";
+ if (sym->name) {
+ head += " (";
+ if (showDebug())
+ head += QString().sprintf("<a href=\"s%p\">", sym);
+ head += print_filter(sym->name);
+ if (showDebug())
+ head += "</a>";
+ head += ")";
+ }
+ } else if (sym->name) {
+ head += "<big><b>";
+ if (showDebug())
+ head += QString().sprintf("<a href=\"s%p\">", sym);
+ head += print_filter(sym->name);
+ if (showDebug())
+ head += "</a>";
+ head += "</b></big>";
+ }
+ head += "<br><br>";
+
+ if (showDebug())
+ debug = debug_info(sym);
+
+ help = print_filter(_(menu_get_help(menu)));
+ } else if (menu->prompt) {
+ head += "<big><b>";
+ head += print_filter(_(menu->prompt->text));
+ head += "</b></big><br><br>";
+ if (showDebug()) {
+ if (menu->prompt->visible.expr) {
+ debug += "&nbsp;&nbsp;dep: ";
+ expr_print(menu->prompt->visible.expr, expr_print_help, &debug, E_NONE);
+ debug += "<br><br>";
+ }
+ }
+ }
+ if (showDebug())
+ debug += QString().sprintf("defined at %s:%d<br><br>", menu->file->name, menu->lineno);
+
+ setText(head + debug + help);
+}
+
+QString ConfigInfoView::debug_info(struct symbol *sym)
+{
+ QString debug;
+
+ debug += "type: ";
+ debug += print_filter(sym_type_name(sym->type));
+ if (sym_is_choice(sym))
+ debug += " (choice)";
+ debug += "<br>";
+ if (sym->rev_dep.expr) {
+ debug += "reverse dep: ";
+ expr_print(sym->rev_dep.expr, expr_print_help, &debug, E_NONE);
+ debug += "<br>";
+ }
+ for (struct property *prop = sym->prop; prop; prop = prop->next) {
+ switch (prop->type) {
+ case P_PROMPT:
+ case P_MENU:
+ debug += QString().sprintf("prompt: <a href=\"m%p\">", prop->menu);
+ debug += print_filter(_(prop->text));
+ debug += "</a><br>";
+ break;
+ case P_DEFAULT:
+ debug += "default: ";
+ expr_print(prop->expr, expr_print_help, &debug, E_NONE);
+ debug += "<br>";
+ break;
+ case P_CHOICE:
+ if (sym_is_choice(sym)) {
+ debug += "choice: ";
+ expr_print(prop->expr, expr_print_help, &debug, E_NONE);
+ debug += "<br>";
+ }
+ break;
+ case P_SELECT:
+ debug += "select: ";
+ expr_print(prop->expr, expr_print_help, &debug, E_NONE);
+ debug += "<br>";
+ break;
+ case P_RANGE:
+ debug += "range: ";
+ expr_print(prop->expr, expr_print_help, &debug, E_NONE);
+ debug += "<br>";
+ break;
+ default:
+ debug += "unknown property: ";
+ debug += prop_get_type_name(prop->type);
+ debug += "<br>";
+ }
+ if (prop->visible.expr) {
+ debug += "&nbsp;&nbsp;&nbsp;&nbsp;dep: ";
+ expr_print(prop->visible.expr, expr_print_help, &debug, E_NONE);
+ debug += "<br>";
+ }
+ }
+ debug += "<br>";
+
+ return debug;
+}
+
+QString ConfigInfoView::print_filter(const QString &str)
+{
+ QRegExp re("[<>&\"\\n]");
+ QString res = str;
+ for (int i = 0; (i = res.find(re, i)) >= 0;) {
+ switch (res[i].latin1()) {
+ case '<':
+ res.replace(i, 1, "&lt;");
+ i += 4;
+ break;
+ case '>':
+ res.replace(i, 1, "&gt;");
+ i += 4;
+ break;
+ case '&':
+ res.replace(i, 1, "&amp;");
+ i += 5;
+ break;
+ case '"':
+ res.replace(i, 1, "&quot;");
+ i += 6;
+ break;
+ case '\n':
+ res.replace(i, 1, "<br>");
+ i += 4;
+ break;
+ }
+ }
+ return res;
+}
+
+void ConfigInfoView::expr_print_help(void *data, struct symbol *sym, const char *str)
+{
+ QString* text = reinterpret_cast<QString*>(data);
+ QString str2 = print_filter(str);
+
+ if (sym && sym->name && !(sym->flags & SYMBOL_CONST)) {
+ *text += QString().sprintf("<a href=\"s%p\">", sym);
+ *text += str2;
+ *text += "</a>";
+ } else
+ *text += str2;
+}
+
+QPopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
+{
+ QPopupMenu* popup = Parent::createPopupMenu(pos);
+ QAction* action = new QAction(NULL,"Show Debug Info", 0, popup);
+ action->setToggleAction(TRUE);
+ connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
+ connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
+ action->setOn(showDebug());
+ popup->insertSeparator();
+ action->addTo(popup);
+ return popup;
+}
+
+void ConfigInfoView::contentsContextMenuEvent(QContextMenuEvent *e)
+{
+ Parent::contentsContextMenuEvent(e);
+}
+
+ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent, const char *name)
+ : Parent(parent, name), result(NULL)
+{
+ setCaption("Search Config");
+
+ QVBoxLayout* layout1 = new QVBoxLayout(this, 11, 6);
+ QHBoxLayout* layout2 = new QHBoxLayout(0, 0, 6);
+ layout2->addWidget(new QLabel("Find:", this));
+ editField = new QLineEdit(this);
+ connect(editField, SIGNAL(returnPressed()), SLOT(search()));
+ layout2->addWidget(editField);
+ searchButton = new QPushButton("Search", this);
+ searchButton->setAutoDefault(FALSE);
+ connect(searchButton, SIGNAL(clicked()), SLOT(search()));
+ layout2->addWidget(searchButton);
+ layout1->addLayout(layout2);
+
+ split = new QSplitter(this);
+ split->setOrientation(QSplitter::Vertical);
+ list = new ConfigView(split, name);
+ list->list->mode = listMode;
+ info = new ConfigInfoView(split, name);
+ connect(list->list, SIGNAL(menuChanged(struct menu *)),
+ info, SLOT(setInfo(struct menu *)));
+ connect(list->list, SIGNAL(menuChanged(struct menu *)),
+ parent, SLOT(setMenuLink(struct menu *)));
+
+ layout1->addWidget(split);
+
+ if (name) {
+ int x, y, width, height;
+ bool ok;
+
+ configSettings->beginGroup(name);
+ width = configSettings->readNumEntry("/window width", parent->width() / 2);
+ height = configSettings->readNumEntry("/window height", parent->height() / 2);
+ resize(width, height);
+ x = configSettings->readNumEntry("/window x", 0, &ok);
+ if (ok)
+ y = configSettings->readNumEntry("/window y", 0, &ok);
+ if (ok)
+ move(x, y);
+ QValueList<int> sizes = configSettings->readSizes("/split", &ok);
+ if (ok)
+ split->setSizes(sizes);
+ configSettings->endGroup();
+ connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
+ }
+}
+
+void ConfigSearchWindow::saveSettings(void)
+{
+ if (name()) {
+ configSettings->beginGroup(name());
+ configSettings->writeEntry("/window x", pos().x());
+ configSettings->writeEntry("/window y", pos().y());
+ configSettings->writeEntry("/window width", size().width());
+ configSettings->writeEntry("/window height", size().height());
+ configSettings->writeSizes("/split", split->sizes());
+ configSettings->endGroup();
+ }
+}
+
+void ConfigSearchWindow::search(void)
+{
+ struct symbol **p;
+ struct property *prop;
+ ConfigItem *lastItem = NULL;
+
+ free(result);
+ list->list->clear();
+ info->clear();
+
+ result = sym_re_search(editField->text().latin1());
+ if (!result)
+ return;
+ for (p = result; *p; p++) {
+ for_all_prompts((*p), prop)
+ lastItem = new ConfigItem(list->list, lastItem, prop->menu,
+ menu_is_visible(prop->menu));
+ }
+}
+
+/*
+ * Construct the complete config widget
+ */
+ConfigMainWindow::ConfigMainWindow(void)
+ : searchWindow(0)
+{
+ QMenuBar* menu;
+ bool ok;
+ int x, y, width, height;
+ char title[256];
+
+ QWidget *d = configApp->desktop();
+ snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration"),
+ getenv("KERNELVERSION"));
+ setCaption(title);
+
+ width = configSettings->readNumEntry("/window width", d->width() - 64);
+ height = configSettings->readNumEntry("/window height", d->height() - 64);
+ resize(width, height);
+ x = configSettings->readNumEntry("/window x", 0, &ok);
+ if (ok)
+ y = configSettings->readNumEntry("/window y", 0, &ok);
+ if (ok)
+ move(x, y);
+
+ split1 = new QSplitter(this);
+ split1->setOrientation(QSplitter::Horizontal);
+ setCentralWidget(split1);
+
+ menuView = new ConfigView(split1, "menu");
+ menuList = menuView->list;
+
+ split2 = new QSplitter(split1);
+ split2->setOrientation(QSplitter::Vertical);
+
+ // create config tree
+ configView = new ConfigView(split2, "config");
+ configList = configView->list;
+
+ helpText = new ConfigInfoView(split2, "help");
+ helpText->setTextFormat(Qt::RichText);
+
+ setTabOrder(configList, helpText);
+ configList->setFocus();
+
+ menu = menuBar();
+ toolBar = new QToolBar("Tools", this);
+
+ backAction = new QAction("Back", QPixmap(xpm_back), "Back", 0, this);
+ connect(backAction, SIGNAL(activated()), SLOT(goBack()));
+ backAction->setEnabled(FALSE);
+ QAction *quitAction = new QAction("Quit", "&Quit", CTRL+Key_Q, this);
+ connect(quitAction, SIGNAL(activated()), SLOT(close()));
+ QAction *loadAction = new QAction("Load", QPixmap(xpm_load), "&Load", CTRL+Key_L, this);
+ connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
+ saveAction = new QAction("Save", QPixmap(xpm_save), "&Save", CTRL+Key_S, this);
+ connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
+ conf_set_changed_callback(conf_changed);
+ // Set saveAction's initial state
+ conf_changed();
+ QAction *saveAsAction = new QAction("Save As...", "Save &As...", 0, this);
+ connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
+ QAction *searchAction = new QAction("Find", "&Find", CTRL+Key_F, this);
+ connect(searchAction, SIGNAL(activated()), SLOT(searchConfig()));
+ QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), "Split View", 0, this);
+ connect(singleViewAction, SIGNAL(activated()), SLOT(showSingleView()));
+ QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), "Split View", 0, this);
+ connect(splitViewAction, SIGNAL(activated()), SLOT(showSplitView()));
+ QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), "Full View", 0, this);
+ connect(fullViewAction, SIGNAL(activated()), SLOT(showFullView()));
+
+ QAction *showNameAction = new QAction(NULL, "Show Name", 0, this);
+ showNameAction->setToggleAction(TRUE);
+ connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
+ connect(configView, SIGNAL(showNameChanged(bool)), showNameAction, SLOT(setOn(bool)));
+ showNameAction->setOn(configView->showName());
+ QAction *showRangeAction = new QAction(NULL, "Show Range", 0, this);
+ showRangeAction->setToggleAction(TRUE);
+ connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
+ connect(configView, SIGNAL(showRangeChanged(bool)), showRangeAction, SLOT(setOn(bool)));
+ showRangeAction->setOn(configList->showRange);
+ QAction *showDataAction = new QAction(NULL, "Show Data", 0, this);
+ showDataAction->setToggleAction(TRUE);
+ connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
+ connect(configView, SIGNAL(showDataChanged(bool)), showDataAction, SLOT(setOn(bool)));
+ showDataAction->setOn(configList->showData);
+ QAction *showAllAction = new QAction(NULL, "Show All Options", 0, this);
+ showAllAction->setToggleAction(TRUE);
+ connect(showAllAction, SIGNAL(toggled(bool)), configView, SLOT(setShowAll(bool)));
+ connect(showAllAction, SIGNAL(toggled(bool)), menuView, SLOT(setShowAll(bool)));
+ showAllAction->setOn(configList->showAll);
+ QAction *showDebugAction = new QAction(NULL, "Show Debug Info", 0, this);
+ showDebugAction->setToggleAction(TRUE);
+ connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
+ connect(helpText, SIGNAL(showDebugChanged(bool)), showDebugAction, SLOT(setOn(bool)));
+ showDebugAction->setOn(helpText->showDebug());
+
+ QAction *showIntroAction = new QAction(NULL, "Introduction", 0, this);
+ connect(showIntroAction, SIGNAL(activated()), SLOT(showIntro()));
+ QAction *showAboutAction = new QAction(NULL, "About", 0, this);
+ connect(showAboutAction, SIGNAL(activated()), SLOT(showAbout()));
+
+ // init tool bar
+ backAction->addTo(toolBar);
+ toolBar->addSeparator();
+ loadAction->addTo(toolBar);
+ saveAction->addTo(toolBar);
+ toolBar->addSeparator();
+ singleViewAction->addTo(toolBar);
+ splitViewAction->addTo(toolBar);
+ fullViewAction->addTo(toolBar);
+
+ // create config menu
+ QPopupMenu* config = new QPopupMenu(this);
+ menu->insertItem("&File", config);
+ loadAction->addTo(config);
+ saveAction->addTo(config);
+ saveAsAction->addTo(config);
+ config->insertSeparator();
+ quitAction->addTo(config);
+
+ // create edit menu
+ QPopupMenu* editMenu = new QPopupMenu(this);
+ menu->insertItem("&Edit", editMenu);
+ searchAction->addTo(editMenu);
+
+ // create options menu
+ QPopupMenu* optionMenu = new QPopupMenu(this);
+ menu->insertItem("&Option", optionMenu);
+ showNameAction->addTo(optionMenu);
+ showRangeAction->addTo(optionMenu);
+ showDataAction->addTo(optionMenu);
+ optionMenu->insertSeparator();
+ showAllAction->addTo(optionMenu);
+ showDebugAction->addTo(optionMenu);
+
+ // create help menu
+ QPopupMenu* helpMenu = new QPopupMenu(this);
+ menu->insertSeparator();
+ menu->insertItem("&Help", helpMenu);
+ showIntroAction->addTo(helpMenu);
+ showAboutAction->addTo(helpMenu);
+
+ connect(configList, SIGNAL(menuChanged(struct menu *)),
+ helpText, SLOT(setInfo(struct menu *)));
+ connect(configList, SIGNAL(menuSelected(struct menu *)),
+ SLOT(changeMenu(struct menu *)));
+ connect(configList, SIGNAL(parentSelected()),
+ SLOT(goBack()));
+ connect(menuList, SIGNAL(menuChanged(struct menu *)),
+ helpText, SLOT(setInfo(struct menu *)));
+ connect(menuList, SIGNAL(menuSelected(struct menu *)),
+ SLOT(changeMenu(struct menu *)));
+
+ connect(configList, SIGNAL(gotFocus(struct menu *)),
+ helpText, SLOT(setInfo(struct menu *)));
+ connect(menuList, SIGNAL(gotFocus(struct menu *)),
+ helpText, SLOT(setInfo(struct menu *)));
+ connect(menuList, SIGNAL(gotFocus(struct menu *)),
+ SLOT(listFocusChanged(void)));
+ connect(helpText, SIGNAL(menuSelected(struct menu *)),
+ SLOT(setMenuLink(struct menu *)));
+
+ QString listMode = configSettings->readEntry("/listMode", "symbol");
+ if (listMode == "single")
+ showSingleView();
+ else if (listMode == "full")
+ showFullView();
+ else /*if (listMode == "split")*/
+ showSplitView();
+
+ // UI setup done, restore splitter positions
+ QValueList<int> sizes = configSettings->readSizes("/split1", &ok);
+ if (ok)
+ split1->setSizes(sizes);
+
+ sizes = configSettings->readSizes("/split2", &ok);
+ if (ok)
+ split2->setSizes(sizes);
+}
+
+void ConfigMainWindow::loadConfig(void)
+{
+ QString s = QFileDialog::getOpenFileName(".config", NULL, this);
+ if (s.isNull())
+ return;
+ if (conf_read(QFile::encodeName(s)))
+ QMessageBox::information(this, "qconf", "Unable to load configuration!");
+ ConfigView::updateListAll();
+}
+
+void ConfigMainWindow::saveConfig(void)
+{
+ if (conf_write(NULL))
+ QMessageBox::information(this, "qconf", "Unable to save configuration!");
+}
+
+void ConfigMainWindow::saveConfigAs(void)
+{
+ QString s = QFileDialog::getSaveFileName(".config", NULL, this);
+ if (s.isNull())
+ return;
+ if (conf_write(QFile::encodeName(s)))
+ QMessageBox::information(this, "qconf", "Unable to save configuration!");
+}
+
+void ConfigMainWindow::searchConfig(void)
+{
+ if (!searchWindow)
+ searchWindow = new ConfigSearchWindow(this, "search");
+ searchWindow->show();
+}
+
+void ConfigMainWindow::changeMenu(struct menu *menu)
+{
+ configList->setRootMenu(menu);
+ if (configList->rootEntry->parent == &rootmenu)
+ backAction->setEnabled(FALSE);
+ else
+ backAction->setEnabled(TRUE);
+}
+
+void ConfigMainWindow::setMenuLink(struct menu *menu)
+{
+ struct menu *parent;
+ ConfigList* list = NULL;
+ ConfigItem* item;
+
+ if (!menu_is_visible(menu) && !configView->showAll())
+ return;
+
+ switch (configList->mode) {
+ case singleMode:
+ list = configList;
+ parent = menu_get_parent_menu(menu);
+ if (!parent)
+ return;
+ list->setRootMenu(parent);
+ break;
+ case symbolMode:
+ if (menu->flags & MENU_ROOT) {
+ configList->setRootMenu(menu);
+ configList->clearSelection();
+ list = menuList;
+ } else {
+ list = configList;
+ parent = menu_get_parent_menu(menu->parent);
+ if (!parent)
+ return;
+ item = menuList->findConfigItem(parent);
+ if (item) {
+ menuList->setSelected(item, TRUE);
+ menuList->ensureItemVisible(item);
+ }
+ list->setRootMenu(parent);
+ }
+ break;
+ case fullMode:
+ list = configList;
+ break;
+ }
+
+ if (list) {
+ item = list->findConfigItem(menu);
+ if (item) {
+ list->setSelected(item, TRUE);
+ list->ensureItemVisible(item);
+ list->setFocus();
+ }
+ }
+}
+
+void ConfigMainWindow::listFocusChanged(void)
+{
+ if (menuList->mode == menuMode)
+ configList->clearSelection();
+}
+
+void ConfigMainWindow::goBack(void)
+{
+ ConfigItem* item;
+
+ configList->setParentMenu();
+ if (configList->rootEntry == &rootmenu)
+ backAction->setEnabled(FALSE);
+ item = (ConfigItem*)menuList->selectedItem();
+ while (item) {
+ if (item->menu == configList->rootEntry) {
+ menuList->setSelected(item, TRUE);
+ break;
+ }
+ item = (ConfigItem*)item->parent();
+ }
+}
+
+void ConfigMainWindow::showSingleView(void)
+{
+ menuView->hide();
+ menuList->setRootMenu(0);
+ configList->mode = singleMode;
+ if (configList->rootEntry == &rootmenu)
+ configList->updateListAll();
+ else
+ configList->setRootMenu(&rootmenu);
+ configList->setAllOpen(TRUE);
+ configList->setFocus();
+}
+
+void ConfigMainWindow::showSplitView(void)
+{
+ configList->mode = symbolMode;
+ if (configList->rootEntry == &rootmenu)
+ configList->updateListAll();
+ else
+ configList->setRootMenu(&rootmenu);
+ configList->setAllOpen(TRUE);
+ configApp->processEvents();
+ menuList->mode = menuMode;
+ menuList->setRootMenu(&rootmenu);
+ menuList->setAllOpen(TRUE);
+ menuView->show();
+ menuList->setFocus();
+}
+
+void ConfigMainWindow::showFullView(void)
+{
+ menuView->hide();
+ menuList->setRootMenu(0);
+ configList->mode = fullMode;
+ if (configList->rootEntry == &rootmenu)
+ configList->updateListAll();
+ else
+ configList->setRootMenu(&rootmenu);
+ configList->setAllOpen(FALSE);
+ configList->setFocus();
+}
+
+/*
+ * ask for saving configuration before quitting
+ * TODO ask only when something changed
+ */
+void ConfigMainWindow::closeEvent(QCloseEvent* e)
+{
+ if (!conf_get_changed()) {
+ e->accept();
+ return;
+ }
+ QMessageBox mb("qconf", "Save configuration?", QMessageBox::Warning,
+ QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape);
+ mb.setButtonText(QMessageBox::Yes, "&Save Changes");
+ mb.setButtonText(QMessageBox::No, "&Discard Changes");
+ mb.setButtonText(QMessageBox::Cancel, "Cancel Exit");
+ switch (mb.exec()) {
+ case QMessageBox::Yes:
+ conf_write(NULL);
+ case QMessageBox::No:
+ e->accept();
+ break;
+ case QMessageBox::Cancel:
+ e->ignore();
+ break;
+ }
+}
+
+void ConfigMainWindow::showIntro(void)
+{
+ static char str[] = "Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
+ "For each option, a blank box indicates the feature is disabled, a check\n"
+ "indicates it is enabled, and a dot indicates that it is to be compiled\n"
+ "as a module. Clicking on the box will cycle through the three states.\n\n"
+ "If you do not see an option (e.g., a device driver) that you believe\n"
+ "should be present, try turning on Show All Options under the Options menu.\n"
+ "Although there is no cross reference yet to help you figure out what other\n"
+ "options must be enabled to support the option you are interested in, you can\n"
+ "still view the help of a grayed-out option.\n\n"
+ "Toggling Show Debug Info under the Options menu will show the dependencies,\n"
+ "which you can then match by examining other options.\n\n";
+
+ QMessageBox::information(this, "qconf", str);
+}
+
+void ConfigMainWindow::showAbout(void)
+{
+ static char str[] = "qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
+ "Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n";
+
+ QMessageBox::information(this, "qconf", str);
+}
+
+void ConfigMainWindow::saveSettings(void)
+{
+ configSettings->writeEntry("/window x", pos().x());
+ configSettings->writeEntry("/window y", pos().y());
+ configSettings->writeEntry("/window width", size().width());
+ configSettings->writeEntry("/window height", size().height());
+
+ QString entry;
+ switch(configList->mode) {
+ case singleMode :
+ entry = "single";
+ break;
+
+ case symbolMode :
+ entry = "split";
+ break;
+
+ case fullMode :
+ entry = "full";
+ break;
+ }
+ configSettings->writeEntry("/listMode", entry);
+
+ configSettings->writeSizes("/split1", split1->sizes());
+ configSettings->writeSizes("/split2", split2->sizes());
+}
+
+void ConfigMainWindow::conf_changed(void)
+{
+ if (saveAction)
+ saveAction->setEnabled(conf_get_changed());
+}
+
+void fixup_rootmenu(struct menu *menu)
+{
+ struct menu *child;
+ static int menu_cnt = 0;
+
+ menu->flags |= MENU_ROOT;
+ for (child = menu->list; child; child = child->next) {
+ if (child->prompt && child->prompt->type == P_MENU) {
+ menu_cnt++;
+ fixup_rootmenu(child);
+ menu_cnt--;
+ } else if (!menu_cnt)
+ fixup_rootmenu(child);
+ }
+}
+
+static const char *progname;
+
+static void usage(void)
+{
+ printf("%s <config>\n", progname);
+ exit(0);
+}
+
+int main(int ac, char** av)
+{
+ ConfigMainWindow* v;
+ const char *name;
+
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+#ifndef LKC_DIRECT_LINK
+ kconfig_load();
+#endif
+
+ progname = av[0];
+ configApp = new QApplication(ac, av);
+ if (ac > 1 && av[1][0] == '-') {
+ switch (av[1][1]) {
+ case 'h':
+ case '?':
+ usage();
+ }
+ name = av[2];
+ } else
+ name = av[1];
+ if (!name)
+ usage();
+
+ conf_parse(name);
+ fixup_rootmenu(&rootmenu);
+ conf_read(NULL);
+ //zconfdump(stdout);
+
+ configSettings = new ConfigSettings();
+ configSettings->beginGroup("/kconfig/qconf");
+ v = new ConfigMainWindow();
+
+ //zconfdump(stdout);
+ configApp->setMainWidget(v);
+ configApp->connect(configApp, SIGNAL(lastWindowClosed()), SLOT(quit()));
+ configApp->connect(configApp, SIGNAL(aboutToQuit()), v, SLOT(saveSettings()));
+ v->show();
+ configApp->exec();
+
+ configSettings->endGroup();
+ delete configSettings;
+
+ return 0;
+}
diff --git a/cleopatre/buildroot/package/config/qconf.h b/cleopatre/buildroot/package/config/qconf.h
new file mode 100644
index 0000000000..b3b5657b6b
--- /dev/null
+++ b/cleopatre/buildroot/package/config/qconf.h
@@ -0,0 +1,334 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <qlistview.h>
+#if QT_VERSION >= 300
+#include <qsettings.h>
+#else
+class QSettings {
+public:
+ void beginGroup(const QString& group) { }
+ void endGroup(void) { }
+ bool readBoolEntry(const QString& key, bool def = FALSE, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return def; }
+ int readNumEntry(const QString& key, int def = 0, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return def; }
+ QString readEntry(const QString& key, const QString& def = QString::null, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return def; }
+ QStringList readListEntry(const QString& key, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return QStringList(); }
+ template <class t>
+ bool writeEntry(const QString& key, t value)
+ { return TRUE; }
+};
+#endif
+
+class ConfigView;
+class ConfigList;
+class ConfigItem;
+class ConfigLineEdit;
+class ConfigMainWindow;
+
+
+class ConfigSettings : public QSettings {
+public:
+ QValueList<int> readSizes(const QString& key, bool *ok);
+ bool writeSizes(const QString& key, const QValueList<int>& value);
+};
+
+enum colIdx {
+ promptColIdx, nameColIdx, noColIdx, modColIdx, yesColIdx, dataColIdx, colNr
+};
+enum listMode {
+ singleMode, menuMode, symbolMode, fullMode, listMode
+};
+
+class ConfigList : public QListView {
+ Q_OBJECT
+ typedef class QListView Parent;
+public:
+ ConfigList(ConfigView* p, const char *name = 0);
+ void reinit(void);
+ ConfigView* parent(void) const
+ {
+ return (ConfigView*)Parent::parent();
+ }
+ ConfigItem* findConfigItem(struct menu *);
+
+protected:
+ void keyPressEvent(QKeyEvent *e);
+ void contentsMousePressEvent(QMouseEvent *e);
+ void contentsMouseReleaseEvent(QMouseEvent *e);
+ void contentsMouseMoveEvent(QMouseEvent *e);
+ void contentsMouseDoubleClickEvent(QMouseEvent *e);
+ void focusInEvent(QFocusEvent *e);
+ void contextMenuEvent(QContextMenuEvent *e);
+
+public slots:
+ void setRootMenu(struct menu *menu);
+
+ void updateList(ConfigItem *item);
+ void setValue(ConfigItem* item, tristate val);
+ void changeValue(ConfigItem* item);
+ void updateSelection(void);
+ void saveSettings(void);
+signals:
+ void menuChanged(struct menu *menu);
+ void menuSelected(struct menu *menu);
+ void parentSelected(void);
+ void gotFocus(struct menu *);
+
+public:
+ void updateListAll(void)
+ {
+ updateAll = true;
+ updateList(NULL);
+ updateAll = false;
+ }
+ ConfigList* listView()
+ {
+ return this;
+ }
+ ConfigItem* firstChild() const
+ {
+ return (ConfigItem *)Parent::firstChild();
+ }
+ int mapIdx(colIdx idx)
+ {
+ return colMap[idx];
+ }
+ void addColumn(colIdx idx, const QString& label)
+ {
+ colMap[idx] = Parent::addColumn(label);
+ colRevMap[colMap[idx]] = idx;
+ }
+ void removeColumn(colIdx idx)
+ {
+ int col = colMap[idx];
+ if (col >= 0) {
+ Parent::removeColumn(col);
+ colRevMap[col] = colMap[idx] = -1;
+ }
+ }
+ void setAllOpen(bool open);
+ void setParentMenu(void);
+
+ template <class P>
+ void updateMenuList(P*, struct menu*);
+
+ bool updateAll;
+
+ QPixmap symbolYesPix, symbolModPix, symbolNoPix;
+ QPixmap choiceYesPix, choiceNoPix;
+ QPixmap menuPix, menuInvPix, menuBackPix, voidPix;
+
+ bool showAll, showName, showRange, showData;
+ enum listMode mode;
+ struct menu *rootEntry;
+ QColorGroup disabledColorGroup;
+ QColorGroup inactivedColorGroup;
+ QPopupMenu* headerPopup;
+
+private:
+ int colMap[colNr];
+ int colRevMap[colNr];
+};
+
+class ConfigItem : public QListViewItem {
+ typedef class QListViewItem Parent;
+public:
+ ConfigItem(QListView *parent, ConfigItem *after, struct menu *m, bool v)
+ : Parent(parent, after), menu(m), visible(v), goParent(false)
+ {
+ init();
+ }
+ ConfigItem(ConfigItem *parent, ConfigItem *after, struct menu *m, bool v)
+ : Parent(parent, after), menu(m), visible(v), goParent(false)
+ {
+ init();
+ }
+ ConfigItem(QListView *parent, ConfigItem *after, bool v)
+ : Parent(parent, after), menu(0), visible(v), goParent(true)
+ {
+ init();
+ }
+ ~ConfigItem(void);
+ void init(void);
+#if QT_VERSION >= 300
+ void okRename(int col);
+#endif
+ void updateMenu(void);
+ void testUpdateMenu(bool v);
+ ConfigList* listView() const
+ {
+ return (ConfigList*)Parent::listView();
+ }
+ ConfigItem* firstChild() const
+ {
+ return (ConfigItem *)Parent::firstChild();
+ }
+ ConfigItem* nextSibling() const
+ {
+ return (ConfigItem *)Parent::nextSibling();
+ }
+ void setText(colIdx idx, const QString& text)
+ {
+ Parent::setText(listView()->mapIdx(idx), text);
+ }
+ QString text(colIdx idx) const
+ {
+ return Parent::text(listView()->mapIdx(idx));
+ }
+ void setPixmap(colIdx idx, const QPixmap& pm)
+ {
+ Parent::setPixmap(listView()->mapIdx(idx), pm);
+ }
+ const QPixmap* pixmap(colIdx idx) const
+ {
+ return Parent::pixmap(listView()->mapIdx(idx));
+ }
+ void paintCell(QPainter* p, const QColorGroup& cg, int column, int width, int align);
+
+ ConfigItem* nextItem;
+ struct menu *menu;
+ bool visible;
+ bool goParent;
+};
+
+class ConfigLineEdit : public QLineEdit {
+ Q_OBJECT
+ typedef class QLineEdit Parent;
+public:
+ ConfigLineEdit(ConfigView* parent);
+ ConfigView* parent(void) const
+ {
+ return (ConfigView*)Parent::parent();
+ }
+ void show(ConfigItem *i);
+ void keyPressEvent(QKeyEvent *e);
+
+public:
+ ConfigItem *item;
+};
+
+class ConfigView : public QVBox {
+ Q_OBJECT
+ typedef class QVBox Parent;
+public:
+ ConfigView(QWidget* parent, const char *name = 0);
+ ~ConfigView(void);
+ static void updateList(ConfigItem* item);
+ static void updateListAll(void);
+
+ bool showAll(void) const { return list->showAll; }
+ bool showName(void) const { return list->showName; }
+ bool showRange(void) const { return list->showRange; }
+ bool showData(void) const { return list->showData; }
+public slots:
+ void setShowAll(bool);
+ void setShowName(bool);
+ void setShowRange(bool);
+ void setShowData(bool);
+signals:
+ void showAllChanged(bool);
+ void showNameChanged(bool);
+ void showRangeChanged(bool);
+ void showDataChanged(bool);
+public:
+ ConfigList* list;
+ ConfigLineEdit* lineEdit;
+
+ static ConfigView* viewList;
+ ConfigView* nextView;
+};
+
+class ConfigInfoView : public QTextBrowser {
+ Q_OBJECT
+ typedef class QTextBrowser Parent;
+public:
+ ConfigInfoView(QWidget* parent, const char *name = 0);
+ bool showDebug(void) const { return _showDebug; }
+
+public slots:
+ void setInfo(struct menu *menu);
+ void saveSettings(void);
+ void setSource(const QString& name);
+ void setShowDebug(bool);
+
+signals:
+ void showDebugChanged(bool);
+ void menuSelected(struct menu *);
+
+protected:
+ void symbolInfo(void);
+ void menuInfo(void);
+ QString debug_info(struct symbol *sym);
+ static QString print_filter(const QString &str);
+ static void expr_print_help(void *data, struct symbol *sym, const char *str);
+ QPopupMenu* createPopupMenu(const QPoint& pos);
+ void contentsContextMenuEvent(QContextMenuEvent *e);
+
+ struct symbol *sym;
+ struct menu *menu;
+ bool _showDebug;
+};
+
+class ConfigSearchWindow : public QDialog {
+ Q_OBJECT
+ typedef class QDialog Parent;
+public:
+ ConfigSearchWindow(ConfigMainWindow* parent, const char *name = 0);
+
+public slots:
+ void saveSettings(void);
+ void search(void);
+
+protected:
+ QLineEdit* editField;
+ QPushButton* searchButton;
+ QSplitter* split;
+ ConfigView* list;
+ ConfigInfoView* info;
+
+ struct symbol **result;
+};
+
+class ConfigMainWindow : public QMainWindow {
+ Q_OBJECT
+
+ static QAction *saveAction;
+ static void conf_changed(void);
+public:
+ ConfigMainWindow(void);
+public slots:
+ void changeMenu(struct menu *);
+ void setMenuLink(struct menu *);
+ void listFocusChanged(void);
+ void goBack(void);
+ void loadConfig(void);
+ void saveConfig(void);
+ void saveConfigAs(void);
+ void searchConfig(void);
+ void showSingleView(void);
+ void showSplitView(void);
+ void showFullView(void);
+ void showIntro(void);
+ void showAbout(void);
+ void saveSettings(void);
+
+protected:
+ void closeEvent(QCloseEvent *e);
+
+ ConfigSearchWindow *searchWindow;
+ ConfigView *menuView;
+ ConfigList *menuList;
+ ConfigView *configView;
+ ConfigList *configList;
+ ConfigInfoView *helpText;
+ QToolBar *toolBar;
+ QAction *backAction;
+ QSplitter* split1;
+ QSplitter* split2;
+};
diff --git a/cleopatre/buildroot/package/config/symbol.c b/cleopatre/buildroot/package/config/symbol.c
new file mode 100644
index 0000000000..0a61042338
--- /dev/null
+++ b/cleopatre/buildroot/package/config/symbol.c
@@ -0,0 +1,878 @@
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+#include <regex.h>
+#include <sys/utsname.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+struct symbol symbol_yes = {
+ .name = "y",
+ .curr = { "y", yes },
+ .flags = SYMBOL_CONST|SYMBOL_VALID,
+}, symbol_mod = {
+ .name = "m",
+ .curr = { "m", mod },
+ .flags = SYMBOL_CONST|SYMBOL_VALID,
+}, symbol_no = {
+ .name = "n",
+ .curr = { "n", no },
+ .flags = SYMBOL_CONST|SYMBOL_VALID,
+}, symbol_empty = {
+ .name = "",
+ .curr = { "", no },
+ .flags = SYMBOL_VALID,
+};
+
+struct symbol *sym_defconfig_list;
+struct symbol *modules_sym;
+tristate modules_val;
+
+void sym_add_default(struct symbol *sym, const char *def)
+{
+ struct property *prop = prop_alloc(P_DEFAULT, sym);
+
+ prop->expr = expr_alloc_symbol(sym_lookup(def, 1));
+}
+
+void sym_init(void)
+{
+ struct symbol *sym;
+ struct utsname uts;
+ char *p;
+ static bool inited = false;
+
+ if (inited)
+ return;
+ inited = true;
+
+ uname(&uts);
+
+ sym = sym_lookup("ARCH", 0);
+ sym->type = S_STRING;
+ sym->flags |= SYMBOL_AUTO;
+ p = getenv("ARCH");
+ if (p)
+ sym_add_default(sym, p);
+
+ sym = sym_lookup("BR2_VERSION", 0);
+ sym->type = S_STRING;
+ sym->flags |= SYMBOL_AUTO;
+ p = getenv("BR2_VERSION");
+ if (p)
+ sym_add_default(sym, p);
+
+ sym = sym_lookup("UNAME_RELEASE", 0);
+ sym->type = S_STRING;
+ sym->flags |= SYMBOL_AUTO;
+ sym_add_default(sym, uts.release);
+}
+
+enum symbol_type sym_get_type(struct symbol *sym)
+{
+ enum symbol_type type = sym->type;
+
+ if (type == S_TRISTATE) {
+ if (sym_is_choice_value(sym) && sym->visible == yes)
+ type = S_BOOLEAN;
+ else if (modules_val == no)
+ type = S_BOOLEAN;
+ }
+ return type;
+}
+
+const char *sym_type_name(enum symbol_type type)
+{
+ switch (type) {
+ case S_BOOLEAN:
+ return "boolean";
+ case S_TRISTATE:
+ return "tristate";
+ case S_INT:
+ return "integer";
+ case S_HEX:
+ return "hex";
+ case S_STRING:
+ return "string";
+ case S_UNKNOWN:
+ return "unknown";
+ case S_OTHER:
+ break;
+ }
+ return "???";
+}
+
+struct property *sym_get_choice_prop(struct symbol *sym)
+{
+ struct property *prop;
+
+ for_all_choices(sym, prop)
+ return prop;
+ return NULL;
+}
+
+struct property *sym_get_default_prop(struct symbol *sym)
+{
+ struct property *prop;
+
+ for_all_defaults(sym, prop) {
+ prop->visible.tri = expr_calc_value(prop->visible.expr);
+ if (prop->visible.tri != no)
+ return prop;
+ }
+ return NULL;
+}
+
+struct property *sym_get_range_prop(struct symbol *sym)
+{
+ struct property *prop;
+
+ for_all_properties(sym, prop, P_RANGE) {
+ prop->visible.tri = expr_calc_value(prop->visible.expr);
+ if (prop->visible.tri != no)
+ return prop;
+ }
+ return NULL;
+}
+
+static int sym_get_range_val(struct symbol *sym, int base)
+{
+ sym_calc_value(sym);
+ switch (sym->type) {
+ case S_INT:
+ base = 10;
+ break;
+ case S_HEX:
+ base = 16;
+ break;
+ default:
+ break;
+ }
+ return strtol(sym->curr.val, NULL, base);
+}
+
+static void sym_validate_range(struct symbol *sym)
+{
+ struct property *prop;
+ int base, val, val2;
+ char str[64];
+
+ switch (sym->type) {
+ case S_INT:
+ base = 10;
+ break;
+ case S_HEX:
+ base = 16;
+ break;
+ default:
+ return;
+ }
+ prop = sym_get_range_prop(sym);
+ if (!prop)
+ return;
+ val = strtol(sym->curr.val, NULL, base);
+ val2 = sym_get_range_val(prop->expr->left.sym, base);
+ if (val >= val2) {
+ val2 = sym_get_range_val(prop->expr->right.sym, base);
+ if (val <= val2)
+ return;
+ }
+ if (sym->type == S_INT)
+ sprintf(str, "%d", val2);
+ else
+ sprintf(str, "0x%x", val2);
+ sym->curr.val = strdup(str);
+}
+
+static void sym_calc_visibility(struct symbol *sym)
+{
+ struct property *prop;
+ tristate tri;
+
+ /* any prompt visible? */
+ tri = no;
+ for_all_prompts(sym, prop) {
+ prop->visible.tri = expr_calc_value(prop->visible.expr);
+ tri = E_OR(tri, prop->visible.tri);
+ }
+ if (tri == mod && (sym->type != S_TRISTATE || modules_val == no))
+ tri = yes;
+ if (sym->visible != tri) {
+ sym->visible = tri;
+ sym_set_changed(sym);
+ }
+ if (sym_is_choice_value(sym))
+ return;
+ tri = no;
+ if (sym->rev_dep.expr)
+ tri = expr_calc_value(sym->rev_dep.expr);
+ if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
+ tri = yes;
+ if (sym->rev_dep.tri != tri) {
+ sym->rev_dep.tri = tri;
+ sym_set_changed(sym);
+ }
+}
+
+static struct symbol *sym_calc_choice(struct symbol *sym)
+{
+ struct symbol *def_sym;
+ struct property *prop;
+ struct expr *e;
+
+ /* is the user choice visible? */
+ def_sym = sym->def[S_DEF_USER].val;
+ if (def_sym) {
+ sym_calc_visibility(def_sym);
+ if (def_sym->visible != no)
+ return def_sym;
+ }
+
+ /* any of the defaults visible? */
+ for_all_defaults(sym, prop) {
+ prop->visible.tri = expr_calc_value(prop->visible.expr);
+ if (prop->visible.tri == no)
+ continue;
+ def_sym = prop_get_symbol(prop);
+ sym_calc_visibility(def_sym);
+ if (def_sym->visible != no)
+ return def_sym;
+ }
+
+ /* just get the first visible value */
+ prop = sym_get_choice_prop(sym);
+ for (e = prop->expr; e; e = e->left.expr) {
+ def_sym = e->right.sym;
+ sym_calc_visibility(def_sym);
+ if (def_sym->visible != no)
+ return def_sym;
+ }
+
+ /* no choice? reset tristate value */
+ sym->curr.tri = no;
+ return NULL;
+}
+
+void sym_calc_value(struct symbol *sym)
+{
+ struct symbol_value newval, oldval;
+ struct property *prop;
+ struct expr *e;
+
+ if (!sym)
+ return;
+
+ if (sym->flags & SYMBOL_VALID)
+ return;
+ sym->flags |= SYMBOL_VALID;
+
+ oldval = sym->curr;
+
+ switch (sym->type) {
+ case S_INT:
+ case S_HEX:
+ case S_STRING:
+ newval = symbol_empty.curr;
+ break;
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ newval = symbol_no.curr;
+ break;
+ default:
+ sym->curr.val = sym->name;
+ sym->curr.tri = no;
+ return;
+ }
+ if (!sym_is_choice_value(sym))
+ sym->flags &= ~SYMBOL_WRITE;
+
+ sym_calc_visibility(sym);
+
+ /* set default if recursively called */
+ sym->curr = newval;
+
+ switch (sym_get_type(sym)) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ if (sym_is_choice_value(sym) && sym->visible == yes) {
+ prop = sym_get_choice_prop(sym);
+ newval.tri = (prop_get_symbol(prop)->curr.val == sym) ? yes : no;
+ } else if (E_OR(sym->visible, sym->rev_dep.tri) != no) {
+ sym->flags |= SYMBOL_WRITE;
+ if (sym_has_value(sym))
+ newval.tri = sym->def[S_DEF_USER].tri;
+ else if (!sym_is_choice(sym)) {
+ prop = sym_get_default_prop(sym);
+ if (prop)
+ newval.tri = expr_calc_value(prop->expr);
+ }
+ newval.tri = E_OR(E_AND(newval.tri, sym->visible), sym->rev_dep.tri);
+ } else if (!sym_is_choice(sym)) {
+ prop = sym_get_default_prop(sym);
+ if (prop) {
+ sym->flags |= SYMBOL_WRITE;
+ newval.tri = expr_calc_value(prop->expr);
+ }
+ }
+ if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
+ newval.tri = yes;
+ break;
+ case S_STRING:
+ case S_HEX:
+ case S_INT:
+ if (sym->visible != no) {
+ sym->flags |= SYMBOL_WRITE;
+ if (sym_has_value(sym)) {
+ newval.val = sym->def[S_DEF_USER].val;
+ break;
+ }
+ }
+ prop = sym_get_default_prop(sym);
+ if (prop) {
+ struct symbol *ds = prop_get_symbol(prop);
+ if (ds) {
+ sym->flags |= SYMBOL_WRITE;
+ sym_calc_value(ds);
+ newval.val = ds->curr.val;
+ }
+ }
+ break;
+ default:
+ ;
+ }
+
+ sym->curr = newval;
+ if (sym_is_choice(sym) && newval.tri == yes)
+ sym->curr.val = sym_calc_choice(sym);
+ sym_validate_range(sym);
+
+ if (memcmp(&oldval, &sym->curr, sizeof(oldval))) {
+ sym_set_changed(sym);
+ if (modules_sym == sym) {
+ sym_set_all_changed();
+ modules_val = modules_sym->curr.tri;
+ }
+ }
+
+ if (sym_is_choice(sym)) {
+ int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
+ prop = sym_get_choice_prop(sym);
+ for (e = prop->expr; e; e = e->left.expr) {
+ e->right.sym->flags |= flags;
+ if (flags & SYMBOL_CHANGED)
+ sym_set_changed(e->right.sym);
+ }
+ }
+}
+
+void sym_clear_all_valid(void)
+{
+ struct symbol *sym;
+ int i;
+
+ for_all_symbols(i, sym)
+ sym->flags &= ~SYMBOL_VALID;
+ sym_add_change_count(1);
+ if (modules_sym)
+ sym_calc_value(modules_sym);
+}
+
+void sym_set_changed(struct symbol *sym)
+{
+ struct property *prop;
+
+ sym->flags |= SYMBOL_CHANGED;
+ for (prop = sym->prop; prop; prop = prop->next) {
+ if (prop->menu)
+ prop->menu->flags |= MENU_CHANGED;
+ }
+}
+
+void sym_set_all_changed(void)
+{
+ struct symbol *sym;
+ int i;
+
+ for_all_symbols(i, sym)
+ sym_set_changed(sym);
+}
+
+bool sym_tristate_within_range(struct symbol *sym, tristate val)
+{
+ int type = sym_get_type(sym);
+
+ if (sym->visible == no)
+ return false;
+
+ if (type != S_BOOLEAN && type != S_TRISTATE)
+ return false;
+
+ if (type == S_BOOLEAN && val == mod)
+ return false;
+ if (sym->visible <= sym->rev_dep.tri)
+ return false;
+ if (sym_is_choice_value(sym) && sym->visible == yes)
+ return val == yes;
+ return val >= sym->rev_dep.tri && val <= sym->visible;
+}
+
+bool sym_set_tristate_value(struct symbol *sym, tristate val)
+{
+ tristate oldval = sym_get_tristate_value(sym);
+
+ if (oldval != val && !sym_tristate_within_range(sym, val))
+ return false;
+
+ if (!(sym->flags & SYMBOL_DEF_USER)) {
+ sym->flags |= SYMBOL_DEF_USER;
+ sym_set_changed(sym);
+ }
+ /*
+ * setting a choice value also resets the new flag of the choice
+ * symbol and all other choice values.
+ */
+ if (sym_is_choice_value(sym) && val == yes) {
+ struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
+ struct property *prop;
+ struct expr *e;
+
+ cs->def[S_DEF_USER].val = sym;
+ cs->flags |= SYMBOL_DEF_USER;
+ prop = sym_get_choice_prop(cs);
+ for (e = prop->expr; e; e = e->left.expr) {
+ if (e->right.sym->visible != no)
+ e->right.sym->flags |= SYMBOL_DEF_USER;
+ }
+ }
+
+ sym->def[S_DEF_USER].tri = val;
+ if (oldval != val)
+ sym_clear_all_valid();
+
+ return true;
+}
+
+tristate sym_toggle_tristate_value(struct symbol *sym)
+{
+ tristate oldval, newval;
+
+ oldval = newval = sym_get_tristate_value(sym);
+ do {
+ switch (newval) {
+ case no:
+ newval = mod;
+ break;
+ case mod:
+ newval = yes;
+ break;
+ case yes:
+ newval = no;
+ break;
+ }
+ if (sym_set_tristate_value(sym, newval))
+ break;
+ } while (oldval != newval);
+ return newval;
+}
+
+bool sym_string_valid(struct symbol *sym, const char *str)
+{
+ signed char ch;
+
+ switch (sym->type) {
+ case S_STRING:
+ return true;
+ case S_INT:
+ ch = *str++;
+ if (ch == '-')
+ ch = *str++;
+ if (!isdigit(ch))
+ return false;
+ if (ch == '0' && *str != 0)
+ return false;
+ while ((ch = *str++)) {
+ if (!isdigit(ch))
+ return false;
+ }
+ return true;
+ case S_HEX:
+ if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X'))
+ str += 2;
+ ch = *str++;
+ do {
+ if (!isxdigit(ch))
+ return false;
+ } while ((ch = *str++));
+ return true;
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ switch (str[0]) {
+ case 'y': case 'Y':
+ case 'm': case 'M':
+ case 'n': case 'N':
+ return true;
+ }
+ return false;
+ default:
+ return false;
+ }
+}
+
+bool sym_string_within_range(struct symbol *sym, const char *str)
+{
+ struct property *prop;
+ int val;
+
+ switch (sym->type) {
+ case S_STRING:
+ return sym_string_valid(sym, str);
+ case S_INT:
+ if (!sym_string_valid(sym, str))
+ return false;
+ prop = sym_get_range_prop(sym);
+ if (!prop)
+ return true;
+ val = strtol(str, NULL, 10);
+ return val >= sym_get_range_val(prop->expr->left.sym, 10) &&
+ val <= sym_get_range_val(prop->expr->right.sym, 10);
+ case S_HEX:
+ if (!sym_string_valid(sym, str))
+ return false;
+ prop = sym_get_range_prop(sym);
+ if (!prop)
+ return true;
+ val = strtol(str, NULL, 16);
+ return val >= sym_get_range_val(prop->expr->left.sym, 16) &&
+ val <= sym_get_range_val(prop->expr->right.sym, 16);
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ switch (str[0]) {
+ case 'y': case 'Y':
+ return sym_tristate_within_range(sym, yes);
+ case 'm': case 'M':
+ return sym_tristate_within_range(sym, mod);
+ case 'n': case 'N':
+ return sym_tristate_within_range(sym, no);
+ }
+ return false;
+ default:
+ return false;
+ }
+}
+
+bool sym_set_string_value(struct symbol *sym, const char *newval)
+{
+ const char *oldval;
+ char *val;
+ int size;
+
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ switch (newval[0]) {
+ case 'y': case 'Y':
+ return sym_set_tristate_value(sym, yes);
+ case 'm': case 'M':
+ return sym_set_tristate_value(sym, mod);
+ case 'n': case 'N':
+ return sym_set_tristate_value(sym, no);
+ }
+ return false;
+ default:
+ ;
+ }
+
+ if (!sym_string_within_range(sym, newval))
+ return false;
+
+ if (!(sym->flags & SYMBOL_DEF_USER)) {
+ sym->flags |= SYMBOL_DEF_USER;
+ sym_set_changed(sym);
+ }
+
+ oldval = sym->def[S_DEF_USER].val;
+ size = strlen(newval) + 1;
+ if (sym->type == S_HEX && (newval[0] != '0' || (newval[1] != 'x' && newval[1] != 'X'))) {
+ size += 2;
+ sym->def[S_DEF_USER].val = val = malloc(size);
+ *val++ = '0';
+ *val++ = 'x';
+ } else if (!oldval || strcmp(oldval, newval))
+ sym->def[S_DEF_USER].val = val = malloc(size);
+ else
+ return true;
+
+ strcpy(val, newval);
+ free((void *)oldval);
+ sym_clear_all_valid();
+
+ return true;
+}
+
+const char *sym_get_string_value(struct symbol *sym)
+{
+ tristate val;
+
+ switch (sym->type) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ val = sym_get_tristate_value(sym);
+ switch (val) {
+ case no:
+ return "n";
+ case mod:
+ return "m";
+ case yes:
+ return "y";
+ }
+ break;
+ default:
+ ;
+ }
+ return (const char *)sym->curr.val;
+}
+
+bool sym_is_changable(struct symbol *sym)
+{
+ return sym->visible > sym->rev_dep.tri;
+}
+
+struct symbol *sym_lookup(const char *name, int isconst)
+{
+ struct symbol *symbol;
+ const char *ptr;
+ char *new_name;
+ int hash = 0;
+
+ if (name) {
+ if (name[0] && !name[1]) {
+ switch (name[0]) {
+ case 'y': return &symbol_yes;
+ case 'm': return &symbol_mod;
+ case 'n': return &symbol_no;
+ }
+ }
+ for (ptr = name; *ptr; ptr++)
+ hash += *ptr;
+ hash &= 0xff;
+
+ for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
+ if (!strcmp(symbol->name, name)) {
+ if ((isconst && symbol->flags & SYMBOL_CONST) ||
+ (!isconst && !(symbol->flags & SYMBOL_CONST)))
+ return symbol;
+ }
+ }
+ new_name = strdup(name);
+ } else {
+ new_name = NULL;
+ hash = 256;
+ }
+
+ symbol = malloc(sizeof(*symbol));
+ memset(symbol, 0, sizeof(*symbol));
+ symbol->name = new_name;
+ symbol->type = S_UNKNOWN;
+ if (isconst)
+ symbol->flags |= SYMBOL_CONST;
+
+ symbol->next = symbol_hash[hash];
+ symbol_hash[hash] = symbol;
+
+ return symbol;
+}
+
+struct symbol *sym_find(const char *name)
+{
+ struct symbol *symbol = NULL;
+ const char *ptr;
+ int hash = 0;
+
+ if (!name)
+ return NULL;
+
+ if (name[0] && !name[1]) {
+ switch (name[0]) {
+ case 'y': return &symbol_yes;
+ case 'm': return &symbol_mod;
+ case 'n': return &symbol_no;
+ }
+ }
+ for (ptr = name; *ptr; ptr++)
+ hash += *ptr;
+ hash &= 0xff;
+
+ for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
+ if (!strcmp(symbol->name, name) &&
+ !(symbol->flags & SYMBOL_CONST))
+ break;
+ }
+
+ return symbol;
+}
+
+struct symbol **sym_re_search(const char *pattern)
+{
+ struct symbol *sym, **sym_arr = NULL;
+ int i, cnt, size;
+ regex_t re;
+
+ cnt = size = 0;
+ /* Skip if empty */
+ if (strlen(pattern) == 0)
+ return NULL;
+ if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB|REG_ICASE))
+ return NULL;
+
+ for_all_symbols(i, sym) {
+ if (sym->flags & SYMBOL_CONST || !sym->name)
+ continue;
+ if (regexec(&re, sym->name, 0, NULL, 0))
+ continue;
+ if (cnt + 1 >= size) {
+ void *tmp = sym_arr;
+ size += 16;
+ sym_arr = realloc(sym_arr, size * sizeof(struct symbol *));
+ if (!sym_arr) {
+ free(tmp);
+ return NULL;
+ }
+ }
+ sym_arr[cnt++] = sym;
+ }
+ if (sym_arr)
+ sym_arr[cnt] = NULL;
+ regfree(&re);
+
+ return sym_arr;
+}
+
+
+struct symbol *sym_check_deps(struct symbol *sym);
+
+static struct symbol *sym_check_expr_deps(struct expr *e)
+{
+ struct symbol *sym;
+
+ if (!e)
+ return NULL;
+ switch (e->type) {
+ case E_OR:
+ case E_AND:
+ sym = sym_check_expr_deps(e->left.expr);
+ if (sym)
+ return sym;
+ return sym_check_expr_deps(e->right.expr);
+ case E_NOT:
+ return sym_check_expr_deps(e->left.expr);
+ case E_EQUAL:
+ case E_UNEQUAL:
+ sym = sym_check_deps(e->left.sym);
+ if (sym)
+ return sym;
+ return sym_check_deps(e->right.sym);
+ case E_SYMBOL:
+ return sym_check_deps(e->left.sym);
+ default:
+ break;
+ }
+ printf("Oops! How to check %d?\n", e->type);
+ return NULL;
+}
+
+/* return NULL when dependencies are OK */
+struct symbol *sym_check_deps(struct symbol *sym)
+{
+ struct symbol *sym2;
+ struct property *prop;
+
+ if (sym->flags & SYMBOL_CHECK) {
+ fprintf(stderr, "%s:%d:error: found recursive dependency: %s",
+ sym->prop->file->name, sym->prop->lineno, sym->name);
+ return sym;
+ }
+ if (sym->flags & SYMBOL_CHECKED)
+ return NULL;
+
+ sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
+ sym2 = sym_check_expr_deps(sym->rev_dep.expr);
+ if (sym2)
+ goto out;
+
+ for (prop = sym->prop; prop; prop = prop->next) {
+ if (prop->type == P_CHOICE || prop->type == P_SELECT)
+ continue;
+ sym2 = sym_check_expr_deps(prop->visible.expr);
+ if (sym2)
+ goto out;
+ if (prop->type != P_DEFAULT || sym_is_choice(sym))
+ continue;
+ sym2 = sym_check_expr_deps(prop->expr);
+ if (sym2)
+ goto out;
+ }
+out:
+ if (sym2)
+ fprintf(stderr, " -> %s%s", sym->name, sym2 == sym? "\n": "");
+ sym->flags &= ~SYMBOL_CHECK;
+ return sym2;
+}
+
+struct property *prop_alloc(enum prop_type type, struct symbol *sym)
+{
+ struct property *prop;
+ struct property **propp;
+
+ prop = malloc(sizeof(*prop));
+ memset(prop, 0, sizeof(*prop));
+ prop->type = type;
+ prop->sym = sym;
+ prop->file = current_file;
+ prop->lineno = zconf_lineno();
+
+ /* append property to the prop list of symbol */
+ if (sym) {
+ for (propp = &sym->prop; *propp; propp = &(*propp)->next)
+ ;
+ *propp = prop;
+ }
+
+ return prop;
+}
+
+struct symbol *prop_get_symbol(struct property *prop)
+{
+ if (prop->expr && (prop->expr->type == E_SYMBOL ||
+ prop->expr->type == E_CHOICE))
+ return prop->expr->left.sym;
+ return NULL;
+}
+
+const char *prop_get_type_name(enum prop_type type)
+{
+ switch (type) {
+ case P_PROMPT:
+ return "prompt";
+ case P_COMMENT:
+ return "comment";
+ case P_MENU:
+ return "menu";
+ case P_DEFAULT:
+ return "default";
+ case P_CHOICE:
+ return "choice";
+ case P_SELECT:
+ return "select";
+ case P_RANGE:
+ return "range";
+ case P_UNKNOWN:
+ break;
+ }
+ return "unknown";
+}
diff --git a/cleopatre/buildroot/package/config/util.c b/cleopatre/buildroot/package/config/util.c
new file mode 100644
index 0000000000..a68f7529ee
--- /dev/null
+++ b/cleopatre/buildroot/package/config/util.c
@@ -0,0 +1,218 @@
+/*
+ * Copyright (C) 2002-2005 Roman Zippel <zippel@linux-m68k.org>
+ * Copyright (C) 2002-2005 Sam Ravnborg <sam@ravnborg.org>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <string.h>
+#include "lkc.h"
+
+/* file already present in list? If not add it */
+struct file *file_lookup(const char *name)
+{
+ struct file *file;
+
+ for (file = file_list; file; file = file->next) {
+ if (!strcmp(name, file->name))
+ return file;
+ }
+
+ file = malloc(sizeof(*file));
+ memset(file, 0, sizeof(*file));
+ file->name = strdup(name);
+ file->next = file_list;
+ file_list = file;
+ return file;
+}
+
+static char* br2_symbol_printer(const char * const in)
+{
+ ssize_t i, j, len = strlen(in);
+ char *ret;
+ if (len < 1)
+ return NULL;
+ ret = malloc(len);
+ if (!ret) {
+ printf("Out of memory!");
+ exit(1);
+ }
+ memset(ret, 0, len);
+ i = j = 0;
+ if (strncmp("BR2_", in, 4) == 0)
+ i += 4;
+ if (strncmp("PACKAGE_", in + i, 8) == 0)
+ i += 8;
+ else if (strncmp("TARGET_", in + i, 7) == 0)
+ i += 7;
+ while (i <= len)
+ ret[j++] = tolower(in[i++]);
+ return ret;
+}
+
+/* write dependencies of the infividual config-symbols */
+static int write_make_deps(const char *name)
+{
+ struct menu *menu;
+ struct symbol *sym;
+ struct property *prop, *p;
+ unsigned done;
+ const char * const name_tmp = "..make.deps.tmp";
+ FILE *out;
+ if (!name)
+ name = ".auto.deps";
+ out = fopen(name_tmp, "w");
+ if (!out)
+ return 1;
+ fprintf(out, "# ATTENTION! This does not handle 'depends', just 'select'! \n"
+ "# See package/config/util.c write_make_deps()\n#\n");
+ menu = &rootmenu;//rootmenu.list;
+ while (menu) {
+ sym = menu->sym;
+ if (!sym) {
+ if (!menu_is_visible(menu))
+ goto next;
+ } else if (!(sym->flags & SYMBOL_CHOICE)) {
+ sym_calc_value(sym);
+ if (sym->type == S_BOOLEAN
+ && sym_get_tristate_value(sym) != no) {
+ done = 0;
+ for_all_prompts(sym, prop) {
+ struct expr *e;
+//printf("\nname=%s\n", sym->name);
+ for_all_properties(sym, p, P_SELECT) {
+ e = p->expr;
+ if (e && e->left.sym->name) {
+ if (!done) {
+ fprintf(out, "%s: $(BASE_TARGETS)", br2_symbol_printer(sym->name));
+ done = 1;
+ }
+//printf("SELECTS %s\n",e->left.sym->name);
+ fprintf(out, " %s",br2_symbol_printer(e->left.sym->name));
+ }
+ }
+ if (done)
+ fprintf(out, "\n");
+#if 0
+ e = sym->rev_dep.expr;
+ if (e && e->type == E_SYMBOL
+ && e->left.sym->name) {
+ fprintf(out, "%s: %s", br2_symbol_printer(e->left.sym->name),
+ br2_symbol_printer(sym->name));
+printf("%s is Selected BY: %s", sym->name, e->left.sym->name);
+ }
+#endif
+ }
+ }
+ }
+next:
+ if (menu->list) {
+ menu = menu->list;
+ continue;
+ }
+ if (menu->next)
+ menu = menu->next;
+ else while ((menu = menu->parent)) {
+ if (menu->next) {
+ menu = menu->next;
+ break;
+ }
+ }
+ }
+ fclose(out);
+ rename(name_tmp, name);
+ printf(_("#\n"
+ "# make dependencies written to %s\n"
+ "# ATTENTION buildroot devels!\n"
+ "# See top of this file before playing with this auto-preprequisites!\n"
+ "#\n"), name);
+ return 0;
+}
+
+/* write a dependency file as used by kbuild to track dependencies */
+int file_write_dep(const char *name)
+{
+ struct file *file;
+ FILE *out;
+
+ if (!name)
+ name = ".kconfig.d";
+ out = fopen("..config.tmp", "w");
+ if (!out)
+ return 1;
+ fprintf(out, "deps_config := \\\n");
+ for (file = file_list; file; file = file->next) {
+ if (file->next)
+ fprintf(out, "\t%s \\\n", file->name);
+ else
+ fprintf(out, "\t%s\n", file->name);
+ }
+ fprintf(out, "\n$(BR2_DEPENDS_DIR)/config/auto.conf: \\\n"
+ "\t$(deps_config)\n\n"
+ "$(deps_config): ;\n");
+ fclose(out);
+ rename("..config.tmp", name);
+
+ return write_make_deps(NULL);
+}
+
+
+/* Allocate initial growable sting */
+struct gstr str_new(void)
+{
+ struct gstr gs;
+ gs.s = malloc(sizeof(char) * 64);
+ gs.len = 16;
+ strcpy(gs.s, "\0");
+ return gs;
+}
+
+/* Allocate and assign growable string */
+struct gstr str_assign(const char *s)
+{
+ struct gstr gs;
+ gs.s = strdup(s);
+ gs.len = strlen(s) + 1;
+ return gs;
+}
+
+/* Free storage for growable string */
+void str_free(struct gstr *gs)
+{
+ if (gs->s)
+ free(gs->s);
+ gs->s = NULL;
+ gs->len = 0;
+}
+
+/* Append to growable string */
+void str_append(struct gstr *gs, const char *s)
+{
+ size_t l;
+ if (s) {
+ l = strlen(gs->s) + strlen(s) + 1;
+ if (l > gs->len) {
+ gs->s = realloc(gs->s, l);
+ gs->len = l;
+ }
+ strcat(gs->s, s);
+ }
+}
+
+/* Append printf formatted string to growable string */
+void str_printf(struct gstr *gs, const char *fmt, ...)
+{
+ va_list ap;
+ char s[10000]; /* big enough... */
+ va_start(ap, fmt);
+ vsnprintf(s, sizeof(s), fmt, ap);
+ str_append(gs, s);
+ va_end(ap);
+}
+
+/* Retrieve value of growable string */
+const char *str_get(struct gstr *gs)
+{
+ return gs->s;
+}
+
diff --git a/cleopatre/buildroot/package/config/zconf.gperf b/cleopatre/buildroot/package/config/zconf.gperf
new file mode 100644
index 0000000000..93538e567b
--- /dev/null
+++ b/cleopatre/buildroot/package/config/zconf.gperf
@@ -0,0 +1,44 @@
+%language=ANSI-C
+%define hash-function-name kconf_id_hash
+%define lookup-function-name kconf_id_lookup
+%define string-pool-name kconf_id_strings
+%compare-strncmp
+%enum
+%pic
+%struct-type
+
+struct kconf_id;
+
+%%
+mainmenu, T_MAINMENU, TF_COMMAND
+menu, T_MENU, TF_COMMAND
+endmenu, T_ENDMENU, TF_COMMAND
+source, T_SOURCE, TF_COMMAND
+choice, T_CHOICE, TF_COMMAND
+endchoice, T_ENDCHOICE, TF_COMMAND
+comment, T_COMMENT, TF_COMMAND
+config, T_CONFIG, TF_COMMAND
+menuconfig, T_MENUCONFIG, TF_COMMAND
+help, T_HELP, TF_COMMAND
+if, T_IF, TF_COMMAND|TF_PARAM
+endif, T_ENDIF, TF_COMMAND
+depends, T_DEPENDS, TF_COMMAND
+optional, T_OPTIONAL, TF_COMMAND
+default, T_DEFAULT, TF_COMMAND, S_UNKNOWN
+prompt, T_PROMPT, TF_COMMAND
+tristate, T_TYPE, TF_COMMAND, S_TRISTATE
+def_tristate, T_DEFAULT, TF_COMMAND, S_TRISTATE
+bool, T_TYPE, TF_COMMAND, S_BOOLEAN
+boolean, T_TYPE, TF_COMMAND, S_BOOLEAN
+def_bool, T_DEFAULT, TF_COMMAND, S_BOOLEAN
+int, T_TYPE, TF_COMMAND, S_INT
+hex, T_TYPE, TF_COMMAND, S_HEX
+string, T_TYPE, TF_COMMAND, S_STRING
+select, T_SELECT, TF_COMMAND
+enable, T_SELECT, TF_COMMAND
+range, T_RANGE, TF_COMMAND
+option, T_OPTION, TF_COMMAND
+on, T_ON, TF_PARAM
+modules, T_OPT_MODULES, TF_OPTION
+defconfig_list, T_OPT_DEFCONFIG_LIST,TF_OPTION
+%%
diff --git a/cleopatre/buildroot/package/config/zconf.hash.c_shipped b/cleopatre/buildroot/package/config/zconf.hash.c_shipped
new file mode 100644
index 0000000000..ab28b18153
--- /dev/null
+++ b/cleopatre/buildroot/package/config/zconf.hash.c_shipped
@@ -0,0 +1,234 @@
+/* ANSI-C code produced by gperf version 3.0.2 */
+/* Command-line: gperf */
+/* Computed positions: -k'1,3' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+struct kconf_id;
+/* maximum key range = 47, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+kconf_id_hash (register const char *str, register unsigned int len)
+{
+ static unsigned char asso_values[] =
+ {
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 18, 11, 5,
+ 0, 0, 5, 49, 5, 20, 49, 49, 5, 20,
+ 5, 0, 30, 49, 0, 15, 0, 10, 49, 49,
+ 25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49
+ };
+ register int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[2]];
+ /*FALLTHROUGH*/
+ case 2:
+ case 1:
+ hval += asso_values[(unsigned char)str[0]];
+ break;
+ }
+ return hval;
+}
+
+struct kconf_id_strings_t
+ {
+ char kconf_id_strings_str2[sizeof("on")];
+ char kconf_id_strings_str5[sizeof("endif")];
+ char kconf_id_strings_str6[sizeof("option")];
+ char kconf_id_strings_str7[sizeof("endmenu")];
+ char kconf_id_strings_str8[sizeof("optional")];
+ char kconf_id_strings_str9[sizeof("endchoice")];
+ char kconf_id_strings_str10[sizeof("range")];
+ char kconf_id_strings_str11[sizeof("choice")];
+ char kconf_id_strings_str12[sizeof("default")];
+ char kconf_id_strings_str13[sizeof("def_bool")];
+ char kconf_id_strings_str14[sizeof("help")];
+ char kconf_id_strings_str15[sizeof("bool")];
+ char kconf_id_strings_str16[sizeof("config")];
+ char kconf_id_strings_str17[sizeof("def_tristate")];
+ char kconf_id_strings_str18[sizeof("boolean")];
+ char kconf_id_strings_str19[sizeof("defconfig_list")];
+ char kconf_id_strings_str21[sizeof("string")];
+ char kconf_id_strings_str22[sizeof("if")];
+ char kconf_id_strings_str23[sizeof("int")];
+ char kconf_id_strings_str24[sizeof("enable")];
+ char kconf_id_strings_str26[sizeof("select")];
+ char kconf_id_strings_str27[sizeof("modules")];
+ char kconf_id_strings_str28[sizeof("tristate")];
+ char kconf_id_strings_str29[sizeof("menu")];
+ char kconf_id_strings_str31[sizeof("source")];
+ char kconf_id_strings_str32[sizeof("comment")];
+ char kconf_id_strings_str33[sizeof("hex")];
+ char kconf_id_strings_str35[sizeof("menuconfig")];
+ char kconf_id_strings_str36[sizeof("prompt")];
+ char kconf_id_strings_str37[sizeof("depends")];
+ char kconf_id_strings_str48[sizeof("mainmenu")];
+ };
+static struct kconf_id_strings_t kconf_id_strings_contents =
+ {
+ "on",
+ "endif",
+ "option",
+ "endmenu",
+ "optional",
+ "endchoice",
+ "range",
+ "choice",
+ "default",
+ "def_bool",
+ "help",
+ "bool",
+ "config",
+ "def_tristate",
+ "boolean",
+ "defconfig_list",
+ "string",
+ "if",
+ "int",
+ "enable",
+ "select",
+ "modules",
+ "tristate",
+ "menu",
+ "source",
+ "comment",
+ "hex",
+ "menuconfig",
+ "prompt",
+ "depends",
+ "mainmenu"
+ };
+#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
+#ifdef __GNUC__
+__inline
+#endif
+struct kconf_id *
+kconf_id_lookup (register const char *str, register unsigned int len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 31,
+ MIN_WORD_LENGTH = 2,
+ MAX_WORD_LENGTH = 14,
+ MIN_HASH_VALUE = 2,
+ MAX_HASH_VALUE = 48
+ };
+
+ static struct kconf_id wordlist[] =
+ {
+ {-1}, {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_ON, TF_PARAM},
+ {-1}, {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_OPTION, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_OPTIONAL, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_CHOICE, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_HELP, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15, T_TYPE, TF_COMMAND, S_BOOLEAN},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_CONFIG, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEFAULT, TF_COMMAND, S_TRISTATE},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_TYPE, TF_COMMAND, S_BOOLEAN},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19, T_OPT_DEFCONFIG_LIST,TF_OPTION},
+ {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_TYPE, TF_COMMAND, S_STRING},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_IF, TF_COMMAND|TF_PARAM},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_INT},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str24, T_SELECT, TF_COMMAND},
+ {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SELECT, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_TYPE, TF_COMMAND, S_TRISTATE},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND},
+ {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SOURCE, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_TYPE, TF_COMMAND, S_HEX},
+ {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_MENUCONFIG, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_PROMPT, TF_COMMAND},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_DEPENDS, TF_COMMAND},
+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+ {-1},
+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48, T_MAINMENU, TF_COMMAND}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = kconf_id_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register int o = wordlist[key].name;
+ if (o >= 0)
+ {
+ register const char *s = o + kconf_id_strings;
+
+ if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
+ return &wordlist[key];
+ }
+ }
+ }
+ return 0;
+}
+
diff --git a/cleopatre/buildroot/package/config/zconf.l b/cleopatre/buildroot/package/config/zconf.l
new file mode 100644
index 0000000000..187d38ccad
--- /dev/null
+++ b/cleopatre/buildroot/package/config/zconf.l
@@ -0,0 +1,350 @@
+%option backup nostdinit noyywrap never-interactive full ecs
+%option 8bit backup nodefault perf-report perf-report
+%x COMMAND HELP STRING PARAM
+%{
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+#define START_STRSIZE 16
+
+static struct {
+ struct file *file;
+ int lineno;
+} current_pos;
+
+static char *text;
+static int text_size, text_asize;
+
+struct buffer {
+ struct buffer *parent;
+ YY_BUFFER_STATE state;
+};
+
+struct buffer *current_buf;
+
+static int last_ts, first_ts;
+
+static void zconf_endhelp(void);
+static void zconf_endfile(void);
+
+void new_string(void)
+{
+ text = malloc(START_STRSIZE);
+ text_asize = START_STRSIZE;
+ text_size = 0;
+ *text = 0;
+}
+
+void append_string(const char *str, int size)
+{
+ int new_size = text_size + size + 1;
+ if (new_size > text_asize) {
+ new_size += START_STRSIZE - 1;
+ new_size &= -START_STRSIZE;
+ text = realloc(text, new_size);
+ text_asize = new_size;
+ }
+ memcpy(text + text_size, str, size);
+ text_size += size;
+ text[text_size] = 0;
+}
+
+void alloc_string(const char *str, int size)
+{
+ text = malloc(size + 1);
+ memcpy(text, str, size);
+ text[size] = 0;
+}
+%}
+
+ws [ \n\t]
+n [A-Za-z0-9_]
+
+%%
+ int str = 0;
+ int ts, i;
+
+[ \t]*#.*\n |
+[ \t]*\n {
+ current_file->lineno++;
+ return T_EOL;
+}
+[ \t]*#.*
+
+
+[ \t]+ {
+ BEGIN(COMMAND);
+}
+
+. {
+ unput(yytext[0]);
+ BEGIN(COMMAND);
+}
+
+
+<COMMAND>{
+ {n}+ {
+ struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
+ BEGIN(PARAM);
+ current_pos.file = current_file;
+ current_pos.lineno = current_file->lineno;
+ if (id && id->flags & TF_COMMAND) {
+ zconflval.id = id;
+ return id->token;
+ }
+ alloc_string(yytext, yyleng);
+ zconflval.string = text;
+ return T_WORD;
+ }
+ .
+ \n {
+ BEGIN(INITIAL);
+ current_file->lineno++;
+ return T_EOL;
+ }
+}
+
+<PARAM>{
+ "&&" return T_AND;
+ "||" return T_OR;
+ "(" return T_OPEN_PAREN;
+ ")" return T_CLOSE_PAREN;
+ "!" return T_NOT;
+ "=" return T_EQUAL;
+ "!=" return T_UNEQUAL;
+ \"|\' {
+ str = yytext[0];
+ new_string();
+ BEGIN(STRING);
+ }
+ \n BEGIN(INITIAL); current_file->lineno++; return T_EOL;
+ --- /* ignore */
+ ({n}|[-/.])+ {
+ struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
+ if (id && id->flags & TF_PARAM) {
+ zconflval.id = id;
+ return id->token;
+ }
+ alloc_string(yytext, yyleng);
+ zconflval.string = text;
+ return T_WORD;
+ }
+ #.* /* comment */
+ \\\n current_file->lineno++;
+ .
+ <<EOF>> {
+ BEGIN(INITIAL);
+ }
+}
+
+<STRING>{
+ [^'"\\\n]+/\n {
+ append_string(yytext, yyleng);
+ zconflval.string = text;
+ return T_WORD_QUOTE;
+ }
+ [^'"\\\n]+ {
+ append_string(yytext, yyleng);
+ }
+ \\.?/\n {
+ append_string(yytext + 1, yyleng - 1);
+ zconflval.string = text;
+ return T_WORD_QUOTE;
+ }
+ \\.? {
+ append_string(yytext + 1, yyleng - 1);
+ }
+ \'|\" {
+ if (str == yytext[0]) {
+ BEGIN(PARAM);
+ zconflval.string = text;
+ return T_WORD_QUOTE;
+ } else
+ append_string(yytext, 1);
+ }
+ \n {
+ printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
+ current_file->lineno++;
+ BEGIN(INITIAL);
+ return T_EOL;
+ }
+ <<EOF>> {
+ BEGIN(INITIAL);
+ }
+}
+
+<HELP>{
+ [ \t]+ {
+ ts = 0;
+ for (i = 0; i < yyleng; i++) {
+ if (yytext[i] == '\t')
+ ts = (ts & ~7) + 8;
+ else
+ ts++;
+ }
+ last_ts = ts;
+ if (first_ts) {
+ if (ts < first_ts) {
+ zconf_endhelp();
+ return T_HELPTEXT;
+ }
+ ts -= first_ts;
+ while (ts > 8) {
+ append_string(" ", 8);
+ ts -= 8;
+ }
+ append_string(" ", ts);
+ }
+ }
+ [ \t]*\n/[^ \t\n] {
+ current_file->lineno++;
+ zconf_endhelp();
+ return T_HELPTEXT;
+ }
+ [ \t]*\n {
+ current_file->lineno++;
+ append_string("\n", 1);
+ }
+ [^ \t\n].* {
+ append_string(yytext, yyleng);
+ if (!first_ts)
+ first_ts = last_ts;
+ }
+ <<EOF>> {
+ zconf_endhelp();
+ return T_HELPTEXT;
+ }
+}
+
+<<EOF>> {
+ if (current_file) {
+ zconf_endfile();
+ return T_EOL;
+ }
+ fclose(yyin);
+ yyterminate();
+}
+
+%%
+void zconf_starthelp(void)
+{
+ new_string();
+ last_ts = first_ts = 0;
+ BEGIN(HELP);
+}
+
+static void zconf_endhelp(void)
+{
+ zconflval.string = text;
+ BEGIN(INITIAL);
+}
+
+
+/*
+ * Try to open specified file with following names:
+ * ./name
+ * $(srctree)/name
+ * The latter is used when srctree is separate from objtree
+ * when compiling the kernel.
+ * Return NULL if file is not found.
+ */
+FILE *zconf_fopen(const char *name)
+{
+ char *env, fullname[PATH_MAX+1];
+ FILE *f;
+
+ f = fopen(name, "r");
+ if (!f && name != NULL && name[0] != '/') {
+ env = getenv(SRCTREE);
+ if (env) {
+ sprintf(fullname, "%s/%s", env, name);
+ f = fopen(fullname, "r");
+ }
+ }
+ return f;
+}
+
+void zconf_initscan(const char *name)
+{
+ yyin = zconf_fopen(name);
+ if (!yyin) {
+ printf("can't find file %s\n", name);
+ exit(1);
+ }
+
+ current_buf = malloc(sizeof(*current_buf));
+ memset(current_buf, 0, sizeof(*current_buf));
+
+ current_file = file_lookup(name);
+ current_file->lineno = 1;
+ current_file->flags = FILE_BUSY;
+}
+
+void zconf_nextfile(const char *name)
+{
+ struct file *file = file_lookup(name);
+ struct buffer *buf = malloc(sizeof(*buf));
+ memset(buf, 0, sizeof(*buf));
+
+ current_buf->state = YY_CURRENT_BUFFER;
+ yyin = zconf_fopen(name);
+ if (!yyin) {
+ printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
+ exit(1);
+ }
+ yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
+ buf->parent = current_buf;
+ current_buf = buf;
+
+ if (file->flags & FILE_BUSY) {
+ printf("recursive scan (%s)?\n", name);
+ exit(1);
+ }
+ if (file->flags & FILE_SCANNED) {
+ printf("file %s already scanned?\n", name);
+ exit(1);
+ }
+ file->flags |= FILE_BUSY;
+ file->lineno = 1;
+ file->parent = current_file;
+ current_file = file;
+}
+
+static void zconf_endfile(void)
+{
+ struct buffer *parent;
+
+ current_file->flags |= FILE_SCANNED;
+ current_file->flags &= ~FILE_BUSY;
+ current_file = current_file->parent;
+
+ parent = current_buf->parent;
+ if (parent) {
+ fclose(yyin);
+ yy_delete_buffer(YY_CURRENT_BUFFER);
+ yy_switch_to_buffer(parent->state);
+ }
+ free(current_buf);
+ current_buf = parent;
+}
+
+int zconf_lineno(void)
+{
+ return current_pos.lineno;
+}
+
+char *zconf_curname(void)
+{
+ return current_pos.file ? current_pos.file->name : "<none>";
+}
diff --git a/cleopatre/buildroot/package/config/zconf.tab.c_shipped b/cleopatre/buildroot/package/config/zconf.tab.c_shipped
new file mode 100644
index 0000000000..3e9e908c4f
--- /dev/null
+++ b/cleopatre/buildroot/package/config/zconf.tab.c_shipped
@@ -0,0 +1,2479 @@
+/* A Bison parser, made by GNU Bison 2.3. */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "2.3"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+/* Substitute the variable and function names. */
+#define yyparse zconfparse
+#define yylex zconflex
+#define yyerror zconferror
+#define yylval zconflval
+#define yychar zconfchar
+#define yydebug zconfdebug
+#define yynerrs zconfnerrs
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ T_MAINMENU = 258,
+ T_MENU = 259,
+ T_ENDMENU = 260,
+ T_SOURCE = 261,
+ T_CHOICE = 262,
+ T_ENDCHOICE = 263,
+ T_COMMENT = 264,
+ T_CONFIG = 265,
+ T_MENUCONFIG = 266,
+ T_HELP = 267,
+ T_HELPTEXT = 268,
+ T_IF = 269,
+ T_ENDIF = 270,
+ T_DEPENDS = 271,
+ T_OPTIONAL = 272,
+ T_PROMPT = 273,
+ T_TYPE = 274,
+ T_DEFAULT = 275,
+ T_SELECT = 276,
+ T_RANGE = 277,
+ T_OPTION = 278,
+ T_ON = 279,
+ T_WORD = 280,
+ T_WORD_QUOTE = 281,
+ T_UNEQUAL = 282,
+ T_CLOSE_PAREN = 283,
+ T_OPEN_PAREN = 284,
+ T_EOL = 285,
+ T_OR = 286,
+ T_AND = 287,
+ T_EQUAL = 288,
+ T_NOT = 289
+ };
+#endif
+/* Tokens. */
+#define T_MAINMENU 258
+#define T_MENU 259
+#define T_ENDMENU 260
+#define T_SOURCE 261
+#define T_CHOICE 262
+#define T_ENDCHOICE 263
+#define T_COMMENT 264
+#define T_CONFIG 265
+#define T_MENUCONFIG 266
+#define T_HELP 267
+#define T_HELPTEXT 268
+#define T_IF 269
+#define T_ENDIF 270
+#define T_DEPENDS 271
+#define T_OPTIONAL 272
+#define T_PROMPT 273
+#define T_TYPE 274
+#define T_DEFAULT 275
+#define T_SELECT 276
+#define T_RANGE 277
+#define T_OPTION 278
+#define T_ON 279
+#define T_WORD 280
+#define T_WORD_QUOTE 281
+#define T_UNEQUAL 282
+#define T_CLOSE_PAREN 283
+#define T_OPEN_PAREN 284
+#define T_EOL 285
+#define T_OR 286
+#define T_AND 287
+#define T_EQUAL 288
+#define T_NOT 289
+
+
+
+
+/* Copy the first part of user declarations. */
+
+
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdbool.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+#include "zconf.hash.c"
+
+#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
+
+#define PRINTD 0x0001
+#define DEBUG_PARSE 0x0002
+
+int cdebug = PRINTD;
+
+extern int zconflex(void);
+static void zconfprint(const char *err, ...);
+static void zconf_error(const char *err, ...);
+static void zconferror(const char *err);
+static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
+
+struct symbol *symbol_hash[257];
+
+static struct menu *current_menu, *current_entry;
+
+#define YYDEBUG 0
+#if YYDEBUG
+#define YYERROR_VERBOSE
+#endif
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+
+{
+ char *string;
+ struct file *file;
+ struct symbol *symbol;
+ struct expr *expr;
+ struct menu *menu;
+ struct kconf_id *id;
+}
+/* Line 187 of yacc.c. */
+
+ YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations. */
+
+
+/* Line 216 of yacc.c. */
+
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+ int i;
+#endif
+{
+ return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 3
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 258
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 35
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 45
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 108
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 178
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 289
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const yytype_uint8 yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const yytype_uint16 yyprhs[] =
+{
+ 0, 0, 3, 5, 6, 9, 12, 15, 20, 23,
+ 28, 33, 37, 39, 41, 43, 45, 47, 49, 51,
+ 53, 55, 57, 59, 61, 63, 67, 70, 74, 77,
+ 81, 84, 85, 88, 91, 94, 97, 100, 103, 107,
+ 112, 117, 122, 128, 132, 133, 137, 138, 141, 144,
+ 147, 149, 153, 154, 157, 160, 163, 166, 169, 174,
+ 178, 181, 186, 187, 190, 194, 196, 200, 201, 204,
+ 207, 210, 214, 217, 219, 223, 224, 227, 230, 233,
+ 237, 241, 244, 247, 250, 251, 254, 257, 260, 265,
+ 266, 269, 271, 273, 276, 279, 282, 284, 287, 288,
+ 291, 293, 297, 301, 305, 308, 312, 316, 318
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int8 yyrhs[] =
+{
+ 36, 0, -1, 37, -1, -1, 37, 39, -1, 37,
+ 53, -1, 37, 64, -1, 37, 3, 74, 76, -1,
+ 37, 75, -1, 37, 25, 1, 30, -1, 37, 38,
+ 1, 30, -1, 37, 1, 30, -1, 16, -1, 18,
+ -1, 19, -1, 21, -1, 17, -1, 22, -1, 20,
+ -1, 30, -1, 59, -1, 68, -1, 42, -1, 44,
+ -1, 66, -1, 25, 1, 30, -1, 1, 30, -1,
+ 10, 25, 30, -1, 41, 45, -1, 11, 25, 30,
+ -1, 43, 45, -1, -1, 45, 46, -1, 45, 47,
+ -1, 45, 72, -1, 45, 70, -1, 45, 40, -1,
+ 45, 30, -1, 19, 73, 30, -1, 18, 74, 77,
+ 30, -1, 20, 78, 77, 30, -1, 21, 25, 77,
+ 30, -1, 22, 79, 79, 77, 30, -1, 23, 48,
+ 30, -1, -1, 48, 25, 49, -1, -1, 33, 74,
+ -1, 7, 30, -1, 50, 54, -1, 75, -1, 51,
+ 56, 52, -1, -1, 54, 55, -1, 54, 72, -1,
+ 54, 70, -1, 54, 30, -1, 54, 40, -1, 18,
+ 74, 77, 30, -1, 19, 73, 30, -1, 17, 30,
+ -1, 20, 25, 77, 30, -1, -1, 56, 39, -1,
+ 14, 78, 76, -1, 75, -1, 57, 60, 58, -1,
+ -1, 60, 39, -1, 60, 64, -1, 60, 53, -1,
+ 4, 74, 30, -1, 61, 71, -1, 75, -1, 62,
+ 65, 63, -1, -1, 65, 39, -1, 65, 64, -1,
+ 65, 53, -1, 6, 74, 30, -1, 9, 74, 30,
+ -1, 67, 71, -1, 12, 30, -1, 69, 13, -1,
+ -1, 71, 72, -1, 71, 30, -1, 71, 40, -1,
+ 16, 24, 78, 30, -1, -1, 74, 77, -1, 25,
+ -1, 26, -1, 5, 30, -1, 8, 30, -1, 15,
+ 30, -1, 30, -1, 76, 30, -1, -1, 14, 78,
+ -1, 79, -1, 79, 33, 79, -1, 79, 27, 79,
+ -1, 29, 78, 28, -1, 34, 78, -1, 78, 31,
+ 78, -1, 78, 32, 78, -1, 25, -1, 26, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const yytype_uint16 yyrline[] =
+{
+ 0, 104, 104, 106, 108, 109, 110, 111, 112, 113,
+ 114, 118, 122, 122, 122, 122, 122, 122, 122, 126,
+ 127, 128, 129, 130, 131, 135, 136, 142, 150, 156,
+ 164, 174, 176, 177, 178, 179, 180, 181, 184, 192,
+ 198, 208, 214, 220, 223, 225, 236, 237, 242, 251,
+ 256, 264, 267, 269, 270, 271, 272, 273, 276, 282,
+ 293, 299, 309, 311, 316, 324, 332, 335, 337, 338,
+ 339, 344, 351, 356, 364, 367, 369, 370, 371, 374,
+ 382, 389, 396, 402, 409, 411, 412, 413, 416, 424,
+ 426, 431, 432, 435, 436, 437, 441, 442, 445, 446,
+ 449, 450, 451, 452, 453, 454, 455, 458, 459
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
+ "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
+ "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
+ "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
+ "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
+ "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
+ "T_NOT", "$accept", "input", "stmt_list", "option_name", "common_stmt",
+ "option_error", "config_entry_start", "config_stmt",
+ "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
+ "config_option", "symbol_option", "symbol_option_list",
+ "symbol_option_arg", "choice", "choice_entry", "choice_end",
+ "choice_stmt", "choice_option_list", "choice_option", "choice_block",
+ "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
+ "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
+ "comment_stmt", "help_start", "help", "depends_list", "depends",
+ "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const yytype_uint16 yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 35, 36, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 38, 38, 38, 38, 38, 38, 38, 39,
+ 39, 39, 39, 39, 39, 40, 40, 41, 42, 43,
+ 44, 45, 45, 45, 45, 45, 45, 45, 46, 46,
+ 46, 46, 46, 47, 48, 48, 49, 49, 50, 51,
+ 52, 53, 54, 54, 54, 54, 54, 54, 55, 55,
+ 55, 55, 56, 56, 57, 58, 59, 60, 60, 60,
+ 60, 61, 62, 63, 64, 65, 65, 65, 65, 66,
+ 67, 68, 69, 70, 71, 71, 71, 71, 72, 73,
+ 73, 74, 74, 75, 75, 75, 76, 76, 77, 77,
+ 78, 78, 78, 78, 78, 78, 78, 79, 79
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 1, 0, 2, 2, 2, 4, 2, 4,
+ 4, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 3, 2, 3, 2, 3,
+ 2, 0, 2, 2, 2, 2, 2, 2, 3, 4,
+ 4, 4, 5, 3, 0, 3, 0, 2, 2, 2,
+ 1, 3, 0, 2, 2, 2, 2, 2, 4, 3,
+ 2, 4, 0, 2, 3, 1, 3, 0, 2, 2,
+ 2, 3, 2, 1, 3, 0, 2, 2, 2, 3,
+ 3, 2, 2, 2, 0, 2, 2, 2, 4, 0,
+ 2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
+ 1, 3, 3, 3, 2, 3, 3, 1, 1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const yytype_uint8 yydefact[] =
+{
+ 3, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 12, 16, 13, 14,
+ 18, 15, 17, 0, 19, 0, 4, 31, 22, 31,
+ 23, 52, 62, 5, 67, 20, 84, 75, 6, 24,
+ 84, 21, 8, 11, 91, 92, 0, 0, 93, 0,
+ 48, 94, 0, 0, 0, 107, 108, 0, 0, 0,
+ 100, 95, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 96, 7, 71, 79, 80, 27, 29, 0,
+ 104, 0, 0, 64, 0, 0, 9, 10, 0, 0,
+ 0, 0, 89, 0, 0, 0, 44, 0, 37, 36,
+ 32, 33, 0, 35, 34, 0, 0, 89, 0, 56,
+ 57, 53, 55, 54, 63, 51, 50, 68, 70, 66,
+ 69, 65, 86, 87, 85, 76, 78, 74, 77, 73,
+ 97, 103, 105, 106, 102, 101, 26, 82, 0, 98,
+ 0, 98, 98, 98, 0, 0, 0, 83, 60, 98,
+ 0, 98, 0, 0, 0, 38, 90, 0, 0, 98,
+ 46, 43, 25, 0, 59, 0, 88, 99, 39, 40,
+ 41, 0, 0, 45, 58, 61, 42, 47
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
+{
+ -1, 1, 2, 25, 26, 99, 27, 28, 29, 30,
+ 64, 100, 101, 145, 173, 31, 32, 115, 33, 66,
+ 111, 67, 34, 119, 35, 68, 36, 37, 127, 38,
+ 70, 39, 40, 41, 102, 103, 69, 104, 140, 141,
+ 42, 73, 154, 59, 60
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -78
+static const yytype_int16 yypact[] =
+{
+ -78, 33, 130, -78, -28, 73, 73, 7, 73, 36,
+ 41, 73, 26, 52, -4, 58, -78, -78, -78, -78,
+ -78, -78, -78, 90, -78, 94, -78, -78, -78, -78,
+ -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
+ -78, -78, -78, -78, -78, -78, 74, 85, -78, 96,
+ -78, -78, 131, 134, 147, -78, -78, -4, -4, 193,
+ -10, -78, 162, 164, 38, 102, 64, 148, 5, 192,
+ 5, 165, -78, 174, -78, -78, -78, -78, -78, 65,
+ -78, -4, -4, 174, 103, 103, -78, -78, 175, 185,
+ 197, 73, 73, -4, 194, 103, -78, 231, -78, -78,
+ -78, -78, 220, -78, -78, 204, 73, 73, 210, -78,
+ -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
+ -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
+ -78, -78, 205, -78, -78, -78, -78, -78, -4, 222,
+ 208, 222, 195, 222, 103, 2, 209, -78, -78, 222,
+ 211, 222, 199, -4, 212, -78, -78, 213, 214, 222,
+ 207, -78, -78, 215, -78, 216, -78, 111, -78, -78,
+ -78, 217, 73, -78, -78, -78, -78, -78
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yytype_int16 yypgoto[] =
+{
+ -78, -78, -78, -78, 121, -35, -78, -78, -78, -78,
+ 219, -78, -78, -78, -78, -78, -78, -78, -44, -78,
+ -78, -78, -78, -78, -78, -78, -78, -78, -78, -6,
+ -78, -78, -78, -78, -78, 183, 218, 21, 143, -5,
+ 146, 196, 69, -53, -77
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -82
+static const yytype_int16 yytable[] =
+{
+ 46, 47, 43, 49, 79, 80, 52, 134, 135, 6,
+ 7, 8, 9, 10, 11, 12, 13, 84, 144, 14,
+ 15, 55, 56, 85, 118, 57, 126, 160, 132, 133,
+ 58, 110, 161, 3, 123, 24, 123, 48, -28, 88,
+ 142, -28, -28, -28, -28, -28, -28, -28, -28, -28,
+ 89, 53, -28, -28, 90, -28, 91, 92, 93, 94,
+ 95, 96, 120, 97, 128, 88, 50, 159, 98, -49,
+ -49, 51, -49, -49, -49, -49, 89, 54, -49, -49,
+ 90, 105, 106, 107, 108, 152, 139, 113, 61, 97,
+ 124, 62, 124, 131, 109, 63, 81, 82, 44, 45,
+ 167, 149, -30, 88, 72, -30, -30, -30, -30, -30,
+ -30, -30, -30, -30, 89, 74, -30, -30, 90, -30,
+ 91, 92, 93, 94, 95, 96, 75, 97, 55, 56,
+ -2, 4, 98, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 81, 82, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 7, 8, 23, 10, 11, 12, 13,
+ 24, 76, 14, 15, 77, -81, 88, 177, -81, -81,
+ -81, -81, -81, -81, -81, -81, -81, 78, 24, -81,
+ -81, 90, -81, -81, -81, -81, -81, -81, 114, 117,
+ 97, 125, 86, 88, 87, 122, -72, -72, -72, -72,
+ -72, -72, -72, -72, 130, 136, -72, -72, 90, 153,
+ 156, 157, 158, 116, 121, 137, 129, 97, 163, 143,
+ 165, 138, 122, 72, 81, 82, 81, 82, 171, 166,
+ 81, 82, 146, 147, 148, 151, 153, 82, 155, 162,
+ 172, 164, 168, 169, 170, 174, 175, 176, 65, 112,
+ 150, 0, 0, 0, 0, 83, 0, 0, 71
+};
+
+static const yytype_int16 yycheck[] =
+{
+ 5, 6, 30, 8, 57, 58, 11, 84, 85, 4,
+ 5, 6, 7, 8, 9, 10, 11, 27, 95, 14,
+ 15, 25, 26, 33, 68, 29, 70, 25, 81, 82,
+ 34, 66, 30, 0, 69, 30, 71, 30, 0, 1,
+ 93, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 25, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 68, 25, 70, 1, 30, 144, 30, 5,
+ 6, 30, 8, 9, 10, 11, 12, 25, 14, 15,
+ 16, 17, 18, 19, 20, 138, 91, 66, 30, 25,
+ 69, 1, 71, 28, 30, 1, 31, 32, 25, 26,
+ 153, 106, 0, 1, 30, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 30, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 30, 25, 25, 26,
+ 0, 1, 30, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 31, 32, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 5, 6, 25, 8, 9, 10, 11,
+ 30, 30, 14, 15, 30, 0, 1, 172, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 30, 30, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 67, 68,
+ 25, 70, 30, 1, 30, 30, 4, 5, 6, 7,
+ 8, 9, 10, 11, 30, 30, 14, 15, 16, 14,
+ 141, 142, 143, 67, 68, 30, 70, 25, 149, 25,
+ 151, 24, 30, 30, 31, 32, 31, 32, 159, 30,
+ 31, 32, 1, 13, 30, 25, 14, 32, 30, 30,
+ 33, 30, 30, 30, 30, 30, 30, 30, 29, 66,
+ 107, -1, -1, -1, -1, 59, -1, -1, 40
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
+{
+ 0, 36, 37, 0, 1, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 25, 30, 38, 39, 41, 42, 43,
+ 44, 50, 51, 53, 57, 59, 61, 62, 64, 66,
+ 67, 68, 75, 30, 25, 26, 74, 74, 30, 74,
+ 30, 30, 74, 25, 25, 25, 26, 29, 34, 78,
+ 79, 30, 1, 1, 45, 45, 54, 56, 60, 71,
+ 65, 71, 30, 76, 30, 30, 30, 30, 30, 78,
+ 78, 31, 32, 76, 27, 33, 30, 30, 1, 12,
+ 16, 18, 19, 20, 21, 22, 23, 25, 30, 40,
+ 46, 47, 69, 70, 72, 17, 18, 19, 20, 30,
+ 40, 55, 70, 72, 39, 52, 75, 39, 53, 58,
+ 64, 75, 30, 40, 72, 39, 53, 63, 64, 75,
+ 30, 28, 78, 78, 79, 79, 30, 30, 24, 74,
+ 73, 74, 78, 25, 79, 48, 1, 13, 30, 74,
+ 73, 25, 78, 14, 77, 30, 77, 77, 77, 79,
+ 25, 30, 30, 77, 30, 77, 30, 78, 30, 30,
+ 30, 77, 33, 49, 30, 30, 30, 74
+};
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+
+#define YYFAIL goto yyerrlab
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#else
+static void
+yy_stack_print (bottom, top)
+ yytype_int16 *bottom;
+ yytype_int16 *top;
+#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
+ int yyrule;
+#endif
+{
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ fprintf (stderr, "\n");
+ }
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+ const char *yystr;
+#endif
+{
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+#endif
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+ int yyn = yypact[yystate];
+
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
+ else
+ {
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
+ }
+}
+#endif /* YYERROR_VERBOSE */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+#endif
+{
+ YYUSE (yyvaluep);
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+ case 51: /* "choice_entry" */
+
+ {
+ fprintf(stderr, "%s:%d: missing end statement for this entry\n",
+ (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
+ if (current_menu == (yyvaluep->menu))
+ menu_end_menu();
+};
+
+ break;
+ case 57: /* "if_entry" */
+
+ {
+ fprintf(stderr, "%s:%d: missing end statement for this entry\n",
+ (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
+ if (current_menu == (yyvaluep->menu))
+ menu_end_menu();
+};
+
+ break;
+ case 62: /* "menu_entry" */
+
+ {
+ fprintf(stderr, "%s:%d: missing end statement for this entry\n",
+ (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
+ if (current_menu == (yyvaluep->menu))
+ menu_end_menu();
+};
+
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes. */
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The look-ahead symbol. */
+int yychar;
+
+/* The semantic value of the look-ahead symbol. */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far. */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+
+ int yystate;
+ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss;
+ yyvsp = yyvs;
+
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+ /* Do appropriate processing given the current state. Read a
+ look-ahead token if we need one and don't already have one. */
+
+ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a look-ahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+ yychar = YYLEX;
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+ *++yyvsp = yylval;
+
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 8:
+
+ { zconf_error("unexpected end statement"); ;}
+ break;
+
+ case 9:
+
+ { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); ;}
+ break;
+
+ case 10:
+
+ {
+ zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[(2) - (4)].id)->name);
+;}
+ break;
+
+ case 11:
+
+ { zconf_error("invalid statement"); ;}
+ break;
+
+ case 25:
+
+ { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;}
+ break;
+
+ case 26:
+
+ { zconf_error("invalid option"); ;}
+ break;
+
+ case 27:
+
+ {
+ struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
+ sym->flags |= SYMBOL_OPTIONAL;
+ menu_add_entry(sym);
+ printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
+;}
+ break;
+
+ case 28:
+
+ {
+ menu_end_entry();
+ printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 29:
+
+ {
+ struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
+ sym->flags |= SYMBOL_OPTIONAL;
+ menu_add_entry(sym);
+ printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
+;}
+ break;
+
+ case 30:
+
+ {
+ if (current_entry->prompt)
+ current_entry->prompt->type = P_MENU;
+ else
+ zconfprint("warning: menuconfig statement without prompt");
+ menu_end_entry();
+ printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 38:
+
+ {
+ menu_set_type((yyvsp[(1) - (3)].id)->stype);
+ printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
+ zconf_curname(), zconf_lineno(),
+ (yyvsp[(1) - (3)].id)->stype);
+;}
+ break;
+
+ case 39:
+
+ {
+ menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
+ printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 40:
+
+ {
+ menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
+ if ((yyvsp[(1) - (4)].id)->stype != S_UNKNOWN)
+ menu_set_type((yyvsp[(1) - (4)].id)->stype);
+ printd(DEBUG_PARSE, "%s:%d:default(%u)\n",
+ zconf_curname(), zconf_lineno(),
+ (yyvsp[(1) - (4)].id)->stype);
+;}
+ break;
+
+ case 41:
+
+ {
+ menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
+ printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 42:
+
+ {
+ menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
+ printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 45:
+
+ {
+ struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
+ if (id && id->flags & TF_OPTION)
+ menu_add_option(id->token, (yyvsp[(3) - (3)].string));
+ else
+ zconfprint("warning: ignoring unknown option %s", (yyvsp[(2) - (3)].string));
+ free((yyvsp[(2) - (3)].string));
+;}
+ break;
+
+ case 46:
+
+ { (yyval.string) = NULL; ;}
+ break;
+
+ case 47:
+
+ { (yyval.string) = (yyvsp[(2) - (2)].string); ;}
+ break;
+
+ case 48:
+
+ {
+ struct symbol *sym = sym_lookup(NULL, 0);
+ sym->flags |= SYMBOL_CHOICE;
+ menu_add_entry(sym);
+ menu_add_expr(P_CHOICE, NULL, NULL);
+ printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 49:
+
+ {
+ (yyval.menu) = menu_add_menu();
+;}
+ break;
+
+ case 50:
+
+ {
+ if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
+ menu_end_menu();
+ printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
+ }
+;}
+ break;
+
+ case 58:
+
+ {
+ menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
+ printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 59:
+
+ {
+ if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
+ menu_set_type((yyvsp[(1) - (3)].id)->stype);
+ printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
+ zconf_curname(), zconf_lineno(),
+ (yyvsp[(1) - (3)].id)->stype);
+ } else
+ YYERROR;
+;}
+ break;
+
+ case 60:
+
+ {
+ current_entry->sym->flags |= SYMBOL_OPTIONAL;
+ printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 61:
+
+ {
+ if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
+ menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
+ printd(DEBUG_PARSE, "%s:%d:default\n",
+ zconf_curname(), zconf_lineno());
+ } else
+ YYERROR;
+;}
+ break;
+
+ case 64:
+
+ {
+ printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
+ menu_add_entry(NULL);
+ menu_add_dep((yyvsp[(2) - (3)].expr));
+ (yyval.menu) = menu_add_menu();
+;}
+ break;
+
+ case 65:
+
+ {
+ if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
+ menu_end_menu();
+ printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
+ }
+;}
+ break;
+
+ case 71:
+
+ {
+ menu_add_entry(NULL);
+ menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
+ printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 72:
+
+ {
+ (yyval.menu) = menu_add_menu();
+;}
+ break;
+
+ case 73:
+
+ {
+ if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
+ menu_end_menu();
+ printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
+ }
+;}
+ break;
+
+ case 79:
+
+ {
+ printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
+ zconf_nextfile((yyvsp[(2) - (3)].string));
+;}
+ break;
+
+ case 80:
+
+ {
+ menu_add_entry(NULL);
+ menu_add_prompt(P_COMMENT, (yyvsp[(2) - (3)].string), NULL);
+ printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 81:
+
+ {
+ menu_end_entry();
+;}
+ break;
+
+ case 82:
+
+ {
+ printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
+ zconf_starthelp();
+;}
+ break;
+
+ case 83:
+
+ {
+ current_entry->help = (yyvsp[(2) - (2)].string);
+;}
+ break;
+
+ case 88:
+
+ {
+ menu_add_dep((yyvsp[(3) - (4)].expr));
+ printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
+;}
+ break;
+
+ case 90:
+
+ {
+ menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
+;}
+ break;
+
+ case 93:
+
+ { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
+ break;
+
+ case 94:
+
+ { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
+ break;
+
+ case 95:
+
+ { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
+ break;
+
+ case 98:
+
+ { (yyval.expr) = NULL; ;}
+ break;
+
+ case 99:
+
+ { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
+ break;
+
+ case 100:
+
+ { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
+ break;
+
+ case 101:
+
+ { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
+ break;
+
+ case 102:
+
+ { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
+ break;
+
+ case 103:
+
+ { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
+ break;
+
+ case 104:
+
+ { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
+ break;
+
+ case 105:
+
+ { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ break;
+
+ case 106:
+
+ { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ break;
+
+ case 107:
+
+ { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
+ break;
+
+ case 108:
+
+ { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 1); free((yyvsp[(1) - (1)].string)); ;}
+ break;
+
+
+/* Line 1267 of yacc.c. */
+
+ default: break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ }
+ }
+
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (yymsg);
+ }
+ else
+ {
+ yyerror (YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
+ }
+
+ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ *++yyvsp = yylval;
+
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+#endif
+
+yyreturn:
+ if (yychar != YYEOF && yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
+}
+
+
+
+
+
+void conf_parse(const char *name)
+{
+ struct symbol *sym;
+ int i;
+
+ zconf_initscan(name);
+
+ sym_init();
+ menu_init();
+ modules_sym = sym_lookup(NULL, 0);
+ modules_sym->type = S_BOOLEAN;
+ modules_sym->flags |= SYMBOL_AUTO;
+ rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL);
+
+#if YYDEBUG
+ if (getenv("ZCONF_DEBUG"))
+ zconfdebug = 1;
+#endif
+ zconfparse();
+ if (zconfnerrs)
+ exit(1);
+ if (!modules_sym->prop) {
+ struct property *prop;
+
+ prop = prop_alloc(P_DEFAULT, modules_sym);
+ prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
+ }
+ menu_finalize(&rootmenu);
+ for_all_symbols(i, sym) {
+ if (sym_check_deps(sym))
+ zconfnerrs++;
+ }
+ if (zconfnerrs)
+ exit(1);
+ sym_set_change_count(1);
+}
+
+const char *zconf_tokenname(int token)
+{
+ switch (token) {
+ case T_MENU: return "menu";
+ case T_ENDMENU: return "endmenu";
+ case T_CHOICE: return "choice";
+ case T_ENDCHOICE: return "endchoice";
+ case T_IF: return "if";
+ case T_ENDIF: return "endif";
+ case T_DEPENDS: return "depends";
+ }
+ return "<token>";
+}
+
+static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
+{
+ if (id->token != endtoken) {
+ zconf_error("unexpected '%s' within %s block",
+ kconf_id_strings + id->name, zconf_tokenname(starttoken));
+ zconfnerrs++;
+ return false;
+ }
+ if (current_menu->file != current_file) {
+ zconf_error("'%s' in different file than '%s'",
+ kconf_id_strings + id->name, zconf_tokenname(starttoken));
+ fprintf(stderr, "%s:%d: location of the '%s'\n",
+ current_menu->file->name, current_menu->lineno,
+ zconf_tokenname(starttoken));
+ zconfnerrs++;
+ return false;
+ }
+ return true;
+}
+
+static void zconfprint(const char *err, ...)
+{
+ va_list ap;
+
+ fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno());
+ va_start(ap, err);
+ vfprintf(stderr, err, ap);
+ va_end(ap);
+ fprintf(stderr, "\n");
+}
+
+static void zconf_error(const char *err, ...)
+{
+ va_list ap;
+
+ zconfnerrs++;
+ fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno());
+ va_start(ap, err);
+ vfprintf(stderr, err, ap);
+ va_end(ap);
+ fprintf(stderr, "\n");
+}
+
+static void zconferror(const char *err)
+{
+#if YYDEBUG
+ fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
+#endif
+}
+
+void print_quoted_string(FILE *out, const char *str)
+{
+ const char *p;
+ int len;
+
+ putc('"', out);
+ while ((p = strchr(str, '"'))) {
+ len = p - str;
+ if (len)
+ fprintf(out, "%.*s", len, str);
+ fputs("\\\"", out);
+ str = p + 1;
+ }
+ fputs(str, out);
+ putc('"', out);
+}
+
+void print_symbol(FILE *out, struct menu *menu)
+{
+ struct symbol *sym = menu->sym;
+ struct property *prop;
+
+ if (sym_is_choice(sym))
+ fprintf(out, "choice\n");
+ else
+ fprintf(out, "config %s\n", sym->name);
+ switch (sym->type) {
+ case S_BOOLEAN:
+ fputs(" boolean\n", out);
+ break;
+ case S_TRISTATE:
+ fputs(" tristate\n", out);
+ break;
+ case S_STRING:
+ fputs(" string\n", out);
+ break;
+ case S_INT:
+ fputs(" integer\n", out);
+ break;
+ case S_HEX:
+ fputs(" hex\n", out);
+ break;
+ default:
+ fputs(" ???\n", out);
+ break;
+ }
+ for (prop = sym->prop; prop; prop = prop->next) {
+ if (prop->menu != menu)
+ continue;
+ switch (prop->type) {
+ case P_PROMPT:
+ fputs(" prompt ", out);
+ print_quoted_string(out, prop->text);
+ if (!expr_is_yes(prop->visible.expr)) {
+ fputs(" if ", out);
+ expr_fprint(prop->visible.expr, out);
+ }
+ fputc('\n', out);
+ break;
+ case P_DEFAULT:
+ fputs( " default ", out);
+ expr_fprint(prop->expr, out);
+ if (!expr_is_yes(prop->visible.expr)) {
+ fputs(" if ", out);
+ expr_fprint(prop->visible.expr, out);
+ }
+ fputc('\n', out);
+ break;
+ case P_CHOICE:
+ fputs(" #choice value\n", out);
+ break;
+ default:
+ fprintf(out, " unknown prop %d!\n", prop->type);
+ break;
+ }
+ }
+ if (menu->help) {
+ int len = strlen(menu->help);
+ while (menu->help[--len] == '\n')
+ menu->help[len] = 0;
+ fprintf(out, " help\n%s\n", menu->help);
+ }
+ fputc('\n', out);
+}
+
+void zconfdump(FILE *out)
+{
+ struct property *prop;
+ struct symbol *sym;
+ struct menu *menu;
+
+ menu = rootmenu.list;
+ while (menu) {
+ if ((sym = menu->sym))
+ print_symbol(out, menu);
+ else if ((prop = menu->prompt)) {
+ switch (prop->type) {
+ case P_COMMENT:
+ fputs("\ncomment ", out);
+ print_quoted_string(out, prop->text);
+ fputs("\n", out);
+ break;
+ case P_MENU:
+ fputs("\nmenu ", out);
+ print_quoted_string(out, prop->text);
+ fputs("\n", out);
+ break;
+ default:
+ ;
+ }
+ if (!expr_is_yes(prop->visible.expr)) {
+ fputs(" depends ", out);
+ expr_fprint(prop->visible.expr, out);
+ fputc('\n', out);
+ }
+ fputs("\n", out);
+ }
+
+ if (menu->list)
+ menu = menu->list;
+ else if (menu->next)
+ menu = menu->next;
+ else while ((menu = menu->parent)) {
+ if (menu->prompt && menu->prompt->type == P_MENU)
+ fputs("\nendmenu\n", out);
+ if (menu->next) {
+ menu = menu->next;
+ break;
+ }
+ }
+ }
+}
+
+#include "lex.zconf.c"
+#include "util.c"
+#include "confdata.c"
+#include "expr.c"
+#include "symbol.c"
+#include "menu.c"
+
diff --git a/cleopatre/buildroot/package/config/zconf.y b/cleopatre/buildroot/package/config/zconf.y
new file mode 100644
index 0000000000..34c907b496
--- /dev/null
+++ b/cleopatre/buildroot/package/config/zconf.y
@@ -0,0 +1,703 @@
+%{
+/*
+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdbool.h>
+
+#define LKC_DIRECT_LINK
+#include "lkc.h"
+
+#include "zconf.hash.c"
+
+#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
+
+#define PRINTD 0x0001
+#define DEBUG_PARSE 0x0002
+
+int cdebug = PRINTD;
+
+extern int zconflex(void);
+static void zconfprint(const char *err, ...);
+static void zconf_error(const char *err, ...);
+static void zconferror(const char *err);
+static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
+
+struct symbol *symbol_hash[257];
+
+static struct menu *current_menu, *current_entry;
+
+#define YYDEBUG 0
+#if YYDEBUG
+#define YYERROR_VERBOSE
+#endif
+%}
+%expect 26
+
+%union
+{
+ char *string;
+ struct file *file;
+ struct symbol *symbol;
+ struct expr *expr;
+ struct menu *menu;
+ struct kconf_id *id;
+}
+
+%token <id>T_MAINMENU
+%token <id>T_MENU
+%token <id>T_ENDMENU
+%token <id>T_SOURCE
+%token <id>T_CHOICE
+%token <id>T_ENDCHOICE
+%token <id>T_COMMENT
+%token <id>T_CONFIG
+%token <id>T_MENUCONFIG
+%token <id>T_HELP
+%token <string> T_HELPTEXT
+%token <id>T_IF
+%token <id>T_ENDIF
+%token <id>T_DEPENDS
+%token <id>T_OPTIONAL
+%token <id>T_PROMPT
+%token <id>T_TYPE
+%token <id>T_DEFAULT
+%token <id>T_SELECT
+%token <id>T_RANGE
+%token <id>T_OPTION
+%token <id>T_ON
+%token <string> T_WORD
+%token <string> T_WORD_QUOTE
+%token T_UNEQUAL
+%token T_CLOSE_PAREN
+%token T_OPEN_PAREN
+%token T_EOL
+
+%left T_OR
+%left T_AND
+%left T_EQUAL T_UNEQUAL
+%nonassoc T_NOT
+
+%type <string> prompt
+%type <symbol> symbol
+%type <expr> expr
+%type <expr> if_expr
+%type <id> end
+%type <id> option_name
+%type <menu> if_entry menu_entry choice_entry
+%type <string> symbol_option_arg
+
+%destructor {
+ fprintf(stderr, "%s:%d: missing end statement for this entry\n",
+ $$->file->name, $$->lineno);
+ if (current_menu == $$)
+ menu_end_menu();
+} if_entry menu_entry choice_entry
+
+%%
+input: stmt_list;
+
+stmt_list:
+ /* empty */
+ | stmt_list common_stmt
+ | stmt_list choice_stmt
+ | stmt_list menu_stmt
+ | stmt_list T_MAINMENU prompt nl
+ | stmt_list end { zconf_error("unexpected end statement"); }
+ | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); }
+ | stmt_list option_name error T_EOL
+{
+ zconf_error("unexpected option \"%s\"", kconf_id_strings + $2->name);
+}
+ | stmt_list error T_EOL { zconf_error("invalid statement"); }
+;
+
+option_name:
+ T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT
+;
+
+common_stmt:
+ T_EOL
+ | if_stmt
+ | comment_stmt
+ | config_stmt
+ | menuconfig_stmt
+ | source_stmt
+;
+
+option_error:
+ T_WORD error T_EOL { zconf_error("unknown option \"%s\"", $1); }
+ | error T_EOL { zconf_error("invalid option"); }
+;
+
+
+/* config/menuconfig entry */
+
+config_entry_start: T_CONFIG T_WORD T_EOL
+{
+ struct symbol *sym = sym_lookup($2, 0);
+ sym->flags |= SYMBOL_OPTIONAL;
+ menu_add_entry(sym);
+ printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), $2);
+};
+
+config_stmt: config_entry_start config_option_list
+{
+ menu_end_entry();
+ printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
+};
+
+menuconfig_entry_start: T_MENUCONFIG T_WORD T_EOL
+{
+ struct symbol *sym = sym_lookup($2, 0);
+ sym->flags |= SYMBOL_OPTIONAL;
+ menu_add_entry(sym);
+ printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), $2);
+};
+
+menuconfig_stmt: menuconfig_entry_start config_option_list
+{
+ if (current_entry->prompt)
+ current_entry->prompt->type = P_MENU;
+ else
+ zconfprint("warning: menuconfig statement without prompt");
+ menu_end_entry();
+ printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
+};
+
+config_option_list:
+ /* empty */
+ | config_option_list config_option
+ | config_option_list symbol_option
+ | config_option_list depends
+ | config_option_list help
+ | config_option_list option_error
+ | config_option_list T_EOL
+;
+
+config_option: T_TYPE prompt_stmt_opt T_EOL
+{
+ menu_set_type($1->stype);
+ printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
+ zconf_curname(), zconf_lineno(),
+ $1->stype);
+};
+
+config_option: T_PROMPT prompt if_expr T_EOL
+{
+ menu_add_prompt(P_PROMPT, $2, $3);
+ printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
+};
+
+config_option: T_DEFAULT expr if_expr T_EOL
+{
+ menu_add_expr(P_DEFAULT, $2, $3);
+ if ($1->stype != S_UNKNOWN)
+ menu_set_type($1->stype);
+ printd(DEBUG_PARSE, "%s:%d:default(%u)\n",
+ zconf_curname(), zconf_lineno(),
+ $1->stype);
+};
+
+config_option: T_SELECT T_WORD if_expr T_EOL
+{
+ menu_add_symbol(P_SELECT, sym_lookup($2, 0), $3);
+ printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
+};
+
+config_option: T_RANGE symbol symbol if_expr T_EOL
+{
+ menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4);
+ printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
+};
+
+symbol_option: T_OPTION symbol_option_list T_EOL
+;
+
+symbol_option_list:
+ /* empty */
+ | symbol_option_list T_WORD symbol_option_arg
+{
+ struct kconf_id *id = kconf_id_lookup($2, strlen($2));
+ if (id && id->flags & TF_OPTION)
+ menu_add_option(id->token, $3);
+ else
+ zconfprint("warning: ignoring unknown option %s", $2);
+ free($2);
+};
+
+symbol_option_arg:
+ /* empty */ { $$ = NULL; }
+ | T_EQUAL prompt { $$ = $2; }
+;
+
+/* choice entry */
+
+choice: T_CHOICE T_EOL
+{
+ struct symbol *sym = sym_lookup(NULL, 0);
+ sym->flags |= SYMBOL_CHOICE;
+ menu_add_entry(sym);
+ menu_add_expr(P_CHOICE, NULL, NULL);
+ printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
+};
+
+choice_entry: choice choice_option_list
+{
+ $$ = menu_add_menu();
+};
+
+choice_end: end
+{
+ if (zconf_endtoken($1, T_CHOICE, T_ENDCHOICE)) {
+ menu_end_menu();
+ printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
+ }
+};
+
+choice_stmt: choice_entry choice_block choice_end
+;
+
+choice_option_list:
+ /* empty */
+ | choice_option_list choice_option
+ | choice_option_list depends
+ | choice_option_list help
+ | choice_option_list T_EOL
+ | choice_option_list option_error
+;
+
+choice_option: T_PROMPT prompt if_expr T_EOL
+{
+ menu_add_prompt(P_PROMPT, $2, $3);
+ printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
+};
+
+choice_option: T_TYPE prompt_stmt_opt T_EOL
+{
+ if ($1->stype == S_BOOLEAN || $1->stype == S_TRISTATE) {
+ menu_set_type($1->stype);
+ printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
+ zconf_curname(), zconf_lineno(),
+ $1->stype);
+ } else
+ YYERROR;
+};
+
+choice_option: T_OPTIONAL T_EOL
+{
+ current_entry->sym->flags |= SYMBOL_OPTIONAL;
+ printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
+};
+
+choice_option: T_DEFAULT T_WORD if_expr T_EOL
+{
+ if ($1->stype == S_UNKNOWN) {
+ menu_add_symbol(P_DEFAULT, sym_lookup($2, 0), $3);
+ printd(DEBUG_PARSE, "%s:%d:default\n",
+ zconf_curname(), zconf_lineno());
+ } else
+ YYERROR;
+};
+
+choice_block:
+ /* empty */
+ | choice_block common_stmt
+;
+
+/* if entry */
+
+if_entry: T_IF expr nl
+{
+ printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
+ menu_add_entry(NULL);
+ menu_add_dep($2);
+ $$ = menu_add_menu();
+};
+
+if_end: end
+{
+ if (zconf_endtoken($1, T_IF, T_ENDIF)) {
+ menu_end_menu();
+ printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
+ }
+};
+
+if_stmt: if_entry if_block if_end
+;
+
+if_block:
+ /* empty */
+ | if_block common_stmt
+ | if_block menu_stmt
+ | if_block choice_stmt
+;
+
+/* menu entry */
+
+menu: T_MENU prompt T_EOL
+{
+ menu_add_entry(NULL);
+ menu_add_prompt(P_MENU, $2, NULL);
+ printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
+};
+
+menu_entry: menu depends_list
+{
+ $$ = menu_add_menu();
+};
+
+menu_end: end
+{
+ if (zconf_endtoken($1, T_MENU, T_ENDMENU)) {
+ menu_end_menu();
+ printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
+ }
+};
+
+menu_stmt: menu_entry menu_block menu_end
+;
+
+menu_block:
+ /* empty */
+ | menu_block common_stmt
+ | menu_block menu_stmt
+ | menu_block choice_stmt
+;
+
+source_stmt: T_SOURCE prompt T_EOL
+{
+ printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), $2);
+ zconf_nextfile($2);
+};
+
+/* comment entry */
+
+comment: T_COMMENT prompt T_EOL
+{
+ menu_add_entry(NULL);
+ menu_add_prompt(P_COMMENT, $2, NULL);
+ printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
+};
+
+comment_stmt: comment depends_list
+{
+ menu_end_entry();
+};
+
+/* help option */
+
+help_start: T_HELP T_EOL
+{
+ printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
+ zconf_starthelp();
+};
+
+help: help_start T_HELPTEXT
+{
+ current_entry->help = $2;
+};
+
+/* depends option */
+
+depends_list:
+ /* empty */
+ | depends_list depends
+ | depends_list T_EOL
+ | depends_list option_error
+;
+
+depends: T_DEPENDS T_ON expr T_EOL
+{
+ menu_add_dep($3);
+ printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
+};
+
+/* prompt statement */
+
+prompt_stmt_opt:
+ /* empty */
+ | prompt if_expr
+{
+ menu_add_prompt(P_PROMPT, $1, $2);
+};
+
+prompt: T_WORD
+ | T_WORD_QUOTE
+;
+
+end: T_ENDMENU T_EOL { $$ = $1; }
+ | T_ENDCHOICE T_EOL { $$ = $1; }
+ | T_ENDIF T_EOL { $$ = $1; }
+;
+
+nl:
+ T_EOL
+ | nl T_EOL
+;
+
+if_expr: /* empty */ { $$ = NULL; }
+ | T_IF expr { $$ = $2; }
+;
+
+expr: symbol { $$ = expr_alloc_symbol($1); }
+ | symbol T_EQUAL symbol { $$ = expr_alloc_comp(E_EQUAL, $1, $3); }
+ | symbol T_UNEQUAL symbol { $$ = expr_alloc_comp(E_UNEQUAL, $1, $3); }
+ | T_OPEN_PAREN expr T_CLOSE_PAREN { $$ = $2; }
+ | T_NOT expr { $$ = expr_alloc_one(E_NOT, $2); }
+ | expr T_OR expr { $$ = expr_alloc_two(E_OR, $1, $3); }
+ | expr T_AND expr { $$ = expr_alloc_two(E_AND, $1, $3); }
+;
+
+symbol: T_WORD { $$ = sym_lookup($1, 0); free($1); }
+ | T_WORD_QUOTE { $$ = sym_lookup($1, 1); free($1); }
+;
+
+%%
+
+void conf_parse(const char *name)
+{
+ struct symbol *sym;
+ int i;
+
+ zconf_initscan(name);
+
+ sym_init();
+ menu_init();
+ modules_sym = sym_lookup(NULL, 0);
+ modules_sym->type = S_BOOLEAN;
+ modules_sym->flags |= SYMBOL_AUTO;
+ rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL);
+
+#if YYDEBUG
+ if (getenv("ZCONF_DEBUG"))
+ zconfdebug = 1;
+#endif
+ zconfparse();
+ if (zconfnerrs)
+ exit(1);
+ if (!modules_sym->prop) {
+ struct property *prop;
+
+ prop = prop_alloc(P_DEFAULT, modules_sym);
+ prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
+ }
+ menu_finalize(&rootmenu);
+ for_all_symbols(i, sym) {
+ if (sym_check_deps(sym))
+ zconfnerrs++;
+ }
+ if (zconfnerrs)
+ exit(1);
+ sym_set_change_count(1);
+}
+
+const char *zconf_tokenname(int token)
+{
+ switch (token) {
+ case T_MENU: return "menu";
+ case T_ENDMENU: return "endmenu";
+ case T_CHOICE: return "choice";
+ case T_ENDCHOICE: return "endchoice";
+ case T_IF: return "if";
+ case T_ENDIF: return "endif";
+ case T_DEPENDS: return "depends";
+ }
+ return "<token>";
+}
+
+static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
+{
+ if (id->token != endtoken) {
+ zconf_error("unexpected '%s' within %s block",
+ kconf_id_strings + id->name, zconf_tokenname(starttoken));
+ zconfnerrs++;
+ return false;
+ }
+ if (current_menu->file != current_file) {
+ zconf_error("'%s' in different file than '%s'",
+ kconf_id_strings + id->name, zconf_tokenname(starttoken));
+ fprintf(stderr, "%s:%d: location of the '%s'\n",
+ current_menu->file->name, current_menu->lineno,
+ zconf_tokenname(starttoken));
+ zconfnerrs++;
+ return false;
+ }
+ return true;
+}
+
+static void zconfprint(const char *err, ...)
+{
+ va_list ap;
+
+ fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno());
+ va_start(ap, err);
+ vfprintf(stderr, err, ap);
+ va_end(ap);
+ fprintf(stderr, "\n");
+}
+
+static void zconf_error(const char *err, ...)
+{
+ va_list ap;
+
+ zconfnerrs++;
+ fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno());
+ va_start(ap, err);
+ vfprintf(stderr, err, ap);
+ va_end(ap);
+ fprintf(stderr, "\n");
+}
+
+static void zconferror(const char *err)
+{
+#if YYDEBUG
+ fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
+#endif
+}
+
+void print_quoted_string(FILE *out, const char *str)
+{
+ const char *p;
+ int len;
+
+ putc('"', out);
+ while ((p = strchr(str, '"'))) {
+ len = p - str;
+ if (len)
+ fprintf(out, "%.*s", len, str);
+ fputs("\\\"", out);
+ str = p + 1;
+ }
+ fputs(str, out);
+ putc('"', out);
+}
+
+void print_symbol(FILE *out, struct menu *menu)
+{
+ struct symbol *sym = menu->sym;
+ struct property *prop;
+
+ if (sym_is_choice(sym))
+ fprintf(out, "choice\n");
+ else
+ fprintf(out, "config %s\n", sym->name);
+ switch (sym->type) {
+ case S_BOOLEAN:
+ fputs(" boolean\n", out);
+ break;
+ case S_TRISTATE:
+ fputs(" tristate\n", out);
+ break;
+ case S_STRING:
+ fputs(" string\n", out);
+ break;
+ case S_INT:
+ fputs(" integer\n", out);
+ break;
+ case S_HEX:
+ fputs(" hex\n", out);
+ break;
+ default:
+ fputs(" ???\n", out);
+ break;
+ }
+ for (prop = sym->prop; prop; prop = prop->next) {
+ if (prop->menu != menu)
+ continue;
+ switch (prop->type) {
+ case P_PROMPT:
+ fputs(" prompt ", out);
+ print_quoted_string(out, prop->text);
+ if (!expr_is_yes(prop->visible.expr)) {
+ fputs(" if ", out);
+ expr_fprint(prop->visible.expr, out);
+ }
+ fputc('\n', out);
+ break;
+ case P_DEFAULT:
+ fputs( " default ", out);
+ expr_fprint(prop->expr, out);
+ if (!expr_is_yes(prop->visible.expr)) {
+ fputs(" if ", out);
+ expr_fprint(prop->visible.expr, out);
+ }
+ fputc('\n', out);
+ break;
+ case P_CHOICE:
+ fputs(" #choice value\n", out);
+ break;
+ default:
+ fprintf(out, " unknown prop %d!\n", prop->type);
+ break;
+ }
+ }
+ if (menu->help) {
+ int len = strlen(menu->help);
+ while (menu->help[--len] == '\n')
+ menu->help[len] = 0;
+ fprintf(out, " help\n%s\n", menu->help);
+ }
+ fputc('\n', out);
+}
+
+void zconfdump(FILE *out)
+{
+ struct property *prop;
+ struct symbol *sym;
+ struct menu *menu;
+
+ menu = rootmenu.list;
+ while (menu) {
+ if ((sym = menu->sym))
+ print_symbol(out, menu);
+ else if ((prop = menu->prompt)) {
+ switch (prop->type) {
+ case P_COMMENT:
+ fputs("\ncomment ", out);
+ print_quoted_string(out, prop->text);
+ fputs("\n", out);
+ break;
+ case P_MENU:
+ fputs("\nmenu ", out);
+ print_quoted_string(out, prop->text);
+ fputs("\n", out);
+ break;
+ default:
+ ;
+ }
+ if (!expr_is_yes(prop->visible.expr)) {
+ fputs(" depends ", out);
+ expr_fprint(prop->visible.expr, out);
+ fputc('\n', out);
+ }
+ fputs("\n", out);
+ }
+
+ if (menu->list)
+ menu = menu->list;
+ else if (menu->next)
+ menu = menu->next;
+ else while ((menu = menu->parent)) {
+ if (menu->prompt && menu->prompt->type == P_MENU)
+ fputs("\nendmenu\n", out);
+ if (menu->next) {
+ menu = menu->next;
+ break;
+ }
+ }
+ }
+}
+
+#include "lex.zconf.c"
+#include "util.c"
+#include "confdata.c"
+#include "expr.c"
+#include "symbol.c"
+#include "menu.c"
diff --git a/cleopatre/buildroot/package/coreutils/Config.in b/cleopatre/buildroot/package/coreutils/Config.in
new file mode 100644
index 0000000000..be68485027
--- /dev/null
+++ b/cleopatre/buildroot/package/coreutils/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_COREUTILS
+ bool "coreutils"
+ depends on BR2_USE_WCHAR
+ select BR2_UCLIBC_PROGRAM_INVOCATION
+ help
+ All of the basic file/text/shell utilities. These are the
+ core utilities which are expected to exist on every system.
+ Busybox implements many of the most common.
+
+ Things like:
+ - chmod, cp, dd, dir, ls, etc...
+ - sort, tr, head, tail, wc, etc...
+ - whoami, who, etc...
+
+ http://www.gnu.org/software/coreutils/
diff --git a/cleopatre/buildroot/package/coreutils/coreutils.mk b/cleopatre/buildroot/package/coreutils/coreutils.mk
new file mode 100644
index 0000000000..8ee86e0f17
--- /dev/null
+++ b/cleopatre/buildroot/package/coreutils/coreutils.mk
@@ -0,0 +1,156 @@
+#############################################################
+#
+# coreutils
+#
+#############################################################
+COREUTILS_VERSION:=6.9
+COREUTILS_SOURCE:=coreutils-$(COREUTILS_VERSION).tar.bz2
+#COREUTILS_SITE:=ftp://alpha.gnu.org/gnu/coreutils/
+COREUTILS_SITE:=$(BR2_GNU_MIRROR)/coreutils
+COREUTILS_CAT:=$(BZCAT)
+COREUTILS_DIR:=$(BUILD_DIR)/coreutils-$(COREUTILS_VERSION)
+COREUTILS_BINARY:=src/vdir
+COREUTILS_TARGET_BINARY:=bin/vdir
+BIN_PROGS:=cat chgrp chmod chown cp date dd df dir echo false hostname \
+ ln ls mkdir mknod mv pwd rm rmdir vdir sleep stty sync touch true uname
+
+$(DL_DIR)/$(COREUTILS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(COREUTILS_SITE)/$(COREUTILS_SOURCE)
+
+coreutils-source: $(DL_DIR)/$(COREUTILS_SOURCE)
+
+$(COREUTILS_DIR)/.unpacked: $(DL_DIR)/$(COREUTILS_SOURCE)
+ $(COREUTILS_CAT) $(DL_DIR)/$(COREUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(COREUTILS_DIR) package/coreutils/ coreutils\*.patch
+ $(CONFIG_UPDATE) $(COREUTILS_DIR)/build-aux
+ touch $@
+
+$(COREUTILS_DIR)/.configured: $(COREUTILS_DIR)/.unpacked
+ (cd $(COREUTILS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_func_strtod=yes \
+ ac_fsusage_space=yes \
+ fu_cv_sys_stat_statfs2_bsize=yes \
+ ac_cv_func_closedir_void=no \
+ ac_cv_func_getloadavg=no \
+ ac_cv_lib_util_getloadavg=no \
+ ac_cv_lib_getloadavg_getloadavg=no \
+ ac_cv_func_getgroups=yes \
+ ac_cv_func_getgroups_works=yes \
+ ac_cv_func_chown_works=yes \
+ ac_cv_have_decl_euidaccess=no \
+ ac_cv_func_euidaccess=no \
+ ac_cv_have_decl_strnlen=yes \
+ ac_cv_func_strnlen_working=yes \
+ ac_cv_func_lstat_dereferences_slashed_symlink=yes \
+ ac_cv_func_lstat_empty_string_bug=no \
+ ac_cv_func_stat_empty_string_bug=no \
+ vb_cv_func_rename_trailing_slash_bug=no \
+ ac_cv_have_decl_nanosleep=yes \
+ jm_cv_func_nanosleep_works=yes \
+ gl_cv_func_working_utimes=yes \
+ ac_cv_func_utime_null=yes \
+ ac_cv_have_decl_strerror_r=yes \
+ ac_cv_func_strerror_r_char_p=no \
+ jm_cv_func_svid_putenv=yes \
+ ac_cv_func_getcwd_null=yes \
+ ac_cv_func_getdelim=yes \
+ ac_cv_func_mkstemp=yes \
+ utils_cv_func_mkstemp_limitations=no \
+ utils_cv_func_mkdir_trailing_slash_bug=no \
+ ac_cv_func_memcmp_working=yes \
+ ac_cv_have_decl_malloc=yes \
+ gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_calloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes \
+ jm_cv_func_gettimeofday_clobber=no \
+ am_cv_func_working_getline=yes \
+ gl_cv_func_working_readdir=yes \
+ jm_ac_cv_func_link_follows_symlink=no \
+ utils_cv_localtime_cache=no \
+ ac_cv_struct_st_mtim_nsec=no \
+ gl_cv_func_tzset_clobber=no \
+ gl_cv_func_getcwd_null=yes \
+ gl_cv_func_getcwd_path_max=yes \
+ ac_cv_func_fnmatch_gnu=yes \
+ am_getline_needs_run_time_check=no \
+ am_cv_func_working_getline=yes \
+ gl_cv_func_mkdir_trailing_slash_bug=no \
+ gl_cv_func_mkstemp_limitations=no \
+ ac_cv_func_working_mktime=yes \
+ jm_cv_func_working_re_compile_pattern=yes \
+ ac_use_included_regex=no \
+ gl_cv_c_restrict=no \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ $(DISABLE_NLS) \
+ $(DISABLE_LARGEFILE) \
+ --disable-rpath \
+ --disable-dependency-tracking \
+ )
+ touch $@
+
+$(COREUTILS_DIR)/$(COREUTILS_BINARY): $(COREUTILS_DIR)/.configured
+ $(MAKE) -C $(COREUTILS_DIR)
+ rm -f $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
+
+$(TARGET_DIR)/$(COREUTILS_TARGET_BINARY): $(COREUTILS_DIR)/$(COREUTILS_BINARY)
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) install
+ # some things go in root rather than usr
+ for f in $(BIN_PROGS); do \
+ mv $(TARGET_DIR)/usr/bin/$$f $(TARGET_DIR)/bin/$$f; \
+ done
+ # link for archaic shells
+ ln -fs test $(TARGET_DIR)/usr/bin/[
+ # gnu thinks chroot is in bin, debian thinks it's in sbin
+ mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin/chroot
+ $(STRIPCMD) $(TARGET_DIR)/usr/sbin/chroot > /dev/null 2>&1
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+
+# If both coreutils and busybox are selected, make certain coreutils
+# wins the fight over who gets to have their utils actually installed.
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+coreutils: uclibc busybox $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
+else
+coreutils: uclibc $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
+endif
+
+# If both coreutils and busybox are selected, the corresponding applets
+# may need to be reinstated by the clean targets.
+coreutils-clean:
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) uninstall
+ -$(MAKE) -C $(COREUTILS_DIR) clean
+
+coreutils-dirclean:
+ rm -rf $(COREUTILS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_COREUTILS)),y)
+TARGETS+=coreutils
+endif
diff --git a/cleopatre/buildroot/package/cups/Config.in b/cleopatre/buildroot/package/cups/Config.in
new file mode 100644
index 0000000000..839d20140d
--- /dev/null
+++ b/cleopatre/buildroot/package/cups/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_CUPS
+ bool "cups"
+ help
+ The Common Unix Print Subsystem
+
+ http://www.cups.org
+
diff --git a/cleopatre/buildroot/package/cups/cups-1.3.5-mantohtml.patch b/cleopatre/buildroot/package/cups/cups-1.3.5-mantohtml.patch
new file mode 100644
index 0000000000..e6a10b0d01
--- /dev/null
+++ b/cleopatre/buildroot/package/cups/cups-1.3.5-mantohtml.patch
@@ -0,0 +1,11 @@
+--- cups-1.3.5/man/Makefile 2007-07-12 21:01:14.000000000 -0400
++++ cups-1.3.5/man/Makefile 2008-02-11 08:55:24.000000000 -0500
+@@ -173,7 +173,7 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) ma
+ done
+
+ mantohtml: mantohtml.o
+- $(CC) $(LDFLAGS) -o $@ mantohtml.o
++ gcc -I/usr/include -I../ -L/usr/lib mantohtml.c -o mantohtml
+
+
+ #
diff --git a/cleopatre/buildroot/package/cups/cups-1.3.5-no-tests-man.patch b/cleopatre/buildroot/package/cups/cups-1.3.5-no-tests-man.patch
new file mode 100644
index 0000000000..567c801c64
--- /dev/null
+++ b/cleopatre/buildroot/package/cups/cups-1.3.5-no-tests-man.patch
@@ -0,0 +1,13 @@
+--- cups-1.3.5/Makefile 2007-12-06 15:09:39.000000000 -0500
++++ cups-1.3.5/Makefile 2008-02-09 21:53:03.000000000 -0500
+@@ -19,8 +19,8 @@ include Makedefs
+ # Directories to make...
+ #
+
+-DIRS = cups backend berkeley cgi-bin filter locale man monitor \
+- notifier $(PDFTOPS) scheduler systemv test \
++DIRS = cups backend berkeley cgi-bin filter locale monitor \
++ notifier $(PDFTOPS) scheduler systemv \
+ $(PHPDIR) \
+ conf data doc $(FONTS) ppd templates
+
diff --git a/cleopatre/buildroot/package/cups/cups.mk b/cleopatre/buildroot/package/cups/cups.mk
new file mode 100644
index 0000000000..b902a21186
--- /dev/null
+++ b/cleopatre/buildroot/package/cups/cups.mk
@@ -0,0 +1,70 @@
+################################################################################
+#
+# cups
+#
+################################################################################
+CUPS_VERSION = 1.3.5
+CUPS_NAME = cups-$(CUPS_VERSION)
+CUPS_DIR = $(BUILD_DIR)/$(CUPS_NAME)
+CUPS_SITE = http://ftp.easysw.com/pub/cups/1.3.5
+CUPS_SOURCE:=$(CUPS_NAME)-source.tar.bz2
+CUPS_DESTDIR:=$(STAGING_DIR)/usr/lib
+CUPS_CAT:=$(BZCAT)
+
+ifeq ($(BR2_PACKAGE_DBUS),y)
+ CUPS_CONF_OPT_DBUS =--enable-dbus
+ CUPS_DEPENDENCIES_DBUS = dbus
+else
+ CUPS_CONF_OPT_DBUS =--disable-dbus
+endif
+
+ifneq ($(BR2_PACKAGE_XSERVER_none),y)
+ CUPS_DEPENDENCIES_X = xlib_libX11
+endif
+
+$(DL_DIR)/$(CUPS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(CUPS_SITE)/$(CUPS_SOURCE)
+
+$(CUPS_DIR)/.unpacked: $(DL_DIR)/$(CUPS_SOURCE)
+ $(CUPS_CAT) $(DL_DIR)/$(CUPS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(CUPS_DIR) package/cups/ \*.patch
+ $(CONFIG_UPDATE) $(CUPS_DIR)
+ touch $@
+
+$(CUPS_DIR)/.configured: $(CUPS_DIR)/.unpacked
+ (cd $(CUPS_DIR) && \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --prefix=/usr $(CUPS_CONF_OPT_DBUS) --includedir=/usr/include \
+ --libdir=/usr/lib --disable-gnutls --disable-gssapi --host=$(ARCH) \ )
+ touch $@
+
+$(CUPS_DIR)/.compiled: $(CUPS_DIR)/.configured
+ $(MAKE) -C $(CUPS_DIR) cups backend berkeley cgi-bin filter \
+ locale monitor notifier pdftops scheduler systemv scripting/php \
+ conf data doc fonts ppd templates
+ touch $@
+
+$(CUPS_DIR)/.installed: $(CUPS_DIR)/.compiled
+ $(MAKE) -C $(CUPS_DIR) DESTDIR=$(STAGING_DIR) DSTROOT=$(STAGING_DIR) install
+ $(MAKE) -C $(CUPS_DIR) DESTDIR=$(TARGET_DIR) DSTROOT=$(TARGET_DIR) install
+ $(SED) "s,^prefix=.*,prefix=\'$(STAGING_DIR)/usr\',g" $(STAGING_DIR)/usr/bin/cups-config
+ $(SED) "s,^exec_prefix=.*,exec_prefix=\'$(STAGING_DIR)/usr\',g" $(STAGING_DIR)/usr/bin/cups-config
+ $(SED) "s,^includedir=.*,includedir=\'$(STAGING_DIR)/usr/include\',g" $(STAGING_DIR)/usr/bin/cups-config
+ $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/bin/cups-config
+ touch $@
+
+cups: uclibc $(CUPS_DEPENDENCIES_DBUS) $(CUPS_DEPENDENCIES_X) $(CUPS_DIR)/.installed
+
+cups-clean:
+ -$(MAKE) -C $(CUPS_DIR) clean
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_CUPS)),y)
+TARGETS+=cups
+endif \ No newline at end of file
diff --git a/cleopatre/buildroot/package/curl/Config.in b/cleopatre/buildroot/package/curl/Config.in
new file mode 100644
index 0000000000..3e1985528b
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_CURL
+ bool "curl"
+ help
+ cURL is a tool for getting files from FTP, HTTP, Gopher, Telnet,
+ and Dict servers, using any of the supported protocols.
+
+ http://curl.haxx.nu/
+
+config BR2_PACKAGE_LIBCURL
+ bool "libcurl"
+ help
+ cURL is a tool for getting files from FTP, HTTP, Gopher, Telnet,
+ and Dict servers, using any of the supported protocols.
+
+ http://curl.haxx.nu/
diff --git a/cleopatre/buildroot/package/curl/curl-7.10.4-path.patch b/cleopatre/buildroot/package/curl/curl-7.10.4-path.patch
new file mode 100644
index 0000000000..a972618ebe
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/curl-7.10.4-path.patch
@@ -0,0 +1,13 @@
+--- curl-7.10.4/lib/Makefile.am
++++ curl-7.10.4/lib/Makefile.am
+@@ -78,8 +78,8 @@
+
+ install-data-hook:
+ @if test -n "@CURL_CA_BUNDLE@"; then \
+- $(mkinstalldirs) `dirname $(DESTDIR)@CURL_CA_BUNDLE@`; \
+- @INSTALL_DATA@ $(srcdir)/ca-bundle.crt $(DESTDIR)@CURL_CA_BUNDLE@; \
++ $(mkinstalldirs) `dirname $(prefix)/../@CURL_CA_BUNDLE@`; \
++ @INSTALL_DATA@ $(srcdir)/ca-bundle.crt $(prefix)/../@CURL_CA_BUNDLE@; \
+ fi
+
+ # this hook is mainly for non-unix systems to build even if configure
diff --git a/cleopatre/buildroot/package/curl/curl-7.12.0-nousr.patch b/cleopatre/buildroot/package/curl/curl-7.12.0-nousr.patch
new file mode 100644
index 0000000000..ea0e7d0b63
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/curl-7.12.0-nousr.patch
@@ -0,0 +1,16 @@
+--- curl-7.12.0/configure.ac.orig 2004-05-25 23:43:39.000000000 +0200
++++ curl-7.12.0/configure.ac 2004-07-26 15:12:03.029071072 +0200
+@@ -742,5 +742,5 @@
+ dnl check the given spot right away!
+ EXTRA_SSL=$OPT_SSL
+- LDFLAGS="$LDFLAGS -L$EXTRA_SSL/lib$libsuff"
++ #LDFLAGS="$LDFLAGS -L$EXTRA_SSL/lib$libsuff"
+ CPPFLAGS="$CPPFLAGS -I$EXTRA_SSL/include/openssl -I$EXTRA_SSL/include"
+ ;;
+@@ -750,5 +750,5 @@
+ HAVECRYPTO="yes"
+ ],[
+- LDFLAGS="$CLEANLDFLAGS -L$EXTRA_SSL/lib$libsuff"
++ LDFLAGS="$CLEANLDFLAGS"
+ CPPFLAGS="$CLEANCPPFLAGS -I$EXTRA_SSL/include/openssl -I$EXTRA_SSL/include"
+ AC_CHECK_LIB(crypto, CRYPTO_add_lock,[
diff --git a/cleopatre/buildroot/package/curl/curl-7.13.1-2005-3185.patch b/cleopatre/buildroot/package/curl/curl-7.13.1-2005-3185.patch
new file mode 100644
index 0000000000..1df6dcee50
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/curl-7.13.1-2005-3185.patch
@@ -0,0 +1,16 @@
+--- curl-7.13.1/lib/http_ntlm.c.2005-3185 2005-02-22 13:10:30.000000000 +0100
++++ curl-7.13.1/lib/http_ntlm.c 2005-10-19 15:18:42.165859528 +0200
+@@ -534,6 +534,13 @@
+ size=64;
+ ntlmbuf[62]=ntlmbuf[63]=0;
+
++ /* Make sure that the user and domain strings fit in the target buffer
++ before we copy them there. */
++ if(size + userlen + domlen >= sizeof(ntlmbuf)) {
++ failf(conn->data, "user + domain name too big");
++ return CURLE_OUT_OF_MEMORY;
++ }
++
+ memcpy(&ntlmbuf[size], domain, domlen);
+ size += domlen;
+
diff --git a/cleopatre/buildroot/package/curl/curl-7.13.1-auth.patch b/cleopatre/buildroot/package/curl/curl-7.13.1-auth.patch
new file mode 100644
index 0000000000..1488e83f2b
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/curl-7.13.1-auth.patch
@@ -0,0 +1,48 @@
+--- curl-7.13.1/lib/http.c.pom 2005-02-19 00:53:07.000000000 +0100
++++ curl-7.13.1/lib/http.c 2005-04-27 11:48:40.000000000 +0200
+@@ -455,6 +455,7 @@
+ /* To prevent the user+password to get sent to other than the original
+ host due to a location-follow, we do some weirdo checks here */
+ if(!data->state.this_is_a_follow ||
++ conn->bits.netrc ||
+ !data->state.first_host ||
+ curl_strequal(data->state.first_host, conn->host.name) ||
+ data->set.http_disable_hostname_check_before_authentication) {
+--- curl-7.13.1/lib/url.c.pom 2005-02-09 23:47:57.000000000 +0100
++++ curl-7.13.1/lib/url.c 2005-04-27 11:45:59.000000000 +0200
+@@ -3131,15 +3131,23 @@
+ user, passwd);
+ }
+
++ conn->bits.netrc = FALSE;
+ if (data->set.use_netrc != CURL_NETRC_IGNORED) {
+ if(Curl_parsenetrc(conn->host.name,
+ user, passwd,
+ data->set.netrc_file)) {
+- infof(data, "Couldn't find host %s in the " DOT_CHAR "netrc file, using defaults\n",
++ infof(data, "Couldn't find host %s in the " DOT_CHAR
++ "netrc file, using defaults\n",
+ conn->host.name);
+ }
+- else
++ else {
++ /* set bits.netrc TRUE to remember that we got the name from a .netrc
++ file, so that it is safe to use even if we followed a Location: to a
++ different host or similar. */
++ conn->bits.netrc = TRUE;
++
+ conn->bits.user_passwd = 1; /* enable user+password */
++ }
+ }
+
+ /* If our protocol needs a password and we have none, use the defaults */
+--- curl-7.13.1/lib/urldata.h.pom 2005-02-09 14:06:56.000000000 +0100
++++ curl-7.13.1/lib/urldata.h 2005-04-27 11:50:31.000000000 +0200
+@@ -388,6 +388,7 @@
+ bool ftp_use_lprt; /* As set with CURLOPT_FTP_USE_EPRT, but if we find out
+ LPRT doesn't work we disable it for the forthcoming
+ requests */
++ bool netrc; /* name+password provided by netrc */
+ };
+
+ struct hostname {
diff --git a/cleopatre/buildroot/package/curl/curl-7.13.1-cve-2005-4077.patch b/cleopatre/buildroot/package/curl/curl-7.13.1-cve-2005-4077.patch
new file mode 100644
index 0000000000..8960ea79ac
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/curl-7.13.1-cve-2005-4077.patch
@@ -0,0 +1,23 @@
+--- curl-7.13.1/lib/url.c.cve-2005-4077 2005-12-08 13:08:03.000000000 +0100
++++ curl-7.13.1/lib/url.c 2005-12-08 13:15:56.565790336 +0100
+@@ -2313,12 +2313,18 @@
+ if(urllen < LEAST_PATH_ALLOC)
+ urllen=LEAST_PATH_ALLOC;
+
+- conn->pathbuffer=(char *)malloc(urllen);
++ /*
++ * We malloc() the buffers below urllen+2 to make room for to possibilities:
++ * 1 - an extra terminating zero
++ * 2 - an extra slash (in case a syntax like "www.host.com?moo" is used)
++ */
++
++ conn->pathbuffer=(char *)malloc(urllen+3);
+ if(NULL == conn->pathbuffer)
+ return CURLE_OUT_OF_MEMORY; /* really bad error */
+ conn->path = conn->pathbuffer;
+
+- conn->host.rawalloc=(char *)malloc(urllen);
++ conn->host.rawalloc=(char *)malloc(urllen+3);
+ if(NULL == conn->host.rawalloc)
+ return CURLE_OUT_OF_MEMORY;
+ conn->host.name = conn->host.rawalloc;
diff --git a/cleopatre/buildroot/package/curl/curl.mk b/cleopatre/buildroot/package/curl/curl.mk
new file mode 100644
index 0000000000..ada4c002e1
--- /dev/null
+++ b/cleopatre/buildroot/package/curl/curl.mk
@@ -0,0 +1,97 @@
+#############################################################
+#
+# curl
+#
+#############################################################
+CURL_VERSION:=7.17.1
+LIBCURL_VERSION:=4.0.1
+CURL_SOURCE:=curl-$(CURL_VERSION).tar.bz2
+CURL_SITE:=http://curl.haxx.se/download/
+CURL_CAT:=$(BZCAT)
+CURL_DIR:=$(BUILD_DIR)/curl-$(CURL_VERSION)
+CURL_BINARY:=curl
+CURL_DESTDIR:=$(STAGING_DIR)/usr
+
+$(DL_DIR)/$(CURL_SOURCE):
+ $(WGET) -P $(DL_DIR) $(CURL_SITE)/$(CURL_SOURCE)
+
+curl-source: $(DL_DIR)/$(CURL_SOURCE)
+
+$(CURL_DIR)/.unpacked: $(DL_DIR)/$(CURL_SOURCE)
+ $(CURL_CAT) $(DL_DIR)/$(CURL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(CURL_DIR) package/curl/ curl-$(CURL_VERSION)-\*.patch*
+ touch $(CURL_DIR)/.unpacked
+
+$(CURL_DIR)/.configured: $(CURL_DIR)/.unpacked
+ (cd $(CURL_DIR); rm -rf config.cache; \
+ aclocal; \
+ libtoolize --force; \
+ ./reconf; )
+ $(CONFIG_UPDATE) $(CURL_DIR)
+ (cd $(CURL_DIR); \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --includedir=/usr/include \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ )
+ touch $(CURL_DIR)/.configured
+
+$(CURL_DIR)/src/.libs/$(CURL_BINARY): $(CURL_DIR)/.configured
+ $(MAKE) -C $(CURL_DIR)
+
+$(CURL_DESTDIR)/bin/$(CURL_BINARY): $(CURL_DIR)/src/.libs/$(CURL_BINARY)
+ -mkdir $(CURL_DESTDIR)/bin
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(CURL_DIR) install
+ $(SED) "s,^libdir=.*,libdir=\'$(CURL_DESTDIR)/lib\',g" $(CURL_DESTDIR)/lib/libcurl.la
+ touch $(CURL_DESTDIR)/bin/$(CURL_BINARY)
+
+$(TARGET_DIR)/usr/lib/libcurl.so.$(LIBCURL_VERSION): $(CURL_DESTDIR)/bin/$(CURL_BINARY)
+ -mkdir $(TARGET_DIR)/usr/lib
+ -mkdir $(TARGET_DIR)/usr/bin
+ cp -a $(CURL_DESTDIR)/lib/libcurl.so* $(TARGET_DIR)/usr/lib
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libcurl.so.$(LIBCURL_VERSION)
+
+$(TARGET_DIR)/usr/bin/$(CURL_BINARY): $(TARGET_DIR)/usr/lib/libcurl.so.$(LIBCURL_VERSION)
+ cp -a $(CURL_DESTDIR)/bin/$(CURL_BINARY) $(TARGET_DIR)/usr/bin
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/bin/$(CURL_BINARY)
+
+curl: uclibc $(TARGET_DIR)/usr/bin/$(CURL_BINARY)
+
+libcurl: $(CURL_DESTDIR)/bin/$(CURL_BINARY)
+
+curl-clean:
+ rm -f $(TARGET_DIR)/usr/lib/libcurl.so*
+ rm -f $(TARGET_DIR)/usr/bin/curl
+ rm -f $(CURL_DESTDIR)/bin/curl*
+ rm -f $(CURL_DESTDIR)/lib/libcurl.so*
+ rm -rf $(CURL_DESTDIR)/include/curl
+ -$(MAKE) -C $(CURL_DIR) clean
+
+curl-dirclean:
+ rm -rf $(CURL_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_CURL)),y)
+TARGETS+=curl
+endif
+ifeq ($(strip $(BR2_PACKAGE_LIBCURL)),y)
+TARGETS+=libcurl
+endif
diff --git a/cleopatre/buildroot/package/customize/Config.in b/cleopatre/buildroot/package/customize/Config.in
new file mode 100644
index 0000000000..97f864668e
--- /dev/null
+++ b/cleopatre/buildroot/package/customize/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_CUSTOMIZE
+ bool "customize"
+ help
+ Add custom stuff to your buildroot.
+
+ (edit package/customize/customize.mk)
diff --git a/cleopatre/buildroot/package/customize/customize.mk b/cleopatre/buildroot/package/customize/customize.mk
new file mode 100644
index 0000000000..2a105a70bf
--- /dev/null
+++ b/cleopatre/buildroot/package/customize/customize.mk
@@ -0,0 +1,32 @@
+#############################################################
+#
+# Any custom stuff you feel like doing....
+#
+#############################################################
+CUST_DIR:=package/customize/source
+
+$(BUILD_DIR)/.customize:
+ rm -f $(PROJECT_BUILD_DIR)/series
+ (cd $(CUST_DIR); \
+ /bin/ls -d * > $(PROJECT_BUILD_DIR)/series || \
+ touch $(PROJECT_BUILD_DIR)/series )
+ for f in `cat $(PROJECT_BUILD_DIR)/series`; do \
+ cp -af $(CUST_DIR)/$$f $(TARGET_DIR)/$$f; \
+ done
+ rm -f $(PROJECT_BUILD_DIR)/series
+ touch $@
+
+customize: $(BUILD_DIR)/.customize
+
+customize-clean:
+ rm -f $(BUILD_DIR)/.customize
+
+.PHONY: customize
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_CUSTOMIZE)),y)
+TARGETS+=customize
+endif
diff --git a/cleopatre/buildroot/package/cvs/Config.in b/cleopatre/buildroot/package/cvs/Config.in
new file mode 100644
index 0000000000..2e61834c81
--- /dev/null
+++ b/cleopatre/buildroot/package/cvs/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_CVS
+ bool "cvs"
+ depends on BR2_USE_WCHAR
+ select BR2_PACKAGE_NCURSES
+ help
+ Concurrent Versions System - source code revision control tools.
+
+ http://www.nongnu.org/cvs/
+
+config BR2_PACKAGE_CVS_SERVER
+ bool "server support"
+ depends on BR2_PACKAGE_CVS
+ help
+ Enable cvs server code
diff --git a/cleopatre/buildroot/package/cvs/cvs.mk b/cleopatre/buildroot/package/cvs/cvs.mk
new file mode 100644
index 0000000000..05bb06a145
--- /dev/null
+++ b/cleopatre/buildroot/package/cvs/cvs.mk
@@ -0,0 +1,94 @@
+#############################################################
+#
+# cvs
+#
+#############################################################
+CVS_VERSION:=1.12.13
+CVS_SOURCE:=cvs_$(CVS_VERSION).orig.tar.gz
+CVS_PATCH:=cvs_$(CVS_VERSION)-8.diff.gz
+CVS_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/c/cvs/
+CVS_DIR:=$(BUILD_DIR)/cvs-$(CVS_VERSION)
+CVS_CAT:=$(ZCAT)
+CVS_BINARY:=src/cvs
+CVS_TARGET_BINARY:=usr/bin/cvs
+
+CVS_CONFIGURE_ARGS:=--disable-old-info-format-support
+ifeq ($(BR2_PACKAGE_CVS_SERVER),y)
+CVS_CONFIGURE_ARGS+=--enable-server
+else
+CVS_CONFIGURE_ARGS+=--disable-server
+endif
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+CVS_CONFIGURE_ARGS+=--with-external-zlib
+endif
+
+$(DL_DIR)/$(CVS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(CVS_SITE)/$(CVS_SOURCE)
+
+ifneq ($(CVS_PATCH),)
+CVS_PATCH_FILE=$(DL_DIR)/$(CVS_PATCH)
+$(CVS_PATCH_FILE):
+ $(WGET) -P $(DL_DIR) $(CVS_SITE)/$(CVS_PATCH)
+endif
+cvs-source: $(DL_DIR)/$(CVS_SOURCE) $(CVS_PATCH_FILE)
+
+$(CVS_DIR)/.unpacked: $(DL_DIR)/$(CVS_SOURCE) $(CVS_PATCH_FILE)
+ -mkdir $(CVS_DIR)
+ $(CVS_CAT) $(DL_DIR)/$(CVS_SOURCE) | tar -C $(CVS_DIR) $(TAR_OPTIONS) -
+ $(BZCAT) $(CVS_DIR)/cvs-$(CVS_VERSION)/cvs-$(CVS_VERSION).tar.bz2 | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ rm -rf $(CVS_DIR)/cvs-$(CVS_VERSION)
+ $(CONFIG_UPDATE) $(CVS_DIR)
+ $(CONFIG_UPDATE) $(CVS_DIR)/build-aux
+ toolchain/patch-kernel.sh $(CVS_DIR) package/cvs \*$(CVS_VERSION)\*.patch
+ifneq ($(CVS_PATCH),)
+ toolchain/patch-kernel.sh $(CVS_DIR) $(DL_DIR) $(CVS_PATCH)
+ if [ -d $(CVS_DIR)/debian/patches ]; then \
+ (cd $(CVS_DIR)/debian/patches && for i in *; \
+ do $(SED) 's,^\+\+\+ .*cvs-$(CVS_VERSION)/,+++ cvs-$(CVS_VERSION)/,' $$i; \
+ done; \
+ ); \
+ toolchain/patch-kernel.sh $(CVS_DIR) $(CVS_DIR)/debian/patches \*; \
+ fi
+endif
+ touch $@
+
+$(CVS_DIR)/.configured: $(CVS_DIR)/.unpacked
+ (cd $(CVS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ cvs_cv_func_printf_ptr=yes \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ $(DISABLE_LARGEFILE) \
+ $(DISABLE_NLS) \
+ $(CVS_CONFIGURE_ARGS) \
+ )
+ touch $@
+
+$(CVS_DIR)/$(CVS_BINARY): $(CVS_DIR)/.configured
+ $(MAKE) -C $(CVS_DIR)
+
+$(TARGET_DIR)/$(CVS_TARGET_BINARY): $(CVS_DIR)/$(CVS_BINARY)
+ install -D $(CVS_DIR)/$(CVS_BINARY) $(TARGET_DIR)/$(CVS_TARGET_BINARY)
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/$(CVS_TARGET_BINARY)
+
+cvs: uclibc ncurses $(TARGET_DIR)/$(CVS_TARGET_BINARY)
+
+cvs-clean:
+ -$(MAKE) -C $(CVS_DIR) clean
+ rm -f $(TARGET_DIR)/$(CVS_TARGET_BINARY)
+
+cvs-dirclean:
+ rm -rf $(CVS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_CVS)),y)
+TARGETS+=cvs
+endif
diff --git a/cleopatre/buildroot/package/dash/Config.in b/cleopatre/buildroot/package/dash/Config.in
new file mode 100644
index 0000000000..20970aa03b
--- /dev/null
+++ b/cleopatre/buildroot/package/dash/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_DASH
+ bool "dash"
+ help
+ The Debian/Linux port of the NetBSD version of
+ ash (the Almquist SHell).
+
+ http://gondor.apana.org.au/~herbert/dash
diff --git a/cleopatre/buildroot/package/dash/dash.mk b/cleopatre/buildroot/package/dash/dash.mk
new file mode 100644
index 0000000000..1024fc182d
--- /dev/null
+++ b/cleopatre/buildroot/package/dash/dash.mk
@@ -0,0 +1,73 @@
+#############################################################
+#
+# dash
+#
+#############################################################
+DASH_VERSION:=0.5.3
+DASH_SOURCE:=dash_$(DASH_VERSION).orig.tar.gz
+DASH_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/d/dash
+DASH_CAT:=$(ZCAT)
+DASH_DIR:=$(BUILD_DIR)/dash-$(DASH_VERSION)
+DASH_PATCH1:=dash_$(DASH_VERSION)-7.diff.gz
+DASH_BINARY:=src/dash
+DASH_TARGET_BINARY:=bin/dash
+
+$(DL_DIR)/$(DASH_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DASH_SITE)/$(DASH_SOURCE)
+
+$(DL_DIR)/$(DASH_PATCH1):
+ $(WGET) -P $(DL_DIR) $(DASH_SITE)/$(DASH_PATCH1)
+
+dash-source: $(DL_DIR)/$(DASH_SOURCE) $(DL_DIR)/$(DASH_PATCH1)
+
+$(DASH_DIR)/.unpacked: $(DL_DIR)/$(DASH_SOURCE) $(DL_DIR)/$(DASH_PATCH1)
+ $(DASH_CAT) $(DL_DIR)/$(DASH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(ZCAT) $(DL_DIR)/$(DASH_PATCH1) | patch -p1 -d $(DASH_DIR)
+ touch $(DASH_DIR)/.unpacked
+
+$(DASH_DIR)/.configured: $(DASH_DIR)/.unpacked
+ (cd $(DASH_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ )
+ touch $(DASH_DIR)/.configured
+
+$(DASH_DIR)/$(DASH_BINARY): $(DASH_DIR)/.configured
+ $(MAKE1) CC=$(TARGET_CC) CC_FOR_BUILD="$(HOSTCC)" -C $(DASH_DIR)
+ touch -c $(DASH_DIR)/$(DASH_BINARY)
+
+$(TARGET_DIR)/$(DASH_TARGET_BINARY): $(DASH_DIR)/$(DASH_BINARY)
+ cp -a $(DASH_DIR)/$(DASH_BINARY) $(TARGET_DIR)/$(DASH_TARGET_BINARY)
+ touch -c $(TARGET_DIR)/$(DASH_TARGET_BINARY)
+
+dash: uclibc $(TARGET_DIR)/$(DASH_TARGET_BINARY)
+
+dash-clean:
+ $(MAKE1) CC=$(TARGET_CC) -C $(DASH_DIR) clean
+ rm -f $(TARGET_DIR)/$(DASH_TARGET_BINARY)
+
+dash-dirclean:
+ rm -rf $(DASH_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DASH)),y)
+TARGETS+=dash
+endif
diff --git a/cleopatre/buildroot/package/database/Config.in b/cleopatre/buildroot/package/database/Config.in
new file mode 100644
index 0000000000..71593d7dc4
--- /dev/null
+++ b/cleopatre/buildroot/package/database/Config.in
@@ -0,0 +1,8 @@
+menuconfig BR2_DATABASE_SUPPORT
+ bool "Database"
+ default y
+
+if BR2_DATABASE_SUPPORT
+source "package/database/mysql_client/Config.in"
+source "package/database/sqlite/Config.in"
+endif
diff --git a/cleopatre/buildroot/package/database/database.mk b/cleopatre/buildroot/package/database/database.mk
new file mode 100644
index 0000000000..9553847887
--- /dev/null
+++ b/cleopatre/buildroot/package/database/database.mk
@@ -0,0 +1 @@
+include package/database/*/*.mk
diff --git a/cleopatre/buildroot/package/database/mysql_client/Config.in b/cleopatre/buildroot/package/database/mysql_client/Config.in
new file mode 100644
index 0000000000..e13605801f
--- /dev/null
+++ b/cleopatre/buildroot/package/database/mysql_client/Config.in
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_MYSQL_CLIENT
+ bool "MySQL 5.1 client"
+ help
+ MySQL client
diff --git a/cleopatre/buildroot/package/database/mysql_client/mysql_client.mk b/cleopatre/buildroot/package/database/mysql_client/mysql_client.mk
new file mode 100644
index 0000000000..910db92247
--- /dev/null
+++ b/cleopatre/buildroot/package/database/mysql_client/mysql_client.mk
@@ -0,0 +1,30 @@
+#############################################################
+#
+# MySQL 5.1 Client
+#
+#############################################################
+MYSQL_CLIENT_VERSION = 5.1.23-rc
+MYSQL_CLIENT_SOURCE = mysql-$(MYSQL_CLIENT_VERSION).tar.gz
+MYSQL_CLIENT_SITE = http://mirrors.24-7-solutions.net/pub/mysql/Downloads/MySQL-5.1
+MYSQL_CLIENT_INSTALL_TARGET = YES
+MYSQL_CLIENT_INSTALL_STAGING = YES
+MYSQL_CLIENT_DEPENDENCIES = uclibc readline
+
+MYSQL_CLIENT_CONF_ENV = ac_cv_sys_restartable_syscalls=yes
+MYSQL_CLIENT_CONF_OPT = \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --program-prefix="" \
+ --prefix=/usr \
+ --without-ndb-binlog \
+ --without-server \
+ --without-docs \
+ --without-man \
+ --without-readline \
+ --without-libedit \
+ --with-low-memory \
+ --enable-thread-safe-client \
+ $(ENABLE_DEBUG)
+
+$(eval $(call AUTOTARGETS,package,mysql_client))
diff --git a/cleopatre/buildroot/package/database/sqlite/Config.in b/cleopatre/buildroot/package/database/sqlite/Config.in
new file mode 100644
index 0000000000..344af8def6
--- /dev/null
+++ b/cleopatre/buildroot/package/database/sqlite/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_SQLITE
+ bool "sqlite"
+ select BR2_PACKAGE_NCURSES
+ select BR2_READLINE
+ help
+ SQLite is a small C library that implements a self-contained,
+ embeddable, zero-configuration SQL database engine.
+
+ http://www.sqlite.org/
diff --git a/cleopatre/buildroot/package/database/sqlite/sqlite.mk b/cleopatre/buildroot/package/database/sqlite/sqlite.mk
new file mode 100644
index 0000000000..7df58574bc
--- /dev/null
+++ b/cleopatre/buildroot/package/database/sqlite/sqlite.mk
@@ -0,0 +1,80 @@
+#############################################################
+#
+# sqlite
+#
+#############################################################
+
+SQLITE_VERSION:=3.5.9
+SQLITE_SOURCE:=sqlite-$(SQLITE_VERSION).tar.gz
+SQLITE_SITE:=http://www.sqlite.org
+SQLITE_DIR:=$(BUILD_DIR)/sqlite-$(SQLITE_VERSION)
+SQLITE_CAT:=$(ZCAT)
+
+$(DL_DIR)/$(SQLITE_SOURCE):
+ $(WGET) -P $(DL_DIR) $(SQLITE_SITE)/$(SQLITE_SOURCE)
+
+$(SQLITE_DIR)/.unpacked: $(DL_DIR)/$(SQLITE_SOURCE)
+ $(SQLITE_CAT) $(DL_DIR)/$(SQLITE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $(SQLITE_DIR)/.unpacked
+
+$(SQLITE_DIR)/.configured: $(SQLITE_DIR)/.unpacked
+ (cd $(SQLITE_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ config_BUILD_CC="$(HOSTCC)" \
+ config_TARGET_CFLAGS="$(TARGET_CFLAGS)" \
+ config_TARGET_CC="$(TARGET_CC)" \
+ config_TARGET_READLINE_LIBS="-L$(TARGET_DIR)/usr/lib -L$(TARGET_DIR)/lib -lncurses -lreadline" \
+ config_TARGET_READLINE_INC="-I$(STAGING_DIR)/usr/include" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-shared \
+ --enable-static \
+ --disable-tcl \
+ --enable-tempstore \
+ --enable-threadsafe \
+ --enable-releasemode \
+ )
+ touch $(SQLITE_DIR)/.configured
+
+$(SQLITE_DIR)/sqlite3: $(SQLITE_DIR)/.configured
+ $(MAKE) -C $(SQLITE_DIR)
+
+$(STAGING_DIR)/usr/bin/sqlite3: $(SQLITE_DIR)/sqlite3
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(SQLITE_DIR) install
+ $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libsqlite3.la
+
+$(TARGET_DIR)/usr/bin/sqlite3: $(STAGING_DIR)/usr/bin/sqlite3
+ $(INSTALL) -m 0755 -D $^ $@
+ $(STRIPCMD) $(STRIP_STRIP_ALL) $@
+ cp -dpf $(STAGING_DIR)/usr/lib/libsqlite3*.so* $(TARGET_DIR)/usr/lib/
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libsqlite3.so
+
+sqlite: uclibc readline-target ncurses $(TARGET_DIR)/usr/bin/sqlite3
+
+sqlite-source: $(DL_DIR)/$(SQLITE_SOURCE)
+
+sqlite-clean:
+ -$(MAKE) -C $(SQLITE_DIR) clean
+ -rm -rf $(STAGING_DIR)/usr/lib/libsqlite*
+ -rm -rf $(STAGING_DIR)/usr/bin/sqlite3
+ -rm -rf $(STAGING_DIR)/usr/include/sqlite*
+ -rm -rf $(STAGING_DIR)/usr/lib/pkgconfig/sqlite*
+ -rm -rf $(TARGET_DIR)/usr/lib/libsqlite*
+ -rm -rf $(TARGET_DIR)/usr/bin/sqlite3
+
+sqlite-dirclean:
+ rm -rf $(SQLITE_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_SQLITE)),y)
+TARGETS+=sqlite
+endif
diff --git a/cleopatre/buildroot/package/dbus-glib/Config.in b/cleopatre/buildroot/package/dbus-glib/Config.in
new file mode 100644
index 0000000000..9779da7e8d
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus-glib/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DBUS_GLIB
+ bool "dbus-glib"
+ depends on BR2_PACKAGE_DBUS
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_PKGCONFIG
+ help
+ GLib bindings for D-Bus.
+
+ http://www.freedesktop.org/software/dbus
diff --git a/cleopatre/buildroot/package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch b/cleopatre/buildroot/package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch
new file mode 100644
index 0000000000..1a18a70864
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus-glib/dbus-glib-0.70-dontgeneratexml.patch
@@ -0,0 +1,77 @@
+--- dbus-glib-0.70/tools/dbus-bus-introspect.xml.dontgenerate 2006-07-18 15:14:38.000000000 -0400
++++ dbus-glib-0.70/tools/dbus-bus-introspect.xml 2006-07-18 15:13:17.000000000 -0400
+@@ -0,0 +1,74 @@
++ <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
++"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
++<node>
++ <interface name="org.freedesktop.DBus.Introspectable">
++ <method name="Introspect">
++ <arg name="data" direction="out" type="s"/>
++ </method>
++ </interface>
++ <interface name="org.freedesktop.DBus">
++ <method name="RequestName">
++ <arg direction="in" type="s"/>
++ <arg direction="in" type="u"/>
++ <arg direction="out" type="u"/>
++ </method>
++ <method name="ReleaseName">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="u"/>
++ </method>
++ <method name="StartServiceByName">
++ <arg direction="in" type="s"/>
++ <arg direction="in" type="u"/>
++ <arg direction="out" type="u"/>
++ </method>
++ <method name="Hello">
++ <arg direction="out" type="s"/>
++ </method>
++ <method name="NameHasOwner">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="b"/>
++ </method>
++ <method name="ListNames">
++ <arg direction="out" type="as"/>
++ </method>
++ <method name="AddMatch">
++ <arg direction="in" type="s"/>
++ </method>
++ <method name="RemoveMatch">
++ <arg direction="in" type="s"/>
++ </method>
++ <method name="GetNameOwner">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="s"/>
++ </method>
++ <method name="ListQueuedOwners">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="as"/>
++ </method>
++ <method name="GetConnectionUnixUser">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="u"/>
++ </method>
++ <method name="GetConnectionUnixProcessID">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="u"/>
++ </method>
++ <method name="GetConnectionSELinuxSecurityContext">
++ <arg direction="in" type="s"/>
++ <arg direction="out" type="ay"/>
++ </method>
++ <method name="ReloadConfig">
++ </method>
++ <signal name="NameOwnerChanged">
++ <arg type="s"/>
++ <arg type="s"/>
++ <arg type="s"/>
++ </signal>
++ <signal name="NameLost">
++ <arg type="s"/>
++ </signal>
++ <signal name="NameAcquired">
++ <arg type="s"/>
++ </signal>
++ </interface>
++</node>
diff --git a/cleopatre/buildroot/package/dbus-glib/dbus-glib-cross-compile.patch b/cleopatre/buildroot/package/dbus-glib/dbus-glib-cross-compile.patch
new file mode 100644
index 0000000000..b9768830fc
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus-glib/dbus-glib-cross-compile.patch
@@ -0,0 +1,129 @@
+diff -ur dbus-glib-0.72/configure.ac dbus-glib-0.72-patched/configure.ac
+--- dbus-glib-0.72/configure.ac 2006-10-25 15:53:55.000000000 -0500
++++ dbus-glib-0.72-patched/configure.ac 2006-11-15 14:15:09.000000000 -0600
+@@ -431,42 +431,6 @@
+
+ AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
+
+-AC_CACHE_CHECK([for posix getpwnam_r],
+- ac_cv_func_posix_getpwnam_r,
+- [AC_TRY_RUN([
+-#include <errno.h>
+-#include <pwd.h>
+-int main () {
+- char buffer[10000];
+- struct passwd pwd, *pwptr = &pwd;
+- int error;
+- errno = 0;
+- error = getpwnam_r ("", &pwd, buffer,
+- sizeof (buffer), &pwptr);
+- return (error < 0 && errno == ENOSYS)
+- || error == ENOSYS;
+-} ],
+- [ac_cv_func_posix_getpwnam_r=yes],
+- [ac_cv_func_posix_getpwnam_r=no])])
+-if test "$ac_cv_func_posix_getpwnam_r" = yes; then
+- AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
+- [Have POSIX function getpwnam_r])
+-else
+- AC_CACHE_CHECK([for nonposix getpwnam_r],
+- ac_cv_func_nonposix_getpwnam_r,
+- [AC_TRY_LINK([#include <pwd.h>],
+- [char buffer[10000];
+- struct passwd pwd;
+- getpwnam_r ("", &pwd, buffer,
+- sizeof (buffer));],
+- [ac_cv_func_nonposix_getpwnam_r=yes],
+- [ac_cv_func_nonposix_getpwnam_r=no])])
+- if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
+- AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
+- [Have non-POSIX function getpwnam_r])
+- fi
+-fi
+-
+ dnl check for socklen_t
+ AC_MSG_CHECKING(whether socklen_t is defined)
+ AC_TRY_COMPILE([
+@@ -532,49 +496,6 @@
+
+ #### Abstract sockets
+
+-AC_MSG_CHECKING(abstract socket namespace)
+-AC_LANG_PUSH(C)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM(
+-[[
+-#include <sys/types.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <stdio.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-#include <errno.h>
+-]],
+-[[
+- int listen_fd;
+- struct sockaddr_un addr;
+-
+- listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
+-
+- if (listen_fd < 0)
+- {
+- fprintf (stderr, "socket() failed: %s\n", strerror (errno));
+- exit (1);
+- }
+-
+- memset (&addr, '\0', sizeof (addr));
+- addr.sun_family = AF_UNIX;
+- strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
+- addr.sun_path[0] = '\0'; /* this is what makes it abstract */
+-
+- if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
+- {
+- fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
+- strerror (errno));
+- exit (1);
+- }
+- else
+- exit (0);
+-]])],
+- [have_abstract_sockets=yes],
+- [have_abstract_sockets=no])
+-AC_LANG_POP(C)
+-AC_MSG_RESULT($have_abstract_sockets)
+-
+ if test x$enable_abstract_sockets = xyes; then
+ if test x$have_abstract_sockets = xno; then
+ AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
+diff -ur dbus-glib-0.72/dbus/Makefile.in dbus-glib-0.72-patched/dbus/Makefile.in
+--- dbus-glib-0.72/dbus/Makefile.in 2006-10-25 16:14:31.000000000 -0500
++++ dbus-glib-0.72-patched/dbus/Makefile.in 2006-11-15 14:15:09.000000000 -0600
+@@ -303,7 +303,7 @@
+ target_cpu = @target_cpu@
+ target_os = @target_os@
+ target_vendor = @target_vendor@
+-SUBDIRS = . examples
++SUBDIRS = .
+ INCLUDES = \
+ -I$(top_srcdir) \
+ -I$(top_builddir) \
+@@ -371,7 +371,7 @@
+ dbus-glib-tool.h \
+ dbus-glib-tool.c
+
+-dbus_binding_tool_LDADD = libdbus-gtool.la libdbus-glib-1.la $(DBUS_LIBS) $(DBUS_GLIB_LIBS) -lexpat
++dbus_binding_tool_LDADD = libdbus-gtool.la libdbus-glib-1.la $(DBUS_LIBS) $(DBUS_GLIB_LIBS) $(DBUS_BUS_LIBS)
+ EXTRA_DIST = dbus-gmarshal.list make-dbus-glib-error-switch.sh make-dbus-glib-error-enum.sh
+ @DBUS_BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
+
+diff -ur dbus-glib-0.72/Makefile.in dbus-glib-0.72-patched/Makefile.in
+--- dbus-glib-0.72/Makefile.in 2006-10-25 16:14:33.000000000 -0500
++++ dbus-glib-0.72-patched/Makefile.in 2006-11-15 14:15:28.000000000 -0600
+@@ -277,7 +277,7 @@
+ target_os = @target_os@
+ target_vendor = @target_vendor@
+ GLIB_PC = dbus-glib-1.pc
+-SUBDIRS = dbus tools test doc
++SUBDIRS = dbus
+ DIST_SUBDIRS = dbus tools test doc m4
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = $(GLIB_PC)
diff --git a/cleopatre/buildroot/package/dbus-glib/dbus-glib-libintl.patch b/cleopatre/buildroot/package/dbus-glib/dbus-glib-libintl.patch
new file mode 100644
index 0000000000..1baa94b0c1
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus-glib/dbus-glib-libintl.patch
@@ -0,0 +1,12 @@
+diff -ur dbus-glib-0.72/dbus/Makefile.in dbus-glib-0.72-patched/dbus/Makefile.in
+--- dbus-glib-0.72/dbus/Makefile.in 2006-10-25 16:14:31.000000000 -0500
++++ dbus-glib-0.72-patched/dbus/Makefile.in 2007-01-17 08:37:22.000000000 -0600
+@@ -493,7 +493,7 @@
+ done
+ dbus-binding-tool$(EXEEXT): $(dbus_binding_tool_OBJECTS) $(dbus_binding_tool_DEPENDENCIES)
+ @rm -f dbus-binding-tool$(EXEEXT)
+- $(LINK) $(dbus_binding_tool_LDFLAGS) $(dbus_binding_tool_OBJECTS) $(dbus_binding_tool_LDADD) $(LIBS)
++ $(LINK) $(dbus_binding_tool_LDFLAGS) $(dbus_binding_tool_OBJECTS) $(dbus_binding_tool_LDADD) $(LIBS) $(INTLLIBS)
+ dbus-glib-test$(EXEEXT): $(dbus_glib_test_OBJECTS) $(dbus_glib_test_DEPENDENCIES)
+ @rm -f dbus-glib-test$(EXEEXT)
+ $(LINK) $(dbus_glib_test_LDFLAGS) $(dbus_glib_test_OBJECTS) $(dbus_glib_test_LDADD) $(LIBS)
diff --git a/cleopatre/buildroot/package/dbus-glib/dbus-glib.mk b/cleopatre/buildroot/package/dbus-glib/dbus-glib.mk
new file mode 100644
index 0000000000..60bc1091ce
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus-glib/dbus-glib.mk
@@ -0,0 +1,81 @@
+#############################################################
+#
+# dbus-glib
+#
+#############################################################
+DBUS_GLIB_VERSION:=0.72
+DBUS_GLIB_SOURCE:=dbus-glib-$(DBUS_GLIB_VERSION).tar.gz
+DBUS_GLIB_SITE:=http://dbus.freedesktop.org/releases/dbus-glib/
+DBUS_GLIB_DIR:=$(BUILD_DIR)/dbus-glib-$(DBUS_GLIB_VERSION)
+DBUS_GLIB_CAT:=$(ZCAT)
+DBUS_GLIB_BINARY:=dbus/.libs/dbus-binding-tool
+DBUS_GLIB_TARGET_BINARY:=usr/bin/dbus-binding-tool
+
+$(DL_DIR)/$(DBUS_GLIB_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DBUS_GLIB_SITE)/$(DBUS_GLIB_SOURCE)
+
+dbus-glib-source: $(DL_DIR)/$(DBUS_GLIB_SOURCE)
+
+$(DBUS_GLIB_DIR)/.unpacked: $(DL_DIR)/$(DBUS_GLIB_SOURCE)
+ $(DBUS_GLIB_CAT) $(DL_DIR)/$(DBUS_GLIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(DBUS_GLIB_DIR) package/dbus-glib/ \*.patch
+ touch $(DBUS_GLIB_DIR)/.unpacked
+
+$(DBUS_GLIB_DIR)/.configured: $(DBUS_GLIB_DIR)/.unpacked
+ (cd $(DBUS_GLIB_DIR); rm -rf config.cache; autoconf; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_have_abstract_sockets=yes \
+ ac_cv_func_posix_getpwnam_r=yes \
+ have_abstract_sockets=yes \
+ DBUS_CFLAGS="-I$(STAGING_DIR)/usr/include/dbus-1.0 -I$(STAGING_DIR)/usr/lib/dbus-1.0/include" \
+ DBUS_LIBS="$(STAGING_DIR)/usr/lib/libdbus-1.so" \
+ DBUS_GLIB_CFLAGS="-I$(STAGING_DIR)/usr/include/glib-2.0 -I$(STAGING_DIR)/usr/lib/glib-2.0/include" \
+ DBUS_GLIB_LIBS="$(STAGING_DIR)/lib/libglib-2.0.so $(STAGING_DIR)/lib/libgobject-2.0.so $(STAGING_DIR)/lib/libgmodule-2.0.so $(STAGING_DIR)/lib/libgthread-2.0.so" \
+ PKG_CONFIG=/usr/bin/pkg-config \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --localstatedir=/var \
+ --program-prefix="" \
+ --disable-tests \
+ --disable-xml-docs \
+ --disable-doxygen-docs \
+ --enable-asserts=yes \
+ )
+ touch $(DBUS_GLIB_DIR)/.configured
+
+$(DBUS_GLIB_DIR)/$(DBUS_GLIB_BINARY): $(DBUS_GLIB_DIR)/.configured
+ $(MAKE) DBUS_BUS_LIBS="$(STAGING_DIR)/lib/libexpat.so" -C $(DBUS_GLIB_DIR) all
+
+$(STAGING_DIR)/usr/lib/libdbus-glib-1.so.2.0.0: $(DBUS_GLIB_DIR)/$(DBUS_GLIB_BINARY)
+ cp -a $(DBUS_GLIB_DIR)/dbus/.libs/libdbus-glib-1.so* $(STAGING_DIR)/usr/lib
+ -touch -c $(STAGING_DIR)/usr/lib/libdbus-glib-1.so.2.0.0
+
+$(TARGET_DIR)/$(DBUS_GLIB_TARGET_BINARY): $(STAGING_DIR)/usr/lib/libdbus-glib-1.so.2.0.0
+ cp -a $(DBUS_GLIB_DIR)/dbus/.libs/libdbus-glib-1.so.2* $(TARGET_DIR)/usr/lib
+ cp -a $(DBUS_GLIB_DIR)/dbus/.libs/dbus-binding-tool $(TARGET_DIR)/usr/bin
+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libdbus-glib-1.so.2.0.0
+
+dbus-glib: uclibc pkgconfig dbus libglib2 $(TARGET_DIR)/$(DBUS_GLIB_TARGET_BINARY)
+
+dbus-glib-clean:
+ rm -f $(TARGET_DIR)/usr/lib/libdbus-glib-1.so.2*
+ rm -f $(TARGET_DIR)/usr/bin/dbus-binding-tool
+ rm -f $(STAGING_DIR)/usr/lib/libdbus-glib-1.so*
+ -$(MAKE) -C $(DBUS_GLIB_DIR) clean
+
+dbus-glib-dirclean:
+ rm -rf $(DBUS_GLIB_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DBUS_GLIB)),y)
+TARGETS+=dbus-glib
+endif
diff --git a/cleopatre/buildroot/package/dbus/Config.in b/cleopatre/buildroot/package/dbus/Config.in
new file mode 100644
index 0000000000..9343d8c2c6
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus/Config.in
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_DBUS
+ bool "dbus"
+ depends on BR2_PACKAGE_EXPAT || BR2_PACKAGE_LIBXML2
+ select BR2_PACKAGE_PKGCONFIG
+ help
+ The D-Bus message bus system.
+
+ http://www.freedesktop.org/wiki/Software/dbus
+
+comment "dbus not available (need expat or libxml2)"
+ depends on !BR2_PACKAGE_EXPAT && !BR2_PACKAGE_LIBXML2
+
+choice
+ prompt "XML library to use"
+ depends on BR2_PACKAGE_DBUS
+ default BR2_DBUS_LIBXML2 if BR2_PACKAGE_LIBXML2
+ default BR2_DBUS_EXPAT
+ help
+ Select the XML library to use with D-Bus. Select Expat
+ unless you have specific reasons for using libxml2 as
+ Expat is significant smaller.
+
+ config BR2_DBUS_EXPAT
+ bool "Expat"
+ depends on BR2_PACKAGE_EXPAT
+
+ config BR2_DBUS_LIBXML2
+ bool "libxml2"
+ depends on BR2_PACKAGE_LIBXML2
+
+endchoice
diff --git a/cleopatre/buildroot/package/dbus/S30dbus b/cleopatre/buildroot/package/dbus/S30dbus
new file mode 100755
index 0000000000..3b1044bff7
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus/S30dbus
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# messagebus: The D-BUS systemwide message bus
+#
+# chkconfig: 345 97 03
+# description: This is a daemon which broadcasts notifications of system events \
+# and other messages. See http://www.freedesktop.org/software/dbus/
+#
+# processname: dbus-daemon
+# pidfile: /var/run/messagebus.pid
+#
+
+# Sanity checks.
+[ -x /usr/bin/dbus-daemon ] || exit 0
+
+# Create needed directories.
+[ -d /var/run/dbus ] || mkdir -p /var/run/dbus
+[ -d /var/lock/subsys ] || mkdir -p /var/lock/subsys
+
+RETVAL=0
+
+start() {
+ echo -n "Starting system message bus: "
+
+ dbus-uuidgen --ensure
+ dbus-daemon --system
+ RETVAL=$?
+ echo "done"
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbus-daemon
+}
+
+stop() {
+ echo -n "Stopping system message bus: "
+
+ ## we don't want to kill all the per-user $processname, we want
+ ## to use the pid file *only*; because we use the fake nonexistent
+ ## program name "$servicename" that should be safe-ish
+ killall dbus-daemon
+ RETVAL=$?
+ echo "done"
+ if [ $RETVAL -eq 0 ]; then
+ rm -f /var/lock/subsys/dbus-daemon
+ rm -f /var/run/messagebus.pid
+ fi
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $processname
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/$servicename ]; then
+ stop
+ start
+ fi
+ ;;
+ reload)
+ echo "Message bus can't reload its configuration, you have to restart it"
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ ;;
+esac
+exit $RETVAL
diff --git a/cleopatre/buildroot/package/dbus/dbus.mk b/cleopatre/buildroot/package/dbus/dbus.mk
new file mode 100644
index 0000000000..cfa4e7feba
--- /dev/null
+++ b/cleopatre/buildroot/package/dbus/dbus.mk
@@ -0,0 +1,116 @@
+#############################################################
+#
+# dbus
+#
+#############################################################
+DBUS_VERSION:=1.1.1
+DBUS_SOURCE:=dbus-$(DBUS_VERSION).tar.gz
+DBUS_SITE:=http://dbus.freedesktop.org/releases/dbus/
+DBUS_DIR:=$(BUILD_DIR)/dbus-$(DBUS_VERSION)
+DBUS_CAT:=$(ZCAT)
+DBUS_BINARY:=bus/dbus-daemon
+DBUS_TARGET_BINARY:=usr/bin/dbus-daemon
+
+ifeq ($(strip $(BR2_DBUS_EXPAT)),y)
+DBUS_XML:=expat
+# depend on the exact library file instead of expat so dbus isn't always
+# considered out-of-date
+DBUS_XML_DEP:=$(STAGING_DIR)/usr/lib/libexpat.so.1
+else
+DBUS_XML:=libxml
+# Makefile.autotools.in unfortunately has broken dependency handling,
+# so we cannot do the same for libxml2
+DBUS_XML_DEP:=libxml2-install-staging
+endif
+
+$(DL_DIR)/$(DBUS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DBUS_SITE)/$(DBUS_SOURCE)
+
+dbus-source: $(DL_DIR)/$(DBUS_SOURCE)
+
+$(DBUS_DIR)/.unpacked: $(DL_DIR)/$(DBUS_SOURCE)
+ $(DBUS_CAT) $(DL_DIR)/$(DBUS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $@
+
+$(DBUS_DIR)/.configured: $(DBUS_DIR)/.unpacked $(DBUS_XML_DEP)
+ (cd $(DBUS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_have_abstract_sockets=yes \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --localstatedir=/var \
+ --program-prefix="" \
+ --sysconfdir=/etc \
+ --with-dbus-user=dbus \
+ --disable-tests \
+ --disable-asserts \
+ --enable-abstract-sockets \
+ --disable-selinux \
+ --disable-xml-docs \
+ --disable-doxygen-docs \
+ --disable-static \
+ --enable-dnotify \
+ --without-x \
+ --with-xml=$(DBUS_XML) \
+ --with-system-socket=/var/run/dbus/system_bus_socket \
+ --with-system-pid-file=/var/run/messagebus.pid \
+ )
+ touch $@
+
+$(DBUS_DIR)/$(DBUS_BINARY): $(DBUS_DIR)/.configured
+ $(MAKE) -C $(DBUS_DIR) all
+
+$(STAGING_DIR)/$(DBUS_TARGET_BINARY): $(DBUS_DIR)/$(DBUS_BINARY)
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(DBUS_DIR) install
+
+$(TARGET_DIR)/$(DBUS_TARGET_BINARY): $(STAGING_DIR)/$(DBUS_TARGET_BINARY)
+ mkdir -p $(TARGET_DIR)/var/run/dbus $(TARGET_DIR)/var/lib/dbus $(TARGET_DIR)/etc/init.d
+ifeq ($(BR2_STRIP_none),y)
+ $(MAKE) DESTDIR=$(TARGET_DIR) \
+ initdir=/etc/init.d -C $(DBUS_DIR) install
+else
+ $(MAKE) DESTDIR=$(TARGET_DIR) STRIPPROG='$(STRIPCMD)' \
+ initdir=/etc/init.d -C $(DBUS_DIR) install-strip
+endif
+ rm -rf $(TARGET_DIR)/usr/lib/dbus-1.0 \
+ $(TARGET_DIR)/usr/lib/libdbus-1.la \
+ $(TARGET_DIR)/usr/include/dbus-1.0 \
+ $(TARGET_DIR)/usr/lib/pkgconfig
+ $(INSTALL) -m 0755 package/dbus/S30dbus $(TARGET_DIR)/etc/init.d
+ rm -f $(TARGET_DIR)/etc/init.d/messagebus
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+
+dbus: uclibc pkgconfig $(TARGET_DIR)/$(DBUS_TARGET_BINARY)
+
+dbus-clean:
+ rm -f $(TARGET_DIR)/etc/dbus-1/session.conf
+ rm -f $(TARGET_DIR)/etc/dbus-1/system.conf
+ rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/dbus-1/system.d
+ rm -f $(TARGET_DIR)/etc/init.d/S30dbus
+ rm -f $(TARGET_DIR)/usr/lib/libdbus-1.so*
+ rm -f $(TARGET_DIR)/usr/bin/dbus-daemon
+ rm -rf $(TARGET_DIR)/tmp/dbus
+ rm -f $(STAGING_DIR)/usr/lib/libdbus-1.*
+ rm -rf $(STAGING_DIR)/usr/lib/dbus-1.0
+ rm -rf $(STAGING_DIR)/usr/include/dbus-1.0
+ rmdir --ignore-fail-on-non-empty $(STAGING_DIR)/usr/include
+ -$(MAKE) -C $(DBUS_DIR) clean
+
+dbus-dirclean:
+ rm -rf $(DBUS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DBUS)),y)
+TARGETS+=dbus
+endif
diff --git a/cleopatre/buildroot/package/devmem2/Config.in b/cleopatre/buildroot/package/devmem2/Config.in
new file mode 100644
index 0000000000..cb00a51632
--- /dev/null
+++ b/cleopatre/buildroot/package/devmem2/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_DEVMEM2
+ bool "devmem2"
+ help
+ Simple program to read/write from/to any location in memory.
+
+ http://free-electrons.com/pub/mirror/devmem2.c
diff --git a/cleopatre/buildroot/package/devmem2/devmem2.mk b/cleopatre/buildroot/package/devmem2/devmem2.mk
new file mode 100644
index 0000000000..cce6ad5387
--- /dev/null
+++ b/cleopatre/buildroot/package/devmem2/devmem2.mk
@@ -0,0 +1,42 @@
+#############################################################
+#
+# devmem2
+#
+#############################################################
+
+DEVMEM2_SOURCE:=devmem2.c
+DEVMEM2_SITE:=http://free-electrons.com/pub/mirror
+DEVMEM2_BINARY:=devmem2
+DEVMEM2_DIR:=$(BUILD_DIR)/devmem2
+
+$(DL_DIR)/$(DEVMEM2_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DEVMEM2_SITE)/$(DEVMEM2_SOURCE)
+
+$(DEVMEM2_DIR)/$(DEVMEM2_SOURCE): $(DL_DIR)/$(DEVMEM2_SOURCE)
+ mkdir -p $(@D)
+ cp $^ $@
+
+$(DEVMEM2_DIR)/$(DEVMEM2_BINARY): $(DEVMEM2_DIR)/$(DEVMEM2_SOURCE)
+ $(TARGET_CC) $(TARGET_CFLAGS) -o $@ $^
+
+$(TARGET_DIR)/sbin/$(DEVMEM2_BINARY): $(DEVMEM2_DIR)/$(DEVMEM2_BINARY)
+ cp $^ $@
+ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
+
+devmem2: uclibc $(TARGET_DIR)/sbin/$(DEVMEM2_BINARY)
+
+devmem2-source: $(DL_DIR)/$(DEVMEM2_SOURCE)
+
+devmem2-clean:
+ rm -f $(TARGET_DIR/sbin/$(DEVMEM2_BINARY)
+
+devmem2-dirclean:
+ rm -rf $(DEVMEM2_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DEVMEM2)),y)
+TARGETS+=devmem2
+endif
diff --git a/cleopatre/buildroot/package/dhcp/Config.in b/cleopatre/buildroot/package/dhcp/Config.in
new file mode 100644
index 0000000000..caf273fbb7
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_ISC_DHCP
+ bool "DHCP support"
+ help
+ DHCP relay agent from the ISC DHCP distribution.
+
+ http://www.isc.org/products/DHCP
+
+config BR2_PACKAGE_DHCP_SERVER
+ bool "dhcp server"
+ depends on BR2_PACKAGE_ISC_DHCP
+ help
+ DHCP server from the ISC DHCP distribution.
+
+
+config BR2_PACKAGE_DHCP_RELAY
+ bool "dhcp relay"
+ depends on BR2_PACKAGE_ISC_DHCP
+ help
+ DHCP relay agent from the ISC DHCP distribution.
+
+
+config BR2_PACKAGE_DHCP_CLIENT
+ bool "dhcp client"
+ depends on BR2_PACKAGE_ISC_DHCP
+ help
+ DHCP client from the ISC DHCP distribution.
+
diff --git a/cleopatre/buildroot/package/dhcp/S80dhcp-relay b/cleopatre/buildroot/package/dhcp/S80dhcp-relay
new file mode 100755
index 0000000000..c870ea7f5d
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/S80dhcp-relay
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $Id: dhcp3-relay,v 1.1 2004/04/16 15:41:08 ml Exp $
+#
+
+
+# What servers should the DHCP relay forward requests to?
+# e.g: SERVERS="192.168.0.1"
+SERVERS=""
+
+# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
+INTERFACES=""
+
+# Additional options that are passed to the DHCP relay daemon?
+OPTIONS=""
+
+
+
+
+# It is not safe to start if we don't have a default configuration...
+echo "/etc/init.d/dhcp-relay not yet configured! - Aborting..."
+exit 1;
+
+
+
+# Build command line for interfaces (will be passed to dhrelay below.)
+IFCMD=""
+if test "$INTERFACES" != ""; then
+ for I in $INTERFACES; do
+ IFCMD=${IFCMD}"-i "${I}" "
+ done
+fi
+
+DHCRELAYPID=/var/run/dhcrelay.pid
+
+case "$1" in
+ start)
+ start-stop-daemon -S -x /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS
+ ;;
+ stop)
+ start-stop-daemon -K -x /usr/sbin/dhcrelay
+ ;;
+ restart | force-reload)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/dhcp-relay {start|stop|restart|force-reload}"
+ exit 1
+esac
+
+exit 0
diff --git a/cleopatre/buildroot/package/dhcp/S80dhcp-server b/cleopatre/buildroot/package/dhcp/S80dhcp-server
new file mode 100755
index 0000000000..7c7f893a14
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/S80dhcp-server
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $
+#
+
+
+
+# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
+# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
+INTERFACES=""
+
+
+# It is not safe to start if we don't have a default configuration...
+echo "/etc/init.d/dhcp-server not yet configured! - Aborting..."
+exit 1;
+
+
+
+test -f /usr/sbin/dhcpd || exit 0
+
+
+case "$1" in
+ start)
+ echo -n "Starting DHCP server: "
+ test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/
+ test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases
+ start-stop-daemon -S -x /usr/sbin/dhcpd -- -q $INTERFACES
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping DHCP server: dhcpd3"
+ start-stop-daemon -K -x /usr/sbin/dhcpd
+ echo "."
+ ;;
+ restart | force-reload)
+ $0 stop
+ sleep 2
+ $0 start
+ if [ "$?" != "0" ]; then
+ exit 1
+ fi
+ ;;
+ *)
+ echo "Usage: /etc/init.d/dhcp-server {start|stop|restart|force-reload}"
+ exit 1
+esac
+
+exit 0
diff --git a/cleopatre/buildroot/package/dhcp/dhclient-script b/cleopatre/buildroot/package/dhcp/dhclient-script
new file mode 100755
index 0000000000..5566aca5f9
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/dhclient-script
@@ -0,0 +1,2 @@
+#!/bin/sh
+# empty dhclient-script to keep dhclient from complaining
diff --git a/cleopatre/buildroot/package/dhcp/dhclient.conf b/cleopatre/buildroot/package/dhcp/dhclient.conf
new file mode 100644
index 0000000000..0e6dcf96c2
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/dhclient.conf
@@ -0,0 +1,50 @@
+# Configuration file for /sbin/dhclient, which is included in Debian's
+# dhcp3-client package.
+#
+# This is a sample configuration file for dhclient. See dhclient.conf's
+# man page for more information about the syntax of this file
+# and a more comprehensive list of the parameters understood by
+# dhclient.
+#
+# Normally, if the DHCP server provides reasonable information and does
+# not leave anything out (like the domain name, for example), then
+# few changes must be made to this file, if any.
+#
+
+#send host-name "andare.fugue.com";
+#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
+#send dhcp-lease-time 3600;
+#supersede domain-name "fugue.com home.vix.com";
+#prepend domain-name-servers 127.0.0.1;
+request subnet-mask, broadcast-address, time-offset, routers,
+ domain-name, domain-name-servers, host-name,
+ netbios-name-servers, netbios-scope;
+#require subnet-mask, domain-name-servers;
+#timeout 60;
+#retry 60;
+#reboot 10;
+#select-timeout 5;
+#initial-interval 2;
+#script "/etc/dhcp3/dhclient-script";
+#media "-link0 -link1 -link2", "link0 link1";
+#reject 192.33.137.209;
+
+#alias {
+# interface "eth0";
+# fixed-address 192.5.5.213;
+# option subnet-mask 255.255.255.255;
+#}
+
+#lease {
+# interface "eth0";
+# fixed-address 192.33.137.200;
+# medium "link0 link1";
+# option host-name "andare.swiftmedia.com";
+# option subnet-mask 255.255.255.0;
+# option broadcast-address 192.33.137.255;
+# option routers 192.33.137.250;
+# option domain-name-servers 127.0.0.1;
+# renew 2 2000/1/12 00:00:01;
+# rebind 2 2000/1/12 00:00:01;
+# expire 2 2000/1/12 00:00:01;
+#}
diff --git a/cleopatre/buildroot/package/dhcp/dhcp.mk b/cleopatre/buildroot/package/dhcp/dhcp.mk
new file mode 100644
index 0000000000..7eaa055c8d
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/dhcp.mk
@@ -0,0 +1,135 @@
+#############################################################
+#
+# dhcp
+#
+#############################################################
+DHCP_VERSION:=3.0.5
+DHCP_SOURCE:=dhcp-$(DHCP_VERSION).tar.gz
+DHCP_SITE:=ftp://ftp.isc.org/isc/dhcp/dhcp-3.0-history
+DHCP_CAT:=$(ZCAT)
+DHCP_DIR:=$(BUILD_DIR)/dhcp-$(DHCP_VERSION)
+DHCP_SERVER_BINARY:=work.linux-2.2/server/dhcpd
+DHCP_RELAY_BINARY:=work.linux-2.2/relay/dhcrelay
+DHCP_CLIENT_BINARY:=work.linux-2.2/client/dhclient
+DHCP_SERVER_TARGET_BINARY:=usr/sbin/dhcpd
+DHCP_RELAY_TARGET_BINARY:=usr/sbin/dhcrelay
+DHCP_CLIENT_TARGET_BINARY:=usr/sbin/dhclient
+BVARS=PREDEFINES='-D_PATH_DHCPD_DB=\"/var/lib/dhcp/dhcpd.leases\" \
+ -D_PATH_DHCLIENT_DB=\"/var/lib/dhcp/dhclient.leases\"' \
+ VARDB=/var/lib/dhcp
+
+$(DL_DIR)/$(DHCP_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DHCP_SITE)/$(DHCP_SOURCE)
+
+dhcp-source: $(DL_DIR)/$(DHCP_SOURCE)
+
+dhcp_server-source: dhcp-source
+dhcp_relay-source: dhcp-source
+dhcp_client-source: dhcp-source
+
+$(DHCP_DIR)/.unpacked: $(DL_DIR)/$(DHCP_SOURCE)
+ $(DHCP_CAT) $(DL_DIR)/$(DHCP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(DHCP_DIR) package/dhcp/ dhcp\*.patch
+ touch $@
+
+$(DHCP_DIR)/.configured: $(DHCP_DIR)/.unpacked
+ (cd $(DHCP_DIR); \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure; \
+ )
+ touch $@
+
+$(DHCP_DIR)/$(DHCP_RELAY_BINARY): $(DHCP_DIR)/.configured
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) $(BVARS) -C $(DHCP_DIR)
+ $(STRIPCMD) $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
+
+$(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY): $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
+ mkdir -p $(TARGET_DIR)/var/lib
+ (cd $(TARGET_DIR)/var/lib; \
+ ln -snf /tmp dhcp; \
+ )
+ $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_SERVER_BINARY) \
+ $(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY)
+ mkdir -p $(TARGET_DIR)/etc/init.d
+ $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-server \
+ $(TARGET_DIR)/etc/init.d
+ mkdir -p $(TARGET_DIR)/etc/dhcp
+ $(INSTALL) -m 0644 -D package/dhcp/dhcpd.conf \
+ $(TARGET_DIR)/etc/dhcp/dhcpd.conf
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/man
+endif
+ rm -rf $(TARGET_DIR)/share/locale
+ rm -rf $(TARGET_DIR)/usr/share/doc
+
+$(TARGET_DIR)/$(DHCP_RELAY_TARGET_BINARY): $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
+ mkdir -p $(TARGET_DIR)/var/lib
+ (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
+ $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_RELAY_BINARY) \
+ $(TARGET_DIR)/$(DHCP_RELAY_TARGET_BINARY)
+ mkdir -p $(TARGET_DIR)/etc/init.d
+ $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-relay \
+ $(TARGET_DIR)/etc/init.d
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/man
+endif
+ # Why on earth do we wipe out whole directories here?
+ #rm -rf $(TARGET_DIR)/usr/share/locale
+ #rm -rf $(TARGET_DIR)/usr/share/doc
+
+$(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY): $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
+ mkdir -p $(TARGET_DIR)/var/lib
+ (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
+ $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_CLIENT_BINARY) \
+ $(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY)
+ mkdir -p $(TARGET_DIR)/etc/dhcp
+ $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \
+ $(TARGET_DIR)/etc/dhcp/dhclient.conf
+ $(INSTALL) -m 0755 -D package/dhcp/dhclient-script \
+ $(TARGET_DIR)/sbin/dhclient-script
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/man
+endif
+ # Why on earth do we wipe out whole directories here?
+ #rm -rf $(TARGET_DIR)/usr/share/locale
+ #rm -rf $(TARGET_DIR)/usr/share/doc
+
+dhcp_server: uclibc $(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY)
+
+dhcp_relay: uclibc $(TARGET_DIR)/$(DHCP_RELAY_TARGET_BINARY)
+
+dhcp_client: uclibc $(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY)
+
+dhcp-clean:
+ -$(MAKE) -C $(DHCP_DIR) clean
+
+dhcp-dirclean:
+ rm -rf $(DHCP_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+#ifeq ($(strip $(BR2_PACKAGE_ISC_DHCP)),y)
+#TARGETS+=dhcp
+#endif
+ifeq ($(strip $(BR2_PACKAGE_DHCP_SERVER)),y)
+TARGETS+=dhcp_server
+endif
+ifeq ($(strip $(BR2_PACKAGE_DHCP_RELAY)),y)
+TARGETS+=dhcp_relay
+endif
+ifeq ($(strip $(BR2_PACKAGE_DHCP_CLIENT)),y)
+TARGETS+=dhcp_client
+endif
diff --git a/cleopatre/buildroot/package/dhcp/dhcp_xecute.patch b/cleopatre/buildroot/package/dhcp/dhcp_xecute.patch
new file mode 100644
index 0000000000..0daff103fa
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/dhcp_xecute.patch
@@ -0,0 +1,452 @@
+diff -urN dhcp-3.0.2.orig/common/conflex.c dhcp-3.0.2/common/conflex.c
+--- dhcp-3.0.2.orig/common/conflex.c 2004-11-24 10:39:15.000000000 -0700
++++ dhcp-3.0.2/common/conflex.c 2005-02-24 12:32:12.000000000 -0700
+@@ -676,6 +676,8 @@
+ return EVAL;
+ if (!strcasecmp (atom + 1, "ncapsulate"))
+ return ENCAPSULATE;
++ if (!strcasecmp (atom + 1, "xecute"))
++ return EXECUTE;
+ break;
+ case 'f':
+ if (!strcasecmp (atom + 1, "atal"))
+diff -urN dhcp-3.0.2.orig/common/dhcp-eval.5 dhcp-3.0.2/common/dhcp-eval.5
+--- dhcp-3.0.2.orig/common/dhcp-eval.5 2005-01-19 13:00:52.000000000 -0700
++++ dhcp-3.0.2/common/dhcp-eval.5 2005-02-24 12:32:12.000000000 -0700
+@@ -409,7 +409,32 @@
+ Rebind - DHCP client is in the REBINDING state - it has an IP address,
+ and is trying to contact any server to renew it. The next message to
+ be sent will be a DHCPREQUEST, which will be broadcast.
+-.RE
++.PP
++.B execute (\fIcommand-path\fB, \fIdata-expr1\fB ... \fIdata-exprN\fB)\fR
++.PP
++External command execution is possibly through execute expressions. Execute
++takes a variable number of arguments, where the first is the command
++name (full path or only the name of the executable) and following zero
++or more are data-expressions which values will be passed as external
++arguments. It returns the return code of the external command.
++.PP
++Execute is synchronous, and the program will block until the external
++command being run has finished. Please note that lengthy program
++execution (for example, in an "on commit" in the dhcpd) may result in
++bad performance and timed out clients. Try keeping the execution times
++short.
++.PP
++Passing user-supplied data might be dangerous. Check input buffers
++and make sure the external command handles all kinds of "unusual"
++characters (shell special characters in sh-scripts etc) correctly.
++.PP
++It is possible to use the execute expression in any context, not only
++on events. If you put it in a regular scope in the configuration file
++you will execute that command every time a scope is evaluated.
++.PP
++The execute expression is only available if you have defined ENABLE_EXECUTE
++in site.h before compilation.
++RE
+ .SH REFERENCE: LOGGING
+ Logging statements may be used to send information to the standard logging
+ channels. A logging statement includes an optional priority (\fBfatal\fR,
+diff -urN dhcp-3.0.2.orig/common/parse.c dhcp-3.0.2/common/parse.c
+--- dhcp-3.0.2.orig/common/parse.c 2004-09-30 14:38:31.000000000 -0600
++++ dhcp-3.0.2/common/parse.c 2005-02-24 12:32:12.000000000 -0700
+@@ -3639,7 +3639,56 @@
+ return 0;
+ }
+ break;
+-
++ #ifdef ENABLE_EXECUTE
++ case EXECUTE:
++ token = next_token (&val, (unsigned *)0, cfile);
++
++ if (!expression_allocate (expr, MDL))
++ log_fatal ("can't allocate expression.");
++
++ token = next_token (&val, (unsigned *)0, cfile);
++ if (token != LPAREN) {
++ parse_warn (cfile, "left parenthesis expected.");
++ skip_to_semi (cfile);
++ *lose = 1;
++ return 0;
++ }
++ token = next_token (&val, (unsigned *)0, cfile);
++ (*expr) -> data.funcall.name =
++ dmalloc (strlen (val) + 1, MDL);
++ if (!(*expr)->data.funcall.name)
++ log_fatal ("can't allocate command name");
++ strcpy ((*expr) -> data.funcall.name, val);
++ token = next_token (&val, (unsigned *)0, cfile);
++ ep = &((*expr) -> data.funcall.arglist);
++ while (token == COMMA) {
++ if (!expression_allocate (ep, MDL))
++ log_fatal ("can't allocate expression");
++ if (!parse_data_expression (&(*ep) -> data.arg.val,
++ cfile, lose)) {
++ skip_to_semi (cfile);
++ *lose = 1;
++ return 0;
++ }
++ ep = &((*ep) -> data.arg.next);
++ token = next_token (&val, (unsigned *)0, cfile);
++ }
++ (*expr) -> op = expr_execute;
++ if (token != RPAREN) {
++ parse_warn (cfile, "right parenthesis expected.");
++ skip_to_semi (cfile);
++ *lose = 1;
++ return 0;
++ }
++ break;
++ #else
++ case EXECUTE:
++ parse_warn (cfile, "define ENABLE_EXECUTE in site.h to enable execute expressions.");
++ skip_to_semi (cfile);
++ *lose = 1;
++ return 0;
++ break;
++ #endif
+ case ENCODE_INT:
+ token = next_token (&val, (unsigned *)0, cfile);
+ token = next_token (&val, (unsigned *)0, cfile);
+diff -urN dhcp-3.0.2.orig/common/print.c dhcp-3.0.2/common/print.c
+--- dhcp-3.0.2.orig/common/print.c 2004-06-17 14:54:39.000000000 -0600
++++ dhcp-3.0.2/common/print.c 2005-02-24 12:32:12.000000000 -0700
+@@ -459,6 +459,7 @@
+ {
+ unsigned rv, left;
+ const char *s;
++ struct expression* next_arg;
+
+ switch (expr -> op) {
+ case expr_none:
+@@ -483,7 +484,8 @@
+ return rv;
+ }
+ break;
+-
++
++
+ case expr_equal:
+ if (len > 6) {
+ rv = 4;
+@@ -1024,6 +1026,29 @@
+ buf [rv++] = 0;
+ return rv;
+ }
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ rv = 11 + strlen (expr -> data.funcall.name);
++ if (len > rv + 2) {
++ sprintf (buf,
++ "(execute \"%s\"",
++ expr -> data.funcall.name);
++ for(next_arg = expr -> data.funcall.arglist;
++ next_arg;
++ next_arg = next_arg -> data.arg.next) {
++ if (len > rv + 3)
++ buf [rv++] = ' ';
++ rv += print_subexpression (next_arg ->
++ data.arg.val,
++ buf + rv,
++ len - rv - 2);
++ }
++ buf [rv++] = ')';
++ buf [rv] = 0;
++ return rv;
++ }
++ break;
++ #endif
+ }
+ return 0;
+ }
+diff -urN dhcp-3.0.2.orig/common/tree.c dhcp-3.0.2/common/tree.c
+--- dhcp-3.0.2.orig/common/tree.c 2004-11-24 10:39:16.000000000 -0700
++++ dhcp-3.0.2/common/tree.c 2005-02-24 12:32:12.000000000 -0700
+@@ -50,6 +50,113 @@
+ int resolver_inited = 0;
+ #endif
+
++#ifdef ENABLE_EXECUTE
++static unsigned long execute (char** args)
++{
++pid_t p = fork();
++if (p > 0) {
++int status;
++waitpid (p, &status, 0);
++return WEXITSTATUS(status);
++}
++else if(p == 0) {
++execvp (args[0], args);
++log_error ("Unable to execute %s: %s", args[0],
++strerror(errno));
++_exit(127);
++} else {
++log_fatal ("unable to fork");
++}
++return 1; /* never reached */
++}
++
++#define CAPACITY_INCREMENT 8
++static void append_to_ary (char*** ary_ptr, int* ary_size, int* ary_capacity,
++char* new_element)
++{
++(*ary_size)++;
++if (*ary_size > *ary_capacity) {
++char** new_ary;
++int new_ary_capacity = *ary_capacity + CAPACITY_INCREMENT;
++new_ary = dmalloc(new_ary_capacity*sizeof(char *), MDL);
++if (!new_ary)
++log_fatal ("no memory for array.");
++if (*ary_ptr != NULL) {
++memcpy (new_ary, *ary_ptr,
++(*ary_capacity)*sizeof(char *));
++dfree (*ary_ptr, MDL);
++}
++*ary_ptr = new_ary;
++*ary_capacity = new_ary_capacity;
++}
++(*ary_ptr)[*ary_size-1] = new_element;
++}
++
++static char* data_string_to_char_string (struct data_string* d)
++{
++char* str = dmalloc (d->len+1, MDL);
++if (!str)
++log_fatal ("no memory for string.");
++/* FIXME: should one use d -> buffer -> data or d -> data? are
++they equivalent? */
++strncpy (str, d -> data, d -> len);
++str[d->len] = '\0';
++return str;
++}
++
++static int evaluate_execute (unsigned long* result, struct packet *packet,
++struct lease *lease,
++struct client_state *client_state,
++struct option_state *in_options,
++struct option_state *cfg_options,
++struct binding_scope **scope,
++struct expression* expr)
++{
++int status;
++int cmd_status;
++int i;
++struct data_string ds;
++struct expression* next_arg;
++char** arg_ary = NULL;
++int arg_ary_size = 0;
++int arg_ary_capacity = 0;
++append_to_ary (&arg_ary, &arg_ary_size, &arg_ary_capacity,
++ expr -> data.funcall.name);
++for(next_arg = expr -> data.funcall.arglist;
++next_arg;
++next_arg = next_arg -> data.arg.next) {
++memset (&ds, 0, sizeof ds);
++status = (evaluate_data_expression
++(&ds, packet,
++lease, client_state, in_options,
++cfg_options, scope,
++next_arg -> data.arg.val,
++MDL));
++if (!status) {
++if (arg_ary) {
++for (i=1; i<arg_ary_size; i++)
++dfree (arg_ary[i], MDL);
++dfree(arg_ary, MDL);
++}
++return 0;
++}
++append_to_ary (&arg_ary, &arg_ary_size, &arg_ary_capacity,
++ data_string_to_char_string(&ds));
++data_string_forget (&ds, MDL);
++}
++#if defined (DEBUG_EXPRESSIONS)
++log_debug ("exec: execute");
++#endif
++append_to_ary (&arg_ary, &arg_ary_size, &arg_ary_capacity, NULL);
++*result = execute (arg_ary);
++for (i=1; i<arg_ary_size-1; i++)
++dfree (arg_ary[i], MDL);
++dfree(arg_ary, MDL);
++return 1;
++}
++#endif
++
++
+ pair cons (car, cdr)
+ caddr_t car;
+ pair cdr;
+@@ -861,6 +968,9 @@
+ case expr_extract_int8:
+ case expr_extract_int16:
+ case expr_extract_int32:
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ #endif
+ case expr_const_int:
+ case expr_lease_time:
+ case expr_dns_transaction:
+@@ -1224,6 +1334,9 @@
+ case expr_extract_int8:
+ case expr_extract_int16:
+ case expr_extract_int32:
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ #endif
+ case expr_const_int:
+ case expr_lease_time:
+ case expr_dns_transaction:
+@@ -2087,6 +2200,9 @@
+ case expr_extract_int8:
+ case expr_extract_int16:
+ case expr_extract_int32:
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ #endif
+ case expr_const_int:
+ case expr_lease_time:
+ case expr_dns_transaction:
+@@ -2595,7 +2711,12 @@
+ #endif
+ return 0;
+ }
+-
++#ifdef ENABLE_EXECUTE
++ case expr_execute:
++ return evaluate_execute (result, packet, lease,
++ client_state, in_options,
++ cfg_options, scope, expr);
++#endif
+ case expr_ns_add:
+ case expr_ns_delete:
+ case expr_ns_exists:
+@@ -3008,6 +3129,9 @@
+ return (expr -> op == expr_extract_int8 ||
+ expr -> op == expr_extract_int16 ||
+ expr -> op == expr_extract_int32 ||
++ #ifdef ENABLE_EXECUTE
++ expr -> op == expr_execute ||
++ #endif
+ expr -> op == expr_const_int ||
+ expr -> op == expr_lease_time ||
+ expr -> op == expr_dns_transaction ||
+@@ -3043,6 +3167,9 @@
+ expr -> op == expr_extract_int8 ||
+ expr -> op == expr_extract_int16 ||
+ expr -> op == expr_extract_int32 ||
++ #ifdef ENABLE_EXECUTE
++ expr -> op == expr_execute ||
++ #endif
+ expr -> op == expr_dns_transaction);
+ }
+
+@@ -3069,6 +3196,9 @@
+ case expr_extract_int8:
+ case expr_extract_int16:
+ case expr_extract_int32:
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ #endif
+ case expr_encode_int8:
+ case expr_encode_int16:
+ case expr_encode_int32:
+@@ -3165,6 +3295,9 @@
+ case expr_extract_int8:
+ case expr_extract_int16:
+ case expr_extract_int32:
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ #endif
+ case expr_encode_int8:
+ case expr_encode_int16:
+ case expr_encode_int32:
+@@ -3225,6 +3358,8 @@
+ int firstp;
+ {
+ struct expression *e;
++ struct expression* next_arg;
++
+ const char *s;
+ char obuf [65];
+ int scol;
+@@ -3696,7 +3831,27 @@
+ expr -> data.variable);
+ col = token_print_indent (file, col, indent, "", "", ")");
+ break;
+-
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ col = token_print_indent (file, col, indent, "", "","execute");
++ col = token_print_indent (file, col, indent, " ", "","(");
++ scol = col;
++ /* FIXME: use token_print_indent_concat() here? */
++ col = token_print_indent (file, col, scol, "", "","\"");
++ col = token_print_indent (file, col, scol, "", "",expr -> data.funcall.name);
++ col = token_print_indent (file, col, scol, "", "","\"");
++ for(next_arg = expr -> data.funcall.arglist;
++ next_arg;
++ next_arg = next_arg -> data.arg.next) {
++ col = token_print_indent (file, col, scol, "", " ",",");
++ col = write_expression (file,
++ next_arg -> data.arg.val,
++ col, scol, 0);
++ }
++ col = token_print_indent (file, col, indent, "", "",")");
++
++ break;
++#endif
+ default:
+ log_fatal ("invalid expression type in print_expression: %d",
+ expr -> op);
+@@ -3915,6 +4070,9 @@
+ case expr_extract_int8:
+ case expr_extract_int16:
+ case expr_extract_int32:
++ #ifdef ENABLE_EXECUTE
++ case expr_execute:
++ #endif
+ case expr_encode_int8:
+ case expr_encode_int16:
+ case expr_encode_int32:
+diff -urN dhcp-3.0.2.orig/includes/dhctoken.h dhcp-3.0.2/includes/dhctoken.h
+--- dhcp-3.0.2.orig/includes/dhctoken.h 2004-09-21 13:25:38.000000000 -0600
++++ dhcp-3.0.2/includes/dhctoken.h 2005-02-24 12:33:21.000000000 -0700
+@@ -308,7 +308,8 @@
+ DOMAIN_NAME = 613,
+ DO_FORWARD_UPDATE = 614,
+ KNOWN_CLIENTS = 615,
+- ATSFP = 616
++ ATSFP = 616,
++ EXECUTE = 616
+ };
+
+ #define is_identifier(x) ((x) >= FIRST_TOKEN && \
+diff -urN dhcp-3.0.2.orig/includes/site.h dhcp-3.0.2/includes/site.h
+--- dhcp-3.0.2.orig/includes/site.h 2002-03-12 11:33:39.000000000 -0700
++++ dhcp-3.0.2/includes/site.h 2005-02-24 12:32:12.000000000 -0700
+@@ -167,6 +167,12 @@
+
+ /* #define DHCPD_LOG_FACILITY LOG_DAEMON */
+
++/* Define this if you want to be able to execute external commands
++ during conditional evaluation. */
++
++/* #define ENABLE_EXECUTE */
++
++
+ /* Define this if you aren't debugging and you want to save memory
+ (potentially a _lot_ of memory) by allocating leases in chunks rather
+ than one at a time. */
+diff -urN dhcp-3.0.2.orig/includes/tree.h dhcp-3.0.2/includes/tree.h
+--- dhcp-3.0.2.orig/includes/tree.h 2004-06-10 11:59:31.000000000 -0600
++++ dhcp-3.0.2/includes/tree.h 2005-02-24 12:32:12.000000000 -0700
+@@ -150,6 +150,9 @@
+ expr_hardware,
+ expr_packet,
+ expr_const_data,
++ #ifdef ENABLE_EXECUTE
++ expr_execute,
++ #endif
+ expr_extract_int8,
+ expr_extract_int16,
+ expr_extract_int32,
diff --git a/cleopatre/buildroot/package/dhcp/dhcpd.conf b/cleopatre/buildroot/package/dhcp/dhcpd.conf
new file mode 100644
index 0000000000..0001c0f00e
--- /dev/null
+++ b/cleopatre/buildroot/package/dhcp/dhcpd.conf
@@ -0,0 +1,108 @@
+#
+# Sample configuration file for ISC dhcpd for Debian
+#
+# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
+#
+
+# The ddns-updates-style parameter controls whether or not the server will
+# attempt to do a DNS update when a lease is confirmed. We default to the
+# behavior of the version 2 packages ('none', since DHCP v2 didn't
+# have support for DDNS.)
+ddns-update-style none;
+
+# option definitions common to all supported networks...
+option domain-name "example.org";
+option domain-name-servers ns1.example.org, ns2.example.org;
+
+default-lease-time 600;
+max-lease-time 7200;
+
+# If this DHCP server is the official DHCP server for the local
+# network, the authoritative directive should be uncommented.
+#authoritative;
+
+# Use this to send dhcp log messages to a different log file (you also
+# have to hack syslog.conf to complete the redirection).
+log-facility local7;
+
+# No service will be given on this subnet, but declaring it helps the
+# DHCP server to understand the network topology.
+
+#subnet 10.152.187.0 netmask 255.255.255.0 {
+#}
+
+# This is a very basic subnet declaration.
+
+#subnet 10.254.239.0 netmask 255.255.255.224 {
+# range 10.254.239.10 10.254.239.20;
+# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
+#}
+
+# This declaration allows BOOTP clients to get dynamic addresses,
+# which we don't really recommend.
+
+#subnet 10.254.239.32 netmask 255.255.255.224 {
+# range dynamic-bootp 10.254.239.40 10.254.239.60;
+# option broadcast-address 10.254.239.31;
+# option routers rtr-239-32-1.example.org;
+#}
+
+# A slightly different configuration for an internal subnet.
+#subnet 10.5.5.0 netmask 255.255.255.224 {
+# range 10.5.5.26 10.5.5.30;
+# option domain-name-servers ns1.internal.example.org;
+# option domain-name "internal.example.org";
+# option routers 10.5.5.1;
+# option broadcast-address 10.5.5.31;
+# default-lease-time 600;
+# max-lease-time 7200;
+#}
+
+# Hosts which require special configuration options can be listed in
+# host statements. If no address is specified, the address will be
+# allocated dynamically (if possible), but the host-specific information
+# will still come from the host declaration.
+
+#host passacaglia {
+# hardware ethernet 0:0:c0:5d:bd:95;
+# filename "vmunix.passacaglia";
+# server-name "toccata.fugue.com";
+#}
+
+# Fixed IP addresses can also be specified for hosts. These addresses
+# should not also be listed as being available for dynamic assignment.
+# Hosts for which fixed IP addresses have been specified can boot using
+# BOOTP or DHCP. Hosts for which no fixed address is specified can only
+# be booted with DHCP, unless there is an address range on the subnet
+# to which a BOOTP client is connected which has the dynamic-bootp flag
+# set.
+#host fantasia {
+# hardware ethernet 08:00:07:26:c0:a5;
+# fixed-address fantasia.fugue.com;
+#}
+
+# You can declare a class of clients and then do address allocation
+# based on that. The example below shows a case where all clients
+# in a certain class get addresses on the 10.17.224/24 subnet, and all
+# other clients get addresses on the 10.0.29/24 subnet.
+
+#class "foo" {
+# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
+#}
+
+#shared-network 224-29 {
+# subnet 10.17.224.0 netmask 255.255.255.0 {
+# option routers rtr-224.example.org;
+# }
+# subnet 10.0.29.0 netmask 255.255.255.0 {
+# option routers rtr-29.example.org;
+# }
+# pool {
+# allow members of "foo";
+# range 10.17.224.10 10.17.224.250;
+# }
+# pool {
+# deny members of "foo";
+# range 10.0.29.10 10.0.29.230;
+# }
+#}
diff --git a/cleopatre/buildroot/package/dialog/Config.in b/cleopatre/buildroot/package/dialog/Config.in
new file mode 100644
index 0000000000..5681d1eb5e
--- /dev/null
+++ b/cleopatre/buildroot/package/dialog/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_DIALOG
+ bool "dialog"
+ select BR2_PACKAGE_NCURSES
+ help
+ dialog - display dialog boxes from shell scripts
+
+ This application provides a method of displaying several different
+ types of dialog boxes from shell scripts. This allows a developer
+ of a script to interact with the user in a much friendlier manner.
+
diff --git a/cleopatre/buildroot/package/dialog/dialog.mk b/cleopatre/buildroot/package/dialog/dialog.mk
new file mode 100644
index 0000000000..6e91d6f41e
--- /dev/null
+++ b/cleopatre/buildroot/package/dialog/dialog.mk
@@ -0,0 +1,64 @@
+#############################################################
+#
+# dialog
+#
+#############################################################
+DIALOG_VERSION:=1.1-20070704
+DIALOG_SOURCE:=dialog-$(DIALOG_VERSION).tgz
+DIALOG_SITE:=ftp://invisible-island.net/dialog
+DIALOG_DIR:=$(BUILD_DIR)/dialog-$(DIALOG_VERSION)
+DIALOG_BINARY:=dialog
+DIALOG_TARGET_BINARY:=usr/bin/dialog
+
+$(DL_DIR)/$(DIALOG_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DIALOG_SITE)/$(DIALOG_SOURCE)
+
+$(DIALOG_DIR)/.source: $(DL_DIR)/$(DIALOG_SOURCE)
+ $(ZCAT) $(DL_DIR)/$(DIALOG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(DIALOG_DIR)
+ touch $@
+
+$(DIALOG_DIR)/.configured: $(DIALOG_DIR)/.source
+ (cd $(DIALOG_DIR); rm -f config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc; \
+ )
+ touch $@
+
+$(DIALOG_DIR)/$(DIALOG_BINARY): $(DIALOG_DIR)/.configured
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(DIALOG_DIR)
+ touch -c $@
+
+$(TARGET_DIR)/$(DIALOG_TARGET_BINARY): $(DIALOG_DIR)/$(DIALOG_BINARY)
+ $(MAKE) prefix=$(TARGET_DIR)/usr \
+ mandir=$(TARGET_DIR)/usr/share/man \
+ -C $(DIALOG_DIR) install
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -Rf $(TARGET_DIR)/usr/share/man
+endif
+
+dialog: uclibc ncurses $(TARGET_DIR)/$(DIALOG_TARGET_BINARY)
+
+dialog-source: $(DL_DIR)/$(DIALOG_SOURCE)
+
+dialog-clean:
+ $(MAKE) prefix=$(TARGET_DIR)/usr -C $(DIALOG_DIR) uninstall
+ -$(MAKE) -C $(DIALOG_DIR) clean
+
+dialog-dirclean:
+ rm -rf $(DIALOG_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DIALOG)),y)
+TARGETS+=dialog
+endif
diff --git a/cleopatre/buildroot/package/diffutils/Config.in b/cleopatre/buildroot/package/diffutils/Config.in
new file mode 100644
index 0000000000..df3e426dd1
--- /dev/null
+++ b/cleopatre/buildroot/package/diffutils/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_DIFFUTILS
+ bool"diffutils"
+ help
+ GNU diff. Compare files per line.
+
+ http://www.gnu.org/software/diffutils/diffutils.html
diff --git a/cleopatre/buildroot/package/diffutils/diffutils.mk b/cleopatre/buildroot/package/diffutils/diffutils.mk
new file mode 100644
index 0000000000..836f0abacb
--- /dev/null
+++ b/cleopatre/buildroot/package/diffutils/diffutils.mk
@@ -0,0 +1,126 @@
+#############################################################
+#
+# diffutils
+#
+#############################################################
+DIFFUTILS_VERSION=2.8.1
+DIFFUTILS_SOURCE:=diffutils-$(DIFFUTILS_VERSION).tar.gz
+DIFFUTILS_SITE:=$(BR2_GNU_MIRROR)/diffutils
+DIFFUTILS_CAT:=$(ZCAT)
+DIFFUTILS_DIR:=$(BUILD_DIR)/diffutils-$(DIFFUTILS_VERSION)
+DIFFUTILS_BINARY:=src/diff
+DIFFUTILS_TARGET_BINARY:=usr/bin/diff
+
+$(DL_DIR)/$(DIFFUTILS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DIFFUTILS_SITE)/$(DIFFUTILS_SOURCE)
+
+diffutils-source: $(DL_DIR)/$(DIFFUTILS_SOURCE)
+
+$(DIFFUTILS_DIR)/.unpacked: $(DL_DIR)/$(DIFFUTILS_SOURCE)
+ $(DIFFUTILS_CAT) $(DL_DIR)/$(DIFFUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(DIFFUTILS_DIR)/config
+ touch $@
+
+$(DIFFUTILS_DIR)/.configured: $(DIFFUTILS_DIR)/.unpacked
+ (cd $(DIFFUTILS_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_func_strtod=yes \
+ ac_fsusage_space=yes \
+ fu_cv_sys_stat_statfs2_bsize=yes \
+ ac_cv_func_closedir_void=no \
+ ac_cv_func_getloadavg=no \
+ ac_cv_lib_util_getloadavg=no \
+ ac_cv_lib_getloadavg_getloadavg=no \
+ ac_cv_func_getgroups=yes \
+ ac_cv_func_getgroups_works=yes \
+ ac_cv_func_chown_works=yes \
+ ac_cv_have_decl_euidaccess=no \
+ ac_cv_func_euidaccess=no \
+ ac_cv_have_decl_strnlen=yes \
+ ac_cv_func_strnlen_working=yes \
+ ac_cv_func_lstat_dereferences_slashed_symlink=yes \
+ ac_cv_func_lstat_empty_string_bug=no \
+ ac_cv_func_stat_empty_string_bug=no \
+ vb_cv_func_rename_trailing_slash_bug=no \
+ ac_cv_have_decl_nanosleep=yes \
+ jm_cv_func_nanosleep_works=yes \
+ gl_cv_func_working_utimes=yes \
+ ac_cv_func_utime_null=yes \
+ ac_cv_have_decl_strerror_r=yes \
+ ac_cv_func_strerror_r_char_p=no \
+ jm_cv_func_svid_putenv=yes \
+ ac_cv_func_getcwd_null=yes \
+ ac_cv_func_getdelim=yes \
+ ac_cv_func_mkstemp=yes \
+ utils_cv_func_mkstemp_limitations=no \
+ utils_cv_func_mkdir_trailing_slash_bug=no \
+ ac_cv_func_memcmp_working=yes \
+ ac_cv_have_decl_malloc=yes \
+ gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_calloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes \
+ jm_cv_func_gettimeofday_clobber=no \
+ am_cv_func_working_getline=yes \
+ gl_cv_func_working_readdir=yes \
+ jm_ac_cv_func_link_follows_symlink=no \
+ utils_cv_localtime_cache=no \
+ ac_cv_struct_st_mtim_nsec=no \
+ gl_cv_func_tzset_clobber=no \
+ gl_cv_func_getcwd_null=yes \
+ gl_cv_func_getcwd_path_max=yes \
+ ac_cv_func_fnmatch_gnu=yes \
+ am_getline_needs_run_time_check=no \
+ am_cv_func_working_getline=yes \
+ gl_cv_func_mkdir_trailing_slash_bug=no \
+ gl_cv_func_mkstemp_limitations=no \
+ ac_cv_func_working_mktime=yes \
+ jm_cv_func_working_re_compile_pattern=yes \
+ ac_use_included_regex=no \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ $(DISABLE_NLS) \
+ $(DISABLE_LARGEFILE) \
+ )
+ touch $@
+
+$(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY): $(DIFFUTILS_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR)
+
+$(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY): $(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY)
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) install-strip
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+ rm -rf $(TARGET_DIR)/usr/share/man
+endif
+ifneq ($(BR2_ENABLE_LOCALE),y)
+ rm -rf $(TARGET_DIR)/usr/share/locale
+endif
+
+diffutils: uclibc $(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY)
+
+diff-utils-unpacked: $(DIFFUTILS_DIR)/.unpacked
+
+diffutils-clean:
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) uninstall
+ -$(MAKE) -C $(DIFFUTILS_DIR) clean
+
+diffutils-dirclean:
+ rm -rf $(DIFFUTILS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DIFFUTILS)),y)
+TARGETS+=diffutils
+endif
diff --git a/cleopatre/buildroot/package/dillo/Config.in b/cleopatre/buildroot/package/dillo/Config.in
new file mode 100644
index 0000000000..f0682d9fd3
--- /dev/null
+++ b/cleopatre/buildroot/package/dillo/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_DILLO
+ bool "dillo"
+ depends on BR2_PACKAGE_JPEG
+ depends on BR2_PACKAGE_LIBGLIB12
+ depends on BR2_PACKAGE_LIBGTK12
+ depends on BR2_PACKAGE_ZLIB
+ depends on BR2_PACKAGE_LIBPNG
+ depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
+ help
+ Dillo is a small GTK+ based web browser written in C.
+
+ http://www.dillo.org/
+
+comment "dillo - disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))"
+ depends on !BR2_PACKAGE_JPEG || !BR2_PACKAGE_LIBGLIB12 || !BR2_PACKAGE_LIBGTK12 || !BR2_PACKAGE_ZLIB || !BR2_PACKAGE_LIBPNG || !(BR2_PACKAGE_XORG || BR2_PACKAGE_XORG7)
diff --git a/cleopatre/buildroot/package/dillo/dillo.mk b/cleopatre/buildroot/package/dillo/dillo.mk
new file mode 100644
index 0000000000..b407d60025
--- /dev/null
+++ b/cleopatre/buildroot/package/dillo/dillo.mk
@@ -0,0 +1,58 @@
+#############################################################
+#
+# dillo
+#
+#############################################################
+
+DILLO_VERSION=0.8.6
+DILLO_SOURCE=dillo-$(DILLO_VERSION).tar.bz2
+DILLO_SITE=http://www.dillo.org/download/
+DILLO_DIR=$(BUILD_DIR)/dillo-$(DILLO_VERSION)
+DILLO_CAT:=$(BZCAT)
+
+$(DL_DIR)/$(DILLO_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DILLO_SITE)/$(DILLO_SOURCE)
+
+$(DILLO_DIR)/.unpacked: $(DL_DIR)/$(DILLO_SOURCE)
+ $(DILLO_CAT) $(DL_DIR)/$(DILLO_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ touch $(DILLO_DIR)/.unpacked
+
+$(DILLO_DIR)/.configured: $(DILLO_DIR)/.unpacked
+ (cd $(DILLO_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --program-transform-name='' \
+ --disable-dlgui \
+ )
+ touch $(DILLO_DIR)/.configured
+
+$(DILLO_DIR)/src/dillo: $(DILLO_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(DILLO_DIR)
+
+$(DILLO_DIR)/.installed: $(DILLO_DIR)/src/dillo
+ $(MAKE) -C $(DILLO_DIR) DESTDIR=$(TARGET_DIR) install
+ touch $(DILLO_DIR)/.installed
+
+dillo: uclibc $(XSERVER) libglib12 libgtk12 jpeg libpng $(DILLO_DIR)/.installed
+
+dillo-source: $(DL_DIR)/$(DILLO_SOURCE)
+
+dillo-clean:
+ -$(MAKE) -C $(DILLO_DIR) clean
+
+dillo-dirclean:
+ rm -rf $(DILLO_DIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DILLO)),y)
+TARGETS+=dillo
+endif
diff --git a/cleopatre/buildroot/package/directfb/Config.in b/cleopatre/buildroot/package/directfb/Config.in
new file mode 100644
index 0000000000..50dc5b9052
--- /dev/null
+++ b/cleopatre/buildroot/package/directfb/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_DIRECTFB
+ bool "directfb"
+ select BR2_PACKAGE_ZLIB
+ select BR2_PACKAGE_JPEG
+ select BR2_PACKAGE_LIBPNG
+ select BR2_PACKAGE_LIBSYSFS
+ select BR2_PACKAGE_FREETYPE
+ select BR2_PACKAGE_TSLIB
+ help
+ http://www.directfb.org/
+
+
+config BR2_PACKAGE_DIRECTFB_MULTI
+ bool "directfb multi application"
+ depends on BR2_PACKAGE_DIRECTFB
+ select BR2_PACKAGE_LINUX_FUSION
+ help
+ Enable use of multiple concurrent DirectFB applications
+ http://www.directfb.org/
diff --git a/cleopatre/buildroot/package/directfb/directfb.mk b/cleopatre/buildroot/package/directfb/directfb.mk
new file mode 100644
index 0000000000..b50befd9aa
--- /dev/null
+++ b/cleopatre/buildroot/package/directfb/directfb.mk
@@ -0,0 +1,124 @@
+#############################################################
+#
+# directfb
+#
+#############################################################
+#DIRECTFB_VERSION:=0.9.25.1
+#DIRECTFB_SITE:=http://www.directfb.org/downloads/Old
+DIRECTFB_VERSION:=1.0.1
+DIRECTFB_SITE:=http://www.directfb.org/downloads/Core
+DIRECTFB_SOURCE:=DirectFB-$(DIRECTFB_VERSION).tar.gz
+DIRECTFB_CAT:=$(ZCAT)
+DIRECTFB_DIR:=$(BUILD_DIR)/DirectFB-$(DIRECTFB_VERSION)
+
+ifeq ($(BR2_PACKAGE_DIRECTFB_MULTI),y)
+DIRECTFB_MULTI:=--enable-multi
+DIRECTFB_FUSION:=linux-fusion
+else
+DIRECTFB_MULTI:=
+DIRECTFB_FUSION:=
+endif
+ifeq ($(BR2_PACKAGE_XSERVER_none),y)
+DIRECTFB_X:=--disable-x11
+else
+DIRECTFB_X:=--enable-x11
+endif
+
+$(DL_DIR)/$(DIRECTFB_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DIRECTFB_SITE)/$(DIRECTFB_SOURCE)
+
+directfb-source: $(DL_DIR)/$(DIRECTFB_SOURCE)
+
+$(DIRECTFB_DIR)/.unpacked: $(DL_DIR)/$(DIRECTFB_SOURCE)
+ $(DIRECTFB_CAT) $(DL_DIR)/$(DIRECTFB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(DIRECTFB_DIR) package/directfb/ directfb\*.patch
+ touch $@
+
+$(DIRECTFB_DIR)/.configured: $(DIRECTFB_DIR)/.unpacked
+ (cd $(DIRECTFB_DIR); rm -f config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_header_linux_wm97xx_h=no \
+ ac_cv_header_linux_sisfb_h=no \
+ ac_cv_header_asm_page_h=no \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/bin \
+ --sbindir=/sbin \
+ --libdir=/lib \
+ --libexecdir=/lib \
+ --sysconfdir=/etc \
+ --datadir=/share \
+ --localstatedir=/var \
+ --includedir=/include \
+ --mandir=/man \
+ --infodir=/info \
+ --with-gfxdrivers=cle266,unichrome \
+ --enable-shared \
+ $(DIRECTFB_MULTI) \
+ $(DIRECTFB_X) \
+ --enable-jpeg \
+ --enable-png \
+ --enable-linux-input \
+ --enable-zlib \
+ --enable-freetype \
+ --disable-sysfs \
+ --disable-sdl \
+ --disable-vnc \
+ --disable-video4linux \
+ --disable-video4linux2 \
+ --enable-fusion )
+ touch $@
+
+$(DIRECTFB_DIR)/.compiled: $(DIRECTFB_DIR)/.configured
+ $(MAKE) PATH=$(STAGING_DIR)/usr/lib:$(PATH) \
+ $(TARGET_CONFIGURE_OPTS) \
+ -C $(DIRECTFB_DIR)
+ touch $(DIRECTFB_DIR)/.compiled
+
+$(STAGING_DIR)/usr/lib/libdirectfb.so: $(DIRECTFB_DIR)/.compiled
+ $(MAKE) DESTDIR=$(STAGING_DIR)/usr -C $(DIRECTFB_DIR) install
+ $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \
+ $(STAGING_DIR)/usr/lib/libdirectfb.la
+ $(SED) "s,/lib/libfusion.la,$(STAGING_DIR)/usr/lib/libfusion.la,g" \
+ $(STAGING_DIR)/usr/lib/libdirectfb.la
+ $(SED) "s,/lib/libdirect.la,$(STAGING_DIR)/usr/lib/libdirect.la,g" \
+ $(STAGING_DIR)/usr/lib/libdirectfb.la
+ $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \
+ $(STAGING_DIR)/usr/lib/libdirect.la
+ $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \
+ $(STAGING_DIR)/usr/lib/libfusion.la
+ $(SED) "s,/lib/libdirect.la,$(STAGING_DIR)/usr/lib/libdirect.la,g" \
+ $(STAGING_DIR)/usr/lib/libfusion.la
+ touch -c $@
+
+$(TARGET_DIR)/usr/lib/libdirectfb.so: $(STAGING_DIR)/usr/lib/libdirectfb.so
+ cp -dpf $(STAGING_DIR)/usr/lib/libdirect* $(STAGING_DIR)/usr/lib/libfusion* $(TARGET_DIR)/usr/lib/
+ cp -rdpf $(STAGING_DIR)/usr/lib/directfb-* $(TARGET_DIR)/usr/lib/
+ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) \
+ $(TARGET_DIR)/usr/lib/libdirectfb.so \
+ $(TARGET_DIR)/usr/lib/libdirect.so \
+ $(TARGET_DIR)/usr/lib/libfusion.so
+
+directfb: uclibc jpeg libpng freetype libsysfs tslib $(DIRECTFB_FUSION) \
+ $(TARGET_DIR)/usr/lib/libdirectfb.so
+
+directfb-clean:
+ -$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIRECTFB_DIR) uninstall
+ -$(MAKE) -C $(DIRECTFB_DIR) clean
+
+directfb-dirclean:
+ rm -rf $(DIRECTFB_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DIRECTFB)),y)
+TARGETS+=directfb
+endif
diff --git a/cleopatre/buildroot/package/distcc/Config.in b/cleopatre/buildroot/package/distcc/Config.in
new file mode 100644
index 0000000000..c5b99b88b9
--- /dev/null
+++ b/cleopatre/buildroot/package/distcc/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_DISTCC
+ bool "distcc"
+ help
+ Distributed compiler client and server. Allows you to
+ distribute compilation of C code across several machines
+ on a network.
+
+ http://distcc.samba.org/
diff --git a/cleopatre/buildroot/package/distcc/distcc.mk b/cleopatre/buildroot/package/distcc/distcc.mk
new file mode 100644
index 0000000000..576046d78c
--- /dev/null
+++ b/cleopatre/buildroot/package/distcc/distcc.mk
@@ -0,0 +1,71 @@
+#############################################################
+#
+# distcc
+#
+#############################################################
+DISTCC_VERSION:=2.18.3
+DISTCC_SOURCE:=distcc-$(DISTCC_VERSION).tar.bz2
+DISTCC_CAT:=$(BZCAT)
+DISTCC_SITE:=http://distcc.samba.org/ftp/distcc/
+DISTCC_BUILDDIR:=$(BUILD_DIR)/distcc-$(DISTCC_VERSION)
+DISTCC_BINARY:=distcc
+DISTCC_TARGET_BINARY:=usr/bin/distcc
+
+$(DL_DIR)/$(DISTCC_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DISTCC_SITE)/$(DISTCC_SOURCE)
+
+distcc-source: $(DL_DIR)/$(CVS_SOURCE)
+
+$(DISTCC_BUILDDIR)/.unpacked: $(DL_DIR)/$(DISTCC_SOURCE)
+ $(DISTCC_CAT) $(DL_DIR)/$(DISTCC_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(CONFIG_UPDATE) $(DISTCC_BUILDDIR)
+ touch $(DISTCC_BUILDDIR)/.unpacked
+
+$(DISTCC_BUILDDIR)/.configured: $(DISTCC_BUILDDIR)/.unpacked
+ (cd $(DISTCC_BUILDDIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --with-included-popt \
+ --without-gtk \
+ --without-gnome \
+ )
+ touch $(DISTCC_BUILDDIR)/.configured
+
+$(DISTCC_BUILDDIR)/$(DISTCC_BINARY): $(DISTCC_BUILDDIR)/.configured
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(DISTCC_BUILDDIR)
+
+$(TARGET_DIR)/$(DISTCC_TARGET_BINARY): $(DISTCC_BUILDDIR)/$(DISTCC_BINARY)
+ install -D $(DISTCC_BUILDDIR)/$(DISTCC_BINARY)d $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)d
+ install -D $(DISTCC_BUILDDIR)/$(DISTCC_BINARY) $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)
+
+distcc: uclibc $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)
+
+distcc-clean:
+ rm -f $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)
+ rm -f $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)d
+ -$(MAKE) -C $(DISTCC_BUILDDIR) clean
+
+distcc-dirclean:
+ rm -rf $(DISTCC_BUILDDIR)
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DISTCC)),y)
+TARGETS+=distcc
+endif
diff --git a/cleopatre/buildroot/package/dm/Config.in b/cleopatre/buildroot/package/dm/Config.in
new file mode 100644
index 0000000000..89c26d6dc2
--- /dev/null
+++ b/cleopatre/buildroot/package/dm/Config.in
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_DM
+ bool "dm"
+ help
+ The Device-mapper is a new component of the linux kernel that
+ supports logical volume management. It is required by LVM2 and EVMS.
diff --git a/cleopatre/buildroot/package/dm/dm.mk b/cleopatre/buildroot/package/dm/dm.mk
new file mode 100644
index 0000000000..a9c1bdd99b
--- /dev/null
+++ b/cleopatre/buildroot/package/dm/dm.mk
@@ -0,0 +1,131 @@
+#############################################################
+#
+# device-mapper
+#
+#############################################################
+# Copyright (C) 2005 by Richard Downer <rdowner@gmail.com>
+# Derived from work
+# Copyright (C) 2001-2005 by Erik Andersen <andersen@codepoet.org>
+# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Library General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA
+
+DM_BASEVER=1.02
+DM_PATCH=22
+DM_VERSION=$(DM_BASEVER).$(DM_PATCH)
+DM_SOURCE:=device-mapper.$(DM_VERSION).tgz
+DM_SITE:=ftp://sources.redhat.com/pub/dm
+DM_SITE_OLD:=ftp://sources.redhat.com/pub/dm/old
+DM_CAT:=$(ZCAT)
+DM_DIR:=$(BUILD_DIR)/device-mapper.$(DM_VERSION)
+DM_STAGING_BINARY:=$(STAGING_DIR)/usr/sbin/dmsetup
+DM_TARGET_BINARY:=$(TARGET_DIR)/usr/sbin/dmsetup
+DM_STAGING_LIBRARY:=$(STAGING_DIR)/lib/libdevmapper.so
+DM_TARGET_LIBRARY:=$(TARGET_DIR)/usr/lib/libdevmapper.so
+DM_TARGET_HEADER:=$(TARGET_DIR)/usr/include/libdevmapper.h
+
+$(DL_DIR)/$(DM_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DM_SITE)/$(DM_SOURCE) || \
+ $(WGET) -P $(DL_DIR) $(DM_SITE_OLD)/$(DM_SOURCE)
+
+dm-source: $(DL_DIR)/$(DM_SOURCE)
+
+$(DM_DIR)/.unpacked: $(DL_DIR)/$(DM_SOURCE)
+ $(DM_CAT) $(DL_DIR)/$(DM_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(DM_DIR) package/dm/ \*.patch
+ touch $@
+
+$(DM_DIR)/.configured: $(DM_DIR)/.unpacked
+ (cd $(DM_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_CONFIGURE_ARGS) \
+ ac_cv_have_decl_malloc=yes \
+ gl_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_calloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes \
+ ac_cv_func_lstat_dereferences_slashed_symlink=yes \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libdir=/lib \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --includedir=/usr/include \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ $(DISABLE_NLS) \
+ $(DISABLE_LARGEFILE) \
+ --with-user=$(shell id -un) --with-group=$(shell id -gn) \
+ )
+ touch $@
+
+$(DM_DIR)/$(DM_BINARY): dm-build
+$(DM_DIR)/$(DM_LIBRARY): dm-build
+
+$(DM_STAGING_BINARY) $(DM_STAGING_LIBRARY): $(DM_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(DM_DIR)
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(DM_DIR) install
+
+# Install dmsetup from staging to target
+$(DM_TARGET_BINARY): $(DM_STAGING_BINARY)
+ $(INSTALL) -m 0755 $? $@
+ -$(STRIPCMD) $(DM_TARGET_BINARY)
+ touch -c $@
+
+# Install libdevmapper.so.1.00 from staging to target
+$(DM_TARGET_LIBRARY).$(DM_BASEVER): $(DM_STAGING_LIBRARY)
+ $(INSTALL) -m 0644 $? $@
+ -$(STRIPCMD) $@
+ touch -c $@
+
+# Makes libdevmapper.so a symlink to libdevmapper.so.1.00
+$(DM_TARGET_LIBRARY): $(DM_TARGET_LIBRARY).$(DM_BASEVER)
+ rm -f $@
+ ln -s $(<F) $@
+ touch -c $@
+
+# Install header file
+$(DM_TARGET_HEADER): $(DM_TARGET_LIBRARY)
+ rm -f $@
+ mkdir -p $(STAGING_DIR)/usr/include
+ $(INSTALL) -m 0644 $(STAGING_DIR)/usr/include/libdevmapper.h $@
+
+dm: uclibc $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) #$(DM_TARGET_HEADER)
+
+dm-clean:
+ rm -f $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) \
+ $(DM_TARGET_LIBRARY).$(DM_BASEVER) $(DM_TARGET_HEADER)
+ -$(MAKE) -C $(DM_DIR) clean
+
+dm-dirclean:
+ rm -rf $(DM_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_DM)),y)
+TARGETS+=dm
+endif
diff --git a/cleopatre/buildroot/package/dmalloc/Config.in b/cleopatre/buildroot/package/dmalloc/Config.in
new file mode 100644
index 0000000000..315f6cab66
--- /dev/null
+++ b/cleopatre/buildroot/package/dmalloc/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DMALLOC
+ bool "dmalloc"
+ help
+ A debug memory allocation library which is a drop in replacement for
+ the system's malloc, realloc, calloc, free and other memory management
+ routines while providing powerful debugging facilities configurable at
+ runtime.
+
+ http://dmalloc.com/
diff --git a/cleopatre/buildroot/package/dmalloc/dmalloc-mips.patch b/cleopatre/buildroot/package/dmalloc/dmalloc-mips.patch
new file mode 100644
index 0000000000..66721fdc3b
--- /dev/null
+++ b/cleopatre/buildroot/package/dmalloc/dmalloc-mips.patch
@@ -0,0 +1,43 @@
+--- dmalloc/configure 2006-09-01 18:28:51.000000000 -0700
++++ dmalloc-mips/configure 2006-09-01 18:49:07.000000000 -0700
+@@ -6114,7 +6114,7 @@
+ echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6
+ if test "$cross_compiling" = yes; then
+ cat >>confdefs.h <<\_ACEOF
+-#define RETURN_MACROS_WORK 0
++#define RETURN_MACROS_WORK 1
+ _ACEOF
+ echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+--- dmalloc/return.h 2004-10-19 07:51:21.000000000 -0700
++++ dmalloc-mips/return.h 2006-09-08 21:52:43.000000000 -0700
+@@ -106,26 +106,16 @@
+ /*************************************/
+
+ /*
+- * For DEC Mips machines running Ultrix
++ * For Mips machines running Linux
+ */
+ #if __mips
+
+ /*
+- * I have no idea how to get inline assembly with the default cc.
+- * Anyone know how?
+- */
+-
+-#if 0
+-
+-/*
+ * NOTE: we assume here that file is global.
+ *
+- * $31 is the frame pointer. $2 looks to be the return address but maybe
+- * not consistently.
++ * $31 is the return address.
+ */
+-#define GET_RET_ADDR(file) asm("sw $2, file")
+-
+-#endif
++#define GET_RET_ADDR(file) asm("sw $31, %0" : "=m" (file))
+
+ #endif /* __mips */
+
diff --git a/cleopatre/buildroot/package/dmalloc/dmalloc.mk b/cleopatre/buildroot/package/dmalloc/dmalloc.mk
new file mode 100644
index 0000000000..c705b517e5
--- /dev/null
+++ b/cleopatre/buildroot/package/dmalloc/dmalloc.mk
@@ -0,0 +1,105 @@
+#############################################################
+#
+# dmalloc
+#
+#############################################################
+DMALLOC_VERSION:=5.4.3
+DMALLOC_SOURCE:=dmalloc-$(DMALLOC_VERSION).tgz
+DMALLOC_SITE:=http://dmalloc.com/releases
+DMALLOC_DIR:=$(BUILD_DIR)/dmalloc-$(DMALLOC_VERSION)
+DMALLOC_CAT:=$(ZCAT)
+DMALLOC_BINARY:=dmalloc
+DMALLOC_TARGET_BINARY:=usr/bin/dmalloc
+
+$(DL_DIR)/$(DMALLOC_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DMALLOC_SITE)/$(DMALLOC_SOURCE)
+
+dmalloc-source: $(DL_DIR)/$(DMALLOC_SOURCE)
+
+$(DMALLOC_DIR)/.unpacked: $(DL_DIR)/$(DMALLOC_SOURCE)
+ $(DMALLOC_CAT) $(DL_DIR)/$(DMALLOC_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(DMALLOC_DIR) package/dmalloc dmalloc\*.patch
+ $(SED) 's/^ac_cv_page_size=0$$/ac_cv_page_size=12/' $(DMALLOC_DIR)/configure
+ $(SED) 's/(ld -/($${LD-ld} -/' $(DMALLOC_DIR)/configure
+ $(SED) 's/'\''ld -/"$${LD-ld}"'\'' -/' $(DMALLOC_DIR)/configure
+ -$(SED) 's/ar cr/$$(AR) cr/' $(DMALLOC_DIR)/Makefile.in
+ touch $@
+
+ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
+DMALLOC_CONFIG_ARGS:=--enable-cxx
+else
+DMALLOC_CONFIG_ARGS:=--disable-cxx
+endif
+
+ifeq ($(BR2_PTHREADS_NONE),y)
+DMALLOC_CONFIG_ARGS+=--disable-threads
+else
+DMALLOC_CONFIG_ARGS+=--enable-threads
+endif
+
+
+
+$(DMALLOC_DIR)/.configured: $(DMALLOC_DIR)/.unpacked
+ (cd $(DMALLOC_DIR); rm -rf config.cache; \
+