testing new non-autotools build system
authorCharles McGarvey <chazmcgarvey@brokenzipper.com>
Mon, 7 Jun 2010 16:33:23 +0000 (10:33 -0600)
committerCharles McGarvey <chazmcgarvey@brokenzipper.com>
Mon, 7 Jun 2010 16:33:23 +0000 (10:33 -0600)
395 files changed:
Makefile [new file with mode: 0644]
build/compile.sh [new file with mode: 0755]
build/config.guess [new file with mode: 0755]
build/config.sub [new file with mode: 0755]
build/functions.sh [new file with mode: 0755]
build/install.sh [new file with mode: 0755]
build/link.sh [new file with mode: 0755]
configure.ac
data/rules.mk [new file with mode: 0644]
data/yoinkrc
doc/rules.mk [new file with mode: 0644]
doc/yoink.6.in
src/Animation.cc
src/Animation.hh
src/Character.cc
src/GameLayer.cc
src/GameLayer.hh
src/Main.cc
src/Main.hh
src/Makefile.am
src/Scene.cc
src/Scene.hh
src/TitleLayer.cc
src/cml/cml.h [moved from src/moof/cml/cml.h with 100% similarity]
src/cml/constants.h [moved from src/moof/cml/constants.h with 100% similarity]
src/cml/core/cml_assert.h [moved from src/moof/cml/core/cml_assert.h with 100% similarity]
src/cml/core/cml_meta.h [moved from src/moof/cml/core/cml_meta.h with 100% similarity]
src/cml/core/common.h [moved from src/moof/cml/core/common.h with 100% similarity]
src/cml/core/dynamic_1D.h [moved from src/moof/cml/core/dynamic_1D.h with 100% similarity]
src/cml/core/dynamic_2D.h [moved from src/moof/cml/core/dynamic_2D.h with 100% similarity]
src/cml/core/external_1D.h [moved from src/moof/cml/core/external_1D.h with 100% similarity]
src/cml/core/external_2D.h [moved from src/moof/cml/core/external_2D.h with 100% similarity]
src/cml/core/fixed_1D.h [moved from src/moof/cml/core/fixed_1D.h with 100% similarity]
src/cml/core/fixed_2D.h [moved from src/moof/cml/core/fixed_2D.h with 100% similarity]
src/cml/core/fwd.h [moved from src/moof/cml/core/fwd.h with 100% similarity]
src/cml/core/meta/common.h [moved from src/moof/cml/core/meta/common.h with 100% similarity]
src/cml/core/meta/if.h [moved from src/moof/cml/core/meta/if.h with 100% similarity]
src/cml/core/meta/switch.h [moved from src/moof/cml/core/meta/switch.h with 100% similarity]
src/cml/defaults.h [moved from src/moof/cml/defaults.h with 100% similarity]
src/cml/dynamic.h [moved from src/moof/cml/dynamic.h with 100% similarity]
src/cml/et/array_promotions.h [moved from src/moof/cml/et/array_promotions.h with 100% similarity]
src/cml/et/scalar_ops.h [moved from src/moof/cml/et/scalar_ops.h with 100% similarity]
src/cml/et/scalar_promotions.h [moved from src/moof/cml/et/scalar_promotions.h with 100% similarity]
src/cml/et/size_checking.h [moved from src/moof/cml/et/size_checking.h with 100% similarity]
src/cml/et/tags.h [moved from src/moof/cml/et/tags.h with 100% similarity]
src/cml/et/traits.h [moved from src/moof/cml/et/traits.h with 100% similarity]
src/cml/external.h [moved from src/moof/cml/external.h with 100% similarity]
src/cml/fixed.h [moved from src/moof/cml/fixed.h with 100% similarity]
src/cml/mathlib/checking.h [moved from src/moof/cml/mathlib/checking.h with 100% similarity]
src/cml/mathlib/coord_conversion.h [moved from src/moof/cml/mathlib/coord_conversion.h with 100% similarity]
src/cml/mathlib/epsilon.h [moved from src/moof/cml/mathlib/epsilon.h with 100% similarity]
src/cml/mathlib/frustum.h [moved from src/moof/cml/mathlib/frustum.h with 100% similarity]
src/cml/mathlib/helper.h [moved from src/moof/cml/mathlib/helper.h with 100% similarity]
src/cml/mathlib/interpolation.h [moved from src/moof/cml/mathlib/interpolation.h with 100% similarity]
src/cml/mathlib/mathlib.h [moved from src/moof/cml/mathlib/mathlib.h with 100% similarity]
src/cml/mathlib/matrix_basis.h [moved from src/moof/cml/mathlib/matrix_basis.h with 100% similarity]
src/cml/mathlib/matrix_concat.h [moved from src/moof/cml/mathlib/matrix_concat.h with 100% similarity]
src/cml/mathlib/matrix_misc.h [moved from src/moof/cml/mathlib/matrix_misc.h with 100% similarity]
src/cml/mathlib/matrix_ortho.h [moved from src/moof/cml/mathlib/matrix_ortho.h with 100% similarity]
src/cml/mathlib/matrix_projection.h [moved from src/moof/cml/mathlib/matrix_projection.h with 100% similarity]
src/cml/mathlib/matrix_rotation.h [moved from src/moof/cml/mathlib/matrix_rotation.h with 100% similarity]
src/cml/mathlib/matrix_transform.h [moved from src/moof/cml/mathlib/matrix_transform.h with 100% similarity]
src/cml/mathlib/matrix_translation.h [moved from src/moof/cml/mathlib/matrix_translation.h with 100% similarity]
src/cml/mathlib/misc.h [moved from src/moof/cml/mathlib/misc.h with 100% similarity]
src/cml/mathlib/picking.h [moved from src/moof/cml/mathlib/picking.h with 100% similarity]
src/cml/mathlib/projection.h [moved from src/moof/cml/mathlib/projection.h with 100% similarity]
src/cml/mathlib/quaternion_basis.h [moved from src/moof/cml/mathlib/quaternion_basis.h with 100% similarity]
src/cml/mathlib/quaternion_rotation.h [moved from src/moof/cml/mathlib/quaternion_rotation.h with 100% similarity]
src/cml/mathlib/typedef.h [moved from src/moof/cml/mathlib/typedef.h with 100% similarity]
src/cml/mathlib/vector_angle.h [moved from src/moof/cml/mathlib/vector_angle.h with 100% similarity]
src/cml/mathlib/vector_misc.h [moved from src/moof/cml/mathlib/vector_misc.h with 100% similarity]
src/cml/mathlib/vector_ortho.h [moved from src/moof/cml/mathlib/vector_ortho.h with 100% similarity]
src/cml/mathlib/vector_transform.h [moved from src/moof/cml/mathlib/vector_transform.h with 100% similarity]
src/cml/matrix.h [moved from src/moof/cml/matrix.h with 100% similarity]
src/cml/matrix/class_ops.h [moved from src/moof/cml/matrix/class_ops.h with 100% similarity]
src/cml/matrix/determinant.h [moved from src/moof/cml/matrix/determinant.h with 100% similarity]
src/cml/matrix/dynamic.h [moved from src/moof/cml/matrix/dynamic.h with 100% similarity]
src/cml/matrix/external.h [moved from src/moof/cml/matrix/external.h with 100% similarity]
src/cml/matrix/fixed.h [moved from src/moof/cml/matrix/fixed.h with 100% similarity]
src/cml/matrix/inverse.h [moved from src/moof/cml/matrix/inverse.h with 100% similarity]
src/cml/matrix/lu.h [moved from src/moof/cml/matrix/lu.h with 100% similarity]
src/cml/matrix/matop_macros.h [moved from src/moof/cml/matrix/matop_macros.h with 100% similarity]
src/cml/matrix/matrix_comparison.h [moved from src/moof/cml/matrix/matrix_comparison.h with 100% similarity]
src/cml/matrix/matrix_expr.h [moved from src/moof/cml/matrix/matrix_expr.h with 100% similarity]
src/cml/matrix/matrix_functions.h [moved from src/moof/cml/matrix/matrix_functions.h with 100% similarity]
src/cml/matrix/matrix_mul.h [moved from src/moof/cml/matrix/matrix_mul.h with 100% similarity]
src/cml/matrix/matrix_ops.h [moved from src/moof/cml/matrix/matrix_ops.h with 100% similarity]
src/cml/matrix/matrix_print.h [moved from src/moof/cml/matrix/matrix_print.h with 100% similarity]
src/cml/matrix/matrix_promotions.h [moved from src/moof/cml/matrix/matrix_promotions.h with 100% similarity]
src/cml/matrix/matrix_rowcol.h [moved from src/moof/cml/matrix/matrix_rowcol.h with 100% similarity]
src/cml/matrix/matrix_traits.h [moved from src/moof/cml/matrix/matrix_traits.h with 100% similarity]
src/cml/matrix/matrix_transpose.h [moved from src/moof/cml/matrix/matrix_transpose.h with 100% similarity]
src/cml/matrix/matrix_unroller.h [moved from src/moof/cml/matrix/matrix_unroller.h with 100% similarity]
src/cml/matvec/matvec_mul.h [moved from src/moof/cml/matvec/matvec_mul.h with 100% similarity]
src/cml/matvec/matvec_promotions.h [moved from src/moof/cml/matvec/matvec_promotions.h with 100% similarity]
src/cml/quaternion.h [moved from src/moof/cml/quaternion.h with 100% similarity]
src/cml/quaternion/conjugate.h [moved from src/moof/cml/quaternion/conjugate.h with 100% similarity]
src/cml/quaternion/inverse.h [moved from src/moof/cml/quaternion/inverse.h with 100% similarity]
src/cml/quaternion/quaternion.h [moved from src/moof/cml/quaternion/quaternion.h with 100% similarity]
src/cml/quaternion/quaternion_comparison.h [moved from src/moof/cml/quaternion/quaternion_comparison.h with 100% similarity]
src/cml/quaternion/quaternion_dot.h [moved from src/moof/cml/quaternion/quaternion_dot.h with 100% similarity]
src/cml/quaternion/quaternion_expr.h [moved from src/moof/cml/quaternion/quaternion_expr.h with 100% similarity]
src/cml/quaternion/quaternion_functions.h [moved from src/moof/cml/quaternion/quaternion_functions.h with 100% similarity]
src/cml/quaternion/quaternion_mul.h [moved from src/moof/cml/quaternion/quaternion_mul.h with 100% similarity]
src/cml/quaternion/quaternion_ops.h [moved from src/moof/cml/quaternion/quaternion_ops.h with 100% similarity]
src/cml/quaternion/quaternion_print.h [moved from src/moof/cml/quaternion/quaternion_print.h with 100% similarity]
src/cml/quaternion/quaternion_promotions.h [moved from src/moof/cml/quaternion/quaternion_promotions.h with 100% similarity]
src/cml/quaternion/quaternion_traits.h [moved from src/moof/cml/quaternion/quaternion_traits.h with 100% similarity]
src/cml/quaternion/quatop_macros.h [moved from src/moof/cml/quaternion/quatop_macros.h with 100% similarity]
src/cml/util.h [moved from src/moof/cml/util.h with 100% similarity]
src/cml/vector.h [moved from src/moof/cml/vector.h with 100% similarity]
src/cml/vector/class_ops.h [moved from src/moof/cml/vector/class_ops.h with 100% similarity]
src/cml/vector/dynamic.h [moved from src/moof/cml/vector/dynamic.h with 100% similarity]
src/cml/vector/external.h [moved from src/moof/cml/vector/external.h with 100% similarity]
src/cml/vector/fixed.h [moved from src/moof/cml/vector/fixed.h with 100% similarity]
src/cml/vector/vecop_macros.h [moved from src/moof/cml/vector/vecop_macros.h with 100% similarity]
src/cml/vector/vector_comparison.h [moved from src/moof/cml/vector/vector_comparison.h with 100% similarity]
src/cml/vector/vector_expr.h [moved from src/moof/cml/vector/vector_expr.h with 100% similarity]
src/cml/vector/vector_functions.h [moved from src/moof/cml/vector/vector_functions.h with 100% similarity]
src/cml/vector/vector_ops.h [moved from src/moof/cml/vector/vector_ops.h with 100% similarity]
src/cml/vector/vector_print.h [moved from src/moof/cml/vector/vector_print.h with 100% similarity]
src/cml/vector/vector_products.h [moved from src/moof/cml/vector/vector_products.h with 100% similarity]
src/cml/vector/vector_promotions.h [moved from src/moof/cml/vector/vector_promotions.h with 100% similarity]
src/cml/vector/vector_traits.h [moved from src/moof/cml/vector/vector_traits.h with 100% similarity]
src/cml/vector/vector_unroller.h [moved from src/moof/cml/vector/vector_unroller.h with 100% similarity]
src/moof/camera.cc
src/moof/debug.hh [new file with mode: 0644]
src/moof/hash.hh
src/moof/image.cc
src/moof/image.hh
src/moof/interpolator.hh
src/moof/log.hh
src/moof/math.hh
src/moof/modal_dialog.hh
src/moof/packet.cc
src/moof/packet.hh
src/moof/resource.cc
src/moof/resource.hh
src/moof/rules.mk [new file with mode: 0644]
src/moof/socket.hh
src/moof/sound.cc
src/moof/sound.hh
src/moof/texture.cc
src/moof/texture.hh
src/moof/timer.cc
src/moof/timer.hh
src/moof/video.cc
src/rules.mk [new file with mode: 0644]
src/stlplus/README.txt [new file with mode: 0644]
src/stlplus/containers/containers.hpp [moved from src/moof/stlplus/containers.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/containers_fixes.hpp [moved from src/moof/stlplus/containers_fixes.hpp with 79% similarity, mode: 0644]
src/stlplus/containers/copy_functors.hpp [new file with mode: 0644]
src/stlplus/containers/digraph.hpp [moved from src/moof/stlplus/digraph.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/digraph.tpp [moved from src/moof/stlplus/digraph.tpp with 100% similarity, mode: 0644]
src/stlplus/containers/exceptions.hpp [moved from src/moof/stlplus/exceptions.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/foursome.hpp [moved from src/moof/stlplus/foursome.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/foursome.tpp [moved from src/moof/stlplus/foursome.tpp with 100% similarity, mode: 0644]
src/stlplus/containers/hash.hpp [moved from src/moof/stlplus/hash.hpp with 92% similarity, mode: 0644]
src/stlplus/containers/hash.tpp [moved from src/moof/stlplus/hash.tpp with 82% similarity, mode: 0644]
src/stlplus/containers/matrix.hpp [moved from src/moof/stlplus/matrix.hpp with 96% similarity, mode: 0644]
src/stlplus/containers/matrix.tpp [moved from src/moof/stlplus/matrix.tpp with 100% similarity, mode: 0644]
src/stlplus/containers/ntree.hpp [moved from src/moof/stlplus/ntree.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/ntree.tpp [moved from src/moof/stlplus/ntree.tpp with 100% similarity, mode: 0644]
src/stlplus/containers/safe_iterator.hpp [moved from src/moof/stlplus/safe_iterator.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/safe_iterator.tpp [moved from src/moof/stlplus/safe_iterator.tpp with 100% similarity, mode: 0644]
src/stlplus/containers/simple_ptr.hpp [new file with mode: 0644]
src/stlplus/containers/simple_ptr.tpp [new file with mode: 0644]
src/stlplus/containers/smart_ptr.hpp [moved from src/moof/stlplus/smart_ptr.hpp with 83% similarity, mode: 0644]
src/stlplus/containers/smart_ptr.tpp [moved from src/moof/stlplus/smart_ptr.tpp with 91% similarity, mode: 0644]
src/stlplus/containers/triple.hpp [moved from src/moof/stlplus/triple.hpp with 100% similarity, mode: 0644]
src/stlplus/containers/triple.tpp [moved from src/moof/stlplus/triple.tpp with 100% similarity, mode: 0644]
src/stlplus/messages/stlplus_messages.txt [new file with mode: 0644]
src/stlplus/persistence/persistence.hpp [new file with mode: 0644]
src/stlplus/persistence/persistence_fixes.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_basic.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_bitset.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_bitset.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_bool.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_bool.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_callback.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_callback.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_complex.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_complex.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_contexts.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_contexts.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_cstring.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_cstring.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_deque.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_deque.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_digraph.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_digraph.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_enum.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_enum.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_exceptions.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_exceptions.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_float.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_float.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_foursome.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_foursome.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_hash.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_hash.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_inf.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_inf.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_int.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_int.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_interface.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_interface.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_list.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_list.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_map.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_map.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_matrix.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_matrix.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_multimap.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_multimap.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_multiset.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_multiset.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_ntree.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_ntree.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_pair.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_pair.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_pointer.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_pointer.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_pointers.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_set.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_set.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_shortcuts.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_shortcuts.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_simple_ptr.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_simple_ptr.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_smart_ptr.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_smart_ptr.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_stl.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_stlplus.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_string.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_string.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_string.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_triple.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_triple.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_vector.cpp [new file with mode: 0644]
src/stlplus/persistence/persistent_vector.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_vector.tpp [new file with mode: 0644]
src/stlplus/persistence/persistent_xref.hpp [new file with mode: 0644]
src/stlplus/persistence/persistent_xref.tpp [new file with mode: 0644]
src/stlplus/portability/build.cpp [new file with mode: 0644]
src/stlplus/portability/build.hpp [new file with mode: 0644]
src/stlplus/portability/debug.cpp [new file with mode: 0644]
src/stlplus/portability/debug.hpp [new file with mode: 0644]
src/stlplus/portability/dprintf.cpp [new file with mode: 0644]
src/stlplus/portability/dprintf.hpp [new file with mode: 0644]
src/stlplus/portability/dynaload.cpp [new file with mode: 0644]
src/stlplus/portability/dynaload.hpp [new file with mode: 0644]
src/stlplus/portability/file_system.cpp [new file with mode: 0644]
src/stlplus/portability/file_system.hpp [new file with mode: 0644]
src/stlplus/portability/inf.cpp [new file with mode: 0644]
src/stlplus/portability/inf.hpp [new file with mode: 0644]
src/stlplus/portability/ip_sockets.cpp [new file with mode: 0644]
src/stlplus/portability/ip_sockets.hpp [new file with mode: 0644]
src/stlplus/portability/portability.hpp [new file with mode: 0644]
src/stlplus/portability/portability_exceptions.hpp [new file with mode: 0644]
src/stlplus/portability/portability_fixes.cpp [new file with mode: 0644]
src/stlplus/portability/portability_fixes.hpp [new file with mode: 0644]
src/stlplus/portability/subprocesses.cpp [new file with mode: 0644]
src/stlplus/portability/subprocesses.hpp [new file with mode: 0644]
src/stlplus/portability/tcp.hpp [new file with mode: 0644]
src/stlplus/portability/tcp_sockets.cpp [new file with mode: 0644]
src/stlplus/portability/tcp_sockets.hpp [new file with mode: 0644]
src/stlplus/portability/time.cpp [new file with mode: 0644]
src/stlplus/portability/time.hpp [new file with mode: 0644]
src/stlplus/portability/udp_sockets.cpp [new file with mode: 0644]
src/stlplus/portability/udp_sockets.hpp [new file with mode: 0644]
src/stlplus/portability/version.cpp [new file with mode: 0644]
src/stlplus/portability/version.hpp [new file with mode: 0644]
src/stlplus/portability/wildcard.cpp [new file with mode: 0644]
src/stlplus/portability/wildcard.hpp [new file with mode: 0644]
src/stlplus/rules.mk [new file with mode: 0644]
src/stlplus/strings/format_types.hpp [new file with mode: 0644]
src/stlplus/strings/print_address.cpp [new file with mode: 0644]
src/stlplus/strings/print_address.hpp [new file with mode: 0644]
src/stlplus/strings/print_basic.hpp [new file with mode: 0644]
src/stlplus/strings/print_bitset.hpp [new file with mode: 0644]
src/stlplus/strings/print_bitset.tpp [new file with mode: 0644]
src/stlplus/strings/print_bool.cpp [new file with mode: 0644]
src/stlplus/strings/print_bool.hpp [new file with mode: 0644]
src/stlplus/strings/print_cstring.cpp [new file with mode: 0644]
src/stlplus/strings/print_cstring.hpp [new file with mode: 0644]
src/stlplus/strings/print_digraph.hpp [new file with mode: 0644]
src/stlplus/strings/print_digraph.tpp [new file with mode: 0644]
src/stlplus/strings/print_float.cpp [new file with mode: 0644]
src/stlplus/strings/print_float.hpp [new file with mode: 0644]
src/stlplus/strings/print_foursome.hpp [new file with mode: 0644]
src/stlplus/strings/print_foursome.tpp [new file with mode: 0644]
src/stlplus/strings/print_hash.hpp [new file with mode: 0644]
src/stlplus/strings/print_hash.tpp [new file with mode: 0644]
src/stlplus/strings/print_inf.cpp [new file with mode: 0644]
src/stlplus/strings/print_inf.hpp [new file with mode: 0644]
src/stlplus/strings/print_int.cpp [new file with mode: 0644]
src/stlplus/strings/print_int.hpp [new file with mode: 0644]
src/stlplus/strings/print_list.hpp [new file with mode: 0644]
src/stlplus/strings/print_list.tpp [new file with mode: 0644]
src/stlplus/strings/print_map.hpp [new file with mode: 0644]
src/stlplus/strings/print_map.tpp [new file with mode: 0644]
src/stlplus/strings/print_matrix.hpp [new file with mode: 0644]
src/stlplus/strings/print_matrix.tpp [new file with mode: 0644]
src/stlplus/strings/print_ntree.hpp [new file with mode: 0644]
src/stlplus/strings/print_ntree.tpp [new file with mode: 0644]
src/stlplus/strings/print_pair.hpp [new file with mode: 0644]
src/stlplus/strings/print_pair.tpp [new file with mode: 0644]
src/stlplus/strings/print_pointer.hpp [new file with mode: 0644]
src/stlplus/strings/print_pointer.tpp [new file with mode: 0644]
src/stlplus/strings/print_sequence.hpp [new file with mode: 0644]
src/stlplus/strings/print_sequence.tpp [new file with mode: 0644]
src/stlplus/strings/print_set.hpp [new file with mode: 0644]
src/stlplus/strings/print_set.tpp [new file with mode: 0644]
src/stlplus/strings/print_simple_ptr.hpp [new file with mode: 0644]
src/stlplus/strings/print_simple_ptr.tpp [new file with mode: 0644]
src/stlplus/strings/print_smart_ptr.hpp [new file with mode: 0644]
src/stlplus/strings/print_smart_ptr.tpp [new file with mode: 0644]
src/stlplus/strings/print_stl.hpp [new file with mode: 0644]
src/stlplus/strings/print_stlplus.hpp [new file with mode: 0644]
src/stlplus/strings/print_string.cpp [new file with mode: 0644]
src/stlplus/strings/print_string.hpp [new file with mode: 0644]
src/stlplus/strings/print_triple.hpp [new file with mode: 0644]
src/stlplus/strings/print_triple.tpp [new file with mode: 0644]
src/stlplus/strings/print_vector.cpp [new file with mode: 0644]
src/stlplus/strings/print_vector.hpp [new file with mode: 0644]
src/stlplus/strings/print_vector.tpp [new file with mode: 0644]
src/stlplus/strings/string_address.cpp [new file with mode: 0644]
src/stlplus/strings/string_address.hpp [new file with mode: 0644]
src/stlplus/strings/string_basic.hpp [new file with mode: 0644]
src/stlplus/strings/string_bitset.hpp [new file with mode: 0644]
src/stlplus/strings/string_bitset.tpp [new file with mode: 0644]
src/stlplus/strings/string_bool.cpp [new file with mode: 0644]
src/stlplus/strings/string_bool.hpp [new file with mode: 0644]
src/stlplus/strings/string_cstring.cpp [new file with mode: 0644]
src/stlplus/strings/string_cstring.hpp [new file with mode: 0644]
src/stlplus/strings/string_digraph.hpp [new file with mode: 0644]
src/stlplus/strings/string_digraph.tpp [new file with mode: 0644]
src/stlplus/strings/string_float.cpp [new file with mode: 0644]
src/stlplus/strings/string_float.hpp [new file with mode: 0644]
src/stlplus/strings/string_foursome.hpp [new file with mode: 0644]
src/stlplus/strings/string_foursome.tpp [new file with mode: 0644]
src/stlplus/strings/string_hash.hpp [new file with mode: 0644]
src/stlplus/strings/string_hash.tpp [new file with mode: 0644]
src/stlplus/strings/string_inf.cpp [new file with mode: 0644]
src/stlplus/strings/string_inf.hpp [new file with mode: 0644]
src/stlplus/strings/string_int.cpp [new file with mode: 0644]
src/stlplus/strings/string_int.hpp [new file with mode: 0644]
src/stlplus/strings/string_list.hpp [new file with mode: 0644]
src/stlplus/strings/string_list.tpp [new file with mode: 0644]
src/stlplus/strings/string_map.hpp [new file with mode: 0644]
src/stlplus/strings/string_map.tpp [new file with mode: 0644]
src/stlplus/strings/string_matrix.hpp [new file with mode: 0644]
src/stlplus/strings/string_matrix.tpp [new file with mode: 0644]
src/stlplus/strings/string_ntree.hpp [new file with mode: 0644]
src/stlplus/strings/string_ntree.tpp [new file with mode: 0644]
src/stlplus/strings/string_pair.hpp [new file with mode: 0644]
src/stlplus/strings/string_pair.tpp [new file with mode: 0644]
src/stlplus/strings/string_pointer.hpp [new file with mode: 0644]
src/stlplus/strings/string_pointer.tpp [new file with mode: 0644]
src/stlplus/strings/string_sequence.hpp [new file with mode: 0644]
src/stlplus/strings/string_sequence.tpp [new file with mode: 0644]
src/stlplus/strings/string_set.hpp [new file with mode: 0644]
src/stlplus/strings/string_set.tpp [new file with mode: 0644]
src/stlplus/strings/string_simple_ptr.hpp [new file with mode: 0644]
src/stlplus/strings/string_simple_ptr.tpp [new file with mode: 0644]
src/stlplus/strings/string_smart_ptr.hpp [new file with mode: 0644]
src/stlplus/strings/string_smart_ptr.tpp [new file with mode: 0644]
src/stlplus/strings/string_stl.hpp [new file with mode: 0644]
src/stlplus/strings/string_stlplus.hpp [new file with mode: 0644]
src/stlplus/strings/string_string.cpp [new file with mode: 0644]
src/stlplus/strings/string_string.hpp [new file with mode: 0644]
src/stlplus/strings/string_triple.hpp [new file with mode: 0644]
src/stlplus/strings/string_triple.tpp [new file with mode: 0644]
src/stlplus/strings/string_utilities.cpp [new file with mode: 0644]
src/stlplus/strings/string_utilities.hpp [new file with mode: 0644]
src/stlplus/strings/string_vector.cpp [new file with mode: 0644]
src/stlplus/strings/string_vector.hpp [new file with mode: 0644]
src/stlplus/strings/string_vector.tpp [new file with mode: 0644]
src/stlplus/strings/strings.hpp [new file with mode: 0644]
src/stlplus/strings/strings_fixes.hpp [new file with mode: 0644]
src/stlplus/subsystems/cli_parser.cpp [new file with mode: 0644]
src/stlplus/subsystems/cli_parser.hpp [new file with mode: 0644]
src/stlplus/subsystems/ini_manager.cpp [new file with mode: 0644]
src/stlplus/subsystems/ini_manager.hpp [new file with mode: 0644]
src/stlplus/subsystems/library_manager.cpp [new file with mode: 0644]
src/stlplus/subsystems/library_manager.hpp [new file with mode: 0644]
src/stlplus/subsystems/message_handler.cpp [new file with mode: 0644]
src/stlplus/subsystems/message_handler.hpp [new file with mode: 0644]
src/stlplus/subsystems/subsystems.hpp [new file with mode: 0644]
src/stlplus/subsystems/subsystems_fixes.hpp [new file with mode: 0644]
src/stlplus/subsystems/timer.cpp [new file with mode: 0644]
src/stlplus/subsystems/timer.hpp [new file with mode: 0644]
src/yoink.rc

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..0ca002b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,149 @@
+
+#
+# Yoink
+# Use this file with make to compile and install Yoink.
+#
+# This makefile supports these targets:
+#   all, install, clean, cleandist, run, debug
+#
+# This build system incorporates the ideas written by Emile van Bergen:
+# http://www.xs4all.nl/~evbergen/nonrecursive-make.html
+#
+
+#
+# Define some options.
+#
+
+# Set this to `yes' to echo each build command.
+verbose := no
+
+
+#
+# Include the configuration file, config.mk.
+#
+
+have_config := $(wildcard config.mk)
+ifneq ($(strip $(have_config)),)
+include config.mk
+else
+no_config:
+       @echo "You must run the configure script before you can make anything."
+       @exit 1
+endif
+
+
+#
+# Some standard stuff.
+#
+
+.SUFFIXES:
+.SUFFIXES: .a .c .cc .cpp .o .rc
+
+all: targets
+
+
+#
+# Include the subdirectories--order is not important.
+#
+
+dir := src
+include $(dir)/rules.mk
+
+dir := data
+include $(dir)/rules.mk
+
+dir := doc
+include $(dir)/rules.mk
+
+
+#
+# Define some common rules.
+#
+
+CC_WRAPPER  = ./build/compile.sh $(CC)
+CXX_WRAPPER = ./build/compile.sh $(CXX)
+
+ifeq ($(verbose),no)
+DO_CC    = @echo "  CC    $@";
+DO_CXX   = @echo "  CXX   $@";
+DO_LD    = @echo "  LD    $@";
+DO_LDX   = @echo "  LD    $@";
+DO_CCLD  = @echo "  CCLD  $@";
+DO_CXXLD = @echo "  CXXLD $@";
+DO_AR    = @echo "  AR    $@";
+DO_RC    = @echo "  RC    $@";
+endif
+
+DO_CC    += $(CC_WRAPPER)  $(CFLAGS)   $(CF_TGT) -o $@ -c $<
+DO_CXX   += $(CXX_WRAPPER) $(CXXFLAGS) $(CF_TGT) -o $@ -c $<
+DO_LD    += $(CC_WRAPPER)  $(LDFLAGS)  $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
+DO_LDX   += $(CXX_WRAPPER) $(LDFLAGS)  $(LF_TGT) -o $@ $^ $(LL_TGT) $(LIBS)
+DO_CCLD  += $(CC_WRAPPER)  $(CFLAGS)   $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
+DO_CXXLD += $(CXX_WRAPPER) $(CXXFLAGS) $(CF_TGT) $(LDFLAGS) $(LF_TGT) -o $@ $< $(LL_TGT) $(LIBS)
+DO_AR    += $(AR) rcs $@ $^; $(RANLIB) $@
+DO_RC    += $(WINDRES)     $(DDEFINES) $(DF_TGT) -o $@ -i $<
+
+%.o: %.c
+       $(DO_CC)
+%.o: %.cc
+       $(DO_CXX)
+%.o: %.cpp
+       $(DO_CXX)
+%.o: %.rc
+       $(DO_RC)
+%: %.o
+       $(DO_LD)
+%: %.c
+       $(DO_CCLD)
+%: %.cc
+       $(DO_CXXLD)
+%: %.cpp
+       $(DO_CXXLD)
+%.a: %.o
+       $(DO_AR)
+
+
+#
+# Stuff.
+#
+
+#TGT_BIN := $(addsuffix $(EXEEXT),$(TGT_BIN))
+
+
+#
+# Define the phony targets.
+#
+
+.PHONY: targets
+targets: $(TGT_BIN) $(TGT_LIB)
+
+.PHONY: clean
+clean:
+ifeq ($(verbose),yes)
+       rm -f $(CLEAN)
+else
+       @echo "  CLEAN"; rm -f $(CLEAN)
+endif
+
+.PHONY: distclean
+distclean: clean
+ifeq ($(verbose),yes)
+       rm -f config.mk
+else
+       @rm -f config.mk
+endif
+
+.PHONY: install
+install: targets 
+       $(INSTALL) $(TGT_BIN)  -m 755 -d $(DESTDIR)$(bindir)
+       $(INSTALL) $(TGT_DATA) -m 644 -d $(DESTDIR)$(datadir)
+       $(INSTALL) $(TGT_LIB)  -m 750 -d $(DESTDIR)$(libdir)
+       $(INSTALL) $(TGT_MAN)  -m 644 -d $(DESTDIR)$(mandir)
+
+
+#
+# Prevent make from removing any build targets.
+#
+
+.SECONDARY:    $(CLEAN)
+
diff --git a/build/compile.sh b/build/compile.sh
new file mode 100755 (executable)
index 0000000..75aec0a
--- /dev/null
@@ -0,0 +1,130 @@
+#!/bin/sh
+#
+# CCDEPS-GCC (C) 2002 Emile van Bergen. Distribution of this file is allowed
+# under the conditions detailed in the GNU General Public License (GPL). See 
+# the file COPYING for more information.
+#
+# This script compiles and/or links one or more source or object files into a
+# object file or executable target, and outputs all extra dependencies found
+# while doing so in a file named target.d, which can be used by GNU Make.
+#
+# The script should be invoked the same way as your C compiler, that is,
+# specifying the target using a -o option and the source or object files as 
+# non-option arguments. It will generate dependencies in the form
+#
+# target target.d: dir/file1.c dir/file2.c header1.h header2.h
+# dir/file1.c dir/file2.c header1.h header2.h:
+#
+# This version is intended for GCC, which can do compilation and dependency
+# generation in one step. The name of the GCC version (default gcc) can be
+# overridden using the CC environment variable.
+#
+# CHANGELOG
+#
+# 2003/1/8: EvB: adapted for gcc 3.2, still handles 2.95 as well.
+#
+#   This was necessary because gcc 3.2 handles -MD differently than gcc 2.95:
+#   where the old version generated a .d file for each source, in the current
+#   directory, the new one does almost completely what this script intended to
+#   do: generate one .d file in the same directory and with the same file name
+#   as the target.
+#
+#   The only fixups 3.2's .d files still need are:
+#
+#   - changing the file name; gcc 3.2 strips the suffix of the target before 
+#     appending the .d, so targets x and x.o will both produce x.d, which is
+#     not what we want;
+#
+#   - adding the implicit dependencies as prerequisiteless targets, so that
+#     make will just consider the target out of date if one does not exist
+#     anymore; 
+#
+#   - adding the .d file as depending on the same prerequisites as our real
+#     target so that it will be considered out of date if one of the files
+#     mentioned in it are updated or missing.
+#
+#   Basically, this version does all that by simply including the file
+#   <strippedtarget>.d file in the list of .d files we look for. We may end
+#   up generating the same file name, but that already was handled correctly.
+#   Otherwise we perform the normal routine, so that we /know/ the targets will
+#   be correct, directories and all, regardless of variations in gcc behaviour.
+
+test -x "functions.sh" && . "functions.sh"
+test -x "build/functions.sh" && . "build/functions.sh"
+
+export CC=$1
+shift
+
+
+cmdline=""
+# After having passed the arguments, they have already been parsed once by
+# the shell, so they needed to be re-quoted.
+for arg in "$@"
+do
+       arg="$(quote_string "$arg")"
+       cmdline="$cmdline $arg"
+done
+
+
+while [ x"$1" != x ]
+do
+       case "$1" in
+               -o) tgt="$2" ; shift ;; # target specifier option
+               -x|-u|-b|-V) shift ;;   # options with arg after space
+               -*) ;;                  # standard options
+               *) fil="$fil $1" ;;     # source or object files
+       esac
+       shift
+done
+
+#if [ x"$CC" = x ]
+#then
+       #CC=gcc
+       #export CC
+#fi
+
+# If we're not processing any .c files (link only), run gcc as-is and we're done
+
+expr "$fil" : ".*\.c" >/dev/null || exec $CC $cmdline
+
+# Otherwise, run the gcc with the -MD option, which generates a .d file
+# in the current directory for each .c or .cc source file processed.
+#
+# These files are post-processed (replacing the incorrectly named target
+# with the real target specified with -o, and adding the .d file), concatenated
+# into one .d file that is named based on the target name, and put in the
+# correct directory. Further, all prerequisites are added as bare targets,
+# preventing errors when files are missing due to renaming or restructuring
+# headers, but causing the files dependent on them to be considered out of
+# date. (GNU Make feature).
+#
+# Makefiles must include the .d files like this: -include $(OBJS_$(d):.o=.d)
+# or, when compiling and linking in one step: -include $(TGTS_$(d):%=%.d)
+
+dep=$tgt.d
+rm -f $dep
+
+#echo $CC -MD $cmdline
+eval "$CC -MD $cmdline"
+res=$?
+
+dgcc3=`echo $tgt | sed -e 's/\.[^.]*$//'`.d
+dgcc=`echo $fil | sed -e 's/[^         ]*\.[^c]//' -e 's/\.cpp/\.d/g' -e 's/\.cc/\.d/g' -e 's/\.c/\.d/g' -e 's%.*/%%g'`
+
+for tf in $dgcc3 $dgcc
+do
+       if [ -f $tf ] && mv $tf $dep.tmp
+       then
+               sed -e "s%.*:%$tgt $dep:%" < $dep.tmp >> $dep
+               sed -e 's%^.*:%%' -e 's%^ *%%' -e 's% *\\$%%' -e 's%$%:%' \
+                       < $dep.tmp >> $dep
+               rm -f $dep.tmp
+               found=1
+       fi
+done
+
+[ x"$found" = x"1" ] && exit $res
+
+echo ERROR: $0: Cannot find any compiler-generated dependency files\!
+exit 1
+
diff --git a/build/config.guess b/build/config.guess
new file mode 100755 (executable)
index 0000000..bf48496
--- /dev/null
@@ -0,0 +1,1517 @@
+#! /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
+#   Free Software Foundation, Inc.
+
+timestamp='2009-12-30'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# 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 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
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU/*)
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #ifdef __UCLIBC__
+       # ifdef __UCLIBC_CONFIG_VERSION__
+       LIBC=uclibc __UCLIBC_CONFIG_VERSION__
+       # else
+       LIBC=uclibc
+       # endif
+       #else
+       # ifdef __dietlibc__
+       LIBC=dietlibc
+       # else
+       LIBC=gnu
+       # endif
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       ;;
+esac
+
+# 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 tupples: *-*-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'`
+       exit ;;
+    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:*:[456])
+       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:*:*)
+       case ${UNAME_MACHINE} in
+           pc98)
+               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           amd64)
+               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           *)
+               echo ${UNAME_MACHINE}-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*: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-${LIBC}`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/[-(].*//'`-${LIBC}
+       exit ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       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="gnulibc1" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${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-${LIBC}
+       else
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+       fi
+       exit ;;
+    avr32*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    cris:Linux:*:*)
+       echo cris-axis-linux-${LIBC}
+       exit ;;
+    crisv32:Linux:*:*)
+       echo crisv32-axis-linux-${LIBC}
+       exit ;;
+    frv:Linux:*:*)
+       echo frv-unknown-linux-${LIBC}
+       exit ;;
+    i*86:Linux:*:*)
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       exit ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    m32r*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       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-${LIBC}"; exit; }
+       ;;
+    or32:Linux:*:*)
+       echo or32-unknown-linux-${LIBC}
+       exit ;;
+    padre:Linux:*:*)
+       echo sparc-unknown-linux-${LIBC}
+       exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-${LIBC}
+       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-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
+       esac
+       exit ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-${LIBC}
+       exit ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit ;;
+    sh64*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    vax:Linux:*:*)
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+       exit ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-${LIBC}
+       exit ;;
+    xtensa*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       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 ;;
+    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 ;;
+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/build/config.sub b/build/config.sub
new file mode 100755 (executable)
index 0000000..4c0d959
--- /dev/null
@@ -0,0 +1,1732 @@
+#! /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
+#   Free Software Foundation, Inc.
+
+timestamp='2010-01-22'
+
+# 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# 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 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-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/'`
+    ;;
+  *)
+    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*)
+               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 \
+       | 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 \
+       | bfin \
+       | c4x | clipper \
+       | d10v | d30v | dlx | dsp16xx | dvp \
+       | fido | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k | iq2000 \
+       | 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 \
+       | nios | nios2 \
+       | ns16k | ns32k \
+       | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | 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 | strongarm \
+       | tahoe | thumb | tic4x | tic80 | tron \
+       | ubicom32 \
+       | v850 | v850e \
+       | we32k \
+       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | z8k | z80)
+               basic_machine=$basic_machine-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+       ms1)
+               basic_machine=mt-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-* \
+       | 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-* \
+       | bfin-* | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+       | 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-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* | iq2000-* \
+       | 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-* \
+       | nios-* | nios2-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | 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-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tile-* | tilegx-* \
+       | tron-* \
+       | ubicom32-* \
+       | v850-* | v850e-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | 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
+               ;;
+       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)
+               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'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       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
+               ;;
+       mipsEE* | ee | ps2)
+               basic_machine=mips64r5900el-scei
+               case $os in
+                   -linux*)
+                       ;;
+                   *)
+                       os=-elf
+                       ;;
+               esac
+               ;;
+       iop)
+               basic_machine=mipsel-scei
+               os=-irx
+               ;;
+       dvp)
+               basic_machine=dvp-scei
+               os=-elf
+               ;;
+       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-/'`
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       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
+               ;;
+       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)    basic_machine=powerpc-unknown
+               ;;
+       ppc-*)  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
+               ;;
+       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
+               ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
+       tic55x | c55x*)
+               basic_machine=tic55x-unknown
+               os=-coff
+               ;;
+       tic6x | c6x*)
+               basic_machine=tic6x-unknown
+               os=-coff
+               ;;
+        # This must be matched before tile*.
+        tilegx*)
+               basic_machine=tilegx-unknown
+               os=-linux-gnu
+               ;;
+       tile*)
+               basic_machine=tile-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
+               ;;
+       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* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -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* | -irx* \
+             | -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
+               ;;
+       # 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
+               # This also exists in the configure program, but was not the
+               # default.
+               # os=-sunos4
+               ;;
+       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/build/functions.sh b/build/functions.sh
new file mode 100755 (executable)
index 0000000..c330d93
--- /dev/null
@@ -0,0 +1,93 @@
+
+
+# Print error message to stderr and exit.  The error message can either be
+# given as parameters or from stdin.
+die()
+{
+       echo -n "fatal: " >/dev/stderr
+       if [ "x$*" != x ]
+       then
+               echo $* >/dev/stderr
+       else
+               while read line;
+               do
+                       echo $line >/dev/stderr
+               done
+       fi
+       exit 1
+}
+
+# Parse an argument from an option in the form --option=argument.
+parse_argument()
+{
+       echo $(echo $2 | sed -e "s/--$1=\\(.*\\)$/\\1/")
+       return $?
+}
+
+# Insert all the escapes necessary to correctly quote a string for use in a
+# shell command.
+quote_string()
+{
+       for arg in "$@"
+       do
+               echo $1 | sed -e "s/'/\\'/g" \
+                                         -e 's/"/\\"/g' \
+                                         -e 's/|/\\|/g' \
+                                         -e 's/&/\\&/g' \
+                                         -e 's/;/\\;/g' \
+                                         -e 's/;/\\;/g' \
+                                         -e 's/(/\\(/g' \
+                                         -e 's/)/\\)/g' \
+                                         -e 's/</\\</g' \
+                                         -e 's/>/\\>/g' \
+                                         -e 's/ /\\ /g' \
+                                         -e "s/\t/\\\t/g" \
+                                         -e 's/\$/\\\$/g'
+       done
+}
+
+# Add a definition to the compiler flags.  The optional second parameter is
+# the unquoted value.
+define()
+{
+       if test "x$2" = x
+       then
+               defines="$defines -D$1"
+       else
+               defines="$defines -D$1=$2"
+       fi
+}
+
+# Add a definition to the compiler flags with a quoted value.
+define_string()
+{
+       arg=$(quote_string "$2")
+       define "$1" "\\\"$arg\\\""
+}
+
+undefine()
+{
+       for arg in "$@"
+       do
+               defines="$defines -U$arg"
+       done
+}
+
+is_defined()
+{
+       for arg in "$@"
+       do
+               echo "$defines" | grep -e "-D$arg" 2>&1 >/dev/null || return 1
+       done
+       return 0
+}
+
+is_undefined()
+{
+       for arg in "$@"
+       do
+               echo "$defines" | grep -e "-U$arg" 2>&1 >/dev/null || return 1
+       done
+       return 0
+}
+
diff --git a/build/install.sh b/build/install.sh
new file mode 100755 (executable)
index 0000000..be27f7f
--- /dev/null
@@ -0,0 +1,191 @@
+#!/bin/sh
+#
+# INSTALL (C) 2002 Emile van Bergen. Distribution of this file is allowed under
+# the conditions detailed in the GNU General Public License (GPL). See the file
+# COPYING for more information.
+#
+# This script installs zero or more files into a specified directory. If one or
+# more components of the destination path do not exist, they are created.  The
+# permissions of the destination file and the destination directory(s), if any
+# need to be created, can be specified separately. The user can also specify
+# that the operation must be skipped if the destination file or the destination
+# directory already exists. Source files are stripped of their directory
+# components before determining the destination name.
+#
+# It is intended to replace the /usr/bin/install command, which has no portable
+# subset of features that offers anything above /bin/cp. Each version is broken
+# in its own ways, the most annoying examples being that some can only install
+# a single file at a time and that some do not create destination directories
+# recursively. Hence this shell script, that is intended to be portable across
+# all POSIX-compliant /bin/sh shells. It does not assume a working 'mkdir -p'
+# command.
+#
+# Invocation:
+#
+# install arguments...
+#
+# Each argument is either an option, as specified below, a source file, or
+# a destination directory, with -d prepended. Each time a destination
+# directory is encountered, the source files leading up to it are installed,
+# and then all options are reset, allowing you to perform multiple install
+# operations with one command.
+#
+# Options:
+#
+#      -h      Show a brief usage message
+#      -v      Show what's being done
+#      -m      specify mode of destination files
+#      -md     specify mode of destination directories, if any are created
+#      -n      skip operation if destination file exists
+#      -nd     skip operation if destination directory exists
+#
+# Return values:
+#
+#      0       Successful completion
+#      >0      Error occurred
+#
+# Limitations:
+#
+# * Source files cannot start with a '-' or contain spaces
+# * Destination directories cannot start with a '-' or contain spaces
+# * If multiple different modes are desired for files in a single destination 
+#   directory, you must specify multiple installation sets (-d options), one 
+#   for each mode (eg. install -m 644 file1 file2 -d dir file3 -m 600 -d dir).
+# * The /bin/sh shell used to run this script must support user-defined 
+#   functions.
+# * The system must have mkdir, chmod, basename, tr, sed and cp available.
+#   If needed, basename and tr could be provided by sed, but I don't think
+#   that should be done by default as they are very common.
+#
+# Notes (not bugs, features. Really!):
+#
+# * If the destination directory already exists, its mode is not changed
+#   even if -md is specified; that mode is only used when creating new ones.
+# * If the destination file already exists but is overwritten because no -n
+#   was specified, the new mode, if specified, is applied as well.
+# * QNX-style paths starting with // are honored, as are .. path components.
+#   An initial .. works as expected, and a destination path a/b/../c creates
+#   a, a/b, a/c and installs the files in a/c.
+#
+# History
+#
+# 2002/09/13 - EvB - Created
+
+
+make_dir() {
+
+  dir="$1"
+  [ -n "$verbose" ] && echo "Creating directory $dir"
+
+  mkdir "$dir" || exit 1
+
+  if [ -n "$mode_dir" ] 
+  then
+    chmod "$mode_dir" "$dir" || exit 2
+  fi
+
+  return
+}
+
+
+make_dir_tree() {
+
+  root=`echo $1 | sed -e 's/[^/].*$//g'`
+  components=`echo $1 | tr / " "`
+
+  cumul=
+  for comp in $components
+  do
+    if [ -n "$cumul" ] 
+    then
+      cumul="$cumul/$comp"
+    else
+      cumul="$comp"
+    fi
+    [ "$comp" = "." ] || [ "$comp" = ".." ] || 
+      [ -d "$root$cumul" ] || make_dir "$root$cumul"
+  done
+
+  dest=$root$cumul
+}
+
+
+do_install() {
+
+  dest="$1"
+
+  if [ ! -d "$dest" ] 
+  then
+    make_dir_tree "$dest"
+  else
+    if [ -n "$new_dir" ]
+    then
+      echo "$me: Directory $dest already exists -- skipping"
+      return
+    fi
+  fi
+
+  for src_file in $src
+  do
+    file=`basename $src_file`
+    dest_file="$dest/$file"
+
+    if [ -n "$new" ] && [ -f $dest_file ]
+    then
+      echo "$me: File $dest_file already exists -- skipping"
+      continue
+    fi
+
+    [ -n "$verbose" ] && echo "Copying $src_file to $dest_file"
+    cp "$src_file" "$dest_file" || exit 3
+
+    if [ -n "$mode" ] 
+    then
+      chmod "$mode" "$dest_file" || exit 4
+    fi
+  done
+
+  return
+}
+
+
+init_opts() {
+# verbose=
+  mode=
+  mode_dir=
+  new=
+  new_dir=
+  src=
+}
+
+
+### Main entry point
+
+me=`basename $0`
+init_opts
+while [ -n "$1" ]
+do
+  case "$1" in
+
+    -v) verbose=1 ;;
+    
+    -m) mode="$2" ; shift ;;
+    -md) mode_dir="$2" ; shift ;;
+
+    -n) new=1 ;;
+    -nd) new_dir=1 ;;
+
+    -d) do_install "$2" ; init_opts ; shift ;;
+
+    -*)
+      echo Usage: $me [options] [file...] -d directory
+      exit 5
+      ;;
+
+    *) src="$src $1" ;;
+
+  esac
+  shift
+done
+
+exit 0
diff --git a/build/link.sh b/build/link.sh
new file mode 100755 (executable)
index 0000000..d3a739c
--- /dev/null
@@ -0,0 +1,160 @@
+#!/bin/sh
+
+#
+# Yoink
+# Run this script to link the executable with fewer direct dependencies.
+#
+# You shouldn't call this directly; instead, use the configure script's
+# --enable-link-sh option and run make normally.  This isn't enabled by
+# default because there is the potential for runtime linking problems on
+# some platforms.  If you have a newer version of GCC, you should prefer
+# the --as-needed linker flag over this method, though they both should
+# accomplish the same thing.
+#
+# This script was adapted from some public domain code written by Bram
+# Moolenaar for Vim.  The only input needed is the link command in the
+# variable LINK.  It is expected that the linker will return an error code
+# or this will not work.  The script caches the test results in the
+# `.link/link.sed' file; delete that file if you want to redetermine the
+# required direct dependencies.
+#
+
+
+# List here any libraries that are known to not be needed on some platform.
+libraries="\
+       atk-1.0 \
+       cairo \
+       fontconfig \
+       freetype \
+       gdk-x11-2.0 \
+       gio-2.0 \
+       glib-2.0 \
+       gmodule-2.0 \
+       ogg \
+       pango-1.0 \
+       pangocairo-1.0 \
+       pangoft2-1.0 \
+       pthread \
+       vorbis \
+       $THE_END"
+
+
+linkdir=".link"
+logfile="$linkdir/link.log"
+sedfile="$linkdir/link.sed"
+
+workdir=$(mktemp -d tmp.XXXXXXXX)
+cmdfile="$workdir/link.cmd"
+runfile="$workdir/link.run"
+
+tmpfile1="$workdir/link.tmp1"
+tmpfile2="$workdir/link.tmp2"
+tmpfile3="$workdir/link.tmp3"
+
+
+printlog()
+{
+       echo "link.sh: $@"
+}
+
+echo "$LINK " >$cmdfile
+exitcode=0
+
+
+if test -f $sedfile
+then
+       printlog "The file $sedfile exists, which is now going to be used."
+       printlog "If linking fails, try deleting the $sedfile file."
+       printlog "If that fails, try creating an empty $sedfile file."
+       printlog "If that fails, configure the package with --disable-link-sh."
+else
+       cat $cmdfile
+       if sh $cmdfile
+       then
+               mkdir -p $linkdir
+               touch $sedfile
+               cp $cmdfile $runfile
+               for libname in $libraries
+               do
+                       cont=yes
+                       while test -n "$cont"
+                       do
+                               if grep "l$libname " $runfile >/dev/null
+                               then
+                                       if test ! -f $tmpfile1
+                                       then
+                                               printlog "Full linking works; now the fun begins."
+                                               printlog "See $logfile for details."
+                                               rm -f $logfile
+                                       fi
+                                       echo "s/-l$libname  *//" >$tmpfile1
+                                       sed -f $sedfile <$cmdfile | sed -f $tmpfile1 >$runfile
+                                       # keep the last -lm; this is supposedly needed by HP-UX
+                                       if test $libname != "m" || grep "lm " $runfile >/dev/null
+                                       then
+                                               printlog "Trying to remove the $libname library..."
+                                               cat $runfile >>$logfile
+                                               if sh $runfile >>$logfile 2>&1
+                                               then
+                                                       printlog "We don't need the $libname library!"
+                                                       cat $tmpfile1 >>$sedfile
+                                                       continue
+                                               else
+                                                       printlog "We DO need the $libname library."
+                                               fi
+                                       fi
+                               fi
+                               cont=
+                               cp $cmdfile $runfile
+                       done
+               done
+               if test ! -f $tmpfile1
+               then
+                       printlog "Linked fine, no libraries can be removed."
+                       touch $tmpfile3
+               fi
+       else
+               exitcode=$?
+       fi
+fi
+
+
+if test -s $sedfile
+then
+       printlog "Using $sedfile file to remove a few libraries."
+       sed -f $sedfile <$cmdfile >$runfile
+       cat $runfile
+       if sh $runfile
+       then
+               exitcode=0
+               printlog "Linked fine with a few libraries removed."
+       else
+               exitcode=$?
+               printlog "Linking failed, making $sedfile empty and trying again."
+               mv -f $sedfile $tmpfile2
+               touch $sedfile
+       fi
+fi
+
+if test -f $sedfile -a ! -s $sedfile -a ! -f $tmpfile3
+then
+       printlog "Using unmodified link command."
+       cat $cmdfile
+       if sh $cmdfile
+       then
+               exitcode=0
+               printlog "Linked OK."
+       else
+               exitcode=$?
+               if test -f $tmpfile2
+               then
+                       printlog "Linking doesn't work at all, removing $sedfile."
+                       rm -f $sedfile
+               fi
+       fi
+fi
+
+
+rm -rf "$workdir"
+exit $exitcode
+
index d45b7566fccedba5db34cc4a2e463f2207b81100..a4f33cb40b21f52d65b956a13b305135c75305bd 100644 (file)
@@ -77,6 +77,12 @@ AC_ARG_ENABLE([threads],
                          [threads=$enableval],
                          [threads=no])
 
+AC_ARG_ENABLE([hotloading],
+                         [AS_HELP_STRING([--enable-hotloading],
+                                                         [monitor assets and reload them when they change])],
+                         [hotloading=$enableval],
+                         [hotloading=no])
+
 AC_ARG_WITH([gtk],
                        [AS_HELP_STRING([--with-gtk],
                                                        [use gtk2 modal dialogs])],
@@ -127,6 +133,12 @@ then
                          [Define to 1 if you want to use threads when applicable.])
 fi
 
+if test x$hotloading = xyes
+then
+       AC_DEFINE([USE_HOTLOADING], 1,
+                         [Define to 1 if you want to use hotloading assets.])
+fi
+
 if test x$gtk = xyes
 then
        AC_DEFINE([USE_GTK], 1,
@@ -216,6 +228,13 @@ AM_CONDITIONAL([HAVE_MAKENSIS], [test x$MAKENSIS != x])
 AC_MSG_NOTICE([Checks for libraries.])
 ####
 
+##### boost#####
+website="http://www.boost.org/"
+BOOST_BIND
+BOOST_FUNCTION
+BOOST_SMART_PTR
+BOOST_STRING_ALGO
+
 ##### SDL #####
 website="http://www.libsdl.org/"
 PKG_CHECK_MODULES([SDL], [sdl],
@@ -314,11 +333,6 @@ AC_HEADER_STDBOOL
 AC_HEADER_STDC
 AC_CHECK_HEADERS([arpa/inet.h byteswap.h fcntl.h stddef.h stdint.h stdlib.h string.h unistd.h])
 
-BOOST_SMART_PTR
-BOOST_STRING_ALGO
-BOOST_BIND
-BOOST_FUNCTION
-
 
 ####
 AC_MSG_NOTICE([Checks for types.])
diff --git a/data/rules.mk b/data/rules.mk
new file mode 100644 (file)
index 0000000..92d7529
--- /dev/null
@@ -0,0 +1,25 @@
+
+#########################
+sp             := $(sp).x
+dirstack_$(sp) := $(d)
+d              := $(dir)
+#########################
+
+#
+# Define rules and targets for data files.
+#
+
+TGTS_$(d) := $(DATA_FILES)
+
+# TODO: Also need to install yoink.desktop and the pixmap.
+
+
+TGT_DATA  := $(TGT_DATA) $(DATA_FILES)
+
+
+#######################
+-include $(DEPS_$(d))
+d  := $(dirstack_$(sp))
+sp := $(basename $(sp))
+#######################
+
index f6f362cbeedb0d88403317c000cd0293d70ef0bd..d26ac4d83481a0a22dfb08bf9a72eb853f4fd0ab 100644 (file)
@@ -1,6 +1,5 @@
 
 -- Example Yoink Configuration File
--- ex:ft=lua ts=4 sw=4 tw=75
 
 print "loading default settings..."
 
@@ -54,12 +53,9 @@ resizable            = true
 -- videomode to override the default resolution.  If the fullscreen option
 -- is false, videomode will determine the size of the window.
 
---videomode            = {800, 600}
-
--- Set this to make the cursor remain visible as you mouse over the video
--- output of the game.
-
-showcursor             = false
+if fullscreen == false then
+       videomode       = {800, 600}
+end
 
 -- Set this to use double-buffering to improve animation quality.  You
 -- really don't want to turn this off.
@@ -74,12 +70,15 @@ doublebuffer        = true
 
 swapcontrol            = true
 
--- Set the level of log detail that will be printed to the console.
+-- Set the level of log detail that will be output to the console.
 -- Possible values are:
 -- 0 print nothing
--- 1 errors only
+-- 1 output errors only
 -- 2 include warnings
 -- 3 print everything, including debug messages
 
 loglevel               = 2
 
+
+-- vi:ft=lua ts=4 sw=4 tw=75
+
diff --git a/doc/rules.mk b/doc/rules.mk
new file mode 100644 (file)
index 0000000..c654bbd
--- /dev/null
@@ -0,0 +1,23 @@
+
+#########################
+sp             := $(sp).x
+dirstack_$(sp) := $(d)
+d              := $(dir)
+#########################
+
+#
+# Define rules and targets for data files.
+#
+
+TGTS_$(d) := $(d)/yoink.6.in
+
+
+TGT_MAN  := $(TGT_MAN) $(DATA_FILES)
+
+
+#######################
+-include $(DEPS_$(d))
+d  := $(dirstack_$(sp))
+sp := $(basename $(sp))
+#######################
+
index 24787e8392f6da0ecd0d6274ca950c702a69967f..b730c6bed62b4b2eb23c2fd762c4f1009890e94e 100644 (file)
@@ -12,7 +12,7 @@ Yoink \- An alien-smashing action game.
 .B yoink [-hi] [OPTION=VALUE]...
 .SH DESCRIPTION
 Leap tall buildings!  Crush stupid robots beneath your feet!  Wield your
-extra-terrestrial powers in the defence of humanity, and send those alien
+extra-terrestrial powers in the defense of humanity, and send those alien
 invaders back from whence they came!
 
 You play the part of a flying alien heroine who must defend her home on
index ba34bc5d9f95cae0bc86fa0aba1242cf73cf4626..503f77a47c2eecf21a24a2986d082061358af829 100644 (file)
@@ -139,7 +139,7 @@ public:
                        moof::script script;
                        std::string path(name);
                        
-                       if (!Animation::find_path(path))
+                       if (!resource::find(path))
                        {
                                throw std::runtime_error("cannot find resource " + name);
                        }
@@ -306,14 +306,3 @@ unsigned Animation::getFrame() const
        return impl_->mFrameIndex;
 }
 
-
-/**
- * Specialized search location for animation files.  They can be found in
- * the "animations" subdirectory of any of the search directories.
- */
-
-bool Animation::find_path(std::string& name)
-{
-       return moof::resource::find_path(name, "animations/", "lua");
-}
-
index ba3860113ba180a69f5c0ae276bf455879958199..3875b45f4819dccb880d4df763fbd676a8f4a708 100644 (file)
@@ -38,9 +38,6 @@ typedef boost::shared_ptr<Animation> AnimationP;
 
 class Animation : public moof::resource
 {
-       class impl;
-       boost::shared_ptr<impl> impl_;
-
 public:
 
        Animation(const std::string& name);
@@ -56,7 +53,11 @@ public:
        void update(moof::scalar t, moof::scalar dt);
        unsigned getFrame() const;
 
-       static bool find_path(std::string& name);
+
+private:
+
+       class impl;
+       boost::shared_ptr<impl> impl_;
 };
 
 
index a857cbebfa6fffbb76facc3830c220d67df59b52..01b4753f0f2287372e23b527293a050ee4fd1117 100644 (file)
@@ -73,13 +73,13 @@ Character::Character(const std::string& name) :
 
        // forces
        state_.force = moof::vector2(0.0, 0.0);
-       //state_.forces.push_back(SpringForce(moof::vector2(5.0, 4.0)));
+       state_.forces.push_back(SpringForce(moof::vector2(5.0, 4.0)));
        state_.forces.push_back(ResistanceForce(2.0));
-       //state_.forces.push_back(moof::linear_state<2>::gravity_force(-9.8));
+       state_.forces.push_back(moof::linear_state<2>::gravity_force(-9.8));
 
        // starting position
        state_.position = moof::vector2(5.0, 5.0);
-       state_.momentum = moof::vector2(0.0, 0.0);
+       state_.momentum = moof::vector2(1.0, 0.0);
        state_.recalculate();
 
        prev_state_ = state_;
index 0498182a9888b22eaac118a55f26b16df2025f86..2518bdf7971c339739c018f7e8e87835cc6747b6 100644 (file)
@@ -30,7 +30,7 @@ void GameLayer::loadSceneLoader()
        moof::log::import(state_.script);
 
        std::string path("loader");
-       if (!Scene::find_path(path))
+       if (!moof::resource::find(path))
        {
                throw std::runtime_error("cannot find scene loader script");
        }
@@ -79,14 +79,18 @@ void GameLayer::advanceScene(moof::settings& settings)
 }
 
 
-GameLayer::GameLayer() :
-       mMusic("NightFusionIntro"),
-       mPunchSound("Thump")
+GameLayer::GameLayer()
 {
-       mMusic.loop(true);
-       mMusic.enqueue("NightFusionLoop");
+       moof::log_info("about to load sound resource...");
+       music_ = moof::resource::load("sounds/NightFusionIntro.ogg");
+       if (music_)
+       {
+               music_->loop(true);
+               music_->enqueue("NightFusionLoop");
+       }
+       else moof::log_error("music not loaded");
 
-       //mMusic.setPosition(moof::vector3(10.0, 5.0, 0.0));
+       //music_->position(moof::vector3(10.0, 5.0, 0.0));
 
        mThinkTimer.init(boost::bind(&GameLayer::thinkTimer, this),
                        0.1, moof::timer::repeat);
@@ -102,7 +106,7 @@ void GameLayer::did_add_to_view()
 {
        bool isMute = false;
        settings().get("nomusic", isMute);
-       if (!isMute) mMusic.play();
+       if (!isMute) music_->play();
 
        loadSceneLoader();
        advanceScene(settings());               // load the first scene
@@ -216,12 +220,12 @@ bool GameLayer::handle_event(const moof::event& event)
                        {
                                state_.heroine->animation.startSequence("Flattened");
                                moof::log_info("thump!");
-                               mPunchSound.play();
+                               //mPunchSound.play();
                                return true;
                        }
                        else if (event.key.keysym.sym == SDLK_m)
                        {
-                               mMusic.toggle();
+                               music_->toggle();
                                return true;
                        }
                        else if (event.key.keysym.sym == SDLK_PAGEUP)
@@ -278,7 +282,7 @@ void GameLayer::projection()
 
 void GameLayer::projection(moof::scalar width, moof::scalar height)
 {
-       state_.camera.projection(moof::rad(45.0),
+       state_.camera.projection(moof::rad(60.0),
                                                         width / height,
                                                         SCALAR(1.0), SCALAR(200.0));
 }
index c194e9f2935f87cec180c9f8f2c4960c4f188d85..37eb8e07874dda42593d09e0efe7a1de2c305bd4 100644 (file)
@@ -71,12 +71,14 @@ private:
 
        HudP                    mHud;
 
-       moof::sound_stream      mMusic;
-       moof::sound             mPunchSound;
+       //moof::sound_stream    mMusic;
+       //moof::sound           mPunchSound;
+       
+       moof::sound_stream_handle       music_;
 
        moof::ray2              mRay;
        moof::line2             mLine;
-       moof::circle            mCircle;
+       moof::circle    mCircle;
 
        moof::timer             mRayTimer;
        void rayTimer();
index bb6b35bc1fd30ecde0c4b3dfb06108a4269c76ef..2df3f1e93da9e96cf114f998df45b5e063c7d03e 100644 (file)
@@ -27,9 +27,6 @@
 #include "Main.hh"
 #include "TitleLayer.hh"
 
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
 #include "version.h"
 
 
@@ -128,7 +125,7 @@ std::string Main::getConfigPath()
        // 4. YOINKRC (environment)
 
        std::string path("yoinkrc");
-       moof::resource::find_path(path);
+       moof::resource::find(path);
 
 #if !defined(_WIN32)
        path += ":/etc/yoinkrc";
@@ -245,6 +242,10 @@ void Main::printInfo(int argc, char* argv[])
                          << "-"
 #endif
                          << "gtk "
+#ifndef USE_HOTLOADING
+                         << "-"
+#endif
+                         << "hotloading "
 #ifndef PROFILING_ENABLED
                          << "-"
 #endif
@@ -278,8 +279,111 @@ void goodbye()
 
 #include <moof/socket.hh>
 
+#include <fstream>
+
+class MyAsset
+{
+public:
+       MyAsset(const std::string& path)
+       {
+               moof::log_info("MyAsset loading:", path);
+
+               char buffer[1024];
+
+               std::ifstream stream(path.c_str());
+               stream.getline(buffer, sizeof(buffer));
+               str = buffer;
+               stream.close();
+
+               cool();
+       }
+
+       void cool()
+       {
+               moof::log_info("MyAsset COOL:", str);
+       }
+
+       void groovy()
+       {
+               moof::log_info("MyAsset GROOVY!!!!", str);
+       }
+
+       std::string str;
+};
+
+typedef moof::resource_handle<MyAsset> MyAsset_handle;
+
+class AnotherAsset
+{
+public:
+       AnotherAsset(const std::string& path, double d = 5.0)
+       {
+               moof::log_info("AnotherAsset loading:", path);
+               dude = d;
+       }
+
+
+       void cool()
+       {
+               moof::log_info("AnotherAsset cool", dude);
+       }
+
+       void groovy()
+       {
+               moof::log_info("AnotherAsset GROOVY!!!!", dude);
+       }
+
+       double dude;
+};
+
+
 int main(int argc, char* argv[])
 {
+       moof::resource::register_type<MyAsset>("mine");
+       //moof::resource::add_type<AnotherAsset>("k");
+       
+       //{
+       //moof::resource_ptr myAsset = moof::resource::load(assetName,
+                       //"prefix", "mine");
+
+       //MyAsset_handle aCopy = myAsset;
+
+       //MyAsset_handle copy2 = moof::resource::load(assetName, "asdfas", "mine");
+
+       ////if (myAsset->check<MyAsset>()) myAsset->get<AnotherAsset>()->cool();
+       //myAsset->get<MyAsset>()->cool();
+       ////myAsset->get<AnotherAsset>()->groovy();
+       
+       //aCopy.get()->cool();
+       //copy2.get()->cool();
+
+       //log_info("rsrc ptr:", moof::resource::load(assetName, "", "mine"));
+       //}
+       //log_info("rsrc ptr:", moof::resource::load(assetName, "", "k"));
+       //moof::resource::load(assetName, "", "mine")->get<MyAsset>()->cool();
+
+       ////if (myAsset) myAsset.get()->cool();
+       ////else moof::log_error("asset not obtained...");
+       
+       MyAsset_handle myAsset = moof::resource::load("/home/chaz/meh.mine");
+       MyAsset* asset = myAsset.get();
+       if (asset) asset->cool();
+       else moof::log_warning("no asset obtained!!");
+
+       moof::timer reloadTimer(
+                       boost::bind(&moof::resource::reload_as_needed),
+                       SCALAR(2.0),
+                       moof::timer::repeat);
+
+       //for (;;)
+       //{
+               //myAsset.get()->cool();
+               //moof::resource::reload_as_needed();
+               //sleep(1);
+       //}
+
+       //return 0;
+
        moof::resolver_task task("4950", "lappy");
        task.run();
 
@@ -344,7 +448,7 @@ int main(int argc, char* argv[])
 
 
        //return 0;
-
+       
 
        if (argc > 1)
        {
@@ -375,7 +479,7 @@ int main(int argc, char* argv[])
        try
        {
                std::string iconPath(PACKAGE".png");
-               moof::resource::find_path(iconPath);
+               moof::resource::find(iconPath);
                moof::image icon(iconPath);
                icon.set_as_icon();
 
index aa4a0d9c028409bf75c3210f5b897f22cdf1a311..0a3c616a685a4774a4cde93561ad0e4741a2b134 100644 (file)
@@ -13,7 +13,7 @@
 #define _MAIN_HH_
 
 /**
- * @file Main.hh
+ * \file Main.hh
  * This is where all the fun begins.
  */
 
index 61be61016885df1ad74557f77e2a17cf15b18503..7a680c8d61c4e0bcfabac435c66fa37e3a16c55d 100644 (file)
 #
 
 
+#
+# libstlplus.a
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+noinst_LIBRARIES = libstlplus.a
+
+libstlplus_a_SOURCES = \
+                                          stlplus/containers/containers.hpp \
+                                          stlplus/containers/containers_fixes.hpp \
+                                          stlplus/containers/copy_functors.hpp \
+                                          stlplus/containers/digraph.hpp \
+                                          stlplus/containers/digraph.tpp \
+                                          stlplus/containers/exceptions.hpp \
+                                          stlplus/containers/foursome.hpp \
+                                          stlplus/containers/foursome.tpp \
+                                          stlplus/containers/hash.hpp \
+                                          stlplus/containers/hash.tpp \
+                                          stlplus/containers/matrix.hpp \
+                                          stlplus/containers/matrix.tpp \
+                                          stlplus/containers/ntree.hpp \
+                                          stlplus/containers/ntree.tpp \
+                                          stlplus/containers/safe_iterator.hpp \
+                                          stlplus/containers/safe_iterator.tpp \
+                                          stlplus/containers/simple_ptr.hpp \
+                                          stlplus/containers/simple_ptr.tpp \
+                                          stlplus/containers/smart_ptr.hpp \
+                                          stlplus/containers/smart_ptr.tpp \
+                                          stlplus/containers/triple.hpp \
+                                          stlplus/containers/triple.tpp \
+                                          stlplus/persistence/persistence.hpp \
+                                          stlplus/persistence/persistence_fixes.hpp \
+                                          stlplus/persistence/persistent.hpp \
+                                          stlplus/persistence/persistent_basic.hpp \
+                                          stlplus/persistence/persistent_bitset.hpp \
+                                          stlplus/persistence/persistent_bitset.tpp \
+                                          stlplus/persistence/persistent_bool.cpp \
+                                          stlplus/persistence/persistent_bool.hpp \
+                                          stlplus/persistence/persistent_callback.hpp \
+                                          stlplus/persistence/persistent_callback.tpp \
+                                          stlplus/persistence/persistent_complex.hpp \
+                                          stlplus/persistence/persistent_complex.tpp \
+                                          stlplus/persistence/persistent_contexts.cpp \
+                                          stlplus/persistence/persistent_contexts.hpp \
+                                          stlplus/persistence/persistent_cstring.cpp \
+                                          stlplus/persistence/persistent_cstring.hpp \
+                                          stlplus/persistence/persistent_deque.hpp \
+                                          stlplus/persistence/persistent_deque.tpp \
+                                          stlplus/persistence/persistent_digraph.hpp \
+                                          stlplus/persistence/persistent_digraph.tpp \
+                                          stlplus/persistence/persistent_enum.hpp \
+                                          stlplus/persistence/persistent_enum.tpp \
+                                          stlplus/persistence/persistent_exceptions.cpp \
+                                          stlplus/persistence/persistent_exceptions.hpp \
+                                          stlplus/persistence/persistent_float.cpp \
+                                          stlplus/persistence/persistent_float.hpp \
+                                          stlplus/persistence/persistent_foursome.hpp \
+                                          stlplus/persistence/persistent_foursome.tpp \
+                                          stlplus/persistence/persistent_hash.hpp \
+                                          stlplus/persistence/persistent_hash.tpp \
+                                          stlplus/persistence/persistent_inf.cpp \
+                                          stlplus/persistence/persistent_inf.hpp \
+                                          stlplus/persistence/persistent_int.cpp \
+                                          stlplus/persistence/persistent_int.hpp \
+                                          stlplus/persistence/persistent_interface.hpp \
+                                          stlplus/persistence/persistent_interface.tpp \
+                                          stlplus/persistence/persistent_list.hpp \
+                                          stlplus/persistence/persistent_list.tpp \
+                                          stlplus/persistence/persistent_map.hpp \
+                                          stlplus/persistence/persistent_map.tpp \
+                                          stlplus/persistence/persistent_matrix.hpp \
+                                          stlplus/persistence/persistent_matrix.tpp \
+                                          stlplus/persistence/persistent_multimap.hpp \
+                                          stlplus/persistence/persistent_multimap.tpp \
+                                          stlplus/persistence/persistent_multiset.hpp \
+                                          stlplus/persistence/persistent_multiset.tpp \
+                                          stlplus/persistence/persistent_ntree.hpp \
+                                          stlplus/persistence/persistent_ntree.tpp \
+                                          stlplus/persistence/persistent_pair.hpp \
+                                          stlplus/persistence/persistent_pair.tpp \
+                                          stlplus/persistence/persistent_pointer.hpp \
+                                          stlplus/persistence/persistent_pointer.tpp \
+                                          stlplus/persistence/persistent_pointers.hpp \
+                                          stlplus/persistence/persistent_set.hpp \
+                                          stlplus/persistence/persistent_set.tpp \
+                                          stlplus/persistence/persistent_shortcuts.hpp \
+                                          stlplus/persistence/persistent_shortcuts.tpp \
+                                          stlplus/persistence/persistent_simple_ptr.hpp \
+                                          stlplus/persistence/persistent_simple_ptr.tpp \
+                                          stlplus/persistence/persistent_smart_ptr.hpp \
+                                          stlplus/persistence/persistent_smart_ptr.tpp \
+                                          stlplus/persistence/persistent_stl.hpp \
+                                          stlplus/persistence/persistent_stlplus.hpp \
+                                          stlplus/persistence/persistent_string.cpp \
+                                          stlplus/persistence/persistent_string.hpp \
+                                          stlplus/persistence/persistent_string.tpp \
+                                          stlplus/persistence/persistent_triple.hpp \
+                                          stlplus/persistence/persistent_triple.tpp \
+                                          stlplus/persistence/persistent_vector.cpp \
+                                          stlplus/persistence/persistent_vector.hpp \
+                                          stlplus/persistence/persistent_vector.tpp \
+                                          stlplus/persistence/persistent_xref.hpp \
+                                          stlplus/persistence/persistent_xref.tpp \
+                                          stlplus/portability/build.cpp \
+                                          stlplus/portability/build.hpp \
+                                          stlplus/portability/debug.cpp \
+                                          stlplus/portability/debug.hpp \
+                                          stlplus/portability/dprintf.cpp \
+                                          stlplus/portability/dprintf.hpp \
+                                          stlplus/portability/dynaload.cpp \
+                                          stlplus/portability/dynaload.hpp \
+                                          stlplus/portability/file_system.cpp \
+                                          stlplus/portability/file_system.hpp \
+                                          stlplus/portability/inf.cpp \
+                                          stlplus/portability/inf.hpp \
+                                          stlplus/portability/ip_sockets.cpp \
+                                          stlplus/portability/ip_sockets.hpp \
+                                          stlplus/portability/portability.hpp \
+                                          stlplus/portability/portability_exceptions.hpp \
+                                          stlplus/portability/portability_fixes.cpp \
+                                          stlplus/portability/portability_fixes.hpp \
+                                          stlplus/portability/subprocesses.cpp \
+                                          stlplus/portability/subprocesses.hpp \
+                                          stlplus/portability/tcp.hpp \
+                                          stlplus/portability/tcp_sockets.cpp \
+                                          stlplus/portability/tcp_sockets.hpp \
+                                          stlplus/portability/time.cpp \
+                                          stlplus/portability/time.hpp \
+                                          stlplus/portability/udp_sockets.cpp \
+                                          stlplus/portability/udp_sockets.hpp \
+                                          stlplus/portability/version.cpp \
+                                          stlplus/portability/version.hpp \
+                                          stlplus/portability/wildcard.cpp \
+                                          stlplus/portability/wildcard.hpp \
+                                          stlplus/strings/format_types.hpp \
+                                          stlplus/strings/print_address.cpp \
+                                          stlplus/strings/print_address.hpp \
+                                          stlplus/strings/print_basic.hpp \
+                                          stlplus/strings/print_bitset.hpp \
+                                          stlplus/strings/print_bitset.tpp \
+                                          stlplus/strings/print_bool.cpp \
+                                          stlplus/strings/print_bool.hpp \
+                                          stlplus/strings/print_cstring.cpp \
+                                          stlplus/strings/print_cstring.hpp \
+                                          stlplus/strings/print_digraph.hpp \
+                                          stlplus/strings/print_digraph.tpp \
+                                          stlplus/strings/print_float.cpp \
+                                          stlplus/strings/print_float.hpp \
+                                          stlplus/strings/print_foursome.hpp \
+                                          stlplus/strings/print_foursome.tpp \
+                                          stlplus/strings/print_hash.hpp \
+                                          stlplus/strings/print_hash.tpp \
+                                          stlplus/strings/print_inf.cpp \
+                                          stlplus/strings/print_inf.hpp \
+                                          stlplus/strings/print_int.cpp \
+                                          stlplus/strings/print_int.hpp \
+                                          stlplus/strings/print_list.hpp \
+                                          stlplus/strings/print_list.tpp \
+                                          stlplus/strings/print_map.hpp \
+                                          stlplus/strings/print_map.tpp \
+                                          stlplus/strings/print_matrix.hpp \
+                                          stlplus/strings/print_matrix.tpp \
+                                          stlplus/strings/print_ntree.hpp \
+                                          stlplus/strings/print_ntree.tpp \
+                                          stlplus/strings/print_pair.hpp \
+                                          stlplus/strings/print_pair.tpp \
+                                          stlplus/strings/print_pointer.hpp \
+                                          stlplus/strings/print_pointer.tpp \
+                                          stlplus/strings/print_sequence.hpp \
+                                          stlplus/strings/print_sequence.tpp \
+                                          stlplus/strings/print_set.hpp \
+                                          stlplus/strings/print_set.tpp \
+                                          stlplus/strings/print_simple_ptr.hpp \
+                                          stlplus/strings/print_simple_ptr.tpp \
+                                          stlplus/strings/print_smart_ptr.hpp \
+                                          stlplus/strings/print_smart_ptr.tpp \
+                                          stlplus/strings/print_stl.hpp \
+                                          stlplus/strings/print_stlplus.hpp \
+                                          stlplus/strings/print_string.cpp \
+                                          stlplus/strings/print_string.hpp \
+                                          stlplus/strings/print_triple.hpp \
+                                          stlplus/strings/print_triple.tpp \
+                                          stlplus/strings/print_vector.cpp \
+                                          stlplus/strings/print_vector.hpp \
+                                          stlplus/strings/print_vector.tpp \
+                                          stlplus/strings/string_address.cpp \
+                                          stlplus/strings/string_address.hpp \
+                                          stlplus/strings/string_basic.hpp \
+                                          stlplus/strings/string_bitset.hpp \
+                                          stlplus/strings/string_bitset.tpp \
+                                          stlplus/strings/string_bool.cpp \
+                                          stlplus/strings/string_bool.hpp \
+                                          stlplus/strings/string_cstring.cpp \
+                                          stlplus/strings/string_cstring.hpp \
+                                          stlplus/strings/string_digraph.hpp \
+                                          stlplus/strings/string_digraph.tpp \
+                                          stlplus/strings/string_float.cpp \
+                                          stlplus/strings/string_float.hpp \
+                                          stlplus/strings/string_foursome.hpp \
+                                          stlplus/strings/string_foursome.tpp \
+                                          stlplus/strings/string_hash.hpp \
+                                          stlplus/strings/string_hash.tpp \
+                                          stlplus/strings/string_inf.cpp \
+                                          stlplus/strings/string_inf.hpp \
+                                          stlplus/strings/string_int.cpp \
+                                          stlplus/strings/string_int.hpp \
+                                          stlplus/strings/string_list.hpp \
+                                          stlplus/strings/string_list.tpp \
+                                          stlplus/strings/string_map.hpp \
+                                          stlplus/strings/string_map.tpp \
+                                          stlplus/strings/string_matrix.hpp \
+                                          stlplus/strings/string_matrix.tpp \
+                                          stlplus/strings/string_ntree.hpp \
+                                          stlplus/strings/string_ntree.tpp \
+                                          stlplus/strings/string_pair.hpp \
+                                          stlplus/strings/string_pair.tpp \
+                                          stlplus/strings/string_pointer.hpp \
+                                          stlplus/strings/string_pointer.tpp \
+                                          stlplus/strings/string_sequence.hpp \
+                                          stlplus/strings/string_sequence.tpp \
+                                          stlplus/strings/string_set.hpp \
+                                          stlplus/strings/string_set.tpp \
+                                          stlplus/strings/string_simple_ptr.hpp \
+                                          stlplus/strings/string_simple_ptr.tpp \
+                                          stlplus/strings/string_smart_ptr.hpp \
+                                          stlplus/strings/string_smart_ptr.tpp \
+                                          stlplus/strings/string_stl.hpp \
+                                          stlplus/strings/string_stlplus.hpp \
+                                          stlplus/strings/string_string.cpp \
+                                          stlplus/strings/string_string.hpp \
+                                          stlplus/strings/string_triple.hpp \
+                                          stlplus/strings/string_triple.tpp \
+                                          stlplus/strings/string_utilities.cpp \
+                                          stlplus/strings/string_utilities.hpp \
+                                          stlplus/strings/string_vector.cpp \
+                                          stlplus/strings/string_vector.hpp \
+                                          stlplus/strings/string_vector.tpp \
+                                          stlplus/strings/strings.hpp \
+                                          stlplus/strings/strings_fixes.hpp \
+                                          stlplus/subsystems/cli_parser.cpp \
+                                          stlplus/subsystems/cli_parser.hpp \
+                                          stlplus/subsystems/ini_manager.cpp \
+                                          stlplus/subsystems/ini_manager.hpp \
+                                          stlplus/subsystems/library_manager.cpp \
+                                          stlplus/subsystems/library_manager.hpp \
+                                          stlplus/subsystems/message_handler.cpp \
+                                          stlplus/subsystems/message_handler.hpp \
+                                          stlplus/subsystems/subsystems.hpp \
+                                          stlplus/subsystems/subsystems_fixes.hpp \
+                                          stlplus/subsystems/timer.cpp \
+                                          stlplus/subsystems/timer.hpp \
+                                          $(ENDLIST)
+
+
 #
 # libmoof.a
 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 noinst_LIBRARIES = libmoof.a
 
-libmoof_a_CPPFLAGS = -I$(top_srcdir)/src/moof
+#libmoof_a_CPPFLAGS = -I$(top_srcdir)/src/moof
 
 libmoof_a_SOURCES = \
                                        moof/aabb.cc \
@@ -77,7 +330,7 @@ libmoof_a_SOURCES = \
                                        moof/fastevents.h \
                                        $(ENDLIST)
 
-EXTRA_DIST = moof/cml moof/stlplus
+EXTRA_DIST = cml
 
 
 #
@@ -86,8 +339,8 @@ EXTRA_DIST = moof/cml moof/stlplus
 
 bin_PROGRAMS = yoink
 
-yoink_CPPFLAGS = -I$(top_srcdir)/src/moof
-yoink_LDADD = libmoof.a
+#yoink_CPPFLAGS = -I$(top_srcdir)/src/moof
+yoink_LDADD = libstlplus.a libmoof.a
 
 yoink_SOURCES = \
                                Animation.cc \
index 9510e3670577fff9a7385f343f34a6773a9a9392..2d8f12025d3c8fd119d99d86e58368f03793a876 100644 (file)
@@ -195,7 +195,7 @@ struct Scene::impl : public moof::manager<impl>
        moof::script::status load(moof::settings& settings, moof::script& script)
        {
                std::string path(name());
-               if (!Scene::find_path(path))
+               if (!resource::find(path))
                {
                        script.push("the scene file could not be found");
                        return moof::script::file_error;
@@ -574,8 +574,3 @@ bool Scene::checkForCollision(Character& character)
 }
 
 
-bool Scene::find_path(std::string& name)
-{
-       return moof::resource::find_path(name, "scenes/", "lua");
-}
-
index 9cebc3c5034660b4debaf470a9f56e6631b012ab..3c14b47e81564ee89c76a29e5631ec7d86e35845 100644 (file)
@@ -57,8 +57,6 @@ public:
        bool castRay(const moof::ray<2>& ray,
                        std::list<moof::ray<2>::contact>& hits) const;
        bool checkForCollision(Character& character);
-
-       static bool find_path(std::string& name);
 };
 
 
index 6bc70f3b6d7d7a251dab5bf3eef26100ac51ed9a..7a206c0b77a4c806b0111d76bc8eb820d3a33e7b 100644 (file)
@@ -17,7 +17,7 @@
 
 void TitleLayer::did_add_to_view()
 {
-       mFadeIn.init(0.0, 1.0, 0.1);
+       mFadeIn.init(0.0, 1.0, 0.15);
 
        //mGameLayer = GameLayer::alloc();
 }
similarity index 100%
rename from src/moof/cml/cml.h
rename to src/cml/cml.h
similarity index 100%
rename from src/moof/cml/constants.h
rename to src/cml/constants.h
similarity index 100%
rename from src/moof/cml/core/fwd.h
rename to src/cml/core/fwd.h
similarity index 100%
rename from src/moof/cml/defaults.h
rename to src/cml/defaults.h
similarity index 100%
rename from src/moof/cml/dynamic.h
rename to src/cml/dynamic.h
similarity index 100%
rename from src/moof/cml/et/tags.h
rename to src/cml/et/tags.h
similarity index 100%
rename from src/moof/cml/et/traits.h
rename to src/cml/et/traits.h
similarity index 100%
rename from src/moof/cml/external.h
rename to src/cml/external.h
similarity index 100%
rename from src/moof/cml/fixed.h
rename to src/cml/fixed.h
similarity index 100%
rename from src/moof/cml/matrix.h
rename to src/cml/matrix.h
similarity index 100%
rename from src/moof/cml/matrix/lu.h
rename to src/cml/matrix/lu.h
similarity index 100%
rename from src/moof/cml/util.h
rename to src/cml/util.h
similarity index 100%
rename from src/moof/cml/vector.h
rename to src/cml/vector.h
index 4a4e4bf71a2b6f711e100627d8d03221d9489f13..093b7d197d93658834b2c954aed5b38ec3f8b00b 100644 (file)
@@ -29,9 +29,8 @@ void camera::rotation(const quaternion& rotation)
 void camera::look_at(const vector3& point)
 {
        // FIXME: this doesn't work as expected
-       quaternion_rotation_aim_at(state_.orientation,
-                                                                       state_.position, point,
-                                                                       vector3(0.0, 1.0, 0.0));
+       quaternion_rotation_aim_at(state_.orientation, state_.position, point,
+                                                          vector3(0.0, 1.0, 0.0));
 }
 
 
diff --git a/src/moof/debug.hh b/src/moof/debug.hh
new file mode 100644 (file)
index 0000000..161a8af
--- /dev/null
@@ -0,0 +1,41 @@
+
+/*]  Copyright (c) 2009-2010, Charles McGarvey  [**************************
+**]  All rights reserved.
+*
+* vi:ts=4 sw=4 tw=75
+*
+* Distributable under the terms and conditions of the 2-clause BSD license;
+* see the file COPYING for a complete text of the license.
+*
+**************************************************************************/
+
+#ifndef _MOOF_DEBUG_HH_
+#define _MOOF_DEBUG_HH_
+
+/**
+ * \file debug.hh
+ * Debugging facilities.
+ */
+
+#include <cstdlib>             // exit
+
+#include <moof/log.hh>
+
+
+#undef ASSERT
+#if NDEBUG
+#define ASSERT(X)
+#else
+/**
+ * Macro which tests an assertion and issues a log_error() and exits if the
+ * assertion is false.
+ * \param X test to perform.
+ */
+#define ASSERT(X) if (!(X)) moof::log_error \
+       << "false assertion at " << __FILE__ << ":" << __LINE__ << ", " \
+       << #X, exit(1)
+#endif
+
+
+#endif // _MOOF_DEBUG_HH_
+
index 27cc650147ab98c81a90b4a6ff57d08dab4cab66..09639124da09d110b55cde03e73c8869d07e94f1 100644 (file)
@@ -19,7 +19,7 @@
 
 #include <string>
 
-#include <moof/stlplus/hash.hpp>
+#include <stlplus/containers/hash.hpp>
 
 
 namespace moof {
index f2f0c09294654145b89e068ebc34a0384c8d8ccf..93ef6d6d0e8e7e7f00f9a3b5b0e074b33c42ba22 100644 (file)
@@ -73,7 +73,7 @@ public:
        {
                std::string path(name);
 
-               FILE* fp = image::open_file(path);
+               FILE* fp = resource::open_file(path);
                if (!fp) return;
 
                png_byte        signature[8];
@@ -287,16 +287,5 @@ void image::set_as_icon() const
 }
 
 
-bool image::find_path(std::string& name)
-{
-       return resource::find_path(name, "images/", "png");
-}
-
-FILE* image::open_file(std::string& name)
-{
-       return resource::open_file(name, "images/", "png");
-}
-
-
 } // namespace moof
 
index 97572708379ba76210422f5adc708c8c8175b65e..614e614459a0fd0c5279d02e87f1bc895945c850 100644 (file)
@@ -58,8 +58,6 @@ public:
 
        void set_as_icon() const;
 
-       static bool find_path(std::string& name);
-
 
 private:
 
index 937ca8a93f28ecda6d37eba8d258c0b6ff876a2d..0a7aa012b480747e69c7e3577c1c6f3c8546f9f8 100644 (file)
@@ -95,12 +95,11 @@ public:
         */
        void update(scalar t, scalar dt)
        {
+               prior_ = state_;
+
                if (!is_done_)
                {
                        alpha_ += dt * scale_;
-                       prior_ = state_;
-                       state_ = function_(a_, b_, alpha_);
-
                        if (alpha_ > 1.0)
                        {
                                switch (mode_)
@@ -135,6 +134,8 @@ public:
                                                break;
                                }
                        }
+
+                       state_ = function_(a_, b_, alpha_);
                }
        }
 
index 2679b37306694763e1b0886a904a660f549f5fff..f65d571e854b98b74c37978c3c11ca84adbb1af4 100644 (file)
 #include <iostream>
 
 
-#undef ASSERT
-#if NDEBUG
-#define ASSERT(X)
-#else
-/**
- * Macro which tests an assertion and issues a log_error() and exits if the
- * assertion is false.
- * \param X test to perform
- */
-#define ASSERT(X) if (!(X)) moof::log_error \
-       << "false assertion at " << __FILE__ << ":" << __LINE__ << ", " \
-       << #X, exit(1)
-#endif
-
-
 namespace moof {
 
 
index 9a0c8eb82c8ef28eaa789ff6a4da4183bb18e1ec..1c09d6ea4cc620d125cab4633becd37273f0574c 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <SDL/SDL_opengl.h>
 
-#include <moof/cml/cml.h>
+#include <cml/cml.h>
 
 #if HAVE_CONFIG_H
 #include "config.h"
index 65bc61f79e54b286c3a511899888adaaa3ef2469..01dfc624795afe3d10c9e90fceca0f6663f62918 100644 (file)
@@ -143,7 +143,7 @@ struct modal_dialog
                gtk_window_set_title(GTK_WINDOW(dialog), title.c_str());
 
                std::string icon_path(PACKAGE".png");
-               if (resource::find_path(icon_path))
+               if (resource::find(icon_path))
                {
                        GdkPixbuf* iconPixbuf = gdk_pixbuf_new_from_file(icon_path.c_str(),
                                                                                                                         NULL);
@@ -183,7 +183,7 @@ struct modal_dialog
                dialog.setStandardButtons(QMessageBox::Close);
 
                std::string icon_path(PACKAGE".png");
-               if (resource::find_path(icon_path))
+               if (resource::find(icon_path))
                {
                        QIcon icon(icon_path.c_str());
                        dialog.setWindowIcon(icon);
index 0440b7df5749760861dfdfc4a5c913220258a450..4ae53114c998a28cae5d19db205f18faaf5d5a8f 100644 (file)
@@ -9,8 +9,6 @@
 *
 **************************************************************************/
 
-#include "../config.h"
-
 #include <algorithm>
 #if HAVE_BYTESWAP_H
 #include <byteswap.h>
index 03c519fc0cb41571283bb4d1af623326be8a05ec..55dd96c7a201989ab1bf7458a47edad34152881a 100644 (file)
@@ -84,7 +84,7 @@ public:
         * Write some bytes to the packet.
         * \param bytes The bytes.
         * \param size The number of bytes.
-        * return The number of bytes actually written.
+        * \return The number of bytes actually written.
         */
        size_t write(const void* bytes, size_t size);
 
@@ -140,7 +140,7 @@ public:
        /**
         * Get a pointer to an internal structure holding the serialized bytes
         * of the packet.
-        * return The pointer.
+        * \return The pointer.
         */
        const char* bytes() const
        {
index 3512878bb039f5cede9b164940c744eccadd664f..ac200f7831e380866665bc490a48ed416340a7e7 100644 (file)