xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v1] Splitting off stubdom to a different tree
@ 2016-03-10 16:46 Wei Liu
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
                   ` (4 more replies)
  0 siblings, 5 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:46 UTC (permalink / raw)
  To: Xen-devel
  Cc: Wei Liu, Stefano Stabellini, Andrew Cooper, Ian Jackson, quan.xu,
	Samuel Thibault, Daniel De Graaf, Doug Goldstein

Hi all

This is a very RFC seris for splitting off stubdom from xen.git.

It's RFC because:

1. There are some open questions -- see individual commits.
2. I haven't tested it, everything should compile though.
3. I'm not entirely sure about the arrangement between toolstack and
   stubdom is correct.
4. COPYING and possible other documents are missing, though I provide
   a README to tell people how to build.
5. All three build systems (xen, mini-os and stubdom) are still quite
   entangled. Making completely clean cut require non-trivial amount
   of effort.

To make every commit bisectable requires quite a bit effort. I don't
think it is worth it. I would rather use a merge commit or squash
everything into a single commit when people are happy with the
changes.

We also need to teach osstest to use the new tree.

Note that I only CC people in this cover letter. Patches will follow
and be threaded to this cover leter.

Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 0/6] xen: split stubdom from xen.git
  2016-03-10 16:46 [RFC PATCH v1] Splitting off stubdom to a different tree Wei Liu
@ 2016-03-10 16:52 ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 1/6] config: don't hard-code mini-os path Wei Liu
                     ` (5 more replies)
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                   ` (3 subsequent siblings)
  4 siblings, 6 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

git://xenbits.xen.org/people/liuw/xen.git wip.split-stubdom-v1

Wei Liu (6):
  config: don't hard-code mini-os path
  tools: use "?=" to set XEN_ROOT in Makefile
  libxc: use $XEN_ROOT to reference libelf in xen
  libxl: generate and install stubdompath.sh
  Unhook stubdom from build system
  Remove stubdom directory

 .gitignore                                         |    1 +
 Makefile                                           |   55 +-
 autogen.sh                                         |    3 -
 config/MiniOS.mk                                   |    2 +-
 config/Stubdom.mk.in                               |   39 -
 configure                                          |   75 -
 configure.ac                                       |   18 -
 m4/stubdom.m4                                      |   96 -
 stubdom/Makefile                                   |  646 ---
 stubdom/c/Makefile                                 |   13 -
 stubdom/c/main.c                                   |    8 -
 stubdom/c/minios.cfg                               |    0
 stubdom/caml/Makefile                              |   24 -
 stubdom/caml/hello.ml                              |    4 -
 stubdom/caml/main-caml.c                           |   42 -
 stubdom/caml/minios.cfg                            |    0
 stubdom/configure                                  | 4800 --------------------
 stubdom/configure.ac                               |   82 -
 stubdom/grub.patches/00cvs                         | 1382 ------
 stubdom/grub.patches/10graphics.diff               | 2297 ----------
 stubdom/grub.patches/11graphics-keyboard.diff      |   13 -
 stubdom/grub.patches/20print_func.diff             |   80 -
 stubdom/grub.patches/30savedefault.diff            |  186 -
 stubdom/grub.patches/40ext3_256byte_inode.diff     |  114 -
 stubdom/grub.patches/50fs_fulldisk.diff            |   72 -
 stubdom/grub.patches/60ext4.diff                   |  474 --
 stubdom/grub.patches/61btrfs.diff                  | 3510 --------------
 stubdom/grub.patches/70compiler_warnings.diff      |   45 -
 stubdom/grub.patches/99minios                      | 1570 -------
 stubdom/grub/Makefile                              |   86 -
 stubdom/grub/boot-x86_32.S                         |  112 -
 stubdom/grub/boot-x86_64.S                         |  108 -
 stubdom/grub/config.h                              |   12 -
 stubdom/grub/kexec.c                               |  439 --
 stubdom/grub/mini-os.c                             |  771 ----
 stubdom/grub/mini-os.h                             |    7 -
 stubdom/grub/minios.cfg                            |    3 -
 stubdom/grub/osdep.h                               |   30 -
 stubdom/ioemu-minios.cfg                           |    3 -
 stubdom/libpci.config.h                            |    5 -
 stubdom/libpci.config.mak                          |    7 -
 stubdom/lwip.dhcp_create_request-hwaddr_len.patch  |   13 -
 stubdom/lwip.patch-cvs                             | 2398 ----------
 stubdom/newlib-chk.patch                           |  155 -
 .../newlib-stdint-size_max-fix-from-1.17.0.patch   |   16 -
 stubdom/newlib.patch                               |  727 ---
 stubdom/ocaml.patch                                |   19 -
 stubdom/pciutils.patch                             |  298 --
 stubdom/polarssl.patch                             |   64 -
 stubdom/stubdom-dm                                 |  182 -
 stubdom/tpmemu-0.7.4.patch                         |   12 -
 stubdom/vtpm-bufsize.patch                         |   13 -
 stubdom/vtpm-cmake-Wextra.patch                    |   21 -
 stubdom/vtpm-deepquote-anyloc.patch                |  127 -
 stubdom/vtpm-deepquote.patch                       |  187 -
 stubdom/vtpm-locality.patch                        |   50 -
 stubdom/vtpm-parent-sign-ek.patch                  |  196 -
 stubdom/vtpm/Makefile                              |   34 -
 stubdom/vtpm/minios.cfg                            |   14 -
 stubdom/vtpm/vtpm.c                                |  504 --
 stubdom/vtpm/vtpm.h                                |   36 -
 stubdom/vtpm/vtpm_cmd.c                            |  302 --
 stubdom/vtpm/vtpm_cmd.h                            |   31 -
 stubdom/vtpm/vtpm_pcrs.c                           |   43 -
 stubdom/vtpm/vtpm_pcrs.h                           |   53 -
 stubdom/vtpm/vtpmblk.c                             |  353 --
 stubdom/vtpm/vtpmblk.h                             |   31 -
 stubdom/vtpmmgr/Makefile                           |   36 -
 stubdom/vtpmmgr/calc.pl                            |   97 -
 stubdom/vtpmmgr/common_types.h                     |    9 -
 stubdom/vtpmmgr/disk_crypto.c                      |  231 -
 stubdom/vtpmmgr/disk_crypto.h                      |   17 -
 stubdom/vtpmmgr/disk_format.h                      |  193 -
 stubdom/vtpmmgr/disk_io.c                          |  125 -
 stubdom/vtpmmgr/disk_io.h                          |   25 -
 stubdom/vtpmmgr/disk_read.c                        |  619 ---
 stubdom/vtpmmgr/disk_tpm.c                         |  297 --
 stubdom/vtpmmgr/disk_tpm.h                         |   29 -
 stubdom/vtpmmgr/disk_write.c                       |  419 --
 stubdom/vtpmmgr/endian_int.h                       |   72 -
 stubdom/vtpmmgr/init.c                             |  790 ----
 stubdom/vtpmmgr/log.c                              |  151 -
 stubdom/vtpmmgr/log.h                              |   87 -
 stubdom/vtpmmgr/manage-vtpmmgr.pl                  |  160 -
 stubdom/vtpmmgr/marshal.h                          |  851 ----
 stubdom/vtpmmgr/mgmt_authority.c                   |  396 --
 stubdom/vtpmmgr/mgmt_authority.h                   |   11 -
 stubdom/vtpmmgr/minios.cfg                         |   14 -
 stubdom/vtpmmgr/tcg.h                              |  751 ---
 stubdom/vtpmmgr/tpm.c                              |  904 ----
 stubdom/vtpmmgr/tpm.h                              |  184 -
 stubdom/vtpmmgr/tpm2.c                             |  455 --
 stubdom/vtpmmgr/tpm2.h                             |  104 -
 stubdom/vtpmmgr/tpm2_marshal.h                     |  673 ---
 stubdom/vtpmmgr/tpm2_types.h                       |  969 ----
 stubdom/vtpmmgr/tpmrsa.c                           |  199 -
 stubdom/vtpmmgr/tpmrsa.h                           |   69 -
 stubdom/vtpmmgr/uuid.h                             |   50 -
 stubdom/vtpmmgr/vtpm_cmd_handler.c                 |  882 ----
 stubdom/vtpmmgr/vtpm_disk.c                        |  237 -
 stubdom/vtpmmgr/vtpm_disk.h                        |  233 -
 stubdom/vtpmmgr/vtpm_manager.h                     |  470 --
 stubdom/vtpmmgr/vtpmmgr.c                          |  127 -
 stubdom/vtpmmgr/vtpmmgr.h                          |  116 -
 stubdom/xenstore-minios.cfg                        |    7 -
 tools/Makefile                                     |    2 +-
 tools/blktap2/Makefile                             |    2 +-
 tools/blktap2/drivers/Makefile                     |    2 +-
 tools/blktap2/lvm/Makefile                         |    2 +-
 tools/blktap2/vhd/Makefile                         |    2 +-
 tools/blktap2/vhd/lib/Makefile                     |    2 +-
 tools/console/Makefile                             |    2 +-
 tools/console/testsuite/Makefile                   |    2 +-
 tools/debugger/gdbsx/Makefile                      |    2 +-
 tools/debugger/gdbsx/gx/Makefile                   |    2 +-
 tools/debugger/gdbsx/xg/Makefile                   |    2 +-
 tools/debugger/kdd/Makefile                        |    2 +-
 tools/examples/Makefile                            |    2 +-
 tools/firmware/Makefile                            |    2 +-
 tools/firmware/etherboot/Makefile                  |    2 +-
 tools/firmware/hvmloader/Makefile                  |    2 +-
 tools/firmware/hvmloader/acpi/Makefile             |    2 +-
 tools/firmware/rombios/32bit/Makefile              |    2 +-
 tools/firmware/rombios/32bit/tcgbios/Makefile      |    2 +-
 tools/firmware/rombios/Makefile                    |    2 +-
 tools/flask/Makefile                               |    2 +-
 tools/flask/policy/Makefile                        |    2 +-
 tools/flask/utils/Makefile                         |    2 +-
 tools/helpers/Makefile                             |    2 +-
 tools/hotplug/FreeBSD/Makefile                     |    2 +-
 tools/hotplug/Linux/Makefile                       |    2 +-
 tools/hotplug/Linux/systemd/Makefile               |    2 +-
 tools/hotplug/Makefile                             |    2 +-
 tools/hotplug/NetBSD/Makefile                      |    2 +-
 tools/hotplug/common/Makefile                      |    2 +-
 tools/include/Makefile                             |    2 +-
 tools/include/xen-foreign/Makefile                 |    2 +-
 tools/libfsimage/Makefile                          |    2 +-
 tools/libfsimage/common/Makefile                   |    2 +-
 tools/libfsimage/ext2fs-lib/Makefile               |    2 +-
 tools/libfsimage/ext2fs/Makefile                   |    2 +-
 tools/libfsimage/fat/Makefile                      |    2 +-
 tools/libfsimage/iso9660/Makefile                  |    2 +-
 tools/libfsimage/reiserfs/Makefile                 |    2 +-
 tools/libfsimage/ufs/Makefile                      |    2 +-
 tools/libfsimage/xfs/Makefile                      |    2 +-
 tools/libfsimage/zfs/Makefile                      |    2 +-
 tools/libs/Makefile                                |    2 +-
 tools/libs/call/Makefile                           |    2 +-
 tools/libs/evtchn/Makefile                         |    2 +-
 tools/libs/foreignmemory/Makefile                  |    2 +-
 tools/libs/gnttab/Makefile                         |    2 +-
 tools/libs/toollog/Makefile                        |    2 +-
 tools/libvchan/Makefile                            |    2 +-
 tools/libxc/Makefile                               |    6 +-
 tools/libxl/Makefile                               |   11 +-
 tools/memshr/Makefile                              |    2 +-
 tools/misc/Makefile                                |    2 +-
 tools/ocaml/Makefile                               |    2 +-
 tools/ocaml/libs/Makefile                          |    2 +-
 tools/ocaml/libs/eventchn/Makefile                 |    2 +-
 tools/ocaml/libs/mmap/Makefile                     |    2 +-
 tools/ocaml/libs/xb/Makefile                       |    2 +-
 tools/ocaml/libs/xc/Makefile                       |    2 +-
 tools/ocaml/libs/xentoollog/Makefile               |    2 +-
 tools/ocaml/libs/xl/Makefile                       |    2 +-
 tools/ocaml/libs/xs/Makefile                       |    2 +-
 tools/ocaml/test/Makefile                          |    2 +-
 tools/ocaml/xenstored/Makefile                     |    2 +-
 tools/pygrub/Makefile                              |    2 +-
 tools/python/Makefile                              |    2 +-
 tools/tests/Makefile                               |    2 +-
 tools/tests/mce-test/tools/Makefile                |    2 +-
 tools/tests/mem-sharing/Makefile                   |    2 +-
 tools/tests/regression/Makefile                    |    2 +-
 tools/tests/vhpet/Makefile                         |    2 +-
 tools/tests/x86_emulator/Makefile                  |    2 +-
 tools/tests/xen-access/Makefile                    |    2 +-
 tools/xcutils/Makefile                             |    2 +-
 tools/xenbackendd/Makefile                         |    2 +-
 tools/xenmon/Makefile                              |    2 +-
 tools/xenpaging/Makefile                           |    2 +-
 tools/xenpmd/Makefile                              |    2 +-
 tools/xenstat/Makefile                             |    2 +-
 tools/xenstat/libxenstat/Makefile                  |    2 +-
 tools/xenstat/xentop/Makefile                      |    2 +-
 tools/xenstore/Makefile                            |    2 +-
 tools/xentrace/Makefile                            |    2 +-
 188 files changed, 97 insertions(+), 34254 deletions(-)
 delete mode 100644 config/Stubdom.mk.in
 delete mode 100644 m4/stubdom.m4
 delete mode 100644 stubdom/Makefile
 delete mode 100644 stubdom/c/Makefile
 delete mode 100644 stubdom/c/main.c
 delete mode 100644 stubdom/c/minios.cfg
 delete mode 100644 stubdom/caml/Makefile
 delete mode 100644 stubdom/caml/hello.ml
 delete mode 100644 stubdom/caml/main-caml.c
 delete mode 100644 stubdom/caml/minios.cfg
 delete mode 100755 stubdom/configure
 delete mode 100644 stubdom/configure.ac
 delete mode 100644 stubdom/grub.patches/00cvs
 delete mode 100644 stubdom/grub.patches/10graphics.diff
 delete mode 100644 stubdom/grub.patches/11graphics-keyboard.diff
 delete mode 100644 stubdom/grub.patches/20print_func.diff
 delete mode 100644 stubdom/grub.patches/30savedefault.diff
 delete mode 100644 stubdom/grub.patches/40ext3_256byte_inode.diff
 delete mode 100644 stubdom/grub.patches/50fs_fulldisk.diff
 delete mode 100644 stubdom/grub.patches/60ext4.diff
 delete mode 100644 stubdom/grub.patches/61btrfs.diff
 delete mode 100644 stubdom/grub.patches/70compiler_warnings.diff
 delete mode 100644 stubdom/grub.patches/99minios
 delete mode 100644 stubdom/grub/Makefile
 delete mode 100644 stubdom/grub/boot-x86_32.S
 delete mode 100644 stubdom/grub/boot-x86_64.S
 delete mode 100644 stubdom/grub/config.h
 delete mode 100644 stubdom/grub/kexec.c
 delete mode 100644 stubdom/grub/mini-os.c
 delete mode 100644 stubdom/grub/mini-os.h
 delete mode 100644 stubdom/grub/minios.cfg
 delete mode 100644 stubdom/grub/osdep.h
 delete mode 100644 stubdom/ioemu-minios.cfg
 delete mode 100644 stubdom/libpci.config.h
 delete mode 100644 stubdom/libpci.config.mak
 delete mode 100644 stubdom/lwip.dhcp_create_request-hwaddr_len.patch
 delete mode 100644 stubdom/lwip.patch-cvs
 delete mode 100644 stubdom/newlib-chk.patch
 delete mode 100644 stubdom/newlib-stdint-size_max-fix-from-1.17.0.patch
 delete mode 100644 stubdom/newlib.patch
 delete mode 100644 stubdom/ocaml.patch
 delete mode 100644 stubdom/pciutils.patch
 delete mode 100644 stubdom/polarssl.patch
 delete mode 100644 stubdom/stubdom-dm
 delete mode 100644 stubdom/tpmemu-0.7.4.patch
 delete mode 100644 stubdom/vtpm-bufsize.patch
 delete mode 100644 stubdom/vtpm-cmake-Wextra.patch
 delete mode 100644 stubdom/vtpm-deepquote-anyloc.patch
 delete mode 100644 stubdom/vtpm-deepquote.patch
 delete mode 100644 stubdom/vtpm-locality.patch
 delete mode 100644 stubdom/vtpm-parent-sign-ek.patch
 delete mode 100644 stubdom/vtpm/Makefile
 delete mode 100644 stubdom/vtpm/minios.cfg
 delete mode 100644 stubdom/vtpm/vtpm.c
 delete mode 100644 stubdom/vtpm/vtpm.h
 delete mode 100644 stubdom/vtpm/vtpm_cmd.c
 delete mode 100644 stubdom/vtpm/vtpm_cmd.h
 delete mode 100644 stubdom/vtpm/vtpm_pcrs.c
 delete mode 100644 stubdom/vtpm/vtpm_pcrs.h
 delete mode 100644 stubdom/vtpm/vtpmblk.c
 delete mode 100644 stubdom/vtpm/vtpmblk.h
 delete mode 100644 stubdom/vtpmmgr/Makefile
 delete mode 100755 stubdom/vtpmmgr/calc.pl
 delete mode 100644 stubdom/vtpmmgr/common_types.h
 delete mode 100644 stubdom/vtpmmgr/disk_crypto.c
 delete mode 100644 stubdom/vtpmmgr/disk_crypto.h
 delete mode 100644 stubdom/vtpmmgr/disk_format.h
 delete mode 100644 stubdom/vtpmmgr/disk_io.c
 delete mode 100644 stubdom/vtpmmgr/disk_io.h
 delete mode 100644 stubdom/vtpmmgr/disk_read.c
 delete mode 100644 stubdom/vtpmmgr/disk_tpm.c
 delete mode 100644 stubdom/vtpmmgr/disk_tpm.h
 delete mode 100644 stubdom/vtpmmgr/disk_write.c
 delete mode 100644 stubdom/vtpmmgr/endian_int.h
 delete mode 100644 stubdom/vtpmmgr/init.c
 delete mode 100644 stubdom/vtpmmgr/log.c
 delete mode 100644 stubdom/vtpmmgr/log.h
 delete mode 100755 stubdom/vtpmmgr/manage-vtpmmgr.pl
 delete mode 100644 stubdom/vtpmmgr/marshal.h
 delete mode 100644 stubdom/vtpmmgr/mgmt_authority.c
 delete mode 100644 stubdom/vtpmmgr/mgmt_authority.h
 delete mode 100644 stubdom/vtpmmgr/minios.cfg
 delete mode 100644 stubdom/vtpmmgr/tcg.h
 delete mode 100644 stubdom/vtpmmgr/tpm.c
 delete mode 100644 stubdom/vtpmmgr/tpm.h
 delete mode 100644 stubdom/vtpmmgr/tpm2.c
 delete mode 100644 stubdom/vtpmmgr/tpm2.h
 delete mode 100644 stubdom/vtpmmgr/tpm2_marshal.h
 delete mode 100644 stubdom/vtpmmgr/tpm2_types.h
 delete mode 100644 stubdom/vtpmmgr/tpmrsa.c
 delete mode 100644 stubdom/vtpmmgr/tpmrsa.h
 delete mode 100644 stubdom/vtpmmgr/uuid.h
 delete mode 100644 stubdom/vtpmmgr/vtpm_cmd_handler.c
 delete mode 100644 stubdom/vtpmmgr/vtpm_disk.c
 delete mode 100644 stubdom/vtpmmgr/vtpm_disk.h
 delete mode 100644 stubdom/vtpmmgr/vtpm_manager.h
 delete mode 100644 stubdom/vtpmmgr/vtpmmgr.c
 delete mode 100644 stubdom/vtpmmgr/vtpmmgr.h
 delete mode 100644 stubdom/xenstore-minios.cfg

-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 1/6] config: don't hard-code mini-os path
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 2/6] tools: use "?=" to set XEN_ROOT in Makefile Wei Liu
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 config/MiniOS.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/MiniOS.mk b/config/MiniOS.mk
index 32260ad..191226e 100644
--- a/config/MiniOS.mk
+++ b/config/MiniOS.mk
@@ -1,5 +1,5 @@
 include $(XEN_ROOT)/config/StdGNU.mk
-include $(XEN_ROOT)/extras/mini-os/Config.mk
+include $(MINI_OS)/Config.mk
 CFLAGS += $(DEF_CFLAGS) $(ARCH_CFLAGS)
 CPPFLAGS += $(DEF_CPPFLAGS) $(ARCH_CPPFLAGS) $(extra_incl)
 ASFLAGS += $(DEF_ASFLAGS) $(ARCH_ASFLAGS)
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git
  2016-03-10 16:46 [RFC PATCH v1] Splitting off stubdom to a different tree Wei Liu
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
@ 2016-03-10 16:52 ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 01/14] Import more files " Wei Liu
                     ` (13 more replies)
  2016-03-10 16:52 ` [PATCH RFC v1 0/2] mini-os: split stubdom from xen.git Wei Liu
                   ` (2 subsequent siblings)
  4 siblings, 14 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

The base tree is prepared by:

    #!/bin/sh
    
    set -ex
    
    git filter-branch --tag-name-filter cat \
      --subdirectory-filter stubdom/ -- --all
    
    # There is already a tag name 4.3.0-rc2 which points to the same commit.
    git tag -d xen-4.3.0-rc2
    
    # Add xen- prefix to all tags
    for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
    
    git gc --aggressive


These are the patches built on top of the base tree.

The branch can be found at
  git://xenbits.xen.org/people/liuw/stubdom.git wip.split-stubdom-v1

Wei.


Wei Liu (14):
  Import more files from xen.git
  Makefile: introduce dist target
  Add a gitignore
  Makefile: require XEN_ROOT and MINI_OS to be defined
  Makefile: replace MINI_OS with MINIOS_ROOT
  pciutils: don't use hard-coded XEN_ROOT
  grub: don't use hard-coded XEN_ROOT
  Makefile: export STUBDOM_ROOT
  Makefile: delete STUBDOMPATH target
  Makefile: require QEMU_ROOT to be defined
  Makefile: always include Config.mk from xen source tree
  Makefile: delete ioemu directory in clean target
  Makefile: fix removing *.mk
  Add README file

 .gitignore           |   74 +++
 Makefile             |   95 ++-
 README               |   16 +
 autogen.sh           |    2 +
 config.guess         | 1530 +++++++++++++++++++++++++++++++++++++++++++
 config.sub           | 1782 ++++++++++++++++++++++++++++++++++++++++++++++++++
 config/Paths.mk.in   |   56 ++
 config/Stubdom.mk.in |   39 ++
 configure            |  189 +++++-
 configure.ac         |   19 +-
 grub/Makefile        |    1 -
 install.sh           |   35 +
 m4/depends.m4        |   15 +
 m4/features.m4       |   21 +
 m4/fetcher.m4        |   14 +
 m4/path_or_fail.m4   |    6 +
 m4/paths.m4          |  137 ++++
 m4/stubdom.m4        |   96 +++
 pciutils.patch       |    3 +-
 19 files changed, 4057 insertions(+), 73 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 README
 create mode 100755 autogen.sh
 create mode 100755 config.guess
 create mode 100755 config.sub
 create mode 100644 config/Paths.mk.in
 create mode 100644 config/Stubdom.mk.in
 create mode 100644 install.sh
 create mode 100644 m4/depends.m4
 create mode 100644 m4/features.m4
 create mode 100644 m4/fetcher.m4
 create mode 100644 m4/path_or_fail.m4
 create mode 100644 m4/paths.m4
 create mode 100644 m4/stubdom.m4

-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 2/6] tools: use "?=" to set XEN_ROOT in Makefile
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 1/6] config: don't hard-code mini-os path Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 3/6] libxc: use $XEN_ROOT to reference libelf in xen Wei Liu
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

This is because when doing a stubdom build using $(CURDIR) to refer to
XEN_ROOT is wrong. Instead, when make enters directories of interest,
XEN_ROOT is already. So use "?=" is the right choice.

While in theory I can only fix up the places needed (a few libraries),
do this for all Makefiles under tools to keep things consistent.

Done by:
find tools -name Makefile -exec sed -i 's/^\(.*XEN_ROOT\s*\)=\(.*\)$/\1 ?= \2/g' {} \;

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 tools/Makefile                                | 2 +-
 tools/blktap2/Makefile                        | 2 +-
 tools/blktap2/drivers/Makefile                | 2 +-
 tools/blktap2/lvm/Makefile                    | 2 +-
 tools/blktap2/vhd/Makefile                    | 2 +-
 tools/blktap2/vhd/lib/Makefile                | 2 +-
 tools/console/Makefile                        | 2 +-
 tools/console/testsuite/Makefile              | 2 +-
 tools/debugger/gdbsx/Makefile                 | 2 +-
 tools/debugger/gdbsx/gx/Makefile              | 2 +-
 tools/debugger/gdbsx/xg/Makefile              | 2 +-
 tools/debugger/kdd/Makefile                   | 2 +-
 tools/examples/Makefile                       | 2 +-
 tools/firmware/Makefile                       | 2 +-
 tools/firmware/etherboot/Makefile             | 2 +-
 tools/firmware/hvmloader/Makefile             | 2 +-
 tools/firmware/hvmloader/acpi/Makefile        | 2 +-
 tools/firmware/rombios/32bit/Makefile         | 2 +-
 tools/firmware/rombios/32bit/tcgbios/Makefile | 2 +-
 tools/firmware/rombios/Makefile               | 2 +-
 tools/flask/Makefile                          | 2 +-
 tools/flask/policy/Makefile                   | 2 +-
 tools/flask/utils/Makefile                    | 2 +-
 tools/helpers/Makefile                        | 2 +-
 tools/hotplug/FreeBSD/Makefile                | 2 +-
 tools/hotplug/Linux/Makefile                  | 2 +-
 tools/hotplug/Linux/systemd/Makefile          | 2 +-
 tools/hotplug/Makefile                        | 2 +-
 tools/hotplug/NetBSD/Makefile                 | 2 +-
 tools/hotplug/common/Makefile                 | 2 +-
 tools/include/Makefile                        | 2 +-
 tools/include/xen-foreign/Makefile            | 2 +-
 tools/libfsimage/Makefile                     | 2 +-
 tools/libfsimage/common/Makefile              | 2 +-
 tools/libfsimage/ext2fs-lib/Makefile          | 2 +-
 tools/libfsimage/ext2fs/Makefile              | 2 +-
 tools/libfsimage/fat/Makefile                 | 2 +-
 tools/libfsimage/iso9660/Makefile             | 2 +-
 tools/libfsimage/reiserfs/Makefile            | 2 +-
 tools/libfsimage/ufs/Makefile                 | 2 +-
 tools/libfsimage/xfs/Makefile                 | 2 +-
 tools/libfsimage/zfs/Makefile                 | 2 +-
 tools/libs/Makefile                           | 2 +-
 tools/libs/call/Makefile                      | 2 +-
 tools/libs/evtchn/Makefile                    | 2 +-
 tools/libs/foreignmemory/Makefile             | 2 +-
 tools/libs/gnttab/Makefile                    | 2 +-
 tools/libs/toollog/Makefile                   | 2 +-
 tools/libvchan/Makefile                       | 2 +-
 tools/libxc/Makefile                          | 2 +-
 tools/libxl/Makefile                          | 2 +-
 tools/memshr/Makefile                         | 2 +-
 tools/misc/Makefile                           | 2 +-
 tools/ocaml/Makefile                          | 2 +-
 tools/ocaml/libs/Makefile                     | 2 +-
 tools/ocaml/libs/eventchn/Makefile            | 2 +-
 tools/ocaml/libs/mmap/Makefile                | 2 +-
 tools/ocaml/libs/xb/Makefile                  | 2 +-
 tools/ocaml/libs/xc/Makefile                  | 2 +-
 tools/ocaml/libs/xentoollog/Makefile          | 2 +-
 tools/ocaml/libs/xl/Makefile                  | 2 +-
 tools/ocaml/libs/xs/Makefile                  | 2 +-
 tools/ocaml/test/Makefile                     | 2 +-
 tools/ocaml/xenstored/Makefile                | 2 +-
 tools/pygrub/Makefile                         | 2 +-
 tools/python/Makefile                         | 2 +-
 tools/tests/Makefile                          | 2 +-
 tools/tests/mce-test/tools/Makefile           | 2 +-
 tools/tests/mem-sharing/Makefile              | 2 +-
 tools/tests/regression/Makefile               | 2 +-
 tools/tests/vhpet/Makefile                    | 2 +-
 tools/tests/x86_emulator/Makefile             | 2 +-
 tools/tests/xen-access/Makefile               | 2 +-
 tools/xcutils/Makefile                        | 2 +-
 tools/xenbackendd/Makefile                    | 2 +-
 tools/xenmon/Makefile                         | 2 +-
 tools/xenpaging/Makefile                      | 2 +-
 tools/xenpmd/Makefile                         | 2 +-
 tools/xenstat/Makefile                        | 2 +-
 tools/xenstat/libxenstat/Makefile             | 2 +-
 tools/xenstat/xentop/Makefile                 | 2 +-
 tools/xenstore/Makefile                       | 2 +-
 tools/xentrace/Makefile                       | 2 +-
 83 files changed, 83 insertions(+), 83 deletions(-)

diff --git a/tools/Makefile b/tools/Makefile
index 3f45fb9..038dff8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/..
+XEN_ROOT  ?=  $(CURDIR)/..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y :=
diff --git a/tools/blktap2/Makefile b/tools/blktap2/Makefile
index 94200dc..b8ec232 100644
--- a/tools/blktap2/Makefile
+++ b/tools/blktap2/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS  += $(CFLAGS_libxenctrl)
diff --git a/tools/blktap2/drivers/Makefile b/tools/blktap2/drivers/Makefile
index 5328c40..b093f00 100644
--- a/tools/blktap2/drivers/Makefile
+++ b/tools/blktap2/drivers/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 BLKTAP_ROOT= ..
 include $(XEN_ROOT)/tools/Rules.mk
 
diff --git a/tools/blktap2/lvm/Makefile b/tools/blktap2/lvm/Makefile
index 7d5f8ea..3d4572f 100644
--- a/tools/blktap2/lvm/Makefile
+++ b/tools/blktap2/lvm/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 BLKTAP_ROOT := ..
 include $(XEN_ROOT)/tools/Rules.mk
 
diff --git a/tools/blktap2/vhd/Makefile b/tools/blktap2/vhd/Makefile
index fabd665..718c13c 100644
--- a/tools/blktap2/vhd/Makefile
+++ b/tools/blktap2/vhd/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 BLKTAP_ROOT := ..
 include $(XEN_ROOT)/tools/Rules.mk
 
diff --git a/tools/blktap2/vhd/lib/Makefile b/tools/blktap2/vhd/lib/Makefile
index ab2d648..9b84037 100644
--- a/tools/blktap2/vhd/lib/Makefile
+++ b/tools/blktap2/vhd/lib/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../../..
+XEN_ROOT ?= $(CURDIR)/../../../..
 BLKTAP_ROOT := ../..
 include $(XEN_ROOT)/tools/Rules.mk
 
diff --git a/tools/console/Makefile b/tools/console/Makefile
index a7bec75..4547030 100644
--- a/tools/console/Makefile
+++ b/tools/console/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS  += -Werror
diff --git a/tools/console/testsuite/Makefile b/tools/console/testsuite/Makefile
index 85501fd..c776a81 100644
--- a/tools/console/testsuite/Makefile
+++ b/tools/console/testsuite/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 LDFLAGS=-static
diff --git a/tools/debugger/gdbsx/Makefile b/tools/debugger/gdbsx/Makefile
index 4ed6d76..d4ce827 100644
--- a/tools/debugger/gdbsx/Makefile
+++ b/tools/debugger/gdbsx/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include ./Rules.mk
 
 .PHONY: all
diff --git a/tools/debugger/gdbsx/gx/Makefile b/tools/debugger/gdbsx/gx/Makefile
index 3b8467f..480b0f0 100644
--- a/tools/debugger/gdbsx/gx/Makefile
+++ b/tools/debugger/gdbsx/gx/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../../..
+XEN_ROOT  ?=  $(CURDIR)/../../../..
 include ../Rules.mk
 
 GX_OBJS := gx_comm.o gx_main.o gx_utils.o gx_local.o
diff --git a/tools/debugger/gdbsx/xg/Makefile b/tools/debugger/gdbsx/xg/Makefile
index 6a8937b..34b443b 100644
--- a/tools/debugger/gdbsx/xg/Makefile
+++ b/tools/debugger/gdbsx/xg/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../../..
+XEN_ROOT  ?=  $(CURDIR)/../../../..
 include ../Rules.mk
 
 XG_HDRS := xg_public.h 
diff --git a/tools/debugger/kdd/Makefile b/tools/debugger/kdd/Makefile
index f3a597d..2f33399 100644
--- a/tools/debugger/kdd/Makefile
+++ b/tools/debugger/kdd/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS  += -Werror
diff --git a/tools/examples/Makefile b/tools/examples/Makefile
index 87dd760..f1a374f 100644
--- a/tools/examples/Makefile
+++ b/tools/examples/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # Xen configuration dir and configs to go there.
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 6cc86ce..b2c8deb 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # hvmloader is a 32-bit protected mode binary.
diff --git a/tools/firmware/etherboot/Makefile b/tools/firmware/etherboot/Makefile
index a0578d2..685b7f9 100644
--- a/tools/firmware/etherboot/Makefile
+++ b/tools/firmware/etherboot/Makefile
@@ -1,6 +1,6 @@
 
 override XEN_TARGET_ARCH = x86_32
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 include Config
 
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index f2f4791..9829536 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -17,7 +17,7 @@
 # this program; If not, see <http://www.gnu.org/licenses/>.
 #
 
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 SUBDIRS := acpi
diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile
index d3e882a..ac21a96 100644
--- a/tools/firmware/hvmloader/acpi/Makefile
+++ b/tools/firmware/hvmloader/acpi/Makefile
@@ -14,7 +14,7 @@
 # this program; If not, see <http://www.gnu.org/licenses/>.
 #
 
-XEN_ROOT = $(CURDIR)/../../../..
+XEN_ROOT  ?=  $(CURDIR)/../../../..
 include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 C_SRC = build.c dsdt_anycpu.c dsdt_15cpu.c static_tables.c dsdt_anycpu_qemu_xen.c
diff --git a/tools/firmware/rombios/32bit/Makefile b/tools/firmware/rombios/32bit/Makefile
index 396906c..912bcc2 100644
--- a/tools/firmware/rombios/32bit/Makefile
+++ b/tools/firmware/rombios/32bit/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../../..
+XEN_ROOT  ?=  $(CURDIR)/../../../..
 include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 TARGET = 32bitbios_flat.h
diff --git a/tools/firmware/rombios/32bit/tcgbios/Makefile b/tools/firmware/rombios/32bit/tcgbios/Makefile
index f6f2649..ce342a7 100644
--- a/tools/firmware/rombios/32bit/tcgbios/Makefile
+++ b/tools/firmware/rombios/32bit/tcgbios/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../../../..
+XEN_ROOT  ?=  $(CURDIR)/../../../../..
 include $(XEN_ROOT)/tools/firmware/Rules.mk
 
 TARGET  = tcgbiosext.o
diff --git a/tools/firmware/rombios/Makefile b/tools/firmware/rombios/Makefile
index 94e65db..77863a6 100644
--- a/tools/firmware/rombios/Makefile
+++ b/tools/firmware/rombios/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS := 32bit
diff --git a/tools/flask/Makefile b/tools/flask/Makefile
index a31cc16..2245a9c 100644
--- a/tools/flask/Makefile
+++ b/tools/flask/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y := utils
diff --git a/tools/flask/policy/Makefile b/tools/flask/policy/Makefile
index 4be921c..02497d9 100644
--- a/tools/flask/policy/Makefile
+++ b/tools/flask/policy/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 ########################################
diff --git a/tools/flask/utils/Makefile b/tools/flask/utils/Makefile
index 91a53b4..9cf3bc5 100644
--- a/tools/flask/utils/Makefile
+++ b/tools/flask/utils/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile
index a05a368..1bf57bc 100644
--- a/tools/helpers/Makefile
+++ b/tools/helpers/Makefile
@@ -2,7 +2,7 @@
 # tools/helpers/Makefile
 #
 
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 PROGS += xen-init-dom0
diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
index 10fce4f..8061a84 100644
--- a/tools/hotplug/FreeBSD/Makefile
+++ b/tools/hotplug/FreeBSD/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # Xen script dir and scripts to go there.
diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile
index 6e10118..f7bd1b0 100644
--- a/tools/hotplug/Linux/Makefile
+++ b/tools/hotplug/Linux/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # Init scripts.
diff --git a/tools/hotplug/Linux/systemd/Makefile b/tools/hotplug/Linux/systemd/Makefile
index 83e3b32..2445316 100644
--- a/tools/hotplug/Linux/systemd/Makefile
+++ b/tools/hotplug/Linux/systemd/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../../..
+XEN_ROOT  ?=  $(CURDIR)/../../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 XEN_SYSTEMD_MODULES = xen.conf
diff --git a/tools/hotplug/Makefile b/tools/hotplug/Makefile
index c1a82c1..e27f9ec 100644
--- a/tools/hotplug/Makefile
+++ b/tools/hotplug/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y := common
diff --git a/tools/hotplug/NetBSD/Makefile b/tools/hotplug/NetBSD/Makefile
index d01aabf..1107ea3 100644
--- a/tools/hotplug/NetBSD/Makefile
+++ b/tools/hotplug/NetBSD/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # Xen script dir and scripts to go there.
diff --git a/tools/hotplug/common/Makefile b/tools/hotplug/common/Makefile
index b53b55c..ebb4f17 100644
--- a/tools/hotplug/common/Makefile
+++ b/tools/hotplug/common/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 HOTPLUGPATH="hotplugpath.sh"
diff --git a/tools/include/Makefile b/tools/include/Makefile
index dec8b3d..ed25612 100644
--- a/tools/include/Makefile
+++ b/tools/include/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # Relative to $(XEN_ROOT)/xen/xsm/flask
diff --git a/tools/include/xen-foreign/Makefile b/tools/include/xen-foreign/Makefile
index 80a446a..22b969a 100644
--- a/tools/include/xen-foreign/Makefile
+++ b/tools/include/xen-foreign/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 ROOT = $(XEN_ROOT)/xen/include/public
diff --git a/tools/libfsimage/Makefile b/tools/libfsimage/Makefile
index 69fd18a..d66fbeb 100644
--- a/tools/libfsimage/Makefile
+++ b/tools/libfsimage/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y = common ufs reiserfs iso9660 fat zfs
diff --git a/tools/libfsimage/common/Makefile b/tools/libfsimage/common/Makefile
index 4840bc2..f64f66a 100644
--- a/tools/libfsimage/common/Makefile
+++ b/tools/libfsimage/common/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/libfsimage/Rules.mk
 
 MAJOR = 1.0
diff --git a/tools/libfsimage/ext2fs-lib/Makefile b/tools/libfsimage/ext2fs-lib/Makefile
index 0e00fde..7f606e7 100644
--- a/tools/libfsimage/ext2fs-lib/Makefile
+++ b/tools/libfsimage/ext2fs-lib/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = ext2fs-lib.c
 
diff --git a/tools/libfsimage/ext2fs/Makefile b/tools/libfsimage/ext2fs/Makefile
index 8ff4c71..986012a 100644
--- a/tools/libfsimage/ext2fs/Makefile
+++ b/tools/libfsimage/ext2fs/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = fsys_ext2fs.c
 
diff --git a/tools/libfsimage/fat/Makefile b/tools/libfsimage/fat/Makefile
index 2911a0e..dacec21 100644
--- a/tools/libfsimage/fat/Makefile
+++ b/tools/libfsimage/fat/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = fsys_fat.c
 
diff --git a/tools/libfsimage/iso9660/Makefile b/tools/libfsimage/iso9660/Makefile
index 4096caf..0915b26 100644
--- a/tools/libfsimage/iso9660/Makefile
+++ b/tools/libfsimage/iso9660/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = fsys_iso9660.c
 
diff --git a/tools/libfsimage/reiserfs/Makefile b/tools/libfsimage/reiserfs/Makefile
index 57f286b..06f109d 100644
--- a/tools/libfsimage/reiserfs/Makefile
+++ b/tools/libfsimage/reiserfs/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = fsys_reiserfs.c
 
diff --git a/tools/libfsimage/ufs/Makefile b/tools/libfsimage/ufs/Makefile
index c137108..7dcea7d 100644
--- a/tools/libfsimage/ufs/Makefile
+++ b/tools/libfsimage/ufs/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = fsys_ufs.c
 
diff --git a/tools/libfsimage/xfs/Makefile b/tools/libfsimage/xfs/Makefile
index 6580007..1ce6b1c 100644
--- a/tools/libfsimage/xfs/Makefile
+++ b/tools/libfsimage/xfs/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 LIB_SRCS-y = fsys_xfs.c
 
diff --git a/tools/libfsimage/zfs/Makefile b/tools/libfsimage/zfs/Makefile
index 4b9f131..6d5cdf1 100644
--- a/tools/libfsimage/zfs/Makefile
+++ b/tools/libfsimage/zfs/Makefile
@@ -21,7 +21,7 @@
 #  Use is subject to license terms.
 #
 
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 
 CFLAGS += -DFSYS_ZFS -DFSIMAGE -I$(XEN_ROOT)/tools/libfsimage/zfs
 LIB_SRCS-y = zfs_lzjb.c zfs_sha256.c zfs_fletcher.c fsi_zfs.c fsys_zfs.c
diff --git a/tools/libs/Makefile b/tools/libs/Makefile
index dc5726d..f732a1c 100644
--- a/tools/libs/Makefile
+++ b/tools/libs/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y :=
diff --git a/tools/libs/call/Makefile b/tools/libs/call/Makefile
index 9402ea5..76f6980 100644
--- a/tools/libs/call/Makefile
+++ b/tools/libs/call/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR    = 1
diff --git a/tools/libs/evtchn/Makefile b/tools/libs/evtchn/Makefile
index 9917864..74374fc 100644
--- a/tools/libs/evtchn/Makefile
+++ b/tools/libs/evtchn/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR    = 1
diff --git a/tools/libs/foreignmemory/Makefile b/tools/libs/foreignmemory/Makefile
index f062f45..fb11b0d 100644
--- a/tools/libs/foreignmemory/Makefile
+++ b/tools/libs/foreignmemory/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR    = 1
diff --git a/tools/libs/gnttab/Makefile b/tools/libs/gnttab/Makefile
index af64542..ed570e8 100644
--- a/tools/libs/gnttab/Makefile
+++ b/tools/libs/gnttab/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR    = 1
diff --git a/tools/libs/toollog/Makefile b/tools/libs/toollog/Makefile
index fb701be..a652959 100644
--- a/tools/libs/toollog/Makefile
+++ b/tools/libs/toollog/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR	= 1
diff --git a/tools/libvchan/Makefile b/tools/libvchan/Makefile
index 0573d2f..9ff09e9 100644
--- a/tools/libvchan/Makefile
+++ b/tools/libvchan/Makefile
@@ -2,7 +2,7 @@
 # tools/libvchan/Makefile
 #
 
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 LIBVCHAN_OBJS = init.o io.o
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index 608404f..1619c06 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR    = 4.6
diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
index 789a12e..81c3db4 100644
--- a/tools/libxl/Makefile
+++ b/tools/libxl/Makefile
@@ -2,7 +2,7 @@
 # tools/libxl/Makefile
 #
 
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR = 4.6
diff --git a/tools/memshr/Makefile b/tools/memshr/Makefile
index ce86f20..6faa23e 100644
--- a/tools/memshr/Makefile
+++ b/tools/memshr/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 LIBMEMSHR-BUILD := libmemshr.a
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index a2ef0ec..8ea9e36 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
diff --git a/tools/ocaml/Makefile b/tools/ocaml/Makefile
index cfa931a..f3d07e7 100644
--- a/tools/ocaml/Makefile
+++ b/tools/ocaml/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS := libs
diff --git a/tools/ocaml/libs/Makefile b/tools/ocaml/libs/Makefile
index f7c3c0e..afb975f 100644
--- a/tools/ocaml/libs/Makefile
+++ b/tools/ocaml/libs/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS= \
diff --git a/tools/ocaml/libs/eventchn/Makefile b/tools/ocaml/libs/eventchn/Makefile
index 154efd4..3b3761a 100644
--- a/tools/ocaml/libs/eventchn/Makefile
+++ b/tools/ocaml/libs/eventchn/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 CFLAGS += $(CFLAGS_libxenevtchn) $(CFLAGS_xeninclude)
diff --git a/tools/ocaml/libs/mmap/Makefile b/tools/ocaml/libs/mmap/Makefile
index df45819..a3359bc 100644
--- a/tools/ocaml/libs/mmap/Makefile
+++ b/tools/ocaml/libs/mmap/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 OBJS = xenmmap
diff --git a/tools/ocaml/libs/xb/Makefile b/tools/ocaml/libs/xb/Makefile
index 09d1bc8..c41aa92 100644
--- a/tools/ocaml/libs/xb/Makefile
+++ b/tools/ocaml/libs/xb/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 CFLAGS += -I../mmap
diff --git a/tools/ocaml/libs/xc/Makefile b/tools/ocaml/libs/xc/Makefile
index d24b014..3b83138 100644
--- a/tools/ocaml/libs/xc/Makefile
+++ b/tools/ocaml/libs/xc/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 CFLAGS += -I../mmap $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
diff --git a/tools/ocaml/libs/xentoollog/Makefile b/tools/ocaml/libs/xentoollog/Makefile
index 8ae0a78..75b4664 100644
--- a/tools/ocaml/libs/xentoollog/Makefile
+++ b/tools/ocaml/libs/xentoollog/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 # allow mixed declarations and code
diff --git a/tools/ocaml/libs/xl/Makefile b/tools/ocaml/libs/xl/Makefile
index 0d1549d..66d0c3e 100644
--- a/tools/ocaml/libs/xl/Makefile
+++ b/tools/ocaml/libs/xl/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 # ignore unused generated functions and allow mixed declarations and code
diff --git a/tools/ocaml/libs/xs/Makefile b/tools/ocaml/libs/xs/Makefile
index 7a3d886..c9f2f54 100644
--- a/tools/ocaml/libs/xs/Makefile
+++ b/tools/ocaml/libs/xs/Makefile
@@ -1,5 +1,5 @@
 TOPLEVEL=$(CURDIR)/../..
-XEN_ROOT=$(TOPLEVEL)/../..
+XEN_ROOT ?= $(TOPLEVEL)/../..
 include $(TOPLEVEL)/common.make
 
 OCAMLINCLUDE += -I ../xb/
diff --git a/tools/ocaml/test/Makefile b/tools/ocaml/test/Makefile
index 30a304b..737d5f1 100644
--- a/tools/ocaml/test/Makefile
+++ b/tools/ocaml/test/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 OCAML_TOPLEVEL = $(CURDIR)/..
 include $(OCAML_TOPLEVEL)/common.make
 
diff --git a/tools/ocaml/xenstored/Makefile b/tools/ocaml/xenstored/Makefile
index 59875f7..a0274a2 100644
--- a/tools/ocaml/xenstored/Makefile
+++ b/tools/ocaml/xenstored/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../../..
+XEN_ROOT  ?=  $(CURDIR)/../../..
 OCAML_TOPLEVEL = $(CURDIR)/..
 include $(OCAML_TOPLEVEL)/common.make
 
diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
index fe8e03b..e423be4 100644
--- a/tools/pygrub/Makefile
+++ b/tools/pygrub/Makefile
@@ -1,5 +1,5 @@
 
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(APPEND_LDFLAGS)
diff --git a/tools/python/Makefile b/tools/python/Makefile
index 2363537..33b75bd 100644
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 .PHONY: all
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index adeb120..6902bd2 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS  += $(CFLAGS_libxenctrl)
diff --git a/tools/tests/mce-test/tools/Makefile b/tools/tests/mce-test/tools/Makefile
index 0e92ac2..fcf3e8f 100644
--- a/tools/tests/mce-test/tools/Makefile
+++ b/tools/tests/mce-test/tools/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../../..
+XEN_ROOT ?= $(CURDIR)/../../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
diff --git a/tools/tests/mem-sharing/Makefile b/tools/tests/mem-sharing/Makefile
index d89e283..39ff84e 100644
--- a/tools/tests/mem-sharing/Makefile
+++ b/tools/tests/mem-sharing/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
diff --git a/tools/tests/regression/Makefile b/tools/tests/regression/Makefile
index 70d524a..83d871b 100644
--- a/tools/tests/regression/Makefile
+++ b/tools/tests/regression/Makefile
@@ -5,7 +5,7 @@
 # To run this, at least the basic build / development environment must
 # be installed (gcc, ...)
 #
-XEN_ROOT=$(PWD)/../../..
+XEN_ROOT ?= $(PWD)/../../..
 REG_TEST_DIR=$(PWD)
 
 PYTHON_VERSIONS=python-2.3 python-2.4 python-2.5 python-2.6 python-3.1
diff --git a/tools/tests/vhpet/Makefile b/tools/tests/vhpet/Makefile
index cb88dd0..5ed2720 100644
--- a/tools/tests/vhpet/Makefile
+++ b/tools/tests/vhpet/Makefile
@@ -1,5 +1,5 @@
 
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test_vhpet
diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index b52f227..033cebe 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -1,5 +1,5 @@
 
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test_x86_emulator
diff --git a/tools/tests/xen-access/Makefile b/tools/tests/xen-access/Makefile
index 25ff469..6be2916 100644
--- a/tools/tests/xen-access/Makefile
+++ b/tools/tests/xen-access/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
index e127af8..ed83644 100644
--- a/tools/xcutils/Makefile
+++ b/tools/xcutils/Makefile
@@ -8,7 +8,7 @@
 # Copyright (C) 2005 by Christian Limpach
 #
 
-XEN_ROOT	= $(CURDIR)/../..
+XEN_ROOT	 ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 PROGRAMS = readnotes lsevtchn
diff --git a/tools/xenbackendd/Makefile b/tools/xenbackendd/Makefile
index f52be74..06ad929 100644
--- a/tools/xenbackendd/Makefile
+++ b/tools/xenbackendd/Makefile
@@ -9,7 +9,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS  += -Werror
diff --git a/tools/xenmon/Makefile b/tools/xenmon/Makefile
index 98056f2..6c26e8c 100644
--- a/tools/xenmon/Makefile
+++ b/tools/xenmon/Makefile
@@ -10,7 +10,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS  += -Werror
diff --git a/tools/xenpaging/Makefile b/tools/xenpaging/Makefile
index 64876b3..58b1eaa 100644
--- a/tools/xenpaging/Makefile
+++ b/tools/xenpaging/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 # xenpaging.c and file_ops.c incorrectly use libxc internals
diff --git a/tools/xenpmd/Makefile b/tools/xenpmd/Makefile
index 55e8fc5..8eb417b 100644
--- a/tools/xenpmd/Makefile
+++ b/tools/xenpmd/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
diff --git a/tools/xenstat/Makefile b/tools/xenstat/Makefile
index 901be4a..a02b83c 100644
--- a/tools/xenstat/Makefile
+++ b/tools/xenstat/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT = $(CURDIR)/../..
+XEN_ROOT  ?=  $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS :=
diff --git a/tools/xenstat/libxenstat/Makefile b/tools/xenstat/libxenstat/Makefile
index 850d24a..99de0a1 100644
--- a/tools/xenstat/libxenstat/Makefile
+++ b/tools/xenstat/libxenstat/Makefile
@@ -12,7 +12,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # Lesser General Public License for more details.
 
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 LDCONFIG=ldconfig
diff --git a/tools/xenstat/xentop/Makefile b/tools/xenstat/xentop/Makefile
index 1cc393f..4063248 100644
--- a/tools/xenstat/xentop/Makefile
+++ b/tools/xenstat/xentop/Makefile
@@ -10,7 +10,7 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
-XEN_ROOT=$(CURDIR)/../../..
+XEN_ROOT ?= $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 ifneq ($(XENSTAT_XENTOP),y)
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
index d691b78..3b2c813 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR = 3.0
diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile
index 0157be2..52a14b1 100644
--- a/tools/xentrace/Makefile
+++ b/tools/xentrace/Makefile
@@ -1,4 +1,4 @@
-XEN_ROOT=$(CURDIR)/../..
+XEN_ROOT ?= $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -Werror
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 3/6] libxc: use $XEN_ROOT to reference libelf in xen
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 1/6] config: don't hard-code mini-os path Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 2/6] tools: use "?=" to set XEN_ROOT in Makefile Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 4/6] libxl: generate and install stubdompath.sh Wei Liu
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Stubdom needs to compile and link libelf in xen. Using relative path
breaks that.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 tools/libxc/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index 1619c06..3a0a839 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -68,8 +68,8 @@ else
 GUEST_SRCS-y += xc_nomigrate.c
 endif
 
-vpath %.c ../../xen/common/libelf
-CFLAGS += -I../../xen/common/libelf
+vpath %.c $(XEN_ROOT)/xen/common/libelf
+CFLAGS += -I$(XEN_ROOT)/xen/common/libelf
 
 ELF_SRCS-y += libelf-tools.c libelf-loader.c
 ELF_SRCS-y += libelf-dominfo.c
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 01/14] Import more files from xen.git
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 02/14] Makefile: introduce dist target Wei Liu
                     ` (12 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Imported from top level build system in xen.git. Modify them to work
with stubdom build environment.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
I've committed configure changes in this patch, feel free to drop that
and regenerate while committing.

Not sure what the version number of stubdom.git should be. Previously
it used the Xen version. Now I just define it as 1.0. This needs to be
sorted out.

The package name is left as "xen" because it is used to generate
installation path.
---
 Makefile             |    4 +-
 autogen.sh           |    2 +
 config.guess         | 1530 +++++++++++++++++++++++++++++++++++++++++++
 config.sub           | 1782 ++++++++++++++++++++++++++++++++++++++++++++++++++
 config/Paths.mk.in   |   56 ++
 config/Stubdom.mk.in |   39 ++
 configure            |  189 +++++-
 configure.ac         |   19 +-
 install.sh           |   35 +
 m4/depends.m4        |   15 +
 m4/features.m4       |   21 +
 m4/fetcher.m4        |   14 +
 m4/path_or_fail.m4   |    6 +
 m4/paths.m4          |  137 ++++
 m4/stubdom.m4        |   96 +++
 15 files changed, 3931 insertions(+), 14 deletions(-)
 create mode 100755 autogen.sh
 create mode 100755 config.guess
 create mode 100755 config.sub
 create mode 100644 config/Paths.mk.in
 create mode 100644 config/Stubdom.mk.in
 create mode 100644 install.sh
 create mode 100644 m4/depends.m4
 create mode 100644 m4/features.m4
 create mode 100644 m4/fetcher.m4
 create mode 100644 m4/path_or_fail.m4
 create mode 100644 m4/paths.m4
 create mode 100644 m4/stubdom.m4

diff --git a/Makefile b/Makefile
index 2044d76..c8984d4 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,8 @@ MINI_OS = $(XEN_ROOT)/extras/mini-os
 export XEN_ROOT
 export XEN_OS=MiniOS
 
+export DISTDIR=$(STUBDOM_ROOT)/dist
+
 export stubdom=y
 export debug=y
 
@@ -14,7 +16,7 @@ ifeq (,$(findstring clean,$(MAKECMDGOALS)))
   include $(XEN_ROOT)/Config.mk
 endif
 
--include $(XEN_ROOT)/config/Stubdom.mk
+-include config/Stubdom.mk
 
 GNU_TARGET_ARCH:=$(XEN_TARGET_ARCH)
 ifeq ($(XEN_TARGET_ARCH),x86_32)
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..dea680e
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,2 @@
+#!/bin/sh -e
+autoconf -f
diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..d622a44
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1530 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011, 2012 Free Software Foundation, Inc.
+
+timestamp='2012-02-10'
+
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# 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.
+
+
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+		os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	exitcode=$?
+	trap '' 0
+	exit $exitcode ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+	echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+	echo m68k-milan-mint${UNAME_RELEASE}
+	exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+	echo m68k-hades-mint${UNAME_RELEASE}
+	exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+	echo m68k-unknown-mint${UNAME_RELEASE}
+	exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[4567])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "${sc_cpu_version}" in
+		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+		      532)                      # CPU_PA_RISC2_0
+			case "${sc_kernel_bits}" in
+			  32) HP_ARCH="hppa2.0n" ;;
+			  64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+			esac ;;
+		    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^		//' << EOF >$dummy.c
+
+		#define _HPUX_SOURCE
+		#include <stdlib.h>
+		#include <unistd.h>
+
+		int main ()
+		{
+		#if defined(_SC_KERNEL_BITS)
+		    long bits = sysconf(_SC_KERNEL_BITS);
+		#endif
+		    long cpu  = sysconf (_SC_CPU_VERSION);
+
+		    switch (cpu)
+			{
+			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+			case CPU_PA_RISC2_0:
+		#if defined(_SC_KERNEL_BITS)
+			    switch (bits)
+				{
+				case 64: puts ("hppa2.0w"); break;
+				case 32: puts ("hppa2.0n"); break;
+				default: puts ("hppa2.0"); break;
+				} break;
+		#else  /* !defined(_SC_KERNEL_BITS) */
+			    puts ("hppa2.0"); break;
+		#endif
+			default: puts ("hppa1.0"); break;
+			}
+		    exit (0);
+		}
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+	exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+	exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+	exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+	exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    5000:UNIX_System_V:4.*:*)
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	case ${UNAME_PROCESSOR} in
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:MSYS*:*)
+	echo ${UNAME_MACHINE}-pc-msys
+	exit ;;
+    i*:windows32*:*)
+	# uname -m includes "-pc" on this system.
+	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:*)
+	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    aarch64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    aarch64_be:Linux:*:*)
+	UNAME_MACHINE=aarch64_be
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+	esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+		| grep -q __ARM_PCS_VFP
+	    then
+		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	    else
+		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+	    fi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo ${UNAME_MACHINE}-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo ${UNAME_MACHINE}-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    hexagon:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    tile*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+	# Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+	exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+			# says <Richard.M.Bartel@ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+		echo mips-nec-sysv${UNAME_RELEASE}
+	else
+		echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+	exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+	echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+    x86_64:VMkernel:*:*)
+	echo ${UNAME_MACHINE}-unknown-esx
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+	"4"
+#else
+	""
+#endif
+	); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..6205f84
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1782 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011, 2012 Free Software Foundation, Inc.
+
+timestamp='2012-04-18'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# 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.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze)
+		os=
+		basic_machine=$1
+		;;
+	-bluegene*)
+		os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+	-chorusrdb)
+		os=-chorusrdb
+		basic_machine=$1
+		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| aarch64 | aarch64_be \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+        | be32 | be64 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| epiphany \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| hexagon \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| le32 | le64 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nds32 | nds32le | nds32be \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| open8 \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle \
+	| pyramid \
+	| rl78 | rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu \
+	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+	| we32k \
+	| x86 | xc16x | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	c54x)
+		basic_machine=tic54x-unknown
+		;;
+	c55x)
+		basic_machine=tic55x-unknown
+		;;
+	c6x)
+		basic_machine=tic6x-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	strongarm | thumb | xscale)
+		basic_machine=arm-unknown
+		;;
+	xgate)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	xscaleeb)
+		basic_machine=armeb-unknown
+		;;
+
+	xscaleel)
+		basic_machine=armel-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| aarch64-* | aarch64_be-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| be32-* | be64-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| hexagon-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| le32-* | le64-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nds32-* | nds32le-* | nds32be-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| open8-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+	| pyramid-* \
+	| rl78-* | romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+	| tahoe-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tile*-* \
+	| tron-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+	| vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c54x-*)
+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c55x-*)
+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c6x-*)
+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16 | cr16-*)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	microblaze)
+		basic_machine=microblaze-xilinx
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	msys)
+		basic_machine=i386-pc
+		os=-msys
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	nacl)
+		basic_machine=le32-unknown
+		os=-nacl
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	neo-tandem)
+		basic_machine=neo-tandem
+		;;
+	nse-tandem)
+		basic_machine=nse-tandem
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc | ppcbe)	basic_machine=powerpc-unknown
+		;;
+	ppc-* | ppcbe-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	strongarm-* | thumb-*)
+		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tile*)
+		basic_machine=$basic_machine-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	xscale-* | xscalee[bl]-*)
+		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+	# First match some system type aliases
+	# that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-auroraux)
+		os=-auroraux
+		;;
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+	-os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+	-tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+	-nacl*)
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	score-*)
+		os=-elf
+		;;
+	spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+	c4x-* | tic4x-*)
+		os=-coff
+		;;
+	hexagon-*)
+		os=-elf
+		;;
+	tic54x-*)
+		os=-coff
+		;;
+	tic55x-*)
+		os=-coff
+		;;
+	tic6x-*)
+		os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config/Paths.mk.in b/config/Paths.mk.in
new file mode 100644
index 0000000..1c7afb4
--- /dev/null
+++ b/config/Paths.mk.in
@@ -0,0 +1,56 @@
+# Xen system configuration
+# ========================
+#
+# Xen uses a set of variables for system configuration and at build time,
+# because of this these variables are defined on one master input source file
+# and is generated after running ./configure. The master source is located
+# on the xen source tree at under config/Paths.mk.in and it is used to
+# generate shell or header files by the build system upon demand through the
+# use of the helper makefile helper buildmakevars2file().
+#
+# For more documentation you can refer to the wiki:
+#
+# http://wiki.xen.org/wiki/Category:Host_Configuration#System_wide_xen_configuration
+
+PACKAGE_TARNAME          := @PACKAGE_TARNAME@
+prefix                   := @prefix@
+bindir                   := @bindir@
+sbindir                  := @sbindir@
+libdir                   := @libdir@
+libexecdir               := @libexecdir@
+datarootdir              := @datarootdir@
+mandir                   := @mandir@
+docdir                   := @docdir@
+dvidir                   := @dvidir@
+htmldir                  := @htmldir@
+pdfdir                   := @pdfdir@
+psdir                    := @psdir@
+includedir               := @includedir@
+localstatedir            := @localstatedir@
+sysconfdir               := @sysconfdir@
+
+LIBEXEC                  := @LIBEXEC@
+LIBEXEC_BIN              := @LIBEXEC_BIN@
+LIBEXEC_LIB              := @LIBEXEC_LIB@
+LIBEXEC_INC              := @LIBEXEC_INC@
+
+SHAREDIR                 := @SHAREDIR@
+MAN1DIR                  := $(mandir)/man1
+MAN8DIR                  := $(mandir)/man8
+
+XEN_RUN_DIR              := @XEN_RUN_DIR@
+XEN_LOG_DIR              := @XEN_LOG_DIR@
+XEN_LIB_STORED           := @XEN_LIB_STORED@
+
+CONFIG_DIR               := @CONFIG_DIR@
+INITD_DIR                := @INITD_DIR@
+CONFIG_LEAF_DIR          := @CONFIG_LEAF_DIR@
+BASH_COMPLETION_DIR      := $(CONFIG_DIR)/bash_completion.d
+XEN_LOCK_DIR             := @XEN_LOCK_DIR@
+XEN_PAGING_DIR           := @XEN_PAGING_DIR@
+XEN_DUMP_DIR             := @XEN_DUMP_DIR@
+
+XENFIRMWAREDIR           := @XENFIRMWAREDIR@
+
+XEN_CONFIG_DIR           := @XEN_CONFIG_DIR@
+XEN_SCRIPT_DIR           := @XEN_SCRIPT_DIR@
diff --git a/config/Stubdom.mk.in b/config/Stubdom.mk.in
new file mode 100644
index 0000000..43a0850
--- /dev/null
+++ b/config/Stubdom.mk.in
@@ -0,0 +1,39 @@
+-include config/Paths.mk
+
+# Path Programs
+CMAKE               := @CMAKE@
+FETCHER             := @FETCHER@
+
+# A debug build of stubdom? //FIXME: Someone make this do something
+debug               := @debug@
+
+STUBDOM_TARGETS     := @STUBDOM_TARGETS@
+STUBDOM_BUILD       := @STUBDOM_BUILD@
+STUBDOM_INSTALL     := @STUBDOM_INSTALL@
+
+ZLIB_VERSION        := @ZLIB_VERSION@
+ZLIB_URL            := @ZLIB_URL@
+
+LIBPCI_VERSION      := @LIBPCI_VERSION@
+LIBPCI_URL          := @LIBPCI_URL@
+
+NEWLIB_VERSION      := @NEWLIB_VERSION@
+NEWLIB_URL          := @NEWLIB_URL@
+
+LWIP_VERSION        := @LWIP_VERSION@
+LWIP_URL            := @LWIP_URL@
+
+GRUB_VERSION        := @GRUB_VERSION@
+GRUB_URL            := @GRUB_URL@
+
+OCAML_VERSION       := @OCAML_VERSION@
+OCAML_URL           := @OCAML_URL@
+
+GMP_VERSION         := @GMP_VERSION@
+GMP_URL             := @GMP_URL@
+
+POLARSSL_VERSION    := @POLARSSL_VERSION@
+POLARSSL_URL        := @POLARSSL_URL@
+
+TPMEMU_VERSION      := @TPMEMU_VERSION@
+TPMEMU_URL          := @TPMEMU_URL@
diff --git a/configure b/configure
index 5b9c609..a511428 100755
--- a/configure
+++ b/configure
@@ -632,6 +632,23 @@ xenstore
 grub
 caml
 c
+XEN_DUMP_DIR
+XEN_PAGING_DIR
+XEN_LOCK_DIR
+XEN_SCRIPT_DIR
+XEN_CONFIG_DIR
+INITD_DIR
+CONFIG_DIR
+SHAREDIR
+XEN_LIB_STORED
+XEN_LOG_DIR
+XEN_RUN_DIR
+XENFIRMWAREDIR
+LIBEXEC_INC
+LIBEXEC_LIB
+LIBEXEC_BIN
+LIBEXEC
+CONFIG_LEAF_DIR
 host_os
 host_vendor
 host_cpu
@@ -681,6 +698,10 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+with_initddir
+with_sysconfig_leaf_dir
+with_libexec_leaf_dir
+with_xen_dumpdir
 enable_ioemu_stubdom
 enable_c_stubdom
 enable_caml_stubdom
@@ -1338,6 +1359,21 @@ Optional Features:
   --disable-extfiles      Use xen extfiles repository for libraries (default
                           is ENABLED)
 
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-initddir=DIR     Path to directory with sysv runlevel scripts.
+                          [SYSCONFDIR/init.d]
+  --with-sysconfig-leaf-dir=SUBDIR
+                          Name of subdirectory in /etc to store runtime
+                          options for runlevel scripts and daemons such as
+                          xenstored. This should be either "sysconfig" or
+                          "default". [sysconfig]
+  --with-libexec-leaf-dir=SUBDIR
+                          Name of subdirectory in libexecdir to use.
+  --with-xen-dumpdir=DIR  Path to directory for domU crash dumps.
+                          [LOCALSTATEDIR/lib/xen/dump]
+
 Some influential environment variables:
   CMAKE       Path to the cmake program
   CC          C compiler command
@@ -1829,10 +1865,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Stubdom.mk"
+ac_config_files="$ac_config_files config/Stubdom.mk"
+
+ac_config_files="$ac_config_files config/Paths.mk"
+
 
 ac_aux_dir=
-for ac_dir in ../ "$srcdir"/../; do
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   if test -f "$ac_dir/install-sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -1848,7 +1887,7 @@ for ac_dir in ../ "$srcdir"/../; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../ \"$srcdir\"/../" "$LINENO" 5
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -1860,7 +1899,6 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
 ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
-
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
   as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
@@ -1971,6 +2009,146 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 
+
+
+
+test "x$prefix" = "xNONE" && prefix=$ac_default_prefix
+test "x$exec_prefix" = "xNONE" && exec_prefix=${prefix}
+
+if test "$localstatedir" = '${prefix}/var' ; then
+    localstatedir=/var
+fi
+
+bindir=`eval echo $bindir`
+sbindir=`eval echo $sbindir`
+libdir=`eval echo $libdir`
+
+if test "x$sysconfdir" = 'x${prefix}/etc' ; then
+    case "$host_os" in
+         *freebsd*)
+         sysconfdir=$prefix/etc
+         ;;
+         *solaris*)
+         if test "$prefix" = "/usr" ; then
+             sysconfdir=/etc
+         else
+             sysconfdir=$prefix/etc
+         fi
+         ;;
+         *)
+         sysconfdir=/etc
+         ;;
+    esac
+fi
+
+
+# Check whether --with-initddir was given.
+if test "${with_initddir+set}" = set; then :
+  withval=$with_initddir; initddir_path=$withval
+else
+  case "$host_os" in
+         *linux*)
+         if test -d $sysconfdir/rc.d/init.d ; then
+             initddir_path=$sysconfdir/rc.d/init.d
+         else
+             initddir_path=$sysconfdir/init.d
+         fi
+         ;;
+         *)
+         initddir_path=$sysconfdir/rc.d
+         ;;
+     esac
+fi
+
+
+
+# Check whether --with-sysconfig-leaf-dir was given.
+if test "${with_sysconfig_leaf_dir+set}" = set; then :
+  withval=$with_sysconfig_leaf_dir; config_leaf_dir=$withval
+else
+  config_leaf_dir=sysconfig
+    if test ! -d /etc/sysconfig ; then config_leaf_dir=default ; fi
+fi
+
+CONFIG_LEAF_DIR=$config_leaf_dir
+
+
+
+# Check whether --with-libexec-leaf-dir was given.
+if test "${with_libexec_leaf_dir+set}" = set; then :
+  withval=$with_libexec_leaf_dir; libexec_subdir=$withval
+else
+  libexec_subdir=$PACKAGE_TARNAME
+fi
+
+
+
+# Check whether --with-xen-dumpdir was given.
+if test "${with_xen_dumpdir+set}" = set; then :
+  withval=$with_xen_dumpdir; xen_dumpdir_path=$withval
+else
+  xen_dumpdir_path=$localstatedir/lib/xen/dump
+fi
+
+
+if test "$libexecdir" = '${exec_prefix}/libexec' ; then
+    case "$host_os" in
+         *netbsd*) ;;
+         *)
+         libexecdir='${exec_prefix}/lib'
+         ;;
+    esac
+fi
+LIBEXEC=`eval echo $libexecdir/$libexec_subdir`
+
+
+LIBEXEC_BIN=${LIBEXEC}/bin
+
+LIBEXEC_LIB=${LIBEXEC}/lib
+
+LIBEXEC_INC=${LIBEXEC}/include
+
+XENFIRMWAREDIR=${LIBEXEC}/boot
+
+
+XEN_RUN_DIR=$localstatedir/run/xen
+
+
+XEN_LOG_DIR=$localstatedir/log/xen
+
+
+XEN_LIB_STORED=$localstatedir/lib/xenstored
+
+
+SHAREDIR=$prefix/share
+
+
+CONFIG_DIR=$sysconfdir
+
+
+INITD_DIR=$initddir_path
+
+
+XEN_CONFIG_DIR=$CONFIG_DIR/xen
+
+
+XEN_SCRIPT_DIR=$XEN_CONFIG_DIR/scripts
+
+
+case "$host_os" in
+*freebsd*) XEN_LOCK_DIR=$localstatedir/lib ;;
+*netbsd*) XEN_LOCK_DIR=$localstatedir/lib ;;
+*) XEN_LOCK_DIR=$localstatedir/lock ;;
+esac
+
+
+XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
+
+
+XEN_DUMP_DIR=$xen_dumpdir_path
+
+
+
 # Enable/disable stub domains
 
 # Check whether --enable-ioemu-stubdom was given.
@@ -4343,7 +4521,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
-    "../config/Stubdom.mk") CONFIG_FILES="$CONFIG_FILES ../config/Stubdom.mk" ;;
+    "config/Stubdom.mk") CONFIG_FILES="$CONFIG_FILES config/Stubdom.mk" ;;
+    "config/Paths.mk") CONFIG_FILES="$CONFIG_FILES config/Paths.mk" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff --git a/configure.ac b/configure.ac
index 9fec853..2c4ecb2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,20 +2,23 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.67])
-AC_INIT([Xen Hypervisor Stub Domains], m4_esyscmd([../version.sh ../xen/Makefile]),
+AC_INIT([Xen Hypervisor Stub Domains], 4.7,
     [xen-devel@lists.xen.org], [xen], [http://www.xen.org/])
 AC_CONFIG_SRCDIR([xenstore-minios.cfg])
-AC_CONFIG_FILES([../config/Stubdom.mk])
-AC_CONFIG_AUX_DIR([../])
+AC_CONFIG_FILES([config/Stubdom.mk])
+AC_CONFIG_FILES([config/Paths.mk])
 
 AC_CANONICAL_HOST
 
 # M4 Macro includes
-m4_include([../m4/stubdom.m4])
-m4_include([../m4/features.m4])
-m4_include([../m4/path_or_fail.m4])
-m4_include([../m4/depends.m4])
-m4_include([../m4/fetcher.m4])
+m4_include([m4/stubdom.m4])
+m4_include([m4/features.m4])
+m4_include([m4/path_or_fail.m4])
+m4_include([m4/depends.m4])
+m4_include([m4/fetcher.m4])
+m4_include([m4/paths.m4])
+
+AX_XEN_EXPAND_CONFIG()
 
 # Enable/disable stub domains
 AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu])
diff --git a/install.sh b/install.sh
new file mode 100644
index 0000000..3e11c4d
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+src='./install'
+if [ -d ./dist ]; then
+  src='./dist/install'
+fi
+
+if ! [ -d $src ]; then
+  echo "ERROR: Could not find a valid distribution directory."
+  echo "       If this is a source-only release, try 'make dist'."
+  exit 1
+fi
+
+dst='/'
+if [ $# -ne 0 ]; then 
+  dst=$1
+fi
+
+if ! [ -d $dst ]; then
+  echo "ERROR: You must specify a valid install directory."
+  echo "       The specified directory '$dst' is not valid."
+  exit 1
+fi
+
+tmp="`mktemp -d`"
+
+echo "Installing Xen from '$src' to '$dst'..."
+(cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
+
+(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
+rm -rf "$tmp"
+
+echo "All done."
+
+exit 0
diff --git a/m4/depends.m4 b/m4/depends.m4
new file mode 100644
index 0000000..916e665
--- /dev/null
+++ b/m4/depends.m4
@@ -0,0 +1,15 @@
+
+AC_DEFUN([AX_DEPENDS_PATH_PROG], [
+AS_IF([test "x$$1" = "xy"], [AX_PATH_PROG_OR_FAIL([$2], [$3])], [
+AS_IF([test "x$$1" = "xn"], [
+$2="/$3-disabled-in-configure-script"
+], [
+AC_PATH_PROG([$2], [$3], [no])
+AS_IF([test x"${$2}" = "xno"], [
+$1=n
+$2="/$3-disabled-in-configure-script"
+])
+])
+])
+AC_SUBST($2)
+])
diff --git a/m4/features.m4 b/m4/features.m4
new file mode 100644
index 0000000..bd672ab
--- /dev/null
+++ b/m4/features.m4
@@ -0,0 +1,21 @@
+AC_DEFUN([AX_ARG_DEFAULT_ENABLE], [
+AC_ARG_ENABLE([$1], AS_HELP_STRING([--disable-$1], [$2 (default is ENABLED)]))
+AX_PARSE_VALUE([$1], [y])
+])
+
+AC_DEFUN([AX_ARG_DEFAULT_DISABLE], [
+AC_ARG_ENABLE([$1], AS_HELP_STRING([--enable-$1], [$2 (default is DISABLED)]))
+AX_PARSE_VALUE([$1], [n])
+])
+
+dnl This function should not be called outside of this file
+AC_DEFUN([AX_PARSE_VALUE], [
+AS_IF([test "x$enable_$1" = "xno"], [
+    ax_cv_$1="n"
+], [test "x$enable_$1" = "xyes"], [
+    ax_cv_$1="y"
+], [test -z $ax_cv_$1], [
+    ax_cv_$1="$2"
+])
+$1=$ax_cv_$1
+AC_SUBST($1)])
diff --git a/m4/fetcher.m4 b/m4/fetcher.m4
new file mode 100644
index 0000000..86f33b3
--- /dev/null
+++ b/m4/fetcher.m4
@@ -0,0 +1,14 @@
+AC_DEFUN([AX_CHECK_FETCHER], [
+AC_PATH_PROG([WGET],[wget], [no])
+AS_IF([test x"$WGET" != x"no"], [
+    FETCHER="$WGET -c -O"
+], [
+    AC_PATH_PROG([FTP],[ftp], [no])
+    AS_IF([test x"$FTP" != x"no"], [
+        FETCHER="$FTP -o"
+    ], [
+        AC_MSG_ERROR([cannot find wget or ftp])
+    ])
+])
+AC_SUBST(FETCHER)
+])
diff --git a/m4/path_or_fail.m4 b/m4/path_or_fail.m4
new file mode 100644
index 0000000..e256918
--- /dev/null
+++ b/m4/path_or_fail.m4
@@ -0,0 +1,6 @@
+AC_DEFUN([AX_PATH_PROG_OR_FAIL],
+[AC_PATH_PROG([$1], [$2], [no])
+if test x"${$1}" = x"no"
+then
+    AC_MSG_ERROR([Unable to find $2, please install $2])
+fi])
diff --git a/m4/paths.m4 b/m4/paths.m4
new file mode 100644
index 0000000..fa902bb
--- /dev/null
+++ b/m4/paths.m4
@@ -0,0 +1,137 @@
+AC_DEFUN([AX_XEN_EXPAND_CONFIG], [
+dnl expand these early so we can use this for substitutions
+test "x$prefix" = "xNONE" && prefix=$ac_default_prefix
+test "x$exec_prefix" = "xNONE" && exec_prefix=${prefix}
+
+dnl Use /var instead of /usr/local/var because there can be only one
+dnl xenstored active at a time. All tools have to share this dir, even
+dnl if they come from a different --prefix=.
+if test "$localstatedir" = '${prefix}/var' ; then
+    localstatedir=/var
+fi
+
+dnl expand exec_prefix or it will endup in substituted variables
+bindir=`eval echo $bindir`
+sbindir=`eval echo $sbindir`
+libdir=`eval echo $libdir`
+
+dnl
+if test "x$sysconfdir" = 'x${prefix}/etc' ; then
+    case "$host_os" in
+         *freebsd*)
+         sysconfdir=$prefix/etc
+         ;;
+         *solaris*)
+         if test "$prefix" = "/usr" ; then
+             sysconfdir=/etc
+         else
+             sysconfdir=$prefix/etc
+         fi
+         ;;
+         *)
+         sysconfdir=/etc
+         ;;
+    esac
+fi
+
+AC_ARG_WITH([initddir],
+    AS_HELP_STRING([--with-initddir=DIR],
+    [Path to directory with sysv runlevel scripts. [SYSCONFDIR/init.d]]),
+    [initddir_path=$withval],
+    [case "$host_os" in
+         *linux*)
+         if test -d $sysconfdir/rc.d/init.d ; then
+             initddir_path=$sysconfdir/rc.d/init.d
+         else
+             initddir_path=$sysconfdir/init.d
+         fi
+         ;;
+         *)
+         initddir_path=$sysconfdir/rc.d
+         ;;
+     esac])
+
+AC_ARG_WITH([sysconfig-leaf-dir],
+    AS_HELP_STRING([--with-sysconfig-leaf-dir=SUBDIR],
+    [Name of subdirectory in /etc to store runtime options for runlevel
+    scripts and daemons such as xenstored.
+    This should be either "sysconfig" or "default". [sysconfig]]),
+    [config_leaf_dir=$withval],
+    [config_leaf_dir=sysconfig
+    if test ! -d /etc/sysconfig ; then config_leaf_dir=default ; fi])
+CONFIG_LEAF_DIR=$config_leaf_dir
+AC_SUBST(CONFIG_LEAF_DIR)
+
+dnl autoconf docs suggest to use a "package name" subdir. We make it
+dnl configurable for the benefit of those who want e.g. xen-X.Y instead.
+AC_ARG_WITH([libexec-leaf-dir],
+    AS_HELP_STRING([--with-libexec-leaf-dir=SUBDIR],
+    [Name of subdirectory in libexecdir to use.]),
+    [libexec_subdir=$withval],
+    [libexec_subdir=$PACKAGE_TARNAME])
+
+AC_ARG_WITH([xen-dumpdir],
+    AS_HELP_STRING([--with-xen-dumpdir=DIR],
+    [Path to directory for domU crash dumps. [LOCALSTATEDIR/lib/xen/dump]]),
+    [xen_dumpdir_path=$withval],
+    [xen_dumpdir_path=$localstatedir/lib/xen/dump])
+
+if test "$libexecdir" = '${exec_prefix}/libexec' ; then
+    case "$host_os" in
+         *netbsd*) ;;
+         *)
+         libexecdir='${exec_prefix}/lib'
+         ;;
+    esac
+fi
+dnl expand exec_prefix or it will endup in substituted variables
+LIBEXEC=`eval echo $libexecdir/$libexec_subdir`
+AC_SUBST(LIBEXEC)
+
+dnl These variables will be substituted in various .in files
+LIBEXEC_BIN=${LIBEXEC}/bin
+AC_SUBST(LIBEXEC_BIN)
+LIBEXEC_LIB=${LIBEXEC}/lib
+AC_SUBST(LIBEXEC_LIB)
+LIBEXEC_INC=${LIBEXEC}/include
+AC_SUBST(LIBEXEC_INC)
+XENFIRMWAREDIR=${LIBEXEC}/boot
+AC_SUBST(XENFIRMWAREDIR)
+
+XEN_RUN_DIR=$localstatedir/run/xen
+AC_SUBST(XEN_RUN_DIR)
+
+XEN_LOG_DIR=$localstatedir/log/xen
+AC_SUBST(XEN_LOG_DIR)
+
+XEN_LIB_STORED=$localstatedir/lib/xenstored
+AC_SUBST(XEN_LIB_STORED)
+
+SHAREDIR=$prefix/share
+AC_SUBST(SHAREDIR)
+
+CONFIG_DIR=$sysconfdir
+AC_SUBST(CONFIG_DIR)
+
+INITD_DIR=$initddir_path
+AC_SUBST(INITD_DIR)
+
+XEN_CONFIG_DIR=$CONFIG_DIR/xen
+AC_SUBST(XEN_CONFIG_DIR)
+
+XEN_SCRIPT_DIR=$XEN_CONFIG_DIR/scripts
+AC_SUBST(XEN_SCRIPT_DIR)
+
+case "$host_os" in
+*freebsd*) XEN_LOCK_DIR=$localstatedir/lib ;;
+*netbsd*) XEN_LOCK_DIR=$localstatedir/lib ;;
+*) XEN_LOCK_DIR=$localstatedir/lock ;;
+esac
+AC_SUBST(XEN_LOCK_DIR)
+
+XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
+AC_SUBST(XEN_PAGING_DIR)
+
+XEN_DUMP_DIR=$xen_dumpdir_path
+AC_SUBST(XEN_DUMP_DIR)
+])
diff --git a/m4/stubdom.m4 b/m4/stubdom.m4
new file mode 100644
index 0000000..f4b4cef
--- /dev/null
+++ b/m4/stubdom.m4
@@ -0,0 +1,96 @@
+AC_DEFUN([AX_STUBDOM_DEFAULT_ENABLE], [
+AC_ARG_ENABLE([$1],
+AS_HELP_STRING([--disable-$1], [Build and install $1 (default is ENABLED)]),[
+AX_STUBDOM_INTERNAL([$1], [$2])
+],[
+AX_ENABLE_STUBDOM([$1], [$2])
+])
+AC_SUBST([$2])
+])
+
+AC_DEFUN([AX_STUBDOM_DEFAULT_DISABLE], [
+AC_ARG_ENABLE([$1],
+AS_HELP_STRING([--enable-$1], [Build and install $1 (default is DISABLED)]),[
+AX_STUBDOM_INTERNAL([$1], [$2])
+],[
+AX_DISABLE_STUBDOM([$1], [$2])
+])
+AC_SUBST([$2])
+])
+
+AC_DEFUN([AX_STUBDOM_CONDITIONAL], [
+AC_ARG_ENABLE([$1],
+AS_HELP_STRING([--enable-$1], [Build and install $1]),[
+AX_STUBDOM_INTERNAL([$1], [$2])
+])
+])
+
+AC_DEFUN([AX_STUBDOM_CONDITIONAL_FINISH], [
+AS_IF([test "x$$2" = "xy" || test "x$$2" = "x"], [
+AX_ENABLE_STUBDOM([$1],[$2])
+],[
+AX_DISABLE_STUBDOM([$1],[$2])
+])
+AC_SUBST([$2])
+])
+
+AC_DEFUN([AX_STUBDOM_AUTO_DEPENDS], [
+AS_IF([test "x$$1" = "x" && test "x$$2" = "xn"], [
+$1="n"
+])
+])
+
+
+AC_DEFUN([AX_ENABLE_STUBDOM], [
+$2=y
+STUBDOM_TARGETS="$STUBDOM_TARGETS $2"
+STUBDOM_BUILD="$STUBDOM_BUILD $1"
+STUBDOM_INSTALL="$STUBDOM_INSTALL install-$2"
+])
+
+AC_DEFUN([AX_DISABLE_STUBDOM], [
+$2=n
+])
+
+dnl Don't call this outside of this file
+AC_DEFUN([AX_STUBDOM_INTERNAL], [
+AS_IF([test "x$enableval" = "xyes"], [
+AX_ENABLE_STUBDOM([$1], [$2])
+],[
+AS_IF([test "x$enableval" = "xno"],[
+AX_DISABLE_STUBDOM([$1], [$2])
+])
+])
+])
+
+AC_DEFUN([AX_STUBDOM_FINISH], [
+AC_SUBST(STUBDOM_TARGETS)
+AC_SUBST(STUBDOM_BUILD)
+AC_SUBST(STUBDOM_INSTALL)
+echo "Will build the following stub domains:"
+for x in $STUBDOM_BUILD; do
+	echo "  $x"
+done
+])
+
+AC_DEFUN([AX_STUBDOM_LIB], [
+AC_ARG_VAR([$1_URL], [Download url for $2])
+AS_IF([test "x$$1_URL" = "x"], [
+	AS_IF([test "x$extfiles" = "xy"],
+		[$1_URL=\@S|@\@{:@XEN_EXTFILES_URL\@:}@],
+		[$1_URL="$4"])
+	])
+$1_VERSION="$3"
+AC_SUBST($1_URL)
+AC_SUBST($1_VERSION)
+])
+
+AC_DEFUN([AX_STUBDOM_LIB_NOEXT], [
+AC_ARG_VAR([$1_URL], [Download url for $2])
+AS_IF([test "x$$1_URL" = "x"], [
+	$1_URL="$4"
+	])
+$1_VERSION="$3"
+AC_SUBST($1_URL)
+AC_SUBST($1_VERSION)
+])
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 02/14] Makefile: introduce dist target
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 01/14] Import more files " Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 03/14] Add a gitignore Wei Liu
                     ` (11 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Makefile b/Makefile
index c8984d4..cfbaa99 100644
--- a/Makefile
+++ b/Makefile
@@ -642,6 +642,10 @@ downloadclean: patchclean
 distclean: downloadclean
 	rm -rf config.log config.status config.cache autom4te.cache ../config/Stubdom.mk
 
+.PHONY: dist
+dist: DESTDIR=$(DISTDIR)/install
+dist: install
+
 ifeq (,$(findstring clean,$(MAKECMDGOALS)))
 $(XEN_ROOT)/config/Stubdom.mk:
 	$(error You have to run ./configure before building or installing stubdom)
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 4/6] libxl: generate and install stubdompath.sh
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
                     ` (2 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 3/6] libxc: use $XEN_ROOT to reference libelf in xen Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 5/6] Unhook stubdom from build system Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 6/6] Remove stubdom directory Wei Liu
  5 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

It's a script used by libxl to launch stubdom. This is split off from
stubdom build system.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 .gitignore           | 1 +
 tools/libxl/Makefile | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 91f690c..00811e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -170,6 +170,7 @@ tools/libxl/libxlu_cfg_y.output
 tools/libxl/*.pc
 tools/libxl/*.pc.in
 tools/libxl/xl
+tools/libxl/stubdompath.sh
 tools/libxl/testenum
 tools/libxl/testenum.c
 tools/libxl/tmp.*
diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
index 81c3db4..0b540ca 100644
--- a/tools/libxl/Makefile
+++ b/tools/libxl/Makefile
@@ -25,6 +25,11 @@ ifeq ($(CONFIG_REMUS_NETBUF),y)
 LIBXL_LIBS += $(LIBNL3_LIBS)
 endif
 
+# Script used to launch stubdom
+STUBDOMPATH="stubdompath.sh"
+genpath-target = $(call buildmakevars2file,$(STUBDOMPATH))
+$(eval $(genpath-target))
+
 CFLAGS_LIBXL += $(CFLAGS_libxentoollog)
 CFLAGS_LIBXL += $(CFLAGS_libxenevtchn)
 CFLAGS_LIBXL += $(CFLAGS_libxenctrl)
@@ -223,7 +228,7 @@ _libxl_type%.h _libxl_type%_json.h _libxl_type%_private.h _libxl_type%.c: libxl_
 	$(call move-if-changed,__libxl_type$*_json.h,_libxl_type$*_json.h)
 	$(call move-if-changed,__libxl_type$*.c,_libxl_type$*.c)
 
-libxenlight.so: libxenlight.so.$(MAJOR)
+libxenlight.so: libxenlight.so.$(MAJOR) $(STUBDOMPATH)
 	$(SYMLINK_SHLIB) $< $@
 
 libxenlight.so.$(MAJOR): libxenlight.so.$(MAJOR).$(MINOR)
@@ -268,6 +273,7 @@ $(PKG_CONFIG): % : %.in Makefile
 
 .PHONY: install
 install: all
+	$(INSTALL_DATA) $(STUBDOMPATH) $(DESTDIR)$(LIBEXEC_BIN)
 	$(INSTALL_DIR) $(DESTDIR)$(sbindir)
 	$(INSTALL_DIR) $(DESTDIR)$(libdir)
 	$(INSTALL_DIR) $(DESTDIR)$(includedir)
@@ -296,6 +302,7 @@ clean:
 	$(RM) -f testidl.c.new testidl.c *.api-ok
 	$(RM) -f xenlight.pc
 	$(RM) -f xlutil.pc
+	$(RM) -f $(STUBDOMPATH)
 
 distclean: clean
 	$(RM) -f xenlight.pc.in xlutil.pc.in
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 03/14] Add a gitignore
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 01/14] Import more files " Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 02/14] Makefile: introduce dist target Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 04/14] Makefile: require XEN_ROOT and MINI_OS to be defined Wei Liu
                     ` (10 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 .gitignore | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..241601e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,74 @@
+.hg
+*.orig
+*~
+*.swp
+*.o
+*.d
+*.opic
+*.a
+*.so
+*.so.[0-9]*
+*.bin
+*.bak
+*.tmp
+*.spot
+*.spit
+*.gcno
+*.gcda
+*.py[ocd]
+TAGS
+GTAGS
+GRTAGS
+GPATH
+GSYMS
+tags
+cscope.files
+cscope.in.out
+cscope.out
+cscope.po.out
+.config
+
+dist
+*.tar.gz
+
+autom4te.cache/
+config.log
+config.status
+config.cache
+config/Toplevel.mk
+config/Paths.mk
+config/Stubdom.mk
+
+build-*
+dist/*
+install/*
+cross-root-*
+gcc-*
+gmp-*
+grub-*
+include
+ioemu
+ioemu/
+libs-*
+libxc-*
+libxencall-*
+libxenevtchn-*
+libxenforeignmemory-*
+libxengnttab-*
+libxentoollog-*
+lwip-*
+lwip/
+mini-os-*
+mk-headers-*
+newlib-1.*
+newlib-x86*
+ocaml-*
+pciutils-*
+polarssl-*
+stubdompath.sh
+tpm_emulator-*
+vtpm/vtpm_manager.h
+xenstore
+zlib-*
+
+.git
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 5/6] Unhook stubdom from build system
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
                     ` (3 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 4/6] libxl: generate and install stubdompath.sh Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 6/6] Remove stubdom directory Wei Liu
  5 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
I've run autogen.sh and commit configure change as well.
---
 Makefile             | 55 ++----------------------------
 autogen.sh           |  3 --
 config/Stubdom.mk.in | 39 ---------------------
 configure            | 75 ----------------------------------------
 configure.ac         | 18 ----------
 m4/stubdom.m4        | 96 ----------------------------------------------------
 6 files changed, 2 insertions(+), 284 deletions(-)
 delete mode 100644 config/Stubdom.mk.in
 delete mode 100644 m4/stubdom.m4

diff --git a/Makefile b/Makefile
index a8e9523..dc1ecdf 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
 all: dist
 
 -include config/Toplevel.mk
-SUBSYSTEMS?=xen tools stubdom docs
+SUBSYSTEMS?=xen tools docs
 TARGS_DIST=$(patsubst %, dist-%, $(SUBSYSTEMS))
 TARGS_INSTALL=$(patsubst %, install-%, $(SUBSYSTEMS))
 TARGS_BUILD=$(patsubst %, build-%, $(SUBSYSTEMS))
@@ -17,24 +17,6 @@ TARGS_DISTCLEAN=$(patsubst %, distclean-%, $(SUBSYSTEMS))
 export XEN_ROOT=$(CURDIR)
 include Config.mk
 
-.PHONY: mini-os-dir
-mini-os-dir:
-	if [ ! -d $(XEN_ROOT)/extras/mini-os ]; then \
-		GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh \
-			$(MINIOS_UPSTREAM_URL) \
-			$(MINIOS_UPSTREAM_REVISION) \
-			$(XEN_ROOT)/extras/mini-os ; \
-	fi
-
-.PHONY: mini-os-dir-force-update
-mini-os-dir-force-update: mini-os-dir
-	set -ex; \
-	if [ "$(MINIOS_UPSTREAM_REVISION)" ]; then \
-		cd extras/mini-os-remote; \
-		$(GIT) fetch origin; \
-		$(GIT) reset --hard $(MINIOS_UPSTREAM_REVISION); \
-	fi
-
 export XEN_TARGET_ARCH
 export DESTDIR
 
@@ -53,13 +35,6 @@ build-xen:
 build-tools:
 	$(MAKE) -C tools build
 
-.PHONY: build-stubdom
-build-stubdom: mini-os-dir
-	$(MAKE) -C stubdom build
-ifeq (x86_64,$(XEN_TARGET_ARCH))
-	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom pv-grub
-endif
-
 .PHONY: build-docs
 build-docs:
 	$(MAKE) -C docs build
@@ -86,10 +61,9 @@ dist-%: install-%
 	@: # do nothing
 
 # Legacy dist targets
-.PHONY: xen tools stubdom docs
+.PHONY: xen tools docs
 xen: dist-xen
 tools: dist-tools
-stubdom: dist-stubdom
 docs: dist-docs
 
 .PHONY: install-xen
@@ -100,13 +74,6 @@ install-xen:
 install-tools:
 	$(MAKE) -C tools install
 
-.PHONY: install-stubdom
-install-stubdom: install-tools mini-os-dir
-	$(MAKE) -C stubdom install
-ifeq (x86_64,$(XEN_TARGET_ARCH))
-	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub
-endif
-
 .PHONY: tools/firmware/seabios-dir-force-update
 tools/firmware/seabios-dir-force-update:
 	$(MAKE) -C tools/firmware seabios-dir-force-update
@@ -177,13 +144,6 @@ clean-xen:
 clean-tools:
 	$(MAKE) -C tools clean
 
-.PHONY: clean-stubdom
-clean-stubdom:
-	$(MAKE) -C stubdom crossclean
-ifeq (x86_64,$(XEN_TARGET_ARCH))
-	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom crossclean
-endif
-
 .PHONY: clean-docs
 clean-docs:
 	$(MAKE) -C docs clean
@@ -203,14 +163,6 @@ distclean-xen:
 distclean-tools:
 	$(MAKE) -C tools distclean
 
-.PHONY: distclean-stubdom
-distclean-stubdom:
-	$(MAKE) -C stubdom distclean
-ifeq (x86_64,$(XEN_TARGET_ARCH))
-	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom distclean
-endif
-	rm -rf extras/mini-os extras/mini-os-remote
-
 .PHONY: distclean-docs
 distclean-docs:
 	$(MAKE) -C docs distclean
@@ -225,7 +177,6 @@ help:
 	@echo '  install               - build and install everything'
 	@echo '  install-xen           - build and install the Xen hypervisor'
 	@echo '  install-tools         - build and install the control tools'
-	@echo '  install-stubdom       - build and install the stubdomain images'
 	@echo '  install-docs          - build and install user documentation'
 	@echo ''
 	@echo 'Local dist targets:'
@@ -233,14 +184,12 @@ help:
 	@echo '  world                 - clean everything then make dist'
 	@echo '  dist-xen              - build Xen hypervisor and install into local dist'
 	@echo '  dist-tools            - build the tools and install into local dist'
-	@echo '  dist-stubdom          - build the stubdomain images and install into local dist'
 	@echo '  dist-docs             - build user documentation and install into local dist'
 	@echo ''
 	@echo 'Building targets:'
 	@echo '  build                 - build everything'
 	@echo '  build-xen             - build Xen hypervisor'
 	@echo '  build-tools           - build the tools'
-	@echo '  build-stubdom         - build the stubdomain images'
 	@echo '  build-docs            - build user documentation'
 	@echo ''
 	@echo 'Cleaning targets:'
diff --git a/autogen.sh b/autogen.sh
index 2be8360..3684ea6 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -4,9 +4,6 @@ autoconf -f
   autoconf -f
   autoheader
 )
-( cd stubdom
-  autoconf -f
-)
 ( cd docs
   autoconf -f
 )
diff --git a/config/Stubdom.mk.in b/config/Stubdom.mk.in
deleted file mode 100644
index 5990fc4..0000000
--- a/config/Stubdom.mk.in
+++ /dev/null
@@ -1,39 +0,0 @@
--include $(XEN_ROOT)/config/Paths.mk
-
-# Path Programs
-CMAKE               := @CMAKE@
-FETCHER             := @FETCHER@
-
-# A debug build of stubdom? //FIXME: Someone make this do something
-debug               := @debug@
-
-STUBDOM_TARGETS     := @STUBDOM_TARGETS@
-STUBDOM_BUILD       := @STUBDOM_BUILD@
-STUBDOM_INSTALL     := @STUBDOM_INSTALL@
-
-ZLIB_VERSION        := @ZLIB_VERSION@
-ZLIB_URL            := @ZLIB_URL@
-
-LIBPCI_VERSION      := @LIBPCI_VERSION@
-LIBPCI_URL          := @LIBPCI_URL@
-
-NEWLIB_VERSION      := @NEWLIB_VERSION@
-NEWLIB_URL          := @NEWLIB_URL@
-
-LWIP_VERSION        := @LWIP_VERSION@
-LWIP_URL            := @LWIP_URL@
-
-GRUB_VERSION        := @GRUB_VERSION@
-GRUB_URL            := @GRUB_URL@
-
-OCAML_VERSION       := @OCAML_VERSION@
-OCAML_URL           := @OCAML_URL@
-
-GMP_VERSION         := @GMP_VERSION@
-GMP_URL             := @GMP_URL@
-
-POLARSSL_VERSION    := @POLARSSL_VERSION@
-POLARSSL_URL        := @POLARSSL_URL@
-
-TPMEMU_VERSION      := @TPMEMU_VERSION@
-TPMEMU_URL          := @TPMEMU_URL@
diff --git a/configure b/configure
index c200eed..a1628df 100755
--- a/configure
+++ b/configure
@@ -590,7 +590,6 @@ ac_subst_vars='LTLIBOBJS
 LIBOBJS
 SUBSYSTEMS
 docs
-stubdom
 tools
 xen
 subdirs
@@ -666,7 +665,6 @@ with_libexec_leaf_dir
 with_xen_dumpdir
 enable_xen
 enable_tools
-enable_stubdom
 enable_docs
 '
       ac_precious_vars='build_alias
@@ -674,7 +672,6 @@ host_alias
 target_alias'
 ac_subdirs_all='xen
 tools
-stubdom
 docs'
 
 # Initialize some variables set by options.
@@ -1290,7 +1287,6 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --disable-xen           Disable build and install of xen
   --disable-tools         Disable build and install of tools
-  --enable-stubdom        Enable build and install of stubdom
   --disable-docs          Disable build and install of docs
 
 Optional Packages:
@@ -2005,21 +2001,6 @@ XEN_DUMP_DIR=$xen_dumpdir_path
 
 
 
-case "$host_cpu" in
-    i[3456]86|x86_64)
-        arch_enable_stubdom=y
-        ;;
-    *)
-        arch_enable_stubdom=n
-        ;;
-esac
-
-case "$host_os" in
-    freebsd*)
-        arch_enable_stubdom=n
-        ;;
-esac
-
 
 
 
@@ -2115,62 +2096,6 @@ fi
 
 
 
-# Check whether --enable-stubdom was given.
-if test "${enable_stubdom+set}" = set; then :
-  enableval=$enable_stubdom;
-
-if test "x$enableval" = "xyes"; then :
-
-
-stubdom=y
-SUBSYSTEMS="$SUBSYSTEMS stubdom"
-
-
-else
-
-if test "x$enableval" = "xno"; then :
-
-
-stubdom=n
-
-
-fi
-
-fi
-
-
-else
-
-if test "x$arch_enable_stubdom" = "xy"; then :
-
-
-stubdom=y
-SUBSYSTEMS="$SUBSYSTEMS stubdom"
-
-
-else
-
-
-stubdom=n
-
-
-fi
-
-fi
-
-
-if test -e "stubdom/configure"; then :
-
-if test "x$stubdom" = "xy" || test "x$stubdom" = "x" ; then
-    subdirs="$subdirs stubdom"
-
-fi
-
-fi
-
-
-
-
 # Check whether --enable-docs was given.
 if test "${enable_docs+set}" = set; then :
   enableval=$enable_docs;
diff --git a/configure.ac b/configure.ac
index 1843b52..e4c7af4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,26 +18,8 @@ m4_include([m4/paths.m4])
 
 AX_XEN_EXPAND_CONFIG()
 
-dnl mini-os is only ported to certain platforms
-case "$host_cpu" in
-    i[[3456]]86|x86_64)
-        arch_enable_stubdom=y
-        ;;
-    *)
-        arch_enable_stubdom=n
-        ;;
-esac
-
-dnl Stubdomains need some work in order to compile on FreeBSD
-case "$host_os" in
-    freebsd*)
-        arch_enable_stubdom=n
-        ;;
-esac
-
 AX_SUBSYSTEM_DEFAULT_ENABLE([xen])
 AX_SUBSYSTEM_DEFAULT_ENABLE([tools])
-AX_SUBSYSTEM_CONDITIONAL([stubdom], $arch_enable_stubdom)
 AX_SUBSYSTEM_DEFAULT_ENABLE([docs])
 
 AX_SUBSYSTEM_FINISH
diff --git a/m4/stubdom.m4 b/m4/stubdom.m4
deleted file mode 100644
index f4b4cef..0000000
--- a/m4/stubdom.m4
+++ /dev/null
@@ -1,96 +0,0 @@
-AC_DEFUN([AX_STUBDOM_DEFAULT_ENABLE], [
-AC_ARG_ENABLE([$1],
-AS_HELP_STRING([--disable-$1], [Build and install $1 (default is ENABLED)]),[
-AX_STUBDOM_INTERNAL([$1], [$2])
-],[
-AX_ENABLE_STUBDOM([$1], [$2])
-])
-AC_SUBST([$2])
-])
-
-AC_DEFUN([AX_STUBDOM_DEFAULT_DISABLE], [
-AC_ARG_ENABLE([$1],
-AS_HELP_STRING([--enable-$1], [Build and install $1 (default is DISABLED)]),[
-AX_STUBDOM_INTERNAL([$1], [$2])
-],[
-AX_DISABLE_STUBDOM([$1], [$2])
-])
-AC_SUBST([$2])
-])
-
-AC_DEFUN([AX_STUBDOM_CONDITIONAL], [
-AC_ARG_ENABLE([$1],
-AS_HELP_STRING([--enable-$1], [Build and install $1]),[
-AX_STUBDOM_INTERNAL([$1], [$2])
-])
-])
-
-AC_DEFUN([AX_STUBDOM_CONDITIONAL_FINISH], [
-AS_IF([test "x$$2" = "xy" || test "x$$2" = "x"], [
-AX_ENABLE_STUBDOM([$1],[$2])
-],[
-AX_DISABLE_STUBDOM([$1],[$2])
-])
-AC_SUBST([$2])
-])
-
-AC_DEFUN([AX_STUBDOM_AUTO_DEPENDS], [
-AS_IF([test "x$$1" = "x" && test "x$$2" = "xn"], [
-$1="n"
-])
-])
-
-
-AC_DEFUN([AX_ENABLE_STUBDOM], [
-$2=y
-STUBDOM_TARGETS="$STUBDOM_TARGETS $2"
-STUBDOM_BUILD="$STUBDOM_BUILD $1"
-STUBDOM_INSTALL="$STUBDOM_INSTALL install-$2"
-])
-
-AC_DEFUN([AX_DISABLE_STUBDOM], [
-$2=n
-])
-
-dnl Don't call this outside of this file
-AC_DEFUN([AX_STUBDOM_INTERNAL], [
-AS_IF([test "x$enableval" = "xyes"], [
-AX_ENABLE_STUBDOM([$1], [$2])
-],[
-AS_IF([test "x$enableval" = "xno"],[
-AX_DISABLE_STUBDOM([$1], [$2])
-])
-])
-])
-
-AC_DEFUN([AX_STUBDOM_FINISH], [
-AC_SUBST(STUBDOM_TARGETS)
-AC_SUBST(STUBDOM_BUILD)
-AC_SUBST(STUBDOM_INSTALL)
-echo "Will build the following stub domains:"
-for x in $STUBDOM_BUILD; do
-	echo "  $x"
-done
-])
-
-AC_DEFUN([AX_STUBDOM_LIB], [
-AC_ARG_VAR([$1_URL], [Download url for $2])
-AS_IF([test "x$$1_URL" = "x"], [
-	AS_IF([test "x$extfiles" = "xy"],
-		[$1_URL=\@S|@\@{:@XEN_EXTFILES_URL\@:}@],
-		[$1_URL="$4"])
-	])
-$1_VERSION="$3"
-AC_SUBST($1_URL)
-AC_SUBST($1_VERSION)
-])
-
-AC_DEFUN([AX_STUBDOM_LIB_NOEXT], [
-AC_ARG_VAR([$1_URL], [Download url for $2])
-AS_IF([test "x$$1_URL" = "x"], [
-	$1_URL="$4"
-	])
-$1_VERSION="$3"
-AC_SUBST($1_URL)
-AC_SUBST($1_VERSION)
-])
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 04/14] Makefile: require XEN_ROOT and MINI_OS to be defined
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (2 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 03/14] Add a gitignore Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 05/14] Makefile: replace MINI_OS with MINIOS_ROOT Wei Liu
                     ` (9 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index cfbaa99..f3f5c02 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,10 @@
-XEN_ROOT = $(CURDIR)/..
-MINI_OS = $(XEN_ROOT)/extras/mini-os
+ifeq (,$(XEN_ROOT))
+  $(error Please define XEN_ROOT environment variable)
+endif
+
+ifeq (,$(MINI_OS))
+  $(error Please define MINI_OS environment variable)
+endif
 
 export XEN_ROOT
 export XEN_OS=MiniOS
@@ -10,9 +15,6 @@ export stubdom=y
 export debug=y
 
 ifeq (,$(findstring clean,$(MAKECMDGOALS)))
-  ifeq ($(wildcard $(MINI_OS)/Config.mk),)
-    $(error Please run `make mini-os-dir' in top-level directory)
-  endif
   include $(XEN_ROOT)/Config.mk
 endif
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 6/6] Remove stubdom directory
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
                     ` (4 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 5/6] Unhook stubdom from build system Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  5 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>

[...]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 05/14] Makefile: replace MINI_OS with MINIOS_ROOT
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (3 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 04/14] Makefile: require XEN_ROOT and MINI_OS to be defined Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 06/14] pciutils: don't use hard-coded XEN_ROOT Wei Liu
                     ` (8 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

This is more in line with how other repositories are named.

Also export MINI_OS with the same value to be backward compatible.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/Makefile b/Makefile
index f3f5c02..ca37fe2 100644
--- a/Makefile
+++ b/Makefile
@@ -2,10 +2,11 @@ ifeq (,$(XEN_ROOT))
   $(error Please define XEN_ROOT environment variable)
 endif
 
-ifeq (,$(MINI_OS))
-  $(error Please define MINI_OS environment variable)
+ifeq (,$(MINIOS_ROOT))
+  $(error Please define MINIOS_ROOT environment variable)
 endif
 
+export MINI_OS=$(MINIOS_ROOT)
 export XEN_ROOT
 export XEN_OS=MiniOS
 
@@ -48,7 +49,7 @@ $(call cc-options-add,TARGET_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 GCC_INSTALL = $(shell LANG=C gcc -print-search-dirs | sed -n -e 's/install: \(.*\)/\1/p')
 TARGET_CPPFLAGS += -U __linux__ -U __FreeBSD__ -U __sun__
 TARGET_CPPFLAGS += -nostdinc
-TARGET_CPPFLAGS += -isystem $(MINI_OS)/include/posix
+TARGET_CPPFLAGS += -isystem $(MINIOS_ROOT)/include/posix
 TARGET_CPPFLAGS += -isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include
 TARGET_CPPFLAGS += -isystem $(GCC_INSTALL)include
 TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-$(XEN_TARGET_ARCH)/src/include
@@ -140,7 +141,7 @@ $(LIBPCI_STAMPFILE): pciutils-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) $(ZLIB_STAM
 	  chmod u+w lib/config.h && \
 	  echo '#define PCILIB_VERSION "$(LIBPCI_VERSION)"' >> lib/config.h && \
 	  ln -sf ../../libpci.config.mak lib/config.mk && \
-	  $(MAKE) DESTDIR= CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I$(call realpath,$(MINI_OS)/include)" lib/libpci.a && \
+	  $(MAKE) DESTDIR= CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I$(call realpath,$(MINIOS_ROOT)/include)" lib/libpci.a && \
 	  $(INSTALL_DATA) lib/libpci.a $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ && \
 	  $(INSTALL_DIR) $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci && \
 	  $(INSTALL_DATA) lib/config.h lib/header.h lib/pci.h lib/types.h $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci/ \
@@ -202,7 +203,7 @@ POLARSSL_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libpolarssl.a
 cross-polarssl: $(POLARSSL_STAMPFILE)
 $(POLARSSL_STAMPFILE): polarssl-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) lwip-$(XEN_TARGET_ARCH)
 	 ( cd $</library && \
-	   make CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I $(realpath $(MINI_OS)/include)" && \
+	   make CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I $(realpath $(MINIOS_ROOT)/include)" && \
 	   mkdir -p $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include && \
 	   cp -r ../include/* $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include && \
 	   mkdir -p $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib && \
@@ -359,13 +360,13 @@ mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET)
 	  ln -sf $(XEN_ROOT)/tools/xenstore/*.h . && \
 	  ln -sf $(XEN_ROOT)/tools/xenstore/include/*.h include/ && \
 	  ln -sf $(XEN_ROOT)/tools/xenstore/Makefile . )
-	$(MAKE) DESTDIR= -C $(MINI_OS) links
+	$(MAKE) DESTDIR= -C $(MINIOS_ROOT) links
 	touch mk-headers-$(XEN_TARGET_ARCH)
 
 TARGETS_MINIOS=$(addprefix mini-os-$(XEN_TARGET_ARCH)-,$(TARGETS))
 $(TARGETS_MINIOS): mini-os-%:
 	[ -d $@ ] || \
-	for i in $$(cd $(MINI_OS) ; find . -type d) ; do \
+	for i in $$(cd $(MINIOS_ROOT) ; find . -type d) ; do \
                 mkdir -p $@/$$i ; \
 	done
 
@@ -507,31 +508,31 @@ xenstore: $(CROSS_ROOT)
 .PHONY: ioemu-stubdom
 ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
 ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxc ioemu
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.cfg" $(MAKE) DESTDIR= -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
 
 .PHONY: caml-stubdom
 caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc cross-ocaml caml
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/caml/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a"
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/caml/minios.cfg" $(MAKE) DESTDIR= -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a"
 
 .PHONY: c-stubdom
 c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxc c
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
 
 .PHONY: vtpm-stubdom
 vtpm-stubdom: mini-os-$(XEN_TARGET_ARCH)-vtpm vtpm
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpm/minios.cfg" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpm/vtpm.a" APP_LDLIBS="-ltpm -ltpm_crypto -lgmp -lpolarssl"
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpm/minios.cfg" $(MAKE) -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpm/vtpm.a" APP_LDLIBS="-ltpm -ltpm_crypto -lgmp -lpolarssl"
 
 .PHONY: vtpmmgr-stubdom
 vtpmmgr-stubdom: mini-os-$(XEN_TARGET_ARCH)-vtpmmgr vtpmmgr
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpmmgr/minios.cfg" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpmmgr/vtpmmgr.a" APP_LDLIBS="-lm -lpolarssl"
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpmmgr/minios.cfg" $(MAKE) -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpmmgr/vtpmmgr.a" APP_LDLIBS="-lm -lpolarssl"
 
 .PHONY: pv-grub
 pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxc grub
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/grub/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/grub/minios.cfg" $(MAKE) DESTDIR= -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a
 
 .PHONY: xenstore-stubdom
 xenstore-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstore libxc xenstore
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/xenstore-minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/xenstore/xenstored.a
+	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/xenstore-minios.cfg" $(MAKE) DESTDIR= -C $(MINIOS_ROOT) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/xenstore/xenstored.a
 
 #########
 # install
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 06/14] pciutils: don't use hard-coded XEN_ROOT
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (4 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 05/14] Makefile: replace MINI_OS with MINIOS_ROOT Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 07/14] grub: " Wei Liu
                     ` (7 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 pciutils.patch | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/pciutils.patch b/pciutils.patch
index 5ab84d6..46af50a 100644
--- a/pciutils.patch
+++ b/pciutils.patch
@@ -33,12 +33,11 @@ diff -urN pciutils-2.2.9.orig/lib/access.c pciutils-2.2.9/lib/access.c
 +	pm_dump, pm_linux_sysfs, pm_minios;
 --- pciutils-2.2.9.orig/lib/Makefile	2007-10-19 13:41:34.000000000 +0100
 +++ pciutils-2.2.9/lib/Makefile	2008-07-01 12:13:14.400525000 +0100
-@@ -46,6 +46,12 @@
+@@ -46,6 +46,11 @@
  PCILIB=libpciutils.a
  endif
  
 +ifdef PCI_OS_MINIOS
-+XEN_ROOT=$(CURDIR)/../../..
 +include $(XEN_ROOT)/Config.mk
 +OBJS += minios.o
 +endif
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 0/2] mini-os: split stubdom from xen.git
  2016-03-10 16:46 [RFC PATCH v1] Splitting off stubdom to a different tree Wei Liu
  2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
@ 2016-03-10 16:52 ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 1/2] Config.mk: use MINI_OS if specified Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 2/2] Makefile: introduce STUBDOM_ROOT Wei Liu
  2016-03-15  0:20 ` [RFC PATCH v1] Splitting off stubdom to a different tree Samuel Thibault
  2016-03-15 14:22 ` Wei Liu
  4 siblings, 2 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

git://xenbits.xen.org/people/liuw/mini-os.git wip.split-stubdom-v1

Wei Liu (2):
  Config.mk: use MINI_OS if specified
  Makefile: introduce STUBDOM_ROOT

 Config.mk |  4 ++++
 Makefile  | 13 +++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 07/14] grub: don't use hard-coded XEN_ROOT
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (5 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 06/14] pciutils: don't use hard-coded XEN_ROOT Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 08/14] Makefile: export STUBDOM_ROOT Wei Liu
                     ` (6 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 grub/Makefile | 1 -
 1 file changed, 1 deletion(-)

diff --git a/grub/Makefile b/grub/Makefile
index 26dff45..9d91779 100644
--- a/grub/Makefile
+++ b/grub/Makefile
@@ -1,4 +1,3 @@
-XEN_ROOT = $(CURDIR)/../..
 
 include $(XEN_ROOT)/Config.mk
 vpath %.c ../grub-upstream
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 1/2] Config.mk: use MINI_OS if specified
  2016-03-10 16:52 ` [PATCH RFC v1 0/2] mini-os: split stubdom from xen.git Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 2/2] Makefile: introduce STUBDOM_ROOT Wei Liu
  1 sibling, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Config.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Config.mk b/Config.mk
index e5d8ade..788b0cb 100644
--- a/Config.mk
+++ b/Config.mk
@@ -31,6 +31,10 @@ MINI-OS_ROOT=$(XEN_ROOT)/extras/mini-os
 else
 MINI-OS_ROOT=$(TOPLEVEL_DIR)
 endif
+# It is also possible that mini-os is specified directly.
+ifneq ($(MINI_OS),)
+MINI-OS_ROOT=$(MINI_OS)
+endif
 export MINI-OS_ROOT
 
 ifneq ($(XEN_TARGET_ARCH),)
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 08/14] Makefile: export STUBDOM_ROOT
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (6 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 07/14] grub: " Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target Wei Liu
                     ` (5 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Mini-os needs to know where the libraries are when linking. Export a new
environment variable called STBUDOM_ROOT so that mini-os knows the
location of libraries.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
This needs to be used in conjunction with the patch to mini-os.git.
---
 Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Makefile b/Makefile
index ca37fe2..875760c 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@ ifeq (,$(MINIOS_ROOT))
 endif
 
 export MINI_OS=$(MINIOS_ROOT)
+export STUBDOM_ROOT=$(CURDIR)
 export XEN_ROOT
 export XEN_OS=MiniOS
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 2/2] Makefile: introduce STUBDOM_ROOT
  2016-03-10 16:52 ` [PATCH RFC v1 0/2] mini-os: split stubdom from xen.git Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 1/2] Config.mk: use MINI_OS if specified Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  1 sibling, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index cfe015a..db671e8 100644
--- a/Makefile
+++ b/Makefile
@@ -163,14 +163,15 @@ endif
 
 OBJS := $(filter-out $(OBJ_DIR)/lwip%.o $(LWO), $(OBJS))
 
+STUBDOM_ROOT ?= $(XEN_ROOT)/stubdom
 ifeq ($(libc),y)
 ifeq ($(CONFIG_XC),y)
-APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
-APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/evtchn -whole-archive -lxenevtchn -no-whole-archive
-APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/gnttab -whole-archive -lxengnttab -no-whole-archive
-APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call -whole-archive -lxencall -no-whole-archive
-APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory -whole-archive -lxenforeignmemory -no-whole-archive
-APP_LDLIBS += -L$(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH) -whole-archive -lxenguest -lxenctrl -no-whole-archive
+APP_LDLIBS += -L$(STUBDOM_ROOT)/libs-$(MINIOS_TARGET_ARCH)/toollog -whole-archive -lxentoollog -no-whole-archive
+APP_LDLIBS += -L$(STUBDOM_ROOT)/libs-$(MINIOS_TARGET_ARCH)/evtchn -whole-archive -lxenevtchn -no-whole-archive
+APP_LDLIBS += -L$(STUBDOM_ROOT)/libs-$(MINIOS_TARGET_ARCH)/gnttab -whole-archive -lxengnttab -no-whole-archive
+APP_LDLIBS += -L$(STUBDOM_ROOT)/libs-$(MINIOS_TARGET_ARCH)/call -whole-archive -lxencall -no-whole-archive
+APP_LDLIBS += -L$(STUBDOM_ROOT)/libs-$(MINIOS_TARGET_ARCH)/foreignmemory -whole-archive -lxenforeignmemory -no-whole-archive
+APP_LDLIBS += -L$(STUBDOM_ROOT)/libxc-$(MINIOS_TARGET_ARCH) -whole-archive -lxenguest -lxenctrl -no-whole-archive
 endif
 APP_LDLIBS += -lpci
 APP_LDLIBS += -lz
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (7 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 08/14] Makefile: export STUBDOM_ROOT Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-31 10:21     ` Xu, Quan
  2016-03-10 16:52   ` [PATCH RFC v1 10/14] Makefile: require QEMU_ROOT to be defined Wei Liu
                     ` (4 subsequent siblings)
  13 siblings, 1 reply; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

It is used to generate a script used by toolstack to launch stubdom. It
relies paths generated when building Xen, so it should be part of
xen.git.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/Makefile b/Makefile
index 875760c..19b80a0 100644
--- a/Makefile
+++ b/Makefile
@@ -62,16 +62,10 @@ TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
 
 TARGETS=$(STUBDOM_TARGETS)
 
-STUBDOMPATH="stubdompath.sh"
-genpath-target = $(call buildmakevars2file,$(STUBDOMPATH))
-$(eval $(genpath-target))
-
 .PHONY: all
 all: build
 ifeq ($(STUBDOM_SUPPORTED),1)
-build: $(STUBDOMPATH) $(STUBDOM_BUILD)
-else
-build: $(STUBDOMPATH)
+build: $(STUBDOM_BUILD)
 endif
 
 ##############
@@ -540,15 +534,12 @@ xenstore-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstore libxc xenstore
 #########
 
 ifeq ($(STUBDOM_SUPPORTED),1)
-install: $(STUBDOMPATH) $(STUBDOM_INSTALL)
-else
-install: $(STUBDOMPATH)
+install: $(STUBDOM_INSTALL)
 endif
 
 install-ioemu: ioemu-stubdom
 	$(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)"
 	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)"
 	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
 	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
 
@@ -591,7 +582,6 @@ clean:
 	$(MAKE) -C vtpm clean
 	$(MAKE) -C vtpmmgr clean
 	rm -fr grub-$(XEN_TARGET_ARCH)
-	rm -f $(STUBDOMPATH)
 	[ ! -e libs-$(XEN_TARGET_ARCH)/toollog/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/toollog clean
 	[ ! -e libs-$(XEN_TARGET_ARCH)/evtchn/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/evtchn clean
 	[ ! -e libs-$(XEN_TARGET_ARCH)/gnttab/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/gnttab clean
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 10/14] Makefile: require QEMU_ROOT to be defined
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (8 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 11/14] Makefile: always include Config.mk from xen source tree Wei Liu
                     ` (3 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Don't tread into xen.git and clone one there.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 27 +++++----------------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/Makefile b/Makefile
index 19b80a0..ff15d16 100644
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,10 @@ ifeq (,$(MINIOS_ROOT))
   $(error Please define MINIOS_ROOT environment variable)
 endif
 
+ifeq (,$(QEMU_ROOT))
+  $(error Please define QEMU_ROOT environment variable)
+endif
+
 export MINI_OS=$(MINIOS_ROOT)
 export STUBDOM_ROOT=$(CURDIR)
 export XEN_ROOT
@@ -272,36 +276,15 @@ $(OCAML_STAMPFILE): ocaml-$(XEN_TARGET_ARCH)/.dirstamp
 .PHONY: $(CROSS_ROOT)
 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
 
-QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
+export QEMU_ROOT
 
 ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),)
 IOEMU_LINKFARM_TARGET := ioemu/linkfarm.stamp
 endif
 
-ifeq ($(QEMU_ROOT),.)
-$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
-	$(MAKE) DESTDIR= -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
-
-ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
-	mkdir -p ioemu
-	set -e;									\
-	$(buildmakevars2shellvars);						\
-	cd ioemu;								\
-	src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src;		\
-	(cd $$src && find * -type d -print) | xargs mkdir -p;			\
-	(cd $$src && find *	! -type l  -type f  $(addprefix ! -name ,	\
-			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
-			'*.html' '*.pod'					\
-			)) |							\
-	    while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
-	touch ioemu/linkfarm.stamp
-else
-export QEMU_ROOT
-
 ioemu/linkfarm.stamp:
 	mkdir -p ioemu
 	touch ioemu/linkfarm.stamp
-endif
 
 mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET)
 	$(MAKE) -C $(XEN_ROOT)/tools/include
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 11/14] Makefile: always include Config.mk from xen source tree
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (9 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 10/14] Makefile: require QEMU_ROOT to be defined Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 12/14] Makefile: delete ioemu directory in clean target Wei Liu
                     ` (2 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

It contains various definitions needed in make clean.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index ff15d16..84c5023 100644
--- a/Makefile
+++ b/Makefile
@@ -20,9 +20,7 @@ export DISTDIR=$(STUBDOM_ROOT)/dist
 export stubdom=y
 export debug=y
 
-ifeq (,$(findstring clean,$(MAKECMDGOALS)))
-  include $(XEN_ROOT)/Config.mk
-endif
+include $(XEN_ROOT)/Config.mk
 
 -include config/Stubdom.mk
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 12/14] Makefile: delete ioemu directory in clean target
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (10 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 11/14] Makefile: always include Config.mk from xen source tree Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 13/14] Makefile: fix removing *.mk Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 14/14] Add README file Wei Liu
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

After we mandate an external QEMU tree there will only be object files
in ioemu directory. Just delete the whole directory in make clean.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 84c5023..004d096 100644
--- a/Makefile
+++ b/Makefile
@@ -569,7 +569,7 @@ clean:
 	[ ! -e libs-$(XEN_TARGET_ARCH)/call/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/call clean
 	[ ! -e libs-$(XEN_TARGET_ARCH)/foreignmemory/Makefile ] || $(MAKE) DESTDIR= -C libs-$(XEN_TARGET_ARCH)/foreignmemory clean
 	[ ! -e libxc-$(XEN_TARGET_ARCH)/Makefile ] || $(MAKE) DESTDIR= -C libxc-$(XEN_TARGET_ARCH) clean
-	-[ ! -d ioemu ] || $(MAKE) DESTDIR= -C ioemu clean
+	rm -rf ioemu
 	-[ ! -d xenstore ] || $(MAKE) DESTDIR= -C xenstore clean
 
 # clean the cross-compilation result
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 13/14] Makefile: fix removing *.mk
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (11 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 12/14] Makefile: delete ioemu directory in clean target Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 16:52   ` [PATCH RFC v1 14/14] Add README file Wei Liu
  13 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Now we have at least two mk files generated, fix the path and use glob.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 004d096..9de7db5 100644
--- a/Makefile
+++ b/Makefile
@@ -615,7 +615,7 @@ downloadclean: patchclean
 
 .PHONY: distclean
 distclean: downloadclean
-	rm -rf config.log config.status config.cache autom4te.cache ../config/Stubdom.mk
+	rm -rf config.log config.status config.cache autom4te.cache config/*.mk
 
 .PHONY: dist
 dist: DESTDIR=$(DISTDIR)/install
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [PATCH RFC v1 14/14] Add README file
  2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
                     ` (12 preceding siblings ...)
  2016-03-10 16:52   ` [PATCH RFC v1 13/14] Makefile: fix removing *.mk Wei Liu
@ 2016-03-10 16:52   ` Wei Liu
  2016-03-10 18:33     ` Wei Liu
  13 siblings, 1 reply; 40+ messages in thread
From: Wei Liu @ 2016-03-10 16:52 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
Not sure what I should put in here other than building.

And we also need COPYING file.
---
 README | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 README

diff --git a/README b/README
new file mode 100644
index 0000000..76def8b
--- /dev/null
+++ b/README
@@ -0,0 +1,16 @@
+How to build
+------------
+
+Please first clone xen.git, mini-os.git and qemu-xen-traditional.git
+to suitable locations.
+
+Then
+
+export XEN_ROOT=/path/to/xen.git
+export MINIOS_ROOT=/path/to/mini-os.git
+export QEMU_TRAD_ROOT=/path/to/qemu-xen-traditional.git
+./configure
+make dist
+
+You should find all generated files under dist/ directory.
+
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 14/14] Add README file
  2016-03-10 16:52   ` [PATCH RFC v1 14/14] Add README file Wei Liu
@ 2016-03-10 18:33     ` Wei Liu
  0 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-10 18:33 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu

On Thu, Mar 10, 2016 at 04:52:35PM +0000, Wei Liu wrote:
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
> Not sure what I should put in here other than building.
> 
> And we also need COPYING file.
> ---
>  README | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>  create mode 100644 README
> 
> diff --git a/README b/README
> new file mode 100644
> index 0000000..76def8b
> --- /dev/null
> +++ b/README
> @@ -0,0 +1,16 @@
> +How to build
> +------------
> +
> +Please first clone xen.git, mini-os.git and qemu-xen-traditional.git
> +to suitable locations.
> +
> +Then
> +
> +export XEN_ROOT=/path/to/xen.git
> +export MINIOS_ROOT=/path/to/mini-os.git
> +export QEMU_TRAD_ROOT=/path/to/qemu-xen-traditional.git
> +./configure
> +make dist
> +
> +You should find all generated files under dist/ directory.
> +

I realise I should add more information on how to build 32 bit and 64
bit stubdom here. I will update it in next iteration.

Wei.

> -- 
> 2.1.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [RFC PATCH v1] Splitting off stubdom to a different tree
  2016-03-10 16:46 [RFC PATCH v1] Splitting off stubdom to a different tree Wei Liu
                   ` (2 preceding siblings ...)
  2016-03-10 16:52 ` [PATCH RFC v1 0/2] mini-os: split stubdom from xen.git Wei Liu
@ 2016-03-15  0:20 ` Samuel Thibault
  2016-03-15 12:30   ` Wei Liu
  2016-03-15 14:22 ` Wei Liu
  4 siblings, 1 reply; 40+ messages in thread
From: Samuel Thibault @ 2016-03-15  0:20 UTC (permalink / raw)
  To: Wei Liu
  Cc: Stefano Stabellini, Andrew Cooper, Ian Jackson, quan.xu,
	Xen-devel, Daniel De Graaf, Doug Goldstein

Hello,

Wei Liu, on Thu 10 Mar 2016 16:46:39 +0000, wrote:
> 1. There are some open questions -- see individual commits.

Not sure I have seen them all, but here are some bits of answers:

- Not sure what the version number of stubdom.git should be.

Indeed. I don't really have an opinion on this, I'd let Xen maintainer
choose.

- (README file in stubdom.git) Not sure what I should put in here other
than building.

stubdom/ used to have a README file, which is now in
docs/misc/stubdom.txt, which should probably be moved to stubdom.git.

Samuel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [RFC PATCH v1] Splitting off stubdom to a different tree
  2016-03-15  0:20 ` [RFC PATCH v1] Splitting off stubdom to a different tree Samuel Thibault
@ 2016-03-15 12:30   ` Wei Liu
  0 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-15 12:30 UTC (permalink / raw)
  To: Samuel Thibault, Wei Liu, Xen-devel, Stefano Stabellini,
	Ian Jackson, Andrew Cooper, Doug Goldstein, Daniel De Graaf,
	quan.xu

On Tue, Mar 15, 2016 at 01:20:37AM +0100, Samuel Thibault wrote:
> Hello,
> 
> Wei Liu, on Thu 10 Mar 2016 16:46:39 +0000, wrote:
> > 1. There are some open questions -- see individual commits.
> 
> Not sure I have seen them all, but here are some bits of answers:
> 
> - Not sure what the version number of stubdom.git should be.
> 
> Indeed. I don't really have an opinion on this, I'd let Xen maintainer
> choose.
> 

I think we can go with the Xen version number. Stubdom is tightly
coupled with Xen at the moment.

> - (README file in stubdom.git) Not sure what I should put in here other
> than building.
> 
> stubdom/ used to have a README file, which is now in
> docs/misc/stubdom.txt, which should probably be moved to stubdom.git.
> 

Thanks. I will move it there, too.

Wei.

> Samuel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [RFC PATCH v1] Splitting off stubdom to a different tree
  2016-03-10 16:46 [RFC PATCH v1] Splitting off stubdom to a different tree Wei Liu
                   ` (3 preceding siblings ...)
  2016-03-15  0:20 ` [RFC PATCH v1] Splitting off stubdom to a different tree Samuel Thibault
@ 2016-03-15 14:22 ` Wei Liu
  2016-03-15 18:26   ` Wei Liu
  4 siblings, 1 reply; 40+ messages in thread
From: Wei Liu @ 2016-03-15 14:22 UTC (permalink / raw)
  To: Xen-devel
  Cc: Wei Liu, Stefano Stabellini, Andrew Cooper, Ian Jackson, quan.xu,
	Samuel Thibault, Daniel De Graaf, Doug Goldstein

So if nobody objects to this move I will try to clean this series up and
teach OSSTest to use the new tree.

Hopefully I will get everything in shape and this series can be merged
once next development window opens.

Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [RFC PATCH v1] Splitting off stubdom to a different tree
  2016-03-15 14:22 ` Wei Liu
@ 2016-03-15 18:26   ` Wei Liu
  0 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-03-15 18:26 UTC (permalink / raw)
  To: Xen-devel
  Cc: Wei Liu, Stefano Stabellini, Andrew Cooper, Ian Jackson, quan.xu,
	Samuel Thibault, Daniel De Graaf, Doug Goldstein

On Tue, Mar 15, 2016 at 02:22:34PM +0000, Wei Liu wrote:
> So if nobody objects to this move I will try to clean this series up and
> teach OSSTest to use the new tree.
> 

Surprisingly this version works almost out-of-box for me. I've added
more documents to construct various v2 branches.

In the meantime, I will move on to write some osstest patches.

Wei.

> Hopefully I will get everything in shape and this series can be merged
> once next development window opens.
> 
> Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-03-10 16:52   ` [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target Wei Liu
@ 2016-03-31 10:21     ` Xu, Quan
  2016-03-31 13:49       ` Wei Liu
  0 siblings, 1 reply; 40+ messages in thread
From: Xu, Quan @ 2016-03-31 10:21 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel, Daniel De Graaf

On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> -build: $(STUBDOMPATH)
> +build: $(STUBDOM_BUILD)

Wei,
in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code style is inconsistent and ugly.
Do you have any plan to fix them? :)

btw, if the others(or me) want to fix the code style, how to fix it? send out a big patch? Any suggestions?
Thanks.:)


Quan



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-03-31 10:21     ` Xu, Quan
@ 2016-03-31 13:49       ` Wei Liu
  2016-04-01  1:41         ` Xu, Quan
  0 siblings, 1 reply; 40+ messages in thread
From: Wei Liu @ 2016-03-31 13:49 UTC (permalink / raw)
  To: Xu, Quan; +Cc: Xen-devel, Daniel De Graaf, Wei Liu

On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > -build: $(STUBDOMPATH)
> > +build: $(STUBDOM_BUILD)
> 
> Wei,
> in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code style is inconsistent and ugly.
> Do you have any plan to fix them? :)
> 

No, I don't.

> btw, if the others(or me) want to fix the code style, how to fix it? send out a big patch? Any suggestions?
> Thanks.:)
> 

I personally prefer small patches in a series, but I don't object to
having large patch(es) either. At the end of the day, I think Daniel's
opinion matters most. After a plan is agreed upon, you can then provide
a branch for us to pull in. Note that upstream don't test vtpm in any
fashion so you do need to run your tests.

The only thing that matters to me is that when you will do it -- you
will need to patch a different tree after I split off stubdom. In order
to minimise the fuss one of us will need to wait for the other.

Wei.

> 
> Quan
> 
> 
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-03-31 13:49       ` Wei Liu
@ 2016-04-01  1:41         ` Xu, Quan
  2016-04-01 10:03           ` Wei Liu
  0 siblings, 1 reply; 40+ messages in thread
From: Xu, Quan @ 2016-04-01  1:41 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel, Daniel De Graaf

On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > -build: $(STUBDOMPATH)
> > > +build: $(STUBDOM_BUILD)
> >
> > Wei,
> > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code style is
> > inconsistent and ugly.
> I personally prefer small patches in a series, but I don't object to having large
> patch(es) either. 

ok. I think so too. It may be one file per patch.


> At the end of the day, I think Daniel's opinion matters most.
> After a plan is agreed upon, you can then provide a branch for us to pull in.

I think I am not authorized to branch, could you provide a branch and tell me how to commit to that branch?
Sorry, I am unfamiliar with the upstream process.

> Note
> that upstream don't test vtpm in any fashion so you do need to run your tests.
> 
I will test it. I think I hope Daniel could help my patches. 
btw, I have made a quick patch to fix the seal/unseal issue. I will send out later.

> The only thing that matters to me is that when you will do it -- you will need to
> patch a different tree after I split off stubdom. In order to minimise the fuss one
> of us will need to wait for the other.
> 
Once you have done, please let me know. 
Quan
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-04-01  1:41         ` Xu, Quan
@ 2016-04-01 10:03           ` Wei Liu
  2016-04-06  9:09             ` Xu, Quan
                               ` (2 more replies)
  0 siblings, 3 replies; 40+ messages in thread
From: Wei Liu @ 2016-04-01 10:03 UTC (permalink / raw)
  To: Xu, Quan; +Cc: Xen-devel, Daniel De Graaf, Wei Liu

On Fri, Apr 01, 2016 at 01:41:40AM +0000, Xu, Quan wrote:
> On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> > On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > -build: $(STUBDOMPATH)
> > > > +build: $(STUBDOM_BUILD)
> > >
> > > Wei,
> > > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code style is
> > > inconsistent and ugly.
> > I personally prefer small patches in a series, but I don't object to having large
> > patch(es) either. 
> 
> ok. I think so too. It may be one file per patch.
> 
> 
> > At the end of the day, I think Daniel's opinion matters most.
> > After a plan is agreed upon, you can then provide a branch for us to pull in.
> 
> I think I am not authorized to branch, could you provide a branch and tell me how to commit to that branch?
> Sorry, I am unfamiliar with the upstream process.
> 

Oh, you don't need to branch on the main tree (xen.git or future
stubdom.git). You can just do the following:

  $ git clone xen.git # or stubdom.git
  $ cd xen.git # or stubdom.git
  $ git branch wip.vtpm-coding-style-fix-v1
  ... do work, commit as you go alone ...
  $ git push $some_public_remote wip.vtpm-coding-style-fix-v1
  ... post your patch series on xen-devel, along with the git repository
  and branch

When your patches are all acked by Daniel, you can then fold
all the tags into your own branch (wip.vtpm-coding-style-fix-v$X-acked)
and prod committers to pull from that branch.

> > Note
> > that upstream don't test vtpm in any fashion so you do need to run your tests.
> > 
> I will test it. I think I hope Daniel could help my patches. 
> btw, I have made a quick patch to fix the seal/unseal issue. I will send out later.
> 
> > The only thing that matters to me is that when you will do it -- you will need to
> > patch a different tree after I split off stubdom. In order to minimise the fuss one
> > of us will need to wait for the other.
> > 
> Once you have done, please let me know. 

OK, I will try to sort it out within April.  Feel free to ping me if I
drop the ball.

Wei.

> Quan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-04-01 10:03           ` Wei Liu
@ 2016-04-06  9:09             ` Xu, Quan
  2016-04-06  9:39               ` Wei Liu
  2016-04-25 14:27             ` Wei Liu
  2016-07-05 13:53             ` Xu, Quan
  2 siblings, 1 reply; 40+ messages in thread
From: Xu, Quan @ 2016-04-06  9:09 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel, Daniel De Graaf



> -----Original Message-----
> From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of Wei
> Liu
> Sent: Friday, April 01, 2016 6:03 PM
> To: Xu, Quan
> Cc: Xen-devel; Daniel De Graaf; Wei Liu
> Subject: Re: [Xen-devel] [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH
> target
> 
> On Fri, Apr 01, 2016 at 01:41:40AM +0000, Xu, Quan wrote:
> > On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> > > On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > > > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > > -build: $(STUBDOMPATH)
> > > > > +build: $(STUBDOM_BUILD)
> > > >
> > > > Wei,
> > > > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code
> > > > style is inconsistent and ugly.
> > > I personally prefer small patches in a series, but I don't object to
> > > having large
> > > patch(es) either.
> >
> > ok. I think so too. It may be one file per patch.
> >
> >
> > > At the end of the day, I think Daniel's opinion matters most.
> > > After a plan is agreed upon, you can then provide a branch for us to pull in.
> >
> > I think I am not authorized to branch, could you provide a branch and tell me
> how to commit to that branch?
> > Sorry, I am unfamiliar with the upstream process.
> >
> 
> Oh, you don't need to branch on the main tree (xen.git or future stubdom.git).
> You can just do the following:
> 
>   $ git clone xen.git # or stubdom.git
>   $ cd xen.git # or stubdom.git
>   $ git branch wip.vtpm-coding-style-fix-v1
>   ... do work, commit as you go alone ...
>   $ git push $some_public_remote wip.vtpm-coding-style-fix-v1
>   ... post your patch series on xen-devel, along with the git repository
>   and branch
> 

Wei,
When I tried to follow above steps, I got:
 error: Cannot access URL http://xenbits.xen.org/git-http/xen.git/, return code 22
 fatal: git-http-push failed
could you help me?


Quan





> When your patches are all acked by Daniel, you can then fold all the tags into
> your own branch (wip.vtpm-coding-style-fix-v$X-acked)
> and prod committers to pull from that branch.
> 
> > > Note
> > > that upstream don't test vtpm in any fashion so you do need to run your
> tests.
> > >
> > I will test it. I think I hope Daniel could help my patches.
> > btw, I have made a quick patch to fix the seal/unseal issue. I will send out
> later.
> >
> > > The only thing that matters to me is that when you will do it -- you
> > > will need to patch a different tree after I split off stubdom. In
> > > order to minimise the fuss one of us will need to wait for the other.
> > >
> > Once you have done, please let me know.
> 
> OK, I will try to sort it out within April.  Feel free to ping me if I drop the ball.
> 
> Wei.
> 
> > Quan
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-04-06  9:09             ` Xu, Quan
@ 2016-04-06  9:39               ` Wei Liu
  0 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-04-06  9:39 UTC (permalink / raw)
  To: Xu, Quan; +Cc: Xen-devel, Daniel De Graaf, Wei Liu

On Wed, Apr 06, 2016 at 09:09:22AM +0000, Xu, Quan wrote:
> 
> 
> > -----Original Message-----
> > From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of Wei
> > Liu
> > Sent: Friday, April 01, 2016 6:03 PM
> > To: Xu, Quan
> > Cc: Xen-devel; Daniel De Graaf; Wei Liu
> > Subject: Re: [Xen-devel] [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH
> > target
> > 
> > On Fri, Apr 01, 2016 at 01:41:40AM +0000, Xu, Quan wrote:
> > > On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > > > > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > > > -build: $(STUBDOMPATH)
> > > > > > +build: $(STUBDOM_BUILD)
> > > > >
> > > > > Wei,
> > > > > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code
> > > > > style is inconsistent and ugly.
> > > > I personally prefer small patches in a series, but I don't object to
> > > > having large
> > > > patch(es) either.
> > >
> > > ok. I think so too. It may be one file per patch.
> > >
> > >
> > > > At the end of the day, I think Daniel's opinion matters most.
> > > > After a plan is agreed upon, you can then provide a branch for us to pull in.
> > >
> > > I think I am not authorized to branch, could you provide a branch and tell me
> > how to commit to that branch?
> > > Sorry, I am unfamiliar with the upstream process.
> > >
> > 
> > Oh, you don't need to branch on the main tree (xen.git or future stubdom.git).
> > You can just do the following:
> > 
> >   $ git clone xen.git # or stubdom.git
> >   $ cd xen.git # or stubdom.git
> >   $ git branch wip.vtpm-coding-style-fix-v1
> >   ... do work, commit as you go alone ...
> >   $ git push $some_public_remote wip.vtpm-coding-style-fix-v1
> >   ... post your patch series on xen-devel, along with the git repository
> >   and branch
> > 
> 
> Wei,
> When I tried to follow above steps, I got:
>  error: Cannot access URL http://xenbits.xen.org/git-http/xen.git/, return code 22
>  fatal: git-http-push failed
> could you help me?
> 
> 

You shouldn't push to the official xen.git. You can push to other public
git repository hosting service like bitbucket or github.

Wei.

> Quan
> 
> 
> 
> 
> 
> > When your patches are all acked by Daniel, you can then fold all the tags into
> > your own branch (wip.vtpm-coding-style-fix-v$X-acked)
> > and prod committers to pull from that branch.
> > 
> > > > Note
> > > > that upstream don't test vtpm in any fashion so you do need to run your
> > tests.
> > > >
> > > I will test it. I think I hope Daniel could help my patches.
> > > btw, I have made a quick patch to fix the seal/unseal issue. I will send out
> > later.
> > >
> > > > The only thing that matters to me is that when you will do it -- you
> > > > will need to patch a different tree after I split off stubdom. In
> > > > order to minimise the fuss one of us will need to wait for the other.
> > > >
> > > Once you have done, please let me know.
> > 
> > OK, I will try to sort it out within April.  Feel free to ping me if I drop the ball.
> > 
> > Wei.
> > 
> > > Quan
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xen.org
> > http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-04-01 10:03           ` Wei Liu
  2016-04-06  9:09             ` Xu, Quan
@ 2016-04-25 14:27             ` Wei Liu
  2016-07-05 13:53             ` Xu, Quan
  2 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-04-25 14:27 UTC (permalink / raw)
  To: Xu, Quan; +Cc: Xen-devel, Daniel De Graaf, Wei Liu

On Fri, Apr 01, 2016 at 11:03:28AM +0100, Wei Liu wrote:
> On Fri, Apr 01, 2016 at 01:41:40AM +0000, Xu, Quan wrote:
> > On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> > > On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > > > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > > -build: $(STUBDOMPATH)
> > > > > +build: $(STUBDOM_BUILD)
> > > >
> > > > Wei,
> > > > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code style is
> > > > inconsistent and ugly.
> > > I personally prefer small patches in a series, but I don't object to having large
> > > patch(es) either. 
> > 
> > ok. I think so too. It may be one file per patch.
> > 
> > 
> > > At the end of the day, I think Daniel's opinion matters most.
> > > After a plan is agreed upon, you can then provide a branch for us to pull in.
> > 
> > I think I am not authorized to branch, could you provide a branch and tell me how to commit to that branch?
> > Sorry, I am unfamiliar with the upstream process.
> > 
> 
> Oh, you don't need to branch on the main tree (xen.git or future
> stubdom.git). You can just do the following:
> 
>   $ git clone xen.git # or stubdom.git
>   $ cd xen.git # or stubdom.git
>   $ git branch wip.vtpm-coding-style-fix-v1
>   ... do work, commit as you go alone ...
>   $ git push $some_public_remote wip.vtpm-coding-style-fix-v1
>   ... post your patch series on xen-devel, along with the git repository
>   and branch
> 
> When your patches are all acked by Daniel, you can then fold
> all the tags into your own branch (wip.vtpm-coding-style-fix-v$X-acked)
> and prod committers to pull from that branch.
> 
> > > Note
> > > that upstream don't test vtpm in any fashion so you do need to run your tests.
> > > 
> > I will test it. I think I hope Daniel could help my patches. 
> > btw, I have made a quick patch to fix the seal/unseal issue. I will send out later.
> > 
> > > The only thing that matters to me is that when you will do it -- you will need to
> > > patch a different tree after I split off stubdom. In order to minimise the fuss one
> > > of us will need to wait for the other.
> > > 
> > Once you have done, please let me know. 
> 
> OK, I will try to sort it out within April.  Feel free to ping me if I
> drop the ball.
> 

OK, so the plan has become a bit more complicated. I'm still trying to work
out everything -- I've collected some opinions during hackathon and
people seemed to be of the opinion that things can be done a bit
differently. I don't expect to have everything ready in April. So if you
want to work on vtpm code, please let me know.

Wei.

> Wei.
> 
> > Quan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-04-01 10:03           ` Wei Liu
  2016-04-06  9:09             ` Xu, Quan
  2016-04-25 14:27             ` Wei Liu
@ 2016-07-05 13:53             ` Xu, Quan
  2016-07-05 13:57               ` Wei Liu
  2 siblings, 1 reply; 40+ messages in thread
From: Xu, Quan @ 2016-07-05 13:53 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel, Daniel De Graaf

Wei,
I have spent a lot of days to clean up the code of vtpm / vtpmmgr. but there are tricky issue to boot domu on TPM2.0..
So I am afraid I can't finish it as today is my last working day at intel.

Now, these patch are on https://github.com/virt2x/vtpm2vtpmmgr 
Sorry for that.
Quan

On April 01, 2016 6:03 PM, Wei Liu <wei.liu2@citrix.com> wrote:
> On Fri, Apr 01, 2016 at 01:41:40AM +0000, Xu, Quan wrote:
> > On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> > > On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > > > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > > -build: $(STUBDOMPATH)
> > > > > +build: $(STUBDOM_BUILD)
> > > >
> > > > Wei,
> > > > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code
> > > > style is inconsistent and ugly.
> > > I personally prefer small patches in a series, but I don't object to
> > > having large
> > > patch(es) either.
> >
> > ok. I think so too. It may be one file per patch.
> >
> >
> > > At the end of the day, I think Daniel's opinion matters most.
> > > After a plan is agreed upon, you can then provide a branch for us to pull in.
> >
> > I think I am not authorized to branch, could you provide a branch and tell me
> how to commit to that branch?
> > Sorry, I am unfamiliar with the upstream process.
> >
> 
> Oh, you don't need to branch on the main tree (xen.git or future stubdom.git).
> You can just do the following:
> 
>   $ git clone xen.git # or stubdom.git
>   $ cd xen.git # or stubdom.git
>   $ git branch wip.vtpm-coding-style-fix-v1
>   ... do work, commit as you go alone ...
>   $ git push $some_public_remote wip.vtpm-coding-style-fix-v1
>   ... post your patch series on xen-devel, along with the git repository
>   and branch
> 
> When your patches are all acked by Daniel, you can then fold all the tags into
> your own branch (wip.vtpm-coding-style-fix-v$X-acked)
> and prod committers to pull from that branch.
> 
> > > Note
> > > that upstream don't test vtpm in any fashion so you do need to run your
> tests.
> > >
> > I will test it. I think I hope Daniel could help my patches.
> > btw, I have made a quick patch to fix the seal/unseal issue. I will send out
> later.
> >
> > > The only thing that matters to me is that when you will do it -- you
> > > will need to patch a different tree after I split off stubdom. In
> > > order to minimise the fuss one of us will need to wait for the other.
> > >
> > Once you have done, please let me know.
> 
> OK, I will try to sort it out within April.  Feel free to ping me if I drop the ball.
> 
> Wei.
> 
> > Quan
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target
  2016-07-05 13:53             ` Xu, Quan
@ 2016-07-05 13:57               ` Wei Liu
  0 siblings, 0 replies; 40+ messages in thread
From: Wei Liu @ 2016-07-05 13:57 UTC (permalink / raw)
  To: Xu, Quan; +Cc: Xen-devel, Daniel De Graaf, Wei Liu

On Tue, Jul 05, 2016 at 01:53:22PM +0000, Xu, Quan wrote:
> Wei,
> I have spent a lot of days to clean up the code of vtpm / vtpmmgr. but there are tricky issue to boot domu on TPM2.0..
> So I am afraid I can't finish it as today is my last working day at intel.
> 
> Now, these patch are on https://github.com/virt2x/vtpm2vtpmmgr 
> Sorry for that.

No need to be sorry. Thanks for letting us know.

Last but not least, thanks for your contribution to Xen and all the best
with your new journey!

Wei.

> Quan
> 
> On April 01, 2016 6:03 PM, Wei Liu <wei.liu2@citrix.com> wrote:
> > On Fri, Apr 01, 2016 at 01:41:40AM +0000, Xu, Quan wrote:
> > > On March 31, 2016 9:50pm, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > On Thu, Mar 31, 2016 at 10:21:22AM +0000, Xu, Quan wrote:
> > > > > On March 11, 2016 12:53am, Wei Liu <wei.liu2@citrix.com> wrote:
> > > > > > -build: $(STUBDOMPATH)
> > > > > > +build: $(STUBDOM_BUILD)
> > > > >
> > > > > Wei,
> > > > > in original code, in stubdom/vtpm and stubdom/vtpmmgr, the code
> > > > > style is inconsistent and ugly.
> > > > I personally prefer small patches in a series, but I don't object to
> > > > having large
> > > > patch(es) either.
> > >
> > > ok. I think so too. It may be one file per patch.
> > >
> > >
> > > > At the end of the day, I think Daniel's opinion matters most.
> > > > After a plan is agreed upon, you can then provide a branch for us to pull in.
> > >
> > > I think I am not authorized to branch, could you provide a branch and tell me
> > how to commit to that branch?
> > > Sorry, I am unfamiliar with the upstream process.
> > >
> > 
> > Oh, you don't need to branch on the main tree (xen.git or future stubdom.git).
> > You can just do the following:
> > 
> >   $ git clone xen.git # or stubdom.git
> >   $ cd xen.git # or stubdom.git
> >   $ git branch wip.vtpm-coding-style-fix-v1
> >   ... do work, commit as you go alone ...
> >   $ git push $some_public_remote wip.vtpm-coding-style-fix-v1
> >   ... post your patch series on xen-devel, along with the git repository
> >   and branch
> > 
> > When your patches are all acked by Daniel, you can then fold all the tags into
> > your own branch (wip.vtpm-coding-style-fix-v$X-acked)
> > and prod committers to pull from that branch.
> > 
> > > > Note
> > > > that upstream don't test vtpm in any fashion so you do need to run your
> > tests.
> > > >
> > > I will test it. I think I hope Daniel could help my patches.
> > > btw, I have made a quick patch to fix the seal/unseal issue. I will send out
> > later.
> > >
> > > > The only thing that matters to me is that when you will do it -- you
> > > > will need to patch a different tree after I split off stubdom. In
> > > > order to minimise the fuss one of us will need to wait for the other.
> > > >
> > > Once you have done, please let me know.
> > 
> > OK, I will try to sort it out within April.  Feel free to ping me if I drop the ball.
> > 
> > Wei.
> > 
> > > Quan
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xen.org
> > http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2016-07-05 13:57 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-10 16:46 [RFC PATCH v1] Splitting off stubdom to a different tree Wei Liu
2016-03-10 16:52 ` [PATCH RFC v1 0/6] xen: split stubdom from xen.git Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 1/6] config: don't hard-code mini-os path Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 2/6] tools: use "?=" to set XEN_ROOT in Makefile Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 3/6] libxc: use $XEN_ROOT to reference libelf in xen Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 4/6] libxl: generate and install stubdompath.sh Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 5/6] Unhook stubdom from build system Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 6/6] Remove stubdom directory Wei Liu
2016-03-10 16:52 ` [PATCH RFC v1 00/14] stubdom: split stubdom from xen.git Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 01/14] Import more files " Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 02/14] Makefile: introduce dist target Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 03/14] Add a gitignore Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 04/14] Makefile: require XEN_ROOT and MINI_OS to be defined Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 05/14] Makefile: replace MINI_OS with MINIOS_ROOT Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 06/14] pciutils: don't use hard-coded XEN_ROOT Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 07/14] grub: " Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 08/14] Makefile: export STUBDOM_ROOT Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 09/14] Makefile: delete STUBDOMPATH target Wei Liu
2016-03-31 10:21     ` Xu, Quan
2016-03-31 13:49       ` Wei Liu
2016-04-01  1:41         ` Xu, Quan
2016-04-01 10:03           ` Wei Liu
2016-04-06  9:09             ` Xu, Quan
2016-04-06  9:39               ` Wei Liu
2016-04-25 14:27             ` Wei Liu
2016-07-05 13:53             ` Xu, Quan
2016-07-05 13:57               ` Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 10/14] Makefile: require QEMU_ROOT to be defined Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 11/14] Makefile: always include Config.mk from xen source tree Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 12/14] Makefile: delete ioemu directory in clean target Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 13/14] Makefile: fix removing *.mk Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 14/14] Add README file Wei Liu
2016-03-10 18:33     ` Wei Liu
2016-03-10 16:52 ` [PATCH RFC v1 0/2] mini-os: split stubdom from xen.git Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 1/2] Config.mk: use MINI_OS if specified Wei Liu
2016-03-10 16:52   ` [PATCH RFC v1 2/2] Makefile: introduce STUBDOM_ROOT Wei Liu
2016-03-15  0:20 ` [RFC PATCH v1] Splitting off stubdom to a different tree Samuel Thibault
2016-03-15 12:30   ` Wei Liu
2016-03-15 14:22 ` Wei Liu
2016-03-15 18:26   ` Wei Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).