pax_global_header00006660000000000000000000000064115131226410014506gustar00rootroot0000000000000052 comment=094dce28ac5e8362acb6865e8c0c3affb8eea9e1 gscanbus-0.8/000077500000000000000000000000001151312264100131625ustar00rootroot00000000000000gscanbus-0.8/AUTHORS000066400000000000000000000004741151312264100142370ustar00rootroot00000000000000Andreas Micklei Jim Harkins (ASCII dump, compilation fixes) Manfred Weihs (Major bugfixes) Simon Vogl (endianess fixes) Mark Knecht (bug reports) PK Chen of VIA Technologies, Inc (hardware)" Gareth McMullin (GTK+ 2 port) Many ideas taken from gnome1394 by Emanuel Pirker gscanbus-0.8/COPYING000066400000000000000000000431101151312264100142140ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gscanbus-0.8/ChangeLog000066400000000000000000000000421151312264100147300ustar00rootroot00000000000000See the GIT history for changes. gscanbus-0.8/INSTALL000066400000000000000000000363321151312264100142220ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. gscanbus-0.8/Makefile.am000066400000000000000000000015541151312264100152230ustar00rootroot00000000000000AM_CPPFLAGS = -DSYSCONFDIR="\"$(sysconfdir)\"" bin_PROGRAMS = gscanbus #bin_PROGRAMS = gscanbus @GSCANBUS-MPATROL@ @GSCANBUS-EFENCE@ #EXTRA_PROGRAMS = gscanbus-mpatrol gscanbus-efence #gscanbus-mpatrol_LDADD = mpatrol.so elf.so bfd.so iberty.so #gscanbus-efence_LDADD = efence.so gscanbus_SOURCES = fatal.c debug.c raw1394util.c simpleavc.c decodeselfid.c topologyTree.c rominfo.c topologyMap.c menues.c icons.c gscanbus.c #gscanbus_LDADD = @LIBOBJS@ EXTRA_DIST = debug.h decodeselfid.h fatal.h menues.h raw1394support.h raw1394util.h rominfo.h simpleavc.h topologyMap.h topologyTree.h icons.h gnome-qeye.xpm gnome-question.xpm gnome-term.xpm apple-green.xpm gnome-term-linux.xpm gtcd.xpm gnome-term-apple.xpm gnome-term-windows.xpm guid-resolv.conf oui-resolv.conf TODO INCLUDES = @GTK_CFLAGS@ LDADD = @GTK_LIBS@ sysconf_DATA = guid-resolv.conf oui-resolv.conf gscanbus-0.8/Makefile.in000066400000000000000000000543261151312264100152410ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = gscanbus$(EXEEXT) subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sysconfdir)" PROGRAMS = $(bin_PROGRAMS) am_gscanbus_OBJECTS = fatal.$(OBJEXT) debug.$(OBJEXT) \ raw1394util.$(OBJEXT) simpleavc.$(OBJEXT) \ decodeselfid.$(OBJEXT) topologyTree.$(OBJEXT) \ rominfo.$(OBJEXT) topologyMap.$(OBJEXT) menues.$(OBJEXT) \ icons.$(OBJEXT) gscanbus.$(OBJEXT) gscanbus_OBJECTS = $(am_gscanbus_OBJECTS) gscanbus_LDADD = $(LDADD) gscanbus_DEPENDENCIES = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(gscanbus_SOURCES) DIST_SOURCES = $(gscanbus_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' DATA = $(sysconf_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -DSYSCONFDIR="\"$(sysconfdir)\"" #bin_PROGRAMS = gscanbus @GSCANBUS-MPATROL@ @GSCANBUS-EFENCE@ #EXTRA_PROGRAMS = gscanbus-mpatrol gscanbus-efence #gscanbus-mpatrol_LDADD = mpatrol.so elf.so bfd.so iberty.so #gscanbus-efence_LDADD = efence.so gscanbus_SOURCES = fatal.c debug.c raw1394util.c simpleavc.c decodeselfid.c topologyTree.c rominfo.c topologyMap.c menues.c icons.c gscanbus.c #gscanbus_LDADD = @LIBOBJS@ EXTRA_DIST = debug.h decodeselfid.h fatal.h menues.h raw1394support.h raw1394util.h rominfo.h simpleavc.h topologyMap.h topologyTree.h icons.h gnome-qeye.xpm gnome-question.xpm gnome-term.xpm apple-green.xpm gnome-term-linux.xpm gtcd.xpm gnome-term-apple.xpm gnome-term-windows.xpm guid-resolv.conf oui-resolv.conf TODO INCLUDES = @GTK_CFLAGS@ LDADD = @GTK_LIBS@ sysconf_DATA = guid-resolv.conf oui-resolv.conf all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) gscanbus$(EXEEXT): $(gscanbus_OBJECTS) $(gscanbus_DEPENDENCIES) @rm -f gscanbus$(EXEEXT) $(LINK) $(gscanbus_OBJECTS) $(gscanbus_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decodeselfid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fatal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscanbus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menues.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raw1394util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rominfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simpleavc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/topologyMap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/topologyTree.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sysconfdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-sysconfDATA install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-sysconfDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-sysconfDATA installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-sysconfDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gscanbus-0.8/NEWS000066400000000000000000000000001151312264100136470ustar00rootroot00000000000000gscanbus-0.8/README000066400000000000000000000070131151312264100140430ustar00rootroot00000000000000README for gscanbus Gareth McMullin 05.11.2010 - Andreas Micklei 18.11.1999 - 11.07.2001 What is this? ~~~~~~~~~~~~~ gscanbus is a little bus scanning, testing and topology visualizing tool for the Linux IEEE1394 subsystem, with some AV/C support, especially for controlling Camcorders and VCRs. It is intended as a debugging tool in IEEE1394 development, but can also be used to simply check your IEEE1394 setup on Linux. Prerequisites ~~~~~~~~~~~~~ * Obviously a working IEEE1394 subsystem. The version included with Linux kernel 2.4.4 and up works fine (I use 2.4.6 currently). Other versions might work as well, but this is untested. If you experience problems you are always encouraged to try out the latest version of the Linux 1394 subsystem before reporting bugs to me. * libraw1394 0.9 or at least a CVS version of libraw1394 from late January 2001 or newer. * GTK+ 2 * And of course gcc, make, etc. to compile. How to compile ~~~~~~~~~~~~~~ ./configure make make install (optionally) If you obtained the source code from GIT then you will first need to generate the configure script (you will require autoconf/automake): $ autoreconf --install The installation process will install the two data files "guid-resolv.conf" and "oui-resolv.conf" into /etc. This directory is not configurable at the moment, but you can also run gscanbus from within the build directory without installation, because those two files are first looked for in the current directory. This is my first shot at autoconf/automake, so be gentle with me. If the build process fails, please send me a bug report, or even better send me some nice examples of how to do it the right way. ;-) Usage ~~~~~ ./gscanbus (or just gscanbus when you did make install) Try clicking on some nodes to get additional information. Click on a DVCR or DV-Camcorder to get the control buttons. Do some transactions via the menu bar. To get some useful debugging output on the console use the option -v . "./gscanbus -v3" will give you the most verbose debugging info. That's all. Bugs ~~~~ gscanbus sometimes crashes when doing a bus reset. Sorry, but I will investigate this issue when I get the time. Troubleshooting ~~~~~~~~~~~~~~~ If gscanbus aborts with the error message " error in loading shared libraries: libraw1394.so.2: can't open shared object file: No such file or directory " try one of the following: 1. export LD_LIBRARY_PATH=/usr/local/lib (or wherever you installed libraw1394) 2. add the line /usr/local/lib to the file /etc/ld.so.conf and run "/sbin/ldconfig -v" The first solution works only in the current shell, while the second solution solves the problem system wide once and for all. Do not forget to run ldconfig whenever you install new libraries (it's best to run it automatically at boot-time). If you still have problems feel free to contact me via email. I mean it! A word about guid-resolv.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The configuration file guid-resolv.conf is a quick-hack to give your devices sane names in the main window of gscanbus. However the GUID of a device is Globally Unique (as the name "Global Unique ID" suggests). So feel free to stick your GUIDs into you config file, but don't mail them to me. It would be of no use to stick them in the example guid-resolv.conf that is shipped with gscanbus. Updates ~~~~~~~ The newest version of gscanbus (as well as older versions) should always be available at the following URL: http://developer.berlios.de/projects/gscanbus/ gscanbus-0.8/TODO000066400000000000000000000003131151312264100136470ustar00rootroot00000000000000Remove calls to deprecated GTK functions. Draw the topology tree using Cairo. Get 1394 events through the GTK event loop using g_io_add_watch(). Link to libavc1394 and remove funcions maintained there. gscanbus-0.8/aclocal.m4000066400000000000000000001161651151312264100150340ustar00rootroot00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR gscanbus-0.8/apple-green.xpm000066400000000000000000000465131151312264100161200ustar00rootroot00000000000000/* XPM */ static char * apple_green_xpm[] = { "48 48 933 2", " c None", ". c #5E6A59", "+ c #5F6B5B", "@ c #5F6B5A", "# c #5E6A5A", "$ c #524A38", "% c #000000", "& c #616F5C", "* c #6E7B60", "= c #87986E", "- c #7C8E69", "; c #65725D", "> c #5B533F", ", c #181610", "' c #616D5C", ") c #6A7760", "! c #81926C", "~ c #738263", "{ c #778866", "] c #8C9D72", "^ c #81926B", "/ c #4B4433", "( c #606C5B", "_ c #6B7960", ": c #7C8C69", "< c #707E62", "[ c #69775F", "} c #6D7B62", "| c #6B7961", "1 c #6E7D63", "2 c #707F63", "3 c #0D0C08", "4 c #64705C", "5 c #8A9B71", "6 c #718064", "7 c #6D7A61", "8 c #778666", "9 c #90A274", "0 c #899A70", "a c #8D9F72", "b c #8B9D71", "c c #7F8F6B", "d c #5E6A58", "e c #4A4333", "f c #616E5C", "g c #7E8E69", "h c #6E7D62", "i c #7A8A68", "j c #8A9C70", "k c #717F64", "l c #738262", "m c #6D7B5E", "n c #606C58", "o c #5D6958", "p c #5D6956", "q c #393427", "r c #636F5D", "s c #728164", "t c #82936B", "u c #84966D", "v c #65735C", "w c #5C6855", "x c #2C291F", "y c #898259", "z c #8C845B", "A c #877E5A", "B c #857F58", "C c #7F7A53", "D c #7A734E", "E c #726F48", "F c #63623F", "G c #565537", "H c #67745F", "I c #748365", "J c #707F62", "K c #83946D", "L c #5C6856", "M c #070806", "N c #8D845B", "O c #968F61", "P c #999163", "Q c #999266", "R c #999066", "S c #968F62", "T c #8E855C", "U c #8A8258", "V c #817C50", "W c #7D784E", "X c #73734A", "Y c #686942", "Z c #5A5C39", "` c #67745E", " . c #758364", ".. c #85966C", "+. c #6F7D62", "@. c #5F6C59", "#. c #887C56", "$. c #8F7F59", "%. c #94865B", "&. c #91855A", "*. c #8F8259", "=. c #8E8259", "-. c #867F55", ";. c #857C53", ">. c #988F62", ",. c #9E9666", "'. c #A39B6B", "). c #A59D6D", "!. c #A59E6E", "~. c #A59C6E", "{. c #A09569", "]. c #9D9164", "^. c #988B60", "/. c #90845B", "(. c #888253", "_. c #817E53", ":. c #737149", "<. c #666840", "[. c #5A5C3B", "}. c #515535", "|. c #6C7960", "1. c #707E63", "2. c #606C5A", "3. c #8F815B", "4. c #978760", "5. c #9E9065", "6. c #A39467", "7. c #A6986A", "8. c #A79A6C", "9. c #A49A6A", "0. c #A69B6C", "a. c #A89C6E", "b. c #AA9F6F", "c. c #AAA171", "d. c #ADA573", "e. c #AEA573", "f. c #B0A877", "g. c #ACA375", "h. c #A89D70", "i. c #A59A6C", "j. c #A19466", "k. c #A29464", "l. c #9B8D5E", "m. c #908759", "n. c #888256", "o. c #807D51", "p. c #727249", "q. c #64653F", "r. c #595B39", "s. c #545936", "t. c #738164", "u. c #63705A", "v. c #92845B", "w. c #9A8C63", "x. c #A5956A", "y. c #AA9D70", "z. c #AFA072", "A. c #B7AC81", "B. c #BCB089", "C. c #B1A679", "D. c #B5A87C", "E. c #B6AB7A", "F. c #B6AB7C", "G. c #B7AC7D", "H. c #B7AE7C", "I. c #B5AD7C", "J. c #B5AE7D", "K. c #B4AC7B", "L. c #ACA473", "M. c #A99F6E", "N. c #A69A6B", "O. c #A49665", "P. c #A09464", "Q. c #988B5E", "R. c #8E8559", "S. c #837F55", "T. c #75744B", "U. c #6C6C44", "V. c #5E5F3A", "W. c #535434", "X. c #535737", "Y. c #626F5A", "Z. c #8D805A", "`. c #9F9167", " + c #A99D72", ".+ c #B9AD87", "++ c #CCC2A4", "@+ c #E1DCCB", "#+ c #D9D2BB", "$+ c #D8D1B8", "%+ c #C6BC99", "&+ c #BAAF82", "*+ c #BBB082", "=+ c #BDB284", "-+ c #BAB083", ";+ c #BCB383", ">+ c #BBB383", ",+ c #B7B081", "'+ c #B3AC7C", ")+ c #ADA874", "!+ c #AAA36E", "~+ c #A79C6B", "{+ c #A39666", "]+ c #A39564", "^+ c #9D9062", "/+ c #968C5C", "(+ c #877F53", "_+ c #79764E", ":+ c #6B6A46", "<+ c #61633E", "[+ c #535537", "}+ c #4C5231", "|+ c #4F5533", "1+ c #837C56", "2+ c #9D9167", "3+ c #A99D70", "4+ c #CBC1A2", "5+ c #E2DECD", "6+ c #EBE7DB", "7+ c #E3DFCC", "8+ c #DAD4BD", "9+ c #D3CBAE", "0+ c #C2B78C", "a+ c #C0B789", "b+ c #C0B68A", "c+ c #BFB588", "d+ c #BFB687", "e+ c #BCB585", "f+ c #BBB584", "g+ c #B9B283", "h+ c #B5AF7D", "i+ c #AFAA77", "j+ c #AAA470", "k+ c #A69F6A", "l+ c #A49A68", "m+ c #A19665", "n+ c #9E9464", "o+ c #958A5E", "p+ c #8B8355", "q+ c #817B53", "r+ c #727149", "s+ c #656640", "t+ c #565B39", "u+ c #4D5031", "v+ c #505334", "w+ c #575D3A", "x+ c #9A9064", "y+ c #A79C6D", "z+ c #BFB58E", "A+ c #DDD7C4", "B+ c #E5E0D1", "C+ c #E8E4D5", "D+ c #DCD7C0", "E+ c #D0CCAB", "F+ c #C6BD95", "G+ c #C3BA90", "H+ c #C7BD96", "I+ c #C1BA8E", "J+ c #C2B98C", "K+ c #C1B88A", "L+ c #C0B989", "M+ c #BBB784", "N+ c #B8B281", "O+ c #B3AF7D", "P+ c #ADAB75", "Q+ c #AAA571", "R+ c #A5A16E", "S+ c #A49E6A", "T+ c #A29967", "U+ c #9D9362", "V+ c #988D5E", "W+ c #91885A", "X+ c #858054", "Y+ c #78764B", "Z+ c #696C41", "`+ c #5A5E3A", " @ c #4E5334", ".@ c #4E5432", "+@ c #555B38", "@@ c #8E845B", "#@ c #A1966A", "$@ c #B0A477", "%@ c #D1C9AE", "&@ c #E1DCC9", "*@ c #E1DDC9", "=@ c #DDD7BF", "-@ c #DFDBC5", ";@ c #C8C199", ">@ c #C6BF98", ",@ c #D1CAA9", "'@ c #C7BF99", ")@ c #C2BC90", "!@ c #C1B98B", "~@ c #C1BA8C", "{@ c #C0B988", "]@ c #BAB684", "^@ c #B7B280", "/@ c #B2AE79", "(@ c #ACAA74", "_@ c #A9A66F", ":@ c #A4A16C", "<@ c #A29E6A", "[@ c #9F9A67", "}@ c #9B9362", "|@ c #988F5F", "1@ c #90875A", "2@ c #887E54", "3@ c #7A774B", "4@ c #737349", "5@ c #5F643C", "6@ c #515434", "7@ c #4C522F", "8@ c #4D5434", "9@ c #505636", "0@ c #978F60", "a@ c #A69D6D", "b@ c #B4AC7E", "c@ c #DDD8C3", "d@ c #E1DCC8", "e@ c #D9D6BC", "f@ c #E0DBC5", "g@ c #CBC6A2", "h@ c #C8C197", "i@ c #CEC6A2", "j@ c #CCC8A3", "k@ c #C2BC91", "l@ c #C2BC8F", "m@ c #C0BA8D", "n@ c #C0BA8C", "o@ c #BDB889", "p@ c #B9B581", "q@ c #B5B17D", "r@ c #B0AC77", "s@ c #AAA873", "t@ c #A8A570", "u@ c #A3A16C", "v@ c #9E9B68", "w@ c #9B9665", "x@ c #9A9261", "y@ c #958C5C", "z@ c #8D8557", "A@ c #878154", "B@ c #7E7A51", "C@ c #70724A", "D@ c #606540", "E@ c #525636", "F@ c #48502E", "G@ c #4B5230", "H@ c #4D5435", "I@ c #867F57", "J@ c #A9A171", "K@ c #C8C19F", "L@ c #DDDAC4", "M@ c #DFDAC4", "N@ c #DAD4B9", "O@ c #D0CBAB", "P@ c #D3D0AF", "Q@ c #C8C198", "R@ c #C8C19E", "S@ c #C7C197", "T@ c #C1BC92", "U@ c #C2BB8F", "V@ c #BFBA8C", "W@ c #BFB98A", "X@ c #BBB685", "Y@ c #B6B280", "Z@ c #AFAC76", "`@ c #A8A671", " # c #A7A570", ".# c #A2A16B", "+# c #9D9A67", "@# c #9A9764", "## c #979160", "$# c #908A5C", "%# c #8A8358", "&# c #867C53", "*# c #7A774E", "=# c #717348", "-# c #646641", ";# c #545935", "># c #4B5130", ",# c #464F2C", "'# c #495031", ")# c #8D865C", "!# c #9E9869", "~# c #AAA473", "{# c #C9C6A6", "]# c #D6D2B9", "^# c #DAD4BA", "/# c #D2CCAD", "(# c #D5CFB0", "_# c #C7C29A", ":# c #C7C19A", "<# c #C6C099", "[# c #C3BE95", "}# c #C0BD90", "|# c #C1BA8D", "1# c #BFB989", "2# c #BDB886", "3# c #B1AE79", "4# c #ABAA74", "5# c #A9A772", "6# c #A6A56F", "7# c #A2A26D", "8# c #9B9B67", "9# c #979363", "0# c #969160", "a# c #8A8357", "b# c #837D53", "c# c #79784D", "d# c #6D6F47", "e# c #626841", "f# c #525637", "g# c #495231", "h# c #454A2E", "i# c #454D2F", "j# c #908C5E", "k# c #A09969", "l# c #ACA676", "m# c #CFCAAE", "n# c #D2CDB0", "o# c #CCC5A2", "p# c #CCC7A5", "q# c #C9C5A0", "r# c #C4BF96", "s# c #C4C095", "t# c #C4C197", "u# c #C1BB93", "v# c #C0BA8E", "w# c #BDB98B", "x# c #BDB988", "y# c #B6B27F", "z# c #B2AF7A", "A# c #ACAB74", "B# c #A9A872", "C# c #A8A770", "D# c #A3A26D", "E# c #9D9C68", "F# c #9A9A67", "G# c #989462", "H# c #918E60", "I# c #8B8659", "J# c #898156", "K# c #827D53", "L# c #77774D", "M# c #6C7048", "N# c #60643B", "O# c #535736", "P# c #49512F", "Q# c #434A2D", "R# c #444C2E", "S# c #918C5E", "T# c #9E9868", "U# c #ABA474", "V# c #CAC5A7", "W# c #CBC6A6", "X# c #C5C19C", "Y# c #C4C099", "Z# c #C2BF96", "`# c #C1BD93", " $ c #C1BE96", ".$ c #C2BD93", "+$ c #BEBA8D", "@$ c #BEB98A", "#$ c #BAB789", "$$ c #BAB784", "%$ c #B6B380", "&$ c #B2B07D", "*$ c #AFAE78", "=$ c #AAA974", "-$ c #A6A670", ";$ c #A5A56F", ">$ c #A0A06B", ",$ c #9B9B68", "'$ c #959664", ")$ c #949262", "!$ c #8F8C5A", "~$ c #898759", "{$ c #848355", "]$ c #7D7B50", "^$ c #747649", "/$ c #6C6E44", "($ c #5D613B", "_$ c #505735", ":$ c #495030", "<$ c #444A2C", "[$ c #908D5E", "}$ c #9F9A69", "|$ c #ACA776", "1$ c #C5C19F", "2$ c #C4BF9A", "3$ c #BFBA8D", "4$ c #BEB98D", "5$ c #BEBA91", "6$ c #BEBA8E", "7$ c #BBB889", "8$ c #B8B485", "9$ c #B5B282", "0$ c #B6B382", "a$ c #B3B17F", "b$ c #AFAD79", "c$ c #ACAB76", "d$ c #A8A872", "e$ c #A6A770", "f$ c #A3A36D", "g$ c #9D9C69", "h$ c #979965", "i$ c #949463", "j$ c #90915F", "k$ c #898B5A", "l$ c #878757", "m$ c #828255", "n$ c #7B7A4D", "o$ c #71744A", "p$ c #656A41", "q$ c #565936", "r$ c #4B5231", "s$ c #464D2E", "t$ c #43492C", "u$ c #464C2F", "v$ c #8C895B", "w$ c #9A9867", "x$ c #A9A677", "y$ c #B8B68E", "z$ c #BFBD99", "A$ c #C1BE97", "B$ c #BDB990", "C$ c #BBB78B", "D$ c #B9B587", "E$ c #B9B688", "F$ c #BBB789", "G$ c #B6B386", "H$ c #B2AF81", "I$ c #B3B17E", "J$ c #B3B27D", "K$ c #B0AF7B", "L$ c #AEAD75", "M$ c #AAAA73", "N$ c #A7A870", "O$ c #A4A56F", "P$ c #9FA16B", "Q$ c #9C9D68", "R$ c #959865", "S$ c #939461", "T$ c #8B8D5D", "U$ c #888A5B", "V$ c #868759", "W$ c #7C7E54", "X$ c #777A4E", "Y$ c #6A6E46", "Z$ c #5F623C", "`$ c #545B36", " % c #4B4F2E", ".% c #434E2D", "+% c #41472B", "@% c #424B2E", "#% c #8B8A5C", "$% c #979464", "%% c #A4A171", "&% c #AFAD83", "*% c #BDBA92", "=% c #BAB891", "-% c #B7B48A", ";% c #B5B286", ">% c #B5B283", ",% c #B4B282", "'% c #B4B281", ")% c #B1B07C", "!% c #B0AE7A", "~% c #ADAD76", "{% c #ABAC74", "]% c #A6A76F", "^% c #A5A76F", "/% c #A0A36C", "(% c #999D68", "_% c #959866", ":% c #919462", "<% c #8E905F", "[% c #888B5A", "}% c #858659", "|% c #818354", "1% c #7D7F54", "2% c #717549", "3% c #686B44", "4% c #595E3D", "5% c #4B5332", "6% c #464E2D", "7% c #41472C", "8% c #40492B", "9% c #868559", "0% c #908E5E", "a% c #9D9C6C", "b% c #A8A778", "c% c #B1B085", "d% c #B5B587", "e% c #B2B184", "f% c #ACAC7E", "g% c #AFAE7F", "h% c #B1AF7E", "i% c #B1AF7F", "j% c #AFAE7D", "k% c #AEAD79", "l% c #AEAE78", "m% c #ACAD76", "n% c #AAAB73", "o% c #AAAB72", "p% c #A5A770", "q% c #A1A46D", "r% c #9DA169", "s% c #969966", "t% c #909361", "u% c #8F9260", "v% c #888C5D", "w% c #86895B", "x% c #848658", "y% c #7E8153", "z% c #767A4E", "A% c #6B7148", "B% c #5F643D", "C% c #555B3A", "D% c #495332", "E% c #444B2D", "F% c #3F482A", "G% c #3F472B", "H% c #7F7F54", "I% c #8A8A5B", "J% c #959466", "K% c #9F9E73", "L% c #A9A87D", "M% c #ACAB7F", "N% c #ADAC7B", "O% c #A8A777", "P% c #AAA975", "Q% c #ACAC79", "R% c #ACAC7A", "S% c #ACAC78", "T% c #ACAC77", "U% c #ACAC76", "V% c #ABAC75", "W% c #A6A871", "X% c #A2A56F", "Y% c #A4A66E", "Z% c #9DA06A", "`% c #979B66", " & c #919663", ".& c #8E9261", "+& c #8B8E5D", "@& c #848A58", "#& c #808556", "$& c #7D8253", "%& c #797E54", "&& c #6E724A", "*& c #666B44", "=& c #5B623B", "-& c #525835", ";& c #454B2D", ">& c #41492B", ",& c #40462B", "'& c #434D2F", ")& c #838358", "!& c #919262", "~& c #969769", "{& c #9E9F70", "]& c #A2A375", "^& c #A2A373", "/& c #A4A571", "(& c #A6A772", "_& c #A8A974", ":& c #A7A875", "<& c #A7A873", "[& c #A7A872", "}& c #A9AB74", "|& c #A7A971", "1& c #A3A66E", "2& c #A1A56E", "3& c #9CA069", "4& c #979C67", "5& c #969A64", "6& c #8E9360", "7& c #8C925D", "8& c #878B5A", "9& c #808658", "0& c #7F8254", "a& c #787D4F", "b& c #70774B", "c& c #676B43", "d& c #61643F", "e& c #505634", "f& c #4A5330", "g& c #42482B", "h& c #3F482C", "i& c #7E8054", "j& c #898B5C", "k& c #8F9063", "l& c #969766", "m& c #9B9C6B", "n& c #9E9F6A", "o& c #9D9E6B", "p& c #A0A26C", "q& c #A1A26E", "r& c #A2A46E", "s& c #A3A572", "t& c #A3A66F", "u& c #9EA26B", "v& c #9B9F69", "w& c #9A9E66", "x& c #959A63", "y& c #919760", "z& c #8B915F", "A& c #858D5A", "B& c #848B5A", "C& c #7D8454", "D& c #777C51", "E& c #72784B", "F& c #6B6D47", "G& c #626742", "H& c #575F3B", "I& c #4E5637", "J& c #46502E", "K& c #3D4328", "L& c #3E452A", "M& c #475031", "N& c #848758", "O& c #898B5B", "P& c #8C8E5D", "Q& c #929463", "R& c #949764", "S& c #989A66", "T& c #9B9E68", "U& c #9B9D69", "V& c #9CA06A", "W& c #9FA26B", "X& c #9EA26A", "Y& c #9FA36C", "Z& c #9DA269", "`& c #9A9F68", " * c #979D67", ".* c #909563", "+* c #8E9461", "@* c #89905C", "#* c #838B5A", "$* c #7D8655", "%* c #7B8253", "&* c #767D51", "** c #6E754B", "=* c #686C47", "-* c #626943", ";* c #5C613F", ">* c #555D3D", ",* c #4B5234", "'* c #424A2F", ")* c #3C4228", "!* c #3C4529", "~* c #7C7F54", "{* c #808355", "]* c #858657", "^* c #8A8B5C", "/* c #8D9060", "(* c #939762", "_* c #949966", ":* c #949964", "<* c #979C64", "[* c #949A63", "}* c #909662", "|* c #878E5A", "1* c #808856", "2* c #7C8453", "3* c #788052", "4* c #72784F", "5* c #6D744A", "6* c #696F46", "7* c #616943", "8* c #606741", "9* c #596040", "0* c #51593A", "a* c #464F31", "b* c #3E4629", "c* c #3E462A", "d* c #40492E", "e* c #777B52", "f* c #7E8155", "g* c #7E8255", "h* c #838758", "i* c #888B5C", "j* c #8B905E", "k* c #8C925F", "l* c #8A8F5E", "m* c #8D925F", "n* c #8C915E", "o* c #8B9160", "p* c #888F5D", "q* c #888E5D", "r* c #858D5B", "s* c #818A5A", "t* c #7B8254", "u* c #7A8253", "v* c #777D4C", "w* c #71784C", "x* c #6F754A", "y* c #6A7248", "z* c #656E46", "A* c #5F6641", "B* c #586140", "C* c #545E3D", "D* c #4C5436", "E* c #454C2F", "F* c #40472C", "G* c #3B4529", "H* c #1A1E11", "I* c #75784D", "J* c #797F53", "K* c #7C8153", "L* c #7B8153", "M* c #808555", "N* c #828858", "O* c #858A58", "P* c #828859", "Q* c #818856", "R* c #7D8554", "S* c #7F8754", "T* c #7C8556", "U* c #798053", "V* c #747C4E", "W* c #71764A", "X* c #6E7448", "Y* c #6C7546", "Z* c #626A44", "`* c #656C43", " = c #626844", ".= c #5B6442", "+= c #5A6141", "@= c #525B39", "#= c #484F35", "$= c #40462E", "%= c #232918", "&= c #72774F", "*= c #73794E", "== c #76794E", "-= c #777C50", ";= c #787B50", ">= c #757C50", ",= c #777D4F", "'= c #787F51", ")= c #777D50", "!= c #73774E", "~= c #71754A", "{= c #6A7047", "]= c #687046", "^= c #666B46", "/= c #626B41", "(= c #636B40", "_= c #5F663F", ":= c #5A633F", "<= c #606743", "[= c #5C6442", "}= c #535F3C", "|= c #4C5639", "1= c #484E31", "2= c #41482C", "3= c #313823", "4= c #6B7047", "5= c #6C7349", "6= c #6B724B", "7= c #6C724A", "8= c #6B7248", "9= c #6D7248", "0= c #6A7046", "a= c #676D43", "b= c #636A42", "c= c #616842", "d= c #60673F", "e= c #5E653E", "f= c #5B653C", "g= c #5A6540", "h= c #5B653D", "i= c #5A6440", "j= c #58613E", "k= c #575F3E", "l= c #4E5738", "m= c #475233", "n= c #434C2E", "o= c #363E27", "p= c #5E633D", "q= c #666D44", "r= c #656D46", "s= c #636944", "t= c #626842", "u= c #616742", "v= c #60683F", "w= c #5E633E", "x= c #59603A", "y= c #586039", "z= c #57603A", "A= c #565F37", "B= c #586139", "C= c #565E3A", "D= c #5A613D", "E= c #59623E", "F= c #565F3E", "G= c #545D3C", "H= c #4F5838", "I= c #495134", "J= c #394029", "K= c #333723", "L= c #5E643F", "M= c #59603C", "N= c #58623C", "O= c #565D39", "P= c #555D38", "Q= c #565F39", "R= c #545E37", "S= c #56603A", "T= c #535B39", "U= c #575F39", "V= c #555E39", "W= c #545F3C", "X= c #535C3A", "Y= c #4D5637", "Z= c #485032", "`= c #2E3520", " - c #0C0D08", ".- c #3A4028", "+- c #525938", "@- c #0E1009", "#- c #0F100A", "$- c #313722", "%- c #4C5434", "&- c #515A35", "*- c #505A36", "=- c #363C24", "-- c #0F110B", ";- c #1A1D13", ">- c #1B1D13", " ", " ", " ", " ", " ", " ", " . + @ # $ % ", " & * = - ; + > , % ", " ' ) ! ~ { ] ^ + / % ", " ( _ : < [ } | 1 2 ( > 3 % ", " ( 4 5 6 7 8 9 0 a b c ' d e % ", " f g h i j k l m n o # @ @ p q % ", " r s < t ) u v d @ @ w . p x % y z A B C D E F G ", " H I J K [ w . L M N O P Q R S T U V W X Y Z ", " ` ...+.@.. @ #.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}. ", " |.1.~ 2.d . 3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s. ", " t.u.d v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X. ", " Y. Z.`. +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+ ", " 1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+ ", " x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@ ", " @@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@ ", " 0@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@ ", " I@P J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@/@Z@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'# ", " )#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#p@q@3#4#5#6#7#8#9#0#$#a#b#c#d#e#f#g#h#i# ", " j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#M+y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R# ", " S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$($_$:$R#<$ ", " [$}$|$1$1$2$Z#3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$ ", " v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.%+%@% ", " #%$%%%&%*%=%-%;%9$>%,%'%)%!%*$~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8% ", " 9%0%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%G% ", " H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'& ", " )&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&0&a&b&c&d&e&f&g&h&G% ", " i&j&k&l&m&n&o&p&q&r&s&^%t&X%u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M& ", " N&O&P&Q&R&S&T&U&V&W&X&Y&Z&`& *.*+*@*#*$*%*&***=*-*;*>*,*'*)*!* ", " ~*{*]*^*/*:%R&(*`%_*:*<*[*}*+*z&|*1*2*3*4*5*6*7*8*9*0*a*b*c*d* ", " e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*A*B*C*D*E*F*G*H* ", " I*J*K*L*M*N*O*P*Q*R*S*T*%*U*V*W*X*Y*Z*`* =.=+=@=#=$=G%%=% % % % ", " &=*===-=;=>=,='=)=!=~=X*{=]=^=/=(=_=:=<=[=}=|=1=2=3=% % % % % % % ", " 4=5=6=7=8=8=9=0=a=b=c=d=e=f=g=h=i=j=k=>*l=m=n=o=% % % % % % % % % ", " p=q=r=s=t=u=v=w=x=y=z=A=B=C=D=E=F=G=H=I=a*J=% % % % % % % % % % ", " % K=L=D=M=N=O=P=Q=R=S=T=B=U=V=V=W=X=Y=Z=`=% % % % % % % % % % % ", " % -.-C=V=+-G%@-% % #-$-Q#%-&-*-m==---% % % % % % % % % % % ", " % % % % ;->-% % % % % % % % % % % % % % % % % % % % % % ", " % % % % % % % % % % % % % % % % % % % % % % % % ", " % % % % % % % % % % % % % % % % % % % ", " ", " ", " "}; gscanbus-0.8/configure000077500000000000000000005061531151312264100151030ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for gscanbus 0.8. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: gareth@blacksphere.co.nz about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='gscanbus' PACKAGE_TARNAME='gscanbus' PACKAGE_VERSION='0.8' PACKAGE_STRING='gscanbus 0.8' PACKAGE_BUGREPORT='gareth@blacksphere.co.nz' PACKAGE_URL='' ac_unique_file="gscanbus.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS EGREP GREP CPP GTK_LIBS GTK_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GTK_CFLAGS GTK_LIBS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures gscanbus 0.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/gscanbus] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of gscanbus 0.8:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GTK_CFLAGS C compiler flags for GTK, overriding pkg-config GTK_LIBS linker flags for GTK, overriding pkg-config CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF gscanbus configure 0.8 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------------- ## ## Report this to gareth@blacksphere.co.nz ## ## --------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by gscanbus $as_me 0.8, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` 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 || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='gscanbus' VERSION='0.8' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for raw1394_new_handle in -lraw1394" >&5 $as_echo_n "checking for raw1394_new_handle in -lraw1394... " >&6; } if test "${ac_cv_lib_raw1394_raw1394_new_handle+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lraw1394 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char raw1394_new_handle (); int main () { return raw1394_new_handle (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_raw1394_raw1394_new_handle=yes else ac_cv_lib_raw1394_raw1394_new_handle=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_raw1394_raw1394_new_handle" >&5 $as_echo "$ac_cv_lib_raw1394_raw1394_new_handle" >&6; } if test "x$ac_cv_lib_raw1394_raw1394_new_handle" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBRAW1394 1 _ACEOF LIBS="-lraw1394 $LIBS" else as_fn_error $? "need libraw1394 from 18.01.2001 or newer" "$LINENO" 5 fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 $as_echo_n "checking for GTK... " >&6; } if test -n "$GTK_CFLAGS"; then pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK_LIBS"; then pkg_cv_GTK_LIBS="$GTK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0" 2>&1` else GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk+-2.0) were not met: $GTK_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GTK_CFLAGS=$pkg_cv_GTK_CFLAGS GTK_LIBS=$pkg_cv_GTK_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in sys/time.h unistd.h libraw1394/raw1394.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by gscanbus $as_me 0.8, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ gscanbus config.status 0.8 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi gscanbus-0.8/configure.in000066400000000000000000000024611151312264100154760ustar00rootroot00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT([gscanbus], [0.8], [gareth@blacksphere.co.nz]) AC_CONFIG_SRCDIR([gscanbus.c]) AM_INIT_AUTOMAKE([gnu]) dnl AM_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_CC AC_PROG_INSTALL dnl Checks for libraries. dnl Replace `main' with a function in -lbfd: dnl AC_CHECK_LIB(bfd, main) dnl Replace `main' with a function in -lefence: dnl AC_CHECK_LIB(efence, main) dnl Replace `main' with a function in -lelf: dnl AC_CHECK_LIB(elf, main) dnl Replace `main' with a function in -liberty: dnl AC_CHECK_LIB(iberty, main) dnl Replace `main' with a function in -libs: dnl AC_CHECK_LIB(ibs, main) dnl Replace `main' with a function in -lmpatrol: dnl AC_CHECK_LIB(mpatrol, main) AC_CHECK_LIB(raw1394, raw1394_new_handle,,AC_MSG_ERROR(need libraw1394 from 18.01.2001 or newer)) dnl AC_LIB_RAW1394(0.9,,AC_MSG_ERROR(gscanbus needs LIBRAW1394 >= 0.9))dnl dnl AC_LIB_RAW1394(0.9)dnl dnl AC_LIB_RAW1394_HEADERS(AC_MSG_ERROR(YOYOYO))dnl PKG_CHECK_MODULES(GTK, [gtk+-2.0]) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(sys/time.h unistd.h libraw1394/raw1394.h ) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T dnl Checks for library functions. AC_OUTPUT(Makefile) gscanbus-0.8/debug.c000066400000000000000000000017121151312264100144150ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include char debug_level = 0; void set_debug_level(char n) { debug_level = n; fprintf(stderr,"Setting Debug level: %i\n",n); } gscanbus-0.8/debug.h000066400000000000000000000023131151312264100144200ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __DEBUG_H__ #define __DEBUG_H__ //extern static char debug_level; extern char debug_level; void set_debug_level(char n); #define DEBUG_GENERAL if (debug_level > 0) #define DEBUG_CSR if (debug_level > 1) #define DEBUG_AVC if (debug_level > 1) #define DEBUG_CONFIG if (debug_level > 1) #define DEBUG_LOWLEVEL_ERR if (debug_level > 2) #define DEBUG_LOWLEVEL if (debug_level > 3) #endif gscanbus-0.8/decodeselfid.c000066400000000000000000000225101151312264100157400ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * decodeselfid.c * written 19.10.1999 - 31.5.2000 by Andreas Micklei * 20.10.1999: initial revision * 31.5.2000: added support for >=4 port phys, therefore changed return type * and parameters of decode_selfid * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "decodeselfid.h" void printbin(FILE *stream, unsigned int i, unsigned char width) { int j; for (j=0; j>(width-1)); i = i << 1; } } unsigned int bit_extract(unsigned int shift, unsigned int width, unsigned int i) { unsigned int mask = 0; while (width>0) { mask=mask<<1; mask++; width--; } return (i >> shift) & mask; } #if 0 int decode_selfid(SelfIdPacket_t *selfid, unsigned int i) { selfid->packetZero.designator = bit_extract(SHIFT_START, WIDTH_START, i); selfid->packetZero.phyID = bit_extract(SHIFT_PHY_ID, WIDTH_PHY_ID, i); selfid->packetZero.ZeroOrMore = bit_extract(SHIFT_CONT, WIDTH_CONT, i); selfid->packetZero.linkActive = bit_extract(SHIFT_L, WIDTH_L, i); selfid->packetZero.gapCount = bit_extract(SHIFT_GAP_CNT, WIDTH_GAP_CNT, i); selfid->packetZero.phySpeed = bit_extract(SHIFT_SP, WIDTH_SP, i); selfid->packetZero.phyDelay = bit_extract(SHIFT_DEL, WIDTH_DEL, i); selfid->packetZero.contender = bit_extract(SHIFT_C, WIDTH_C, i); selfid->packetZero.powerClass = bit_extract(SHIFT_PWR, WIDTH_PWR, i); selfid->packetZero.port0 = bit_extract(SHIFT_P0, WIDTH_P0, i); selfid->packetZero.port1 = bit_extract(SHIFT_P1, WIDTH_P1, i); selfid->packetZero.port2 = bit_extract(SHIFT_P2, WIDTH_P2, i); selfid->packetZero.initiatedReset = bit_extract(SHIFT_I, WIDTH_I, i); selfid->packetZero.morePackets = bit_extract(SHIFT_M, WIDTH_M, i); if (selfid->packetZero.designator != 2) return -1; if (selfid->packetZero.morePackets == 1) return -2; else return 0; } #endif void decode_selfid_zero(SelfIdPacket_t *p, unsigned int i) { DEBUG_LOWLEVEL { fprintf(stderr, "decode_selfid_zero:"); printbin(stderr,i,32); fprintf(stderr, "\n"); } p->packetZero.designator = bit_extract(SHIFT_START, WIDTH_START, i); p->packetZero.phyID = bit_extract(SHIFT_PHY_ID, WIDTH_PHY_ID, i); p->packetZero.ZeroOrMore = bit_extract(SHIFT_CONT, WIDTH_CONT, i); p->packetZero.linkActive = bit_extract(SHIFT_L, WIDTH_L, i); p->packetZero.gapCount = bit_extract(SHIFT_GAP_CNT, WIDTH_GAP_CNT, i); p->packetZero.phySpeed = bit_extract(SHIFT_SP, WIDTH_SP, i); p->packetZero.phyDelay = bit_extract(SHIFT_DEL, WIDTH_DEL, i); p->packetZero.contender = bit_extract(SHIFT_C, WIDTH_C, i); p->packetZero.powerClass = bit_extract(SHIFT_PWR, WIDTH_PWR, i); p->packetZero.port0 = bit_extract(SHIFT_P0, WIDTH_P0, i); p->packetZero.port1 = bit_extract(SHIFT_P1, WIDTH_P1, i); p->packetZero.port2 = bit_extract(SHIFT_P2, WIDTH_P2, i); p->packetZero.initiatedReset = bit_extract(SHIFT_I, WIDTH_I, i); p->packetZero.morePackets = bit_extract(SHIFT_M, WIDTH_M, i); } void decode_selfid_more(SelfIdPacket_t *p, unsigned int i) { DEBUG_LOWLEVEL { fprintf(stderr, "decode_selfid_more:"); printbin(stderr,i,32); fprintf(stderr, "\n"); } p->packetMore.designator = bit_extract(SHIFT_START, WIDTH_START, i); p->packetMore.phyID = bit_extract(SHIFT_PHY_ID, WIDTH_PHY_ID, i); p->packetMore.ZeroOrMore = bit_extract(SHIFT_CONT, WIDTH_CONT, i); p->packetMore.packetNumber = bit_extract(SHIFT_N, WIDTH_N, i); p->packetMore.rsv = bit_extract(SHIFT_RSV, WIDTH_RSV, i); p->packetMore.portA = bit_extract(SHIFT_PA, WIDTH_PA, i); p->packetMore.portB = bit_extract(SHIFT_PB, WIDTH_PB, i); p->packetMore.portC = bit_extract(SHIFT_PC, WIDTH_PC, i); p->packetMore.portD = bit_extract(SHIFT_PD, WIDTH_PD, i); p->packetMore.portE = bit_extract(SHIFT_PE, WIDTH_PE, i); p->packetMore.portF = bit_extract(SHIFT_PF, WIDTH_PF, i); p->packetMore.portG = bit_extract(SHIFT_PG, WIDTH_PG, i); p->packetMore.portH = bit_extract(SHIFT_PH, WIDTH_PH, i); p->packetMore.r = bit_extract(SHIFT_R, WIDTH_R, i); p->packetMore.morePackets = bit_extract(SHIFT_M, WIDTH_M, i); } int decode_selfid(SelfIdPacket_t *selfid, unsigned int *selfid_raw) { SelfIdPacket_t *p; p = selfid; decode_selfid_zero(p, selfid_raw[0]); //if (p->packetZero.designator != 2) return -1; //if (p->packetZero.ZeroOrMore != 0) return -2; if (p->packetZero.morePackets == 0) return 1; p++; decode_selfid_more(p, selfid_raw[1]); //if (p->packetMore.designator != 2) return -1; //if (p->packetZero.ZeroOrMore != 1) return -2; if (p->packetMore.morePackets == 0) return 2; p++; decode_selfid_more(p, selfid_raw[2]); //if (p->packetMore.designator != 2) return -1; //if (p->packetZero.ZeroOrMore != 1) return -2; if (p->packetMore.morePackets == 0) return 3; p++; decode_selfid_more(p, selfid_raw[3]); //if (p->packetMore.designator != 2) return -1; //if (p->packetZero.ZeroOrMore != 1) return -2; return 4; } char *yes_no(unsigned char i) { if (i) return "Yes"; else return "No"; } char *decode_speed(unsigned char i) { if (i == 0) return "S100"; if (i == 1) return "S200"; if (i == 2) return "S400"; if (i == 3) return "Unknown"; else return "Error"; } char *decode_delay(unsigned char i) { if (i == 0) return "<=144ns"; else return "Unknown"; } char *decode_pwr(unsigned char i) { if (i == 0) return "None"; if (i == 1) return "+15W"; if (i == 2) return "+30W"; if (i == 3) return "+45W"; if (i == 4) return "-1W"; if (i == 5) return "-3W"; if (i == 6) return "-6W"; if (i == 7) return "-10W"; else return "Error"; } char *decode_port_status(unsigned char i) { if (i == 3) return "Connected to child node"; if (i == 2) return "Connected to parent node"; if (i == 1) return "Not connected"; if (i == 0) return "Not present"; return "Unknown"; } int append_port_status(char *p, unsigned char port_status, unsigned char port_number) { if (port_status == 0) return 0; sprintf(p, "Port %i: %s\n", port_number, decode_port_status(port_status)); return strlen(p); } char *decode_all_ports_status(SelfIdPacket_t *selfid) { static char buf[34*3+34*8*3+1]; /* 3 Ports + 3*8 Ports + '\0' */ int i = 0; char *p = buf; p += append_port_status(p, selfid->packetZero.port0, i++); p += append_port_status(p, selfid->packetZero.port1, i++); p += append_port_status(p, selfid->packetZero.port2, i++); if (selfid->packetZero.morePackets == 0) return buf; selfid++; p += append_port_status(p, selfid->packetMore.portA, i++); p += append_port_status(p, selfid->packetMore.portB, i++); p += append_port_status(p, selfid->packetMore.portC, i++); p += append_port_status(p, selfid->packetMore.portD, i++); p += append_port_status(p, selfid->packetMore.portE, i++); p += append_port_status(p, selfid->packetMore.portF, i++); p += append_port_status(p, selfid->packetMore.portG, i++); p += append_port_status(p, selfid->packetMore.portH, i++); if (selfid->packetMore.morePackets == 0) return buf; selfid++; p += append_port_status(p, selfid->packetMore.portA, i++); p += append_port_status(p, selfid->packetMore.portB, i++); p += append_port_status(p, selfid->packetMore.portC, i++); p += append_port_status(p, selfid->packetMore.portD, i++); p += append_port_status(p, selfid->packetMore.portE, i++); p += append_port_status(p, selfid->packetMore.portF, i++); p += append_port_status(p, selfid->packetMore.portG, i++); p += append_port_status(p, selfid->packetMore.portH, i++); if (selfid->packetMore.morePackets == 0) return buf; selfid++; p += append_port_status(p, selfid->packetMore.portA, i++); p += append_port_status(p, selfid->packetMore.portB, i++); p += append_port_status(p, selfid->packetMore.portC, i++); p += append_port_status(p, selfid->packetMore.portD, i++); p += append_port_status(p, selfid->packetMore.portE, i++); p += append_port_status(p, selfid->packetMore.portF, i++); p += append_port_status(p, selfid->packetMore.portG, i++); p += append_port_status(p, selfid->packetMore.portH, i++); return buf; } void print_selfid(SelfIdPacket_t *selfid) { printf("Physical ID:\t%i (0x%x)\n",selfid->packetZero.phyID,selfid->packetZero.phyID); printf(" Link active:\t%s\n",yes_no(selfid->packetZero.linkActive)); printf(" Gap Count:\t%i\n",selfid->packetZero.gapCount); printf(" PHY Speed:\t%s\n",decode_speed(selfid->packetZero.phySpeed)); printf(" PHY Delay:\t%s\n",decode_delay(selfid->packetZero.phyDelay)); printf(" IRM Capable:\t%s\n",yes_no(selfid->packetZero.contender)); printf(" Power Class:\t%s\n",decode_pwr(selfid->packetZero.powerClass)); printf(" Port 0:\t%s\n",decode_port_status(selfid->packetZero.port0)); printf(" Port 1:\t%s\n",decode_port_status(selfid->packetZero.port1)); printf(" Port 2:\t%s\n",decode_port_status(selfid->packetZero.port2)); printf(" Init. reset:\t%s\n",yes_no(selfid->packetZero.initiatedReset)); } gscanbus-0.8/decodeselfid.h000066400000000000000000000051241151312264100157470ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * decodeselfid.h * written 19.10.1999 - 31.5.2000 by Andreas Micklei * 20.10.1999: initial revision * 31.5.2000: added support for >=4 port phys, therefore changed return type * and parameters of decode_selfid * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __DECODESELFID_H__ #define __DECODESELFID_H__ #include "raw1394support.h" #include "debug.h" #include #include #define SHIFT_START 30 #define WIDTH_START 2 #define SHIFT_PHY_ID 24 #define WIDTH_PHY_ID 6 #define SHIFT_CONT 23 #define WIDTH_CONT 1 #define SHIFT_L 22 #define WIDTH_L 1 #define SHIFT_GAP_CNT 16 #define WIDTH_GAP_CNT 6 #define SHIFT_SP 14 #define WIDTH_SP 2 #define SHIFT_DEL 12 #define WIDTH_DEL 2 #define SHIFT_C 11 #define WIDTH_C 1 #define SHIFT_PWR 8 #define WIDTH_PWR 3 #define SHIFT_P0 6 #define WIDTH_P0 2 #define SHIFT_P1 4 #define WIDTH_P1 2 #define SHIFT_P2 2 #define WIDTH_P2 2 #define SHIFT_I 1 #define WIDTH_I 1 #define SHIFT_M 0 #define WIDTH_M 1 #define SHIFT_N 20 #define WIDTH_N 3 #define SHIFT_RSV 18 #define WIDTH_RSV 2 #define SHIFT_PA 16 #define WIDTH_PA 2 #define SHIFT_PB 14 #define WIDTH_PB 2 #define SHIFT_PC 12 #define WIDTH_PC 2 #define SHIFT_PD 10 #define WIDTH_PD 2 #define SHIFT_PE 8 #define WIDTH_PE 2 #define SHIFT_PF 6 #define WIDTH_PF 2 #define SHIFT_PG 4 #define WIDTH_PG 2 #define SHIFT_PH 2 #define WIDTH_PH 2 #define SHIFT_R 1 #define WIDTH_R 1 void printbin(FILE *stream, unsigned int i, unsigned char width); int decode_selfid(SelfIdPacket_t *selfid, unsigned int *selfid_raw); char *yes_no(unsigned char i); char *decode_speed(unsigned char i); char *decode_delay(unsigned char i); char *decode_pwr(unsigned char i); char *decode_port_status(unsigned char i); char *decode_all_ports_status(SelfIdPacket_t *selfid); void print_selfid(SelfIdPacket_t *selfid); #endif gscanbus-0.8/depcomp000077500000000000000000000442671151312264100145540ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # 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 Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gscanbus-0.8/fatal.c000066400000000000000000000016251151312264100144210ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "fatal.h" void fatal(char *s) { fprintf(stderr, "Error: %s\n", s); exit(1); } gscanbus-0.8/fatal.h000066400000000000000000000016231151312264100144240ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __FATAL_H__ #define __FATAL_H__ #include void fatal(char *s); #endif gscanbus-0.8/gnome-qeye.xpm000066400000000000000000000646131151312264100157700ustar00rootroot00000000000000/* XPM */ static char * gnome_qeye_xpm[] = { "48 48 1385 2", " c None", ". c #C5C8C7", "+ c #C7CAC9", "@ c #BBBEBE", "# c #BABDBD", "$ c #B9BCBC", "% c #B8BBBB", "& c #B7BABA", "* c #BDC0C0", "= c #BCBFBF", "- c #BEC1C1", "; c #C0C3C3", "> c #BFC2C2", ", c #B6B9B9", "' c #B2B7B6", ") c #B3B8B7", "! c #B1B6B5", "~ c #C1C4C3", "{ c #C3C6C5", "] c #A8ADAC", "^ c #A9AEAD", "/ c #EFF0F0", "( c #E9EAEA", "_ c #D1D4D3", ": c #CFD2D1", "< c #CDD0CF", "[ c #CED1D0", "} c #D2D5D4", "| c #D3D6D5", "1 c #D4D7D6", "2 c #D5D8D7", "3 c #DEDFDF", "4 c #E0E1E1", "5 c #DFE0E0", "6 c #DCDDDD", "7 c #DBDCDC", "8 c #D8DBDA", "9 c #D6D9D8", "0 c #D7DAD9", "a c #DADBDB", "b c #DDDEDE", "c c #757C7A", "d c #4E5352", "e c #A7ACAB", "f c #A5AAA9", "g c #A3A8A7", "h c #A0A5A4", "i c #A2A7A6", "j c #A8ACAC", "k c #A9ADAC", "l c #ACB0AF", "m c #ABAFAE", "n c #9CA1A0", "o c #999E9D", "p c #979C9B", "q c #939897", "r c #909594", "s c #8C9391", "t c #878E8C", "u c #828887", "v c #7F8584", "w c #828987", "x c #8A918F", "y c #8F9493", "z c #959A99", "A c #9A9F9E", "B c #9EA3A2", "C c #9DA2A1", "D c #89908E", "E c #858C8A", "F c #555A59", "G c #484D4C", "H c #8D9492", "I c #929796", "J c #8D9391", "K c #8C9291", "L c #949998", "M c #979B9B", "N c #929695", "O c #909493", "P c #8E9292", "Q c #868D8B", "R c #808786", "S c #919695", "T c #9BA09F", "U c #878D8B", "V c #8E9492", "W c #3D4040", "X c #464949", "Y c #919594", "Z c #919595", "` c #929696", " . c #8E9291", ".. c #8A908E", "+. c #8E9392", "@. c #8C9190", "#. c #8B908F", "$. c #888E8C", "%. c #848B89", "&. c #7F8684", "*. c #808785", "=. c #898F8E", "-. c #939796", ";. c #969B9A", ">. c #888F8D", ",. c #828886", "'. c #3E4141", "). c #434646", "!. c #ACB1B0", "~. c #8B9290", "{. c #989D9C", "]. c #8D9291", "^. c #8D9191", "/. c #8A8E8D", "(. c #868C8B", "_. c #888C8B", ":. c #898E8D", "<. c #868C8A", "[. c #858B89", "}. c #818785", "|. c #7D8381", "1. c #8B8F8E", "2. c #3B3E3D", "3. c #9DA1A1", "4. c #9C9F9F", "5. c #8D9190", "6. c #888B8A", "7. c #888D8C", "8. c #898D8C", "9. c #868988", "0. c #858A89", "a. c #848887", "b. c #818685", "c. c #7D8382", "d. c #808483", "e. c #818585", "f. c #878C8B", "g. c #828685", "h. c #7D8281", "i. c #7F8382", "j. c #7F8583", "k. c #7A7F7D", "l. c #797F7D", "m. c #858988", "n. c #7E8482", "o. c #989C9B", "p. c #3F4242", "q. c #4B504F", "r. c #ABB0AF", "s. c #A4A7A6", "t. c #A0A3A2", "u. c #818584", "v. c #757979", "w. c #737676", "x. c #737776", "y. c #747878", "z. c #717474", "A. c #6F7272", "B. c #6D7170", "C. c #696E6C", "D. c #686C6B", "E. c #6B6F6E", "F. c #707473", "G. c #747776", "H. c #6F7271", "I. c #6A6F6E", "J. c #6C706F", "K. c #6B706E", "L. c #696F6D", "M. c #6B706F", "N. c #707372", "O. c #727675", "P. c #767A79", "Q. c #7A7E7D", "R. c #7D8180", "S. c #7F8281", "T. c #737977", "U. c #6E7371", "V. c #787E7C", "W. c #868B8A", "X. c #404343", "Y. c #AFB4B3", "Z. c #9BA19F", "`. c #A3A6A5", " + c #969999", ".+ c #777A79", "++ c #5B5E5D", "@+ c #515453", "#+ c #555757", "$+ c #585B5A", "%+ c #555858", "&+ c #545756", "*+ c #515353", "=+ c #4D504F", "-+ c #4A4D4D", ";+ c #4C4F4E", ">+ c #505352", ",+ c #535655", "'+ c #4E5251", ")+ c #505353", "!+ c #4F5352", "~+ c #525555", "{+ c #555857", "]+ c #565958", "^+ c #5A5D5C", "/+ c #5F6261", "(+ c #606362", "_+ c #5C5F5F", ":+ c #515554", "<+ c #555A58", "[+ c #6A6D6C", "}+ c #7B7E7E", "|+ c #9B9F9E", "1+ c #888E8D", "2+ c #474A4A", "3+ c #979D9B", "4+ c #9A9E9D", "5+ c #818483", "6+ c #555656", "7+ c #343535", "8+ c #323433", "9+ c #3B3D3C", "0+ c #3D403F", "a+ c #3D3F3F", "b+ c #3A3C3C", "c+ c #3A3C3B", "d+ c #373838", "e+ c #353736", "f+ c #333535", "g+ c #343636", "h+ c #363737", "i+ c #363837", "j+ c #383A39", "k+ c #383939", "l+ c #373939", "m+ c #363838", "n+ c #353737", "o+ c #353837", "p+ c #363938", "q+ c #3B3D3D", "r+ c #3E4040", "s+ c #424444", "t+ c #6D7070", "u+ c #A1A5A5", "v+ c #3A3D3C", "w+ c #424545", "x+ c #B0B5B4", "y+ c #A6ABAA", "z+ c #979B9A", "A+ c #6E7070", "B+ c #424343", "C+ c #4E3E38", "D+ c #B87C68", "E+ c #F29F81", "F+ c #EFA081", "G+ c #EDA181", "H+ c #ECA182", "I+ c #EA9F80", "J+ c #E79D80", "K+ c #E29B7D", "L+ c #DF9A7D", "M+ c #DB987D", "N+ c #CE8E72", "O+ c #CA957D", "P+ c #C7917B", "Q+ c #C0876C", "R+ c #B88067", "S+ c #AE765D", "T+ c #A16B51", "U+ c #97634B", "V+ c #926047", "W+ c #88563F", "X+ c #804D32", "Y+ c #834B30", "Z+ c #8C5133", "`+ c #935435", " @ c #91512E", ".@ c #8F4A29", "+@ c #86421F", "@@ c #7E3A1A", "#@ c #59392A", "$@ c #645A55", "%@ c #7E8180", "&@ c #7E8282", "*@ c #7C8281", "=@ c #383B3A", "-@ c #444747", ";@ c #838686", ">@ c #626564", ",@ c #3F4040", "'@ c #C18871", ")@ c #EEA487", "!@ c #EDA889", "~@ c #E9AC8D", "{@ c #E2A98B", "]@ c #DFA689", "^@ c #DEA48C", "/@ c #DDA691", "(@ c #DBA392", "_@ c #D4A190", ":@ c #CC9688", "<@ c #BA8676", "[@ c #AF7E6F", "}@ c #AB7D70", "|@ c #A27467", "1@ c #966C5C", "2@ c #8B6151", "3@ c #7D5742", "4@ c #774C39", "5@ c #764332", "6@ c #804839", "7@ c #7F473A", "8@ c #773F32", "9@ c #733B2E", "0@ c #763E31", "a@ c #743A2C", "b@ c #6D3325", "c@ c #581D0B", "d@ c #5A200C", "e@ c #642A12", "f@ c #78482F", "g@ c #A7A8A8", "h@ c #8D9090", "i@ c #8F9392", "j@ c #727877", "k@ c #393B3A", "l@ c #494E4D", "m@ c #959998", "n@ c #797D7C", "o@ c #5E6261", "p@ c #414342", "q@ c #F0A88F", "r@ c #EDAA8F", "s@ c #E8AF92", "t@ c #E1AB8F", "u@ c #DAA48A", "v@ c #D69F8A", "w@ c #D19E8B", "x@ c #CF9B8D", "y@ c #C69489", "z@ c #B4837B", "A@ c #996A62", "B@ c #92635D", "C@ c #8A5F58", "D@ c #80554E", "E@ c #754D43", "F@ c #734B41", "G@ c #775144", "H@ c #7F5549", "I@ c #6D3D2F", "J@ c #744033", "K@ c #784236", "L@ c #733D31", "M@ c #683226", "N@ c #5E281C", "O@ c #5E291B", "P@ c #632E20", "Q@ c #511908", "R@ c #4E1703", "S@ c #561E07", "T@ c #683015", "U@ c #B3B4B4", "V@ c #959897", "W@ c #7F8483", "X@ c #6C7270", "Y@ c #373A39", "Z@ c #747877", "`@ c #3F4140", " # c #EEAA93", ".# c #ECA891", "+# c #E8A791", "@# c #DAA78C", "## c #D3A38C", "$# c #CE9E88", "%# c #C79685", "&# c #BA8A7E", "*# c #A97971", "=# c #976A65", "-# c #895B58", ";# c #764948", "># c #704445", ",# c #6F4748", "'# c #694142", ")# c #5E3837", "!# c #5B3534", "~# c #5F3C38", "{# c #69423D", "]# c #64382F", "^# c #67372D", "/# c #6C3A31", "(# c #6A382F", "_# c #5A281D", ":# c #49170C", "<# c #4E1A0D", "[# c #5C281B", "}# c #4D1A09", "|# c #441100", "1# c #441000", "2# c #57230D", "3# c #AFB1B1", "4# c #949897", "5# c #7D8080", "6# c #686E6C", "7# c #333635", "8# c #737675", "9# c #E3A28E", "0# c #E09F8B", "a# c #DC9F8C", "b# c #CC9C86", "c# c #C19481", "d# c #B38575", "e# c #A37568", "f# c #8E605A", "g# c #7B4E4B", "h# c #6B3E3E", "i# c #643839", "j# c #653B3F", "k# c #663B40", "l# c #61383D", "m# c #5D3538", "n# c #573235", "o# c #522E32", "p# c #522E30", "q# c #572F2F", "r# c #5A2D28", "s# c #5C2B24", "t# c #5C2C22", "u# c #5A2A20", "v# c #532317", "w# c #4B1B0F", "x# c #501F11", "y# c #582719", "z# c #542312", "A# c #441302", "B# c #3D0A00", "C# c #4B1803", "D# c #ADAFAE", "E# c #929494", "F# c #777A7A", "G# c #7B7F7E", "H# c #656B6A", "I# c #B5B8B8", "J# c #4E5250", "K# c #393C3B", "L# c #D19280", "M# c #CF907E", "N# c #CB907E", "O# c #BC8B7A", "P# c #A7796A", "Q# c #895D50", "R# c #70443B", "S# c #623530", "T# c #603230", "U# c #5D3030", "V# c #5D3034", "W# c #603336", "X# c #5B2F32", "Y# c #572C2D", "Z# c #51282C", "`# c #532B2C", " $ c #572F30", ".$ c #593332", "+$ c #5B3230", "@$ c #4F2018", "#$ c #501E15", "$$ c #4C1A0F", "%$ c #4B190E", "&$ c #532214", "*$ c #5F2E20", "=$ c #643120", "-$ c #5F2C1B", ";$ c #602D18", ">$ c #4E1B06", ",$ c #3F0B00", "'$ c #461200", ")$ c #AAABAB", "!$ c #8A8C8B", "~$ c #5E6462", "{$ c #333534", "]$ c #454A49", "^$ c #A2A6A6", "/$ c #4C504E", "($ c #C18270", "_$ c #BE7F6D", ":$ c #B97E6C", "<$ c #986554", "[$ c #865648", "}$ c #714133", "|$ c #623228", "1$ c #5E2D26", "2$ c #63322E", "3$ c #673633", "4$ c #623230", "5$ c #582828", "6$ c #512220", "7$ c #4E201D", "8$ c #50231E", "9$ c #582B25", "0$ c #62352F", "a$ c #62382C", "b$ c #623427", "c$ c #5A2619", "d$ c #5B2316", "e$ c #561E0F", "f$ c #571F10", "g$ c #68311D", "h$ c #7C4531", "i$ c #7D452E", "j$ c #713922", "k$ c #713920", "l$ c #612910", "m$ c #4F1600", "n$ c #4D1400", "o$ c #A3A5A4", "p$ c #616564", "q$ c #656A68", "r$ c #5D6261", "s$ c #727574", "t$ c #B57460", "u$ c #AB6D58", "v$ c #A66956", "w$ c #7C4433", "x$ c #743F31", "y$ c #6E392B", "z$ c #6B352B", "A$ c #6C362C", "B$ c #6D362F", "C$ c #68332D", "D$ c #66312B", "E$ c #5A251F", "F$ c #59251C", "G$ c #5B291E", "H$ c #673627", "I$ c #734231", "J$ c #7B4B37", "K$ c #7C4C35", "L$ c #7E4A34", "M$ c #884F3C", "N$ c #874A38", "O$ c #854833", "P$ c #884B36", "Q$ c #92543B", "R$ c #975A3E", "S$ c #935639", "T$ c #8C4F30", "U$ c #8C4D2E", "V$ c #7F4021", "W$ c #6C2D0E", "X$ c #5F2001", "Y$ c #9D9F9E", "Z$ c #797C7B", "`$ c #5C605F", " % c #606564", ".% c #656A6A", "+% c #A1A6A5", "@% c #4B4E4E", "#% c #AB6A56", "$% c #A1604C", "%% c #985947", "&% c #7F4434", "*% c #783E30", "=% c #70362A", "-% c #6B3126", ";% c #692F24", ">% c #662B23", ",% c #622920", "'% c #5F261D", ")% c #7B4336", "!% c #854D3C", "~% c #8B543F", "{% c #915B41", "]% c #9B6549", "^% c #A77252", "/% c #B17A5C", "(% c #BA7C63", "_% c #B6755F", ":% c #B7755D", "<% c #BB795F", "[% c #B7765A", "}% c #AA694B", "|% c #A3613F", "1% c #A46240", "2% c #A2603D", "3% c #975532", "4% c #843F1E", "5% c #702B0A", "6% c #9A9C9C", "7% c #5B5F5E", "8% c #636866", "9% c #6C7171", "0% c #494D4C", "a% c #D0D3D2", "b% c #8F9393", "c% c #494C4B", "d% c #B06747", "e% c #A55E3E", "f% c #9E593C", "g% c #823F25", "h% c #73311B", "i% c #7B3921", "j% c #7F3D25", "k% c #74341B", "l% c #83432A", "m% c #9E6145", "n% c #A5684C", "o% c #B77C5E", "p% c #BF8668", "q% c #B17A5B", "r% c #B27D5D", "s% c #BF8D6A", "t% c #BD8B68", "u% c #B78965", "v% c #BC8A67", "w% c #C78C6E", "x% c #CA8A6E", "y% c #C38465", "z% c #B77857", "A% c #B37350", "B% c #B3734F", "C% c #AD6E45", "D% c #A4653C", "E% c #A26137", "F% c #A36238", "G% c #9F5B34", "H% c #904C27", "I% c #9A9B9B", "J% c #787B7A", "K% c #656868", "L% c #747777", "M% c #383B3B", "N% c #464B4A", "O% c #ADB2B1", "P% c #999D9D", "Q% c #676C6A", "R% c #343736", "S% c #AD6444", "T% c #A35A3A", "U% c #9A5335", "V% c #89462B", "W% c #87452B", "X% c #96543A", "Y% c #AD6D52", "Z% c #BA7A5F", "`% c #BB7E62", " & c #BF8266", ".& c #B57C5F", "+& c #C78E71", "@& c #C48E72", "#& c #C69376", "$& c #BE8B6E", "%& c #B78668", "&& c #BC896E", "*& c #B97F67", "=& c #BC7F6A", "-& c #B97B62", ";& c #B27559", ">& c #B07356", ",& c #B17455", "'& c #B0714E", ")& c #A96A47", "!& c #A56541", "~& c #A46440", "{& c #9F5D3A", "]& c #914F2C", "^& c #9B9D9C", "/& c #787B7B", "(& c #5F6161", "_& c #656867", ":& c #666B6B", "<& c #444848", "[& c #626766", "}& c #474B4A", "|& c #AB6242", "1& c #A05736", "2& c #964F2F", "3& c #934E2D", "4& c #A76545", "5& c #A56446", "6& c #A86749", "7& c #BC7C60", "8& c #AC7054", "9& c #B97D63", "0& c #B0785F", "a& c #BF8770", "b& c #C69078", "c& c #C7907B", "d& c #C4907B", "e& c #B98570", "f& c #AB7664", "g& c #AD7566", "h& c #AB7364", "i& c #AD7367", "j& c #AB7060", "k& c #A76C5A", "l& c #A76A57", "m& c #A76A55", "n& c #A6684F", "o& c #A3654C", "p& c #A6664A", "q& c #A56549", "r& c #A16040", "s& c #975636", "t& c #9E9F9E", "u& c #7C7D7D", "v& c #5D605F", "w& c #636766", "x& c #626867", "y& c #A5A9A8", "z& c #5E6362", "A& c #373A3A", "B& c #AD6242", "C& c #A35A39", "D& c #9B5231", "E& c #A25E3B", "F& c #B6724F", "G& c #B57351", "H& c #A96848", "I& c #A46544", "J& c #995C3F", "K& c #8F5639", "L& c #985E46", "M& c #A9705C", "N& c #A56C5B", "O& c #A76F60", "P& c #A66D62", "Q& c #A36D61", "R& c #9C665C", "S& c #8E5750", "T& c #905952", "U& c #8F564F", "V& c #8D544D", "W& c #8B5249", "X& c #8E5448", "Y& c #915648", "Z& c #935848", "`& c #985B48", " * c #9F614C", ".* c #A05F49", "+* c #9E5E43", "@* c #9C5A40", "#* c #9FA0A0", "$* c #7D7F7E", "%* c #646766", "&* c #6E7271", "** c #636968", "=* c #343635", "-* c #414444", ";* c #9FA4A3", ">* c #808484", ",* c #616765", "'* c #4B4F4D", ")* c #393B3B", "!* c #B16646", "~* c #A95F3C", "{* c #A35936", "]* c #B06A46", "^* c #AB6543", "/* c #A86643", "(* c #9E5D3D", "_* c #8E4F30", ":* c #905438", "<* c #8E543C", "[* c #7E4531", "}* c #773F2E", "|* c #693124", "1* c #753F35", "2* c #743D38", "3* c #692F2D", "4* c #5B2120", "5* c #501517", "6* c #602625", "7* c #662F2A", "8* c #5D261F", "9* c #5B2219", "0* c #6C3227", "a* c #74382E", "b* c #7E4335", "c* c #894B3C", "d* c #8E4F3E", "e* c #92513F", "f* c #96553F", "g* c #9C5A42", "h* c #7E7F7F", "i* c #5E6160", "j* c #636666", "k* c #646A69", "l* c #969A99", "m* c #4E5150", "n* c #B06442", "o* c #AB5F3D", "p* c #A85C3A", "q* c #A9603F", "r* c #A05A38", "s* c #A35E3D", "t* c #915030", "u* c #7A3A1E", "v* c #85492F", "w* c #905841", "x* c #7F4835", "y* c #4C1709", "z* c #410B01", "A* c #68312C", "B* c #713938", "C* c #53181A", "D* c #340000", "E* c #2A0000", "F* c #4B0E13", "G* c #6A342A", "H* c #552012", "I* c #470F02", "J* c #4F1509", "K* c #55190E", "L* c #5F2416", "M* c #6D2D21", "N* c #7C3A2A", "O* c #844130", "P* c #914D3A", "Q* c #9F5842", "R* c #A0A1A1", "S* c #7F807F", "T* c #646767", "U* c #3C3E3E", "V* c #AA5E3C", "W* c #A65A36", "X* c #A65A38", "Y* c #A55B3E", "Z* c #9B5637", "`* c #844126", " = c #7A3D21", ".= c #935941", "+= c #B17964", "@= c #B98170", "#= c #7A4639", "$= c #511C14", "%= c #68312E", "&= c #6F3436", "*= c #51161A", "== c #40030B", "-= c #4F1019", ";= c #8C4E51", ">= c #A87061", ",= c #844E36", "'= c #612814", ")= c #531A06", "!= c #4E1301", "~= c #4B0E00", "{= c #4F1000", "]= c #5A1707", "^= c #722F1E", "/= c #7F3826", "(= c #924B37", "_= c #A85D48", ":= c #A2A3A3", "<= c #808282", "[= c #6E7171", "}= c #636867", "|= c #838786", "1= c #535656", "2= c #3E403F", "3= c #A35733", "4= c #A15531", "5= c #A25634", "6= c #A75C3D", "7= c #A95F44", "8= c #8A4327", "9= c #78351B", "0= c #A1634A", "a= c #D49A84", "b= c #F3BCA8", "c= c #FFD2C2", "d= c #BD897C", "e= c #5F2A22", "f= c #420D09", "g= c #330000", "h= c #290000", "i= c #3C0007", "j= c #763740", "k= c #D39596", "l= c #E0A995", "m= c #B27D5E", "n= c #6B3119", "o= c #5D230B", "p= c #531500", "q= c #511200", "r= c #5A1706", "s= c #702C19", "t= c #813827", "u= c #974F39", "v= c #AF634C", "w= c #A4A5A4", "x= c #828383", "y= c #636565", "z= c #626767", "A= c #A05535", "B= c #B0664D", "C= c #C07B6B", "D= c #9C584D", "E= c #804034", "F= c #8E5043", "G= c #B57A6C", "H= c #D99F91", "I= c #EDB8A6", "J= c #F8C3B1", "K= c #A06857", "L= c #864E3D", "M= c #692E1C", "N= c #612211", "O= c #692717", "P= c #7C3728", "Q= c #944C3D", "R= c #A85D4A", "S= c #A55740", "T= c #A05035", "U= c #97482A", "V= c #914224", "W= c #8F4022", "X= c #8E3F21", "Y= c #8D3E1F", "Z= c #8C3D1E", "`= c #A75839", " - c #A95A3B", ".- c #AC5D3C", "+- c #B06140", "@- c #A5A6A5", "#- c #848584", "$- c #636665", "%- c #434746", "&- c #C2C5C4", "*- c #A65A3A", "=- c #B36648", "-- c #BF735B", ";- c #B36B5C", ">- c #9B554B", ",- c #8A483C", "'- c #905044", ")- c #9F6152", "!- c #A36858", "~- c #9F6756", "{- c #A46C5A", "]- c #B67C6A", "^- c #AF7462", "/- c #AC705F", "(- c #AE6F5E", "_- c #A96655", ":- c #9F5748", "<- c #964E3F", "[- c #974C39", "}- c #9D4F38", "|- c #9B4B30", "1- c #994A2C", "2- c #9E4F31", "3- c #A15233", "4- c #A25334", "5- c #AC5D3E", "6- c #AD5E3F", "7- c #AE5F3E", "8- c #A6A7A7", "9- c #868887", "0- c #666969", "a- c #707373", "b- c #3F4141", "c- c #AC5D3F", "d- c #B6694B", "e- c #C0745C", "f- c #A96357", "g- c #A46254", "h- c #AA685A", "i- c #AC6F5D", "j- c #AA6D5B", "k- c #A86D5B", "l- c #C08370", "m- c #D0917F", "n- c #E7A896", "o- c #EEAB9A", "p- c #DE9A87", "q- c #C37A69", "r- c #A9604F", "s- c #9E513F", "t- c #A1543A", "u- c #A15136", "v- c #A05133", "w- c #A25335", "x- c #A65739", "y- c #B16243", "z- c #B36445", "A- c #B46546", "B- c #B26342", "C- c #A8A9A9", "D- c #898B8A", "E- c #676969", "F- c #686A69", "G- c #6F7372", "H- c #757878", "I- c #585B5B", "J- c #3E4140", "K- c #AD593D", "L- c #AF6042", "M- c #B1634C", "N- c #D38A79", "O- c #D38B7D", "P- c #D38E7F", "Q- c #C98876", "R- c #C1806E", "S- c #C78674", "T- c #BE7D69", "U- c #CC8976", "V- c #DA9784", "W- c #E29B89", "X- c #DA937F", "Y- c #CC8370", "Z- c #C17663", "`- c #BC6F5B", " ; c #B3634A", ".; c #B36247", "+; c #B16043", "@; c #B05F42", "#; c #B46346", "$; c #B66547", "%; c #B76648", "&; c #BD6C4E", "*; c #BB6A4C", "=; c #B86847", "-; c #B56544", ";; c #A9AAAA", ">; c #8A8B8B", ",; c #6A6C6B", "'; c #696C6B", "); c #636868", "!; c #8C908F", "~; c #878B8A", "{; c #595C5C", "]; c #3E3F3F", "^; c #AB5639", "/; c #AB573D", "(; c #AA5944", "_; c #C47B68", ":; c #CF8778", "<; c #DD9586", "[; c #DF9788", "}; c #CF8B78", "|; c #BB7764", "1; c #AE6A57", "2; c #AB6754", "3; c #AD6652", "4; c #B06955", "5; c #B56C59", "6; c #B86F5C", "7; c #BE735E", "8; c #C27762", "9; c #C67965", "0; c #C97B65", "a; c #BC6C53", "b; c #BD6C51", "c; c #BC6B4E", "d; c #BB6A4D", "e; c #BE6D4F", "f; c #C37254", "g; c #C27153", "h; c #BE6E4D", "i; c #B96948", "j; c #ACADAD", "k; c #8D8E8E", "l; c #6C6F6F", "m; c #6B6E6E", "n; c #676C6B", "o; c #383A3A", "p; c #595C5B", "q; c #AE5439", "r; c #AF5B41", "s; c #B1614A", "t; c #AB604D", "u; c #B66D5C", "v; c #C77E6D", "w; c #D08776", "x; c #CD8471", "y; c #C27966", "z; c #BA6F5C", "A; c #B56A57", "B; c #AF644F", "C; c #AE634E", "D; c #AD604C", "E; c #B2664F", "F; c #BA6E57", "G; c #BF715B", "H; c #C07059", "I; c #BF6D55", "J; c #C36F55", "K; c #C57155", "L; c #C67256", "M; c #C77357", "N; c #C97559", "O; c #CB785A", "P; c #CD7A5C", "Q; c #C87557", "R; c #C57252", "S; c #C16E4E", "T; c #AFAFAF", "U; c #919292", "V; c #717473", "W; c #6D7371", "X; c #393C3C", "Y; c #5A5D5D", "Z; c #B0553A", "`; c #B25C43", " > c #B5634D", ".> c #BA6F5A", "+> c #BA715E", "@> c #C87D6A", "#> c #CF826E", "$> c #D18470", "%> c #CE816D", "&> c #C87B67", "*> c #C2745E", "=> c #BA6C56", "-> c #BC6E57", ";> c #C2745D", ">> c #C4765F", ",> c #C3735C", "'> c #C9785D", ")> c #CD795F", "!> c #D07C60", "~> c #CF7B5F", "{> c #D07D5F", "]> c #D27F61", "^> c #C97658", "/> c #C97656", "(> c #AFB0B0", "_> c #949695", ":> c #757877", "<> c #727575", "[> c #696F6E", "}> c #434545", "|> c #777B7A", "1> c #B3553B", "2> c #AF5942", "3> c #B05E49", "4> c #B56854", "5> c #B36855", "6> c #B66B56", "7> c #C17661", "8> c #DA8D79", "9> c #D78973", "0> c #CF816B", "a> c #D4836E", "b> c #CF7F68", "c> c #C87861", "d> c #D3856E", "e> c #D5856E", "f> c #D9886D", "g> c #DC886E", "h> c #DC886C", "i> c #D88468", "j> c #D27E62", "k> c #CE7A5E", "l> c #CC795B", "m> c #CC7959", "n> c #C87555", "o> c #B1B2B1", "p> c #939594", "q> c #737575", "r> c #313332", "s> c #C4C7C6", "t> c #797D7D", "u> c #BC5838", "v> c #B55636", "w> c #AF5638", "x> c #BF6E53", "y> c #BA6D53", "z> c #B86B51", "A> c #B96C52", "B> c #C07057", "C> c #C8785F", "D> c #D18168", "E> c #D6866D", "F> c #DB8971", "G> c #DC8A72", "H> c #DD8B73", "I> c #DE8A72", "J> c #DB876F", "K> c #D9856D", "L> c #D88269", "M> c #D97D64", "N> c #DB7D63", "O> c #D87D62", "P> c #D77C61", "Q> c #D67B5E", "R> c #D57A5D", "S> c #D4795C", "T> c #D37A5A", "U> c #D17858", "V> c #CC7655", "W> c #CA7453", "X> c #B4B5B5", "Y> c #949796", "Z> c #686D6C", "`> c #5D6361", " , c #323534", "., c #676A6A", "+, c #464847", "@, c #AD5539", "#, c #B75838", "$, c #B2573A", "%, c #BB654C", "&, c #B9674F", "*, c #BC6A52", "=, c #C06E56", "-, c #C5735B", ";, c #CA7860", ">, c #D07C64", ",, c #D27E66", "', c #D8846C", "), c #DA846D", "!, c #D8826B", "~, c #D7816A", "{, c #D77F67", "], c #D47B5B", "^, c #C47B5E", "/, c #BEBFBF", "(, c #9B9D9D", "_, c #777B7B", ":, c #707573", "<, c #666B6A", "[, c #454848", "}, c #828686", "|, c #6A5851", "1, c #A3624D", "2, c #B95A3E", "3, c #B35B43", "4, c #B7614A", "5, c #BE6851", "6, c #C67059", "7, c #CC745E", "8, c #CE7660", "9, c #CF7761", "0, c #D77C67", "a, c #D87C67", "b, c #D87C65", "c, c #DA7C63", "d, c #D97E63", "e, c #D87D60", "f, c #D77C5F", "g, c #C7846A", "h, c #CEB8B0", "i, c #D3D4D4", "j, c #ABACAC", "k, c #808383", "l, c #737876", "m, c #6B7170", "n, c #373938", "o, c #464A49", "p, c #737877", "q, c #898C8C", "r, c #B2B3B3", "s, c #B1B3B2", "t, c #A4A6A6", "u, c #A0A2A1", "v, c #9C9E9D", "w, c #9E9F9F", "x, c #A1A2A2", "y, c #A4A5A5", "z, c #A5A6A6", "A, c #A7A9A8", "B, c #AEAFAF", "C, c #B0B2B1", "D, c #B5B5B5", "E, c #BDBEBE", "F, c #D2D3D3", "G, c #D6D7D7", "H, c #C7C9C8", "I, c #818484", "J, c #797C7C", "K, c #6D7372", "L, c #8A8F8E", "M, c #7F8282", "N, c #8C8F8E", "O, c #898B8B", "P, c #7A7D7D", "Q, c #717373", "R, c #727473", "S, c #727474", "T, c #737473", "U, c #747675", "V, c #787A7A", "W, c #7B7D7C", "X, c #7A7C7B", "Y, c #7D807F", "Z, c #818282", "`, c #848585", " ' c #878989", ".' c #8D8F8F", "+' c #959796", "@' c #A5A7A7", "#' c #A2A4A4", "$' c #7E8281", "%' c #484C4C", "&' c #757978", "*' c #6D706F", "=' c #666968", "-' c #606463", ";' c #5D6160", ">' c #5C5F5E", ",' c #585A5A", "'' c #5A5C5C", ")' c #575B5A", "!' c #646665", "~' c #848787", "{' c #7C807F", "]' c #757B7A", "^' c #868A89", "/' c #666A69", "(' c #5F6362", "_' c #5F6462", ":' c #6B6E6D", "<' c #6E7170", "[' c #787C7B", "}' c #787E7D", "|' c #8B918F", "1' c #6F7573", "2' c #6F7473", "3' c #6A6E6D", "4' c #6C6F6E", "5' c #7A8180", "6' c #848988", "7' c #767C7A", "8' c #747978", "9' c #747A78", "0' c #757B79", "a' c #727776", "b' c #737777", "c' c #7D8181", "d' c #7D8483", "e' c #848A88", "f' c #7D8482", "g' c #7A807F", "h' c #777D7B", "i' c #7C8180", "j' c #7A7F7E", "k' c #828786", "l' c #838887", "m' c #7C8382", "n' c #3C3F3E", "o' c #4A4F4E", "p' c #C8CBCA", "q' c #CBCECD", "r' c #838987", "s' c #7C8280", "t' c #878B8B", "u' c #737979", "v' c #737978", "w' c #6E7473", "x' c #6F7675", "y' c #717776", "z' c #707675", "A' c #707776", "B' c #777D7D", "C' c #79807F", "D' c #484B4B", "E' c #303332", "F' c #2A2D2C", "G' c #282B2A", "H' c #272A29", "I' c #292C2B", "J' c #2A2C2C", "K' c #2B2D2C", "L' c #2A2C2B", "M' c #292B2A", "N' c #282A2A", "O' c #2E3130", "P' c #2B2E2D", "Q' c #525756", "R' c #4C5150", "S' c #4D5251", "T' c #545858", "U' c #515655", "V' c #505453", "W' c #4F5453", "X' c #535857", "Y' c #555958", "Z' c #565B5A", "`' c #575C5B", " ) c #545958", ".) c #595E5D", "+) c #545857", "@) c #555959", "#) c #585C5B", ". + @ # # # @ $ % % & & $ $ $ # * = @ @ = $ $ @ @ * - ; > @ , ' ) ! ! ' , $ * - ~ { { $ ! % ] ^ ", "$ / ( _ : : : < [ _ _ _ } } | 1 1 1 | 1 2 2 1 3 4 4 5 6 7 8 2 2 2 2 9 0 a 6 b 5 5 5 b 0 0 , c d ", "% 3 ~ ^ e ] e f g h h h i f e ^ ] e j k l m k n o p q r s t u v w t x y z A B h C z D E y q F G ", ") 2 g H y I I y J K K s y q z L q q z M M L N I I O P K x Q R R Q s y S p T C p H U t V C D W X ", "' 2 e H H q q q q I S Y I q I Z r S ` I S ...+.y @.#.D $.%.&.*.=. .y -.o T ;.>.,.t y z C E '.).", "' 2 !.S ~.q ;.{.A z I r r q +.].P ].^.@./.(._.@.+.:.<.<.[.}.|.}._.#.^.q {.{.1.*.Q S ;.;.{.R 2.X ", "' 2 !.z J ;.3.B 4.z 5.6.7./.8.9.0.a.b.c.c.d.e.f.7.g.h.i.j.k.l.|.g.m.7.+.S /.n.|.1.I -.q o.w p.q.", "! 2 r.A q T s.t.N u.v.w.x.y.w.z.A.B.C.D.E.B.F.G.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.@.P r z %.X.q.", "Y.9 ^ C {.Z.`. +.+++@+#+$+$+%+&+*+=+-+;+>+@+,+&+&+*+'+)+!+!+~+{+]+^+/+(+_+:+<+[+}+a.8.O |+1+p.2+", "Y.2 ] C {.3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+i+o+p+j+b+q+r+s+s+a+o+b+>+t+R._.z u+E v+w+", "x+2 y+T z+I .A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@5.o n *@=@-@", "' 2 y+{.L s ;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@5.S i@j@k@l@", "' 9 e L m@#.n@o@p@q@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@m.a.W@X@Y@2+", ") 2 f y r 5.Z@$+`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#3#4#5#R.R.6#7#-@", ") 2 i ~. .@.8#&+2.9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#Q.G#H#7#-@", "I#2 i r I r 8#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$J.z.T.~${$]$", ", 2 ^$-.z+N O./$Y@($_$:$<$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$S.p$q$L.r$e+l@", "I#2 ^$z p -.s$/$=@t$u$v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %M..%p+q.", "' } +%m@o.N z.@%Y@#%$%%%&%*%=%-%;%>%,%'%)%6@!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%.+7%8%Z@9%b+0%", "! a%h p 4+b%B.c%m+d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I%J%`$K%L%M.M%N%", "O%[ +%P%n .Q%X R%S%T%U%V%W%W%X%Y%Z%`% &.&+&@&@&#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&z.:&e+<&", "r.: g 4+|+6.[&}&p+|&1&2&3&4&5&6&7&Z%8&9&0&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&H.x&{$w+", "x+a%y&{.;.g.z&G A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&W&X&Y&Z&`& *.*+*@*#*$*(&%*&***=*-*", "I#2 ;*;.N >*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*1*2*3*4*5*6*7*8*9*,%0*a*b*c*d*e*f*g*#*h*i*j*&*k*7#).", "- 9 o l*+.g.D.m*q+n*o*p*q*r*s*t*u*v*w*x*y*z*A*B*C*D*E*F*G*H*I*I*J*K*L*M*N*O*P*Q*R*S*(+T*H.**7#).", "; 0 T 4#:.g.J.~+U*V*W*X*1&Y*Z*`* =.=+=@=#=$=%=&=*===-=;=>=,='=)=!=~={=]=^=/=(=_=:=<=(+T*[=}=7#w+", "~ 0 A ` <.|=&*1=2=3=4=5=6=7=8=9=0=a=b=c=d=e=f=g=h=i=j=k=l=m=Y+n=o=p=q=r=s=t=u=v=w=x=y=T*[=z=7#).", "~ 8 p S _.m.N.1=a+A=6=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-T*H.**7#%-", "&-8 L y /.m.F.]+r+*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-U=U=1-2-3-4-5-6-7-+-8-9-%*0-a-k*R%%-", "&-8 N +.#.f.w.$+b-c-d-e-;-f-g-h-i-j-k-i-l-m-n-o-p-q-r-s-t-u-v-w-x-c-y-z-A-z-B-B-C-D-E-F-G-**7#).", "&-8 N .@.7.H-I-J-K-L-M-N-O-P-P-Q-R-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;+;#;$;%;&;*;=;-;;;>;,;';a-);R%<&", "{ 8 i@!;#.~;Z@{;];^;/;(;_;:;<;[;};|;1;2;3;4;5;6;7;8;9;0;a;b;c;d;d;d;&;e;f;g;h;i;j;k;l;m;O.n;o;l@", "{ 8 y 5.@.~;Z@p;];q;r;s;t;u;v;w;x;y;z;A;B;C;D;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;Q;R;S;T;U;V;G-F#W;X;0%", ". a I +.+.f.P.Y;J-Z;`; >.>+>Z-@>#>$>%>&>*>*>G;=>->;>>>,>'>)>!>!>~>~>{>]>^>O;/>R;(>_>:><>n@[>o+}>", ". a I +.P 7.|>_+J-1>2>3>4>5>6>7>$>8>9>0>a>a>b>c>c>b>d>e>f>g>h>i>j>k>l>l>^>l>m>n>o>p>q>J.U.~$r>X.", "s>a z y ].7.t>>@}>u>v>w>x>y>z>A>B>C>D>E>F>G>H>H>I>J>K>L>M>N>O>P>Q>R>S>S>T>U>V>W>X>Y>G-q$Z>`> ,s+", "{ a {.-.+.:.h..,+,@,#,$,%,&,*,=,-,;,>,,,',K>),),),!,~,{,M>N>O>P>Q>Q>R>S>],U>V>^,/,(,_,K.:,<,p+[,", "&-8 o I +.#.},.+v&|,1,2,3,4,5,6,7,8,9,8,0,0,0,0,a,a,a,b,c,N>d,O>e,f,Q>Q>],U>g,h,i,j,k,l,n@m,n,o,", "~ 8 p S ].@.f.a.p,';q,r,s,)$t,u,#*v,#*#*w,w,#*#*R*x,y,z,g@g@A,)$)$j;B,C,D,E,F,G,H,t.I,J,&@K,=@X ", "~ 8 p S +.!;L,L,|=Q.M,N,O,5+P,:>s$N.G-Q,q>R,S,S,T,U,V,W,X,V,X,Y,<=Z,`, '.'+'@'j,#'!;$'R.g.j@b+%'", "~ 8 z I O +.L,/./.m.a.k,&'*'='-';'>'^+$+$+p;$+,'I-''v&(+>')'^+;'i*(+!'.,[+<>Y,9-~'$'{'u.f.]'v+l@", "~ 0 q q q Z D #.].5./.^'{'Z@G-C.<,/'='_&0-_&('>@>@>@j*%*>@;'z&_'p$$-0-';:'<'O.['n@Q.i.m.#.}'2.0%", "&-8 L L z I |'y z L O L,g.Q.T.1'2'&*F.A.<>w.B.B.G-*'E.3'*'C.Z>E.4'B.G-a-O.Z@['{'&@u.0.#.Y 5'2.l@", "&-8 {.L q y O ;.n |+;.].6'*@7'8'9'0'['['Q.M,R.['['F#a'b'n@F#a'v.P.['n@Q.{'c'd.|=^'#.i@I z d'W q.", "s>7 p S O H L ;*+%B ;.].e'f'g'h'}'i'd.g.g.~;8.u.j'{'j'{'a.k'R.c'd.u.k'},l'0.f./.i@4#z l*;.m'n'o'", "p'q'q x K Y A g +%|+4#1.r'*.n.s'j.w t'7.:.#.i@:.n.v g.j.u'v'K,w'x'j@y'z'A'j@v'B'g'5'C'C'C'M.v+D'", "- A F E'7#p+v+n'2.l+F'G'H'H'H'H'G'I'J'K'K'K'K'L'M'N'M'F'Y@Y@o+o+p+p+i+m+p+Y@Y@Y@=@j+l+l+p+O'P'2+", "R Q'o'-*[,l@R'S'R'R'T'U'V'W'W'W'X'Y'Y'Z'Z'`'Z' )X'U'Q'F Z'.).)Z'Z' )+)+)@)Z'`'`'`'Z'#)#)F U'-@.)"}; gscanbus-0.8/gnome-question.xpm000066400000000000000000000071231151312264100166650ustar00rootroot00000000000000/* XPM */ static char * gnome_question_xpm[] = { "48 48 74 1", " c None", ". c #000000", "+ c #A27F3B", "@ c #B89243", "# c #D8AB4E", "$ c #9D7D3A", "% c #A6823C", "& c #7C622D", "* c #F7D899", "= c #F7E2B8", "- c #D8BA7B", "; c #BE9B53", "> c #F7C35A", ", c #F7DFAF", "' c #F7E5C0", ") c #F7D48C", "! c #F7CF7E", "~ c #D8B15F", "{ c #6E5526", "] c #F7DCA5", "^ c #A8843D", "/ c #937435", "( c #AA863E", "_ c #D8B66E", ": c #BEA363", "< c #947536", "[ c #927335", "} c #F7C96D", "| c #80632D", "1 c #C39F57", "2 c #A38E55", "3 c #A48B5A", "4 c #D2A64D", "5 c #82662F", "6 c #654F24", "7 c #DCB463", "8 c #BE9544", "9 c #C3A466", "0 c #8C6D31", "a c #D2B06C", "b c #D8BE86", "c c #715929", "d c #B99344", "e c #B38D40", "f c #D8B56E", "g c #D8AC58", "h c #997A3B", "i c #000001", "j c #6B5527", "k c #C39F55", "l c #DCC494", "m c #DAB872", "n c #C9AC73", "o c #BFA16A", "p c #19150D", "q c #876A31", "r c #C9A45B", "s c #C6A76A", "t c #7F6941", "u c #977737", "v c #D8B165", "w c #D8AC5B", "x c #BEA272", "y c #C09745", "z c #D8B163", "A c #927C52", "B c #735F3B", "C c #A68748", "D c #1A1A1A", "E c #393939", "F c #221C12", "G c #DDBC74", "H c #D2A64C", "I c #705627", " ", " ", " ", " ", " ", " ", " ", " ", " ........ ", " ...+@#$%&... ", " ..#**=*---;%... ", " ..>,'*)>>>!-~%{.. ", " .>,]>^//(>>!_~%.. ", " .:*=><....[>>}~~|.. ", " .}'!<.. .1>!#~%.. ", " .2),#.. .3>}~#%.. ", " .4!>%.. .3}}_#5.. ", " .>!>%.. .3>__#6.. ", " .7~85.. .9}-#%... ", " ....... 0ab~#c.. ", " ..... .d)b#8... ", " .e}b##... ", " ..>)fgh..i ", " jklmnop.. ", " .qafrst.. ", " .u-vwx.. ", " .y-zwA.. ", " .#b~#B.. ", " .;-#8.. ", " .CC%|.. ", " .DE... ", " .... ", " ", " F.... ", " .G!)8.. ", " .!**#.. ", " .))~8.. ", " .)_#8.. ", " .H~8I.. ", " ...... ", " .... ", " ", " ", " ", " ", " ", " ", " "}; gscanbus-0.8/gnome-term-apple.xpm000066400000000000000000000213001151312264100170550ustar00rootroot00000000000000/* XPM */ static char * gnome_term_apple_xpm[] = { "48 48 252 2", " c None", ". c #D7D7CF", "+ c #EFEBDF", "@ c #E7E7DF", "# c #E7E3D7", "$ c #DFDFD7", "% c #DFDBD7", "& c #DFD7CF", "* c #D7D3C7", "= c #D7CFC7", "- c #CFCFC7", "; c #CFCBBE", "> c #CFC7BE", ", c #C7C7BE", "' c #C7C3BE", ") c #C7BEB6", "! c #BDBDB5", "~ c #BCB8B4", "{ c #BBB7AB", "] c #B6AEA7", "^ c #9B9B94", "/ c #8F8C81", "( c #7D7A76", "_ c #BEBEB6", ": c #BEBAB6", "< c #BCB8AC", "[ c #B9B1A9", "} c #AEAEA6", "| c #A9A6A2", "1 c #A4A196", "2 c #83807C", "3 c #B6B2B6", "4 c #797979", "5 c #717571", "6 c #717171", "7 c #696D69", "8 c #696969", "9 c #616561", "0 c #616161", "a c #595D59", "b c #595959", "c c #515551", "d c #515151", "e c #494D49", "f c #494949", "g c #484448", "h c #474347", "i c #3E3E3E", "j c #7C7C7C", "k c #A39C95", "l c #918A83", "m c #000000", "n c #8E8E8E", "o c #C7C3C7", "p c #9E9A9E", "q c #969696", "r c #8E8A8E", "s c #868286", "t c #868686", "u c #494549", "v c #3F3F3F", "w c #3E393E", "x c #3C373C", "y c #96938F", "z c #B6B6B6", "A c #E7E7E7", "B c #A6A6A6", "C c #797D79", "D c #404040", "E c #3F3B3F", "F c #3D393D", "G c #343434", "H c #9B9894", "I c #979489", "J c #BEC3BE", "K c #969296", "L c #9E9E9E", "M c #585858", "N c #403B40", "O c #3F3A3F", "P c #353535", "Q c #333333", "R c #9C988D", "S c #909089", "T c #B6BAB6", "U c #414141", "V c #363636", "W c #2C302C", "X c #95958D", "Y c #908D89", "Z c #413C41", "` c #373737", " . c #2D312D", ".. c #2C2C2C", "+. c #95918D", "@. c #8F8C88", "#. c #2F332F", "$. c #2D2D2D", "%. c #94908D", "&. c #8F8881", "*. c #E7DFD7", "=. c #505050", "-. c #2F2F2F", ";. c #252825", ">. c #958D86", ",. c #898982", "'. c #383838", "). c #303430", "!. c #262A26", "~. c #252525", "{. c #8D8D86", "]. c #898682", "^. c #303030", "/. c #272A27", "(. c #3C9E3C", "_. c #272B27", ":. c #88827B", "<. c #DFDBCF", "[. c #272727", "}. c #827E7B", "|. c #282C28", "1. c #282828", "2. c #86837F", "3. c #827F7B", "4. c #272327", "5. c #1E1E1E", "6. c #1D1A1D", "7. c #1F1F1F", "8. c #1E1A1E", "9. c #FFFF00", "0. c #C6C6BD", "a. c #C7C3B6", "b. c #959195", "c. c #484C48", "d. c #484848", "e. c #E7AD73", "f. c #E7AC73", "g. c #E6AC72", "h. c #E5AB71", "i. c #E4AA70", "j. c #ECB278", "k. c #F0B57B", "l. c #E3A96F", "m. c #B3AFA3", "n. c #C3BFB2", "o. c #BABAB2", "p. c #BBB7B3", "q. c #BAB2AA", "r. c #B1B1A9", "s. c #B1ADA9", "t. c #B0ACA0", "u. c #A8A8A0", "v. c #A9A5A1", "w. c #A9A199", "x. c #A19D99", "y. c #A29E9A", "z. c #A09991", "A. c #F3B97F", "B. c #F2B87E", "C. c #F2B87D", "D. c #F1B77D", "E. c #F1B67C", "F. c #F0B67C", "G. c #EFB57B", "H. c #EDB479", "I. c #9B978C", "J. c #B2AEAA", "K. c #B2AEA3", "L. c #A9A9A2", "M. c #A8A499", "N. c #A7A098", "O. c #9F9F98", "P. c #AF7B6F", "Q. c #A78A82", "R. c #A19992", "S. c #918D82", "T. c #A76F68", "U. c #997C6F", "V. c #91918A", "W. c #98918A", "X. c #F4B479", "Y. c #F3B67B", "Z. c #F2B77D", "`. c #F3B87E", " + c #F1B77C", ".+ c #EFB57A", "++ c #F2B978", "@+ c #F3BD73", "#+ c #F2BA76", "$+ c #EFB47B", "%+ c #EDB379", "&+ c #536B67", "*+ c #888561", "=+ c #9D9D96", "-+ c #9D9A96", ";+ c #9C988E", ">+ c #9D968F", ",+ c #94948D", "'+ c #96928F", ")+ c #95928E", "!+ c #8F8F88", "~+ c #8E8B87", "{+ c #8E8780", "]+ c #888481", "^+ c #FF0000", "/+ c #414441", "(+ c #41413B", "_+ c #4D4D47", ":+ c #726F6C", "<+ c #726D61", "[+ c #4E4E48", "}+ c #5C5C55", "|+ c #79766D", "1+ c #79796D", "2+ c #5B5B54", "3+ c #6C655B", "4+ c #78786C", "5+ c #524F4B", "6+ c #4B4B45", "7+ c #5F5F59", "8+ c #52524C", "9+ c #525652", "0+ c #69695F", "a+ c #696259", "b+ c #515956", "c+ c #7F7F78", "d+ c #85857F", "e+ c #938F85", "f+ c #928B84", "g+ c #8D8D87", "h+ c #8D8986", "i+ c #8D8B80", "j+ c #86867F", "k+ c #878480", "l+ c #867F79", "m+ c #7E7C78", "n+ c #807C79", "o+ c #7F7979", "p+ c #7D3CBE", "q+ c #596259", "r+ c #878E87", "s+ c #8E8E87", "t+ c #9C998F", "u+ c #9A938D", "v+ c #95958F", "w+ c #949287", "x+ c #969389", "y+ c #8F8B88", "z+ c #8E8B80", "A+ c #878080", "B+ c #898282", "C+ c #0000FF", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . + + + + + @ @ # # $ $ % & . . * = - ; ; > , ' ) ! ~ { ] ^ / ( ", " . + + + + + @ @ # # $ $ % & . . * - - ; ; > , ' ) _ : < [ } | 1 2 ", " + + 3 4 4 4 4 4 4 5 5 6 7 7 8 9 0 0 a a b b c d e e f g h i j k l m ", " + + 4 n o p q r s t n s 5 5 6 7 7 0 0 0 d e e f u f g g v w x k y m m ", " + + r z A z B s C 4 4 5 5 8 9 9 0 b b b c d e e f u g D E F G H I m m ", " + + 4 B J q t K K 7 C q q q 5 s n C 8 r t L 0 a n b M N O P Q R S m m ", " + @ 4 B T 5 5 s 7 7 8 9 9 0 a a b c c d d e f u u U U N V P W X Y m m ", " @ @ 4 p K t s C n r q 5 K 6 a C c c 4 e 0 a u u U Z Z ` V ...+.@.m m ", " # # 4 r n 6 7 7 8 9 9 0 a a b c c d d e f u u U Z Z ` ` #.$...%.&.m m m ", " # *.t q K p n 4 q 5 5 s 7 C 4 8 d 5 6 a a b 7 4 9 d =.#.-.$.;.>.,.m m m ", " *.$ 6 t 4 7 8 9 9 0 a a b c c d e e f u u U Z Z '.'.).-.-.!.~.{.].m m m ", " $ % 6 4 7 4 9 9 0 a a b c c d e e f u u U Z Z '.'.).^.-./.(.(.(.(.m m m ", " % $ C t 8 t 5 K 6 7 n 8 8 t 5 0 s a b 8 c 8 d 0 ).0 -._.(.(.(.(.:.m m m ", " <.. 7 5 9 9 0 a a b c c d e e f u u U U Z '.'.).^.^._.[.(.(.(.(.}.m m m ", " . . 8 6 9 0 a a 7 8 8 d e 0 f u u U Z Z '.'.).^.^.|.1.[.(.(.(.2.3.m m m ", " . * 9 7 0 s 7 C 8 8 4 5 0 0 7 7 b 8 8 9 0 e (.(.|.1.1.4.(.5.6.2.(.(.m m ", " * = 9 0 0 a b c c d e e f u u U Z Z '.'.(.(.(.(.(.(.4.7.7.8.(.(.(.(.(.(. ", " = - 0 a a b c c d e e f u u U Z Z '.'.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(. ", " - ; a a b c c d d e f u u U Z Z '.'.).(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(. ", " ; ; a b c c d e e f u u U Z Z '.'.).9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.m ", " ; > b c c d d e f u u U Z Z '.'.).^.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.m m ", " > , c c r K K s n C p r 4 q 5 s L 6 9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.m m ", " 0.a.b.d c.c.d.g g D N N ` ` #.-.-._.e.e.f.f.g.g.h.h.h.i.i.i.j.k.k.l.m m ", " m.n.o.p.{ q.r.s.t.t.u.| v.w.x.x.y.z.A.A.A.B.B.B.B.C.D.D.E.F.k.G.H.l.m m ", " I.J.K.L.L.v.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+ +++@+#+k.G.$+%+j.l.m m ", " &+*+=+=+-+;+>+,+'+)+!+~+~+@.{+]+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+m ", " m m m m /+(+_+:+<+[+}+|+1+2+3+4+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+ ", " m m m 5+6+7+7+8+8+7+7+9+7+0+a+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+^+ ", " b+c+d+e+f+g+h+i+j+k+2.2.l+m+n+o+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+ ", " q+r+s+t+u+v+w+x+s+s+y+z+&.2.]+A+B+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+ ", " m m m m m m m m m m m m m m p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+ ", " m m m m m m m m m m m m m m C+C+C+C+C+C+C+C+C+C+C+C+C+C+ ", " m m m m m m m m m m m m C+C+C+C+C+C+C+C+C+C+C+C+ ", " C+C+ C+C+ ", " ", " ", " ", " ", " "}; gscanbus-0.8/gnome-term-linux.xpm000066400000000000000000000326001151312264100171200ustar00rootroot00000000000000/* XPM */ static char * gnome_term_linux_xpm[] = { "48 48 552 2", " c None", ". c #D7D7CF", "+ c #EFEBDF", "@ c #E7E7DF", "# c #E7E3D7", "$ c #DFDFD7", "% c #DFDBD7", "& c #DFD7CF", "* c #D7D3C7", "= c #D7CFC7", "- c #CFCFC7", "; c #CFCBBE", "> c #CECABD", ", c #CCC4BB", "' c #C3C3BA", ") c #C2BEB9", "! c #C2B9B1", "~ c #B9B9B1", "{ c #B9B5B1", "] c #BAB6AA", "^ c #B6AEA7", "/ c #9B9B94", "( c #8F8C81", "_ c #7D7A76", ": c #D5D1C7", "< c #B0B0C8", "[ c #57578F", "} c #19182F", "| c #010101", "1 c #080810", "2 c #2D2D56", "3 c #716FA7", "4 c #B6AEB0", "5 c #B6B6AE", "6 c #B8B4B0", "7 c #B7B3A7", "8 c #B7AFA7", "9 c #ADADA5", "0 c #A9A6A2", "a c #A4A196", "b c #83807C", "c c #B6B2B6", "d c #797979", "e c #717571", "f c #717171", "g c #696D69", "h c #696969", "i c #616561", "j c #4A4A76", "k c #070719", "l c #000000", "m c #1B1B1B", "n c #282828", "o c #10113B", "p c #3C3F55", "q c #454545", "r c #454145", "s c #3D3D3D", "t c #7C7C7C", "u c #A39C95", "v c #918A83", "w c #8E8E8E", "x c #C7C3C7", "y c #9E9A9E", "z c #969696", "A c #8E8A8E", "B c #868286", "C c #868686", "D c #676B6A", "E c #15153B", "F c #272727", "G c #3D3D3E", "H c #0A0A0A", "I c #17174F", "J c #413D47", "K c #444144", "L c #3D383D", "M c #3C373C", "N c #96938F", "O c #B6B6B6", "P c #E7E7E7", "Q c #A6A6A6", "R c #797D79", "S c #575B6D", "T c #030303", "U c #050505", "V c #010104", "W c #34315C", "X c #3C3C3C", "Y c #3D393D", "Z c #3C383C", "` c #343434", " . c #9B9894", ".. c #979489", "+. c #BEC3BE", "@. c #969296", "#. c #6C6992", "$. c #020202", "%. c #2B2B2B", "&. c #292929", "*. c #2E2E2E", "=. c #484848", "-. c #292966", ";. c #3A353A", ">. c #333333", ",. c #323232", "'. c #9C988D", "). c #909089", "!. c #B6BAB6", "~. c #616161", "{. c #595D59", "]. c #494C6C", "^. c #161617", "/. c #818181", "(. c #0C0C0C", "_. c #222222", ":. c #9C9C9C", "<. c #A0A0A0", "[. c #161650", "}. c #373337", "|. c #313131", "1. c #2B2F2B", "2. c #95958D", "3. c #908D89", "4. c #6B6E83", "5. c #2E2E30", "6. c #545554", "7. c #A19E95", "8. c #3C351B", "9. c #5E5842", "0. c #8B8A86", "a. c #BCBCBC", "b. c #090909", "c. c #111047", "d. c #2D2D2D", "e. c #282C28", "f. c #2A2A2A", "g. c #938F8B", "h. c #8F8C88", "i. c #595959", "j. c #4C5059", "k. c #18181B", "l. c #5B5341", "m. c #A08435", "n. c #A78A12", "o. c #A48E26", "p. c #928337", "q. c #453C10", "r. c #B0AB9B", "s. c #0B0B3C", "t. c #252825", "u. c #252525", "v. c #8E8A88", "w. c #8D867F", "x. c #E7DFD7", "y. c #67676B", "z. c #16100B", "A. c #B08931", "B. c #E1AC0B", "C. c #ECC70E", "D. c #E0C328", "E. c #DCC118", "F. c #B6A015", "G. c #BFA546", "H. c #040300", "I. c #090928", "J. c #202320", "K. c #212121", "L. c #1E211E", "M. c #878079", "N. c #85857E", "O. c #515551", "P. c #515151", "Q. c #1D150E", "R. c #B4820C", "S. c #F0BC0D", "T. c #EACA17", "U. c #D8BD21", "V. c #CBAC0D", "W. c #D5AB08", "X. c #C0951A", "Y. c #030200", "Z. c #1E1E1E", "`. c #06060F", " + c #1A1A34", ".+ c #1F1F1F", "++ c #1A1D1A", "@+ c #767670", "#+ c #7C7976", "$+ c #494D49", "%+ c #1D1B2D", "&+ c #AA925A", "*+ c #C0920D", "=+ c #CFA610", "-+ c #C6970C", ";+ c #C29213", ">+ c #C5A552", ",+ c #C2B18A", "'+ c #1C1C1C", ")+ c #39393A", "!+ c #252526", "~+ c #0D0D49", "{+ c #171917", "]+ c #181818", "^+ c #191919", "/+ c #6C6A66", "(+ c #75736F", "_+ c #4C4C75", ":+ c #21212C", "<+ c #C6C2BB", "[+ c #AD986A", "}+ c #AF8E41", "|+ c #B4914C", "1+ c #C3AD80", "2+ c #D7D0C4", "3+ c #E8E8E7", "4+ c #7D7D7D", "5+ c #131313", "6+ c #111111", "7+ c #020215", "8+ c #121238", "9+ c #161616", "0+ c #171417", "a+ c #62605E", "b+ c #6B6660", "c+ c #DFDBCF", "d+ c #434754", "e+ c #151541", "f+ c #69696A", "g+ c #EBEBEB", "h+ c #C6C4BF", "i+ c #B7B0A4", "j+ c #C7C1B7", "k+ c #E4E3DF", "l+ c #F0F0F0", "m+ c #F5F5F5", "n+ c #DEDEDE", "o+ c #070738", "p+ c #14121B", "q+ c #5C5753", "r+ c #5F5C5A", "s+ c #1D1D57", "t+ c #28282B", "u+ c #DBDBDB", "v+ c #F4F4F4", "w+ c #ECECEC", "x+ c #E5E5E5", "y+ c #EDEDED", "z+ c #757575", "A+ c #000006", "B+ c #080845", "C+ c #101010", "D+ c #53514F", "E+ c #5A5855", "F+ c #353572", "G+ c #04040C", "H+ c #737374", "I+ c #F3F3F3", "J+ c #EFEFEF", "K+ c #F6F6F6", "L+ c #F2F2F2", "M+ c #C6C6C6", "N+ c #01010E", "O+ c #0A0943", "P+ c #514F4D", "Q+ c #575252", "R+ c #3A3A61", "S+ c #03030C", "T+ c #040404", "U+ c #A2A2A2", "V+ c #E6E6E5", "W+ c #DCDCDC", "X+ c #CCCCCC", "Y+ c #CDCDCD", "Z+ c #4D4D4D", "`+ c #0E0E0E", " @ c #000011", ".@ c #44425F", "+@ c #4F4F4B", "@@ c #494949", "#@ c #201E5C", "$@ c #464647", "%@ c #F7F7F7", "&@ c #E3E3E3", "*@ c #BBBBBB", "=@ c #060606", "-@ c #141314", ";@ c #1B1B51", ">@ c #4F4D4A", ",@ c #454150", "'@ c #0A0A1E", ")@ c #121213", "!@ c #CACACA", "~@ c #5A5A5A", "{@ c #282829", "]@ c #141415", "^@ c #03030B", "/@ c #4B4958", "(@ c #494549", "_@ c #2C2A66", ":@ c #0F0F10", "<@ c #535353", "[@ c #999999", "}@ c #0F0F0F", "|@ c #2F2D69", "1@ c #CFC7BE", "2@ c #444151", "3@ c #0E0E37", "4@ c #B2B2B2", "5@ c #B7B7B7", "6@ c #070707", "7@ c #080808", "8@ c #161441", "9@ c #C7C7BE", "0@ c #5B5997", "a@ c #070708", "b@ c #121212", "c@ c #E1E1E1", "d@ c #E9EAE9", "e@ c #F4F5F4", "f@ c #CECECE", "g@ c #000007", "h@ c #C6C6BD", "i@ c #C7C3B6", "j@ c #959195", "k@ c #484C48", "l@ c #484448", "m@ c #404040", "n@ c #080824", "o@ c #14120B", "p@ c #E9E9E9", "q@ c #EAEAEA", "r@ c #D5D5D5", "s@ c #010103", "t@ c #00000E", "u@ c #B3AFA3", "v@ c #C3BFB2", "w@ c #BABAB2", "x@ c #BBB7B3", "y@ c #BBB7AB", "z@ c #BAB2AA", "A@ c #B1B1A9", "B@ c #B1ADA9", "C@ c #B0ACA0", "D@ c #AEAAA0", "E@ c #493B2C", "F@ c #6E5708", "G@ c #534929", "H@ c #D5D5D4", "I@ c #F3ECD6", "J@ c #CBC3A5", "K@ c #070706", "L@ c #0E0D18", "M@ c #000001", "N@ c #9B978C", "O@ c #B2AEAA", "P@ c #B2AEA3", "Q@ c #A9A9A2", "R@ c #A9A5A1", "S@ c #A8A499", "T@ c #A7A098", "U@ c #8582A1", "V@ c #BF8D26", "W@ c #F0BD10", "X@ c #AF8B0D", "Y@ c #8D8464", "Z@ c #C2C2C2", "`@ c #EACC6B", " # c #CAAE3A", ".# c #080705", "+# c #282314", "@# c #695B21", "## c #010111", "$# c #536B67", "%# c #888561", "&# c #9D9D96", "*# c #95929A", "=# c #868199", "-# c #7E7498", ";# c #99785C", "># c #E8B00E", ",# c #F0BD0F", "'# c #A2830A", ")# c #504C41", "!# c #F1F1F1", "~# c #E4B224", "{# c #D8A80C", "]# c #372603", "^# c #120D00", "/# c #211601", "(# c #7B5C07", "_# c #E6BD0B", ":# c #0A082C", "<# c #362747", "[# c #866B4C", "}# c #A97F33", "|# c #E4AB0E", "1# c #EFBA0F", "2# c #F0BC10", "3# c #EEBC10", "4# c #EABA0D", "5# c #675105", "6# c #858585", "7# c #D2D2D2", "8# c #D7A522", "9# c #DBA105", "0# c #9E6F03", "a# c #7C5703", "b# c #916804", "c# c #DCA70A", "d# c #F1BC0C", "e# c #463644", "f# c #000002", "g# c #966E31", "h# c #EEB70F", "i# c #F0BB0F", "j# c #EFBD10", "k# c #EEBD11", "l# c #F1BC0F", "m# c #CFA50A", "n# c #2E2202", "o# c #B1B1B1", "p# c #CDCCCC", "q# c #BD8B17", "r# c #E4AA05", "s# c #DDA307", "t# c #D9A009", "u# c #E3AA09", "v# c #EFBA0D", "w# c #F1BD10", "x# c #C79D21", "y# c #352A48", "z# c #000010", "A# c #515956", "B# c #7E7E77", "C# c #83837E", "D# c #A07B51", "E# c #EEB910", "F# c #F0BD11", "G# c #EFBC0D", "H# c #A48107", "I# c #5C584D", "J# c #66645F", "K# c #B17E09", "L# c #E8AE07", "M# c #EEB80D", "N# c #EFBA0E", "O# c #F1BD11", "P# c #CA9F23", "Q# c #6B5448", "R# c #586158", "S# c #858C85", "T# c #8B8B84", "U# c #A07A55", "V# c #EDB70F", "W# c #EFBD11", "X# c #EFBC10", "Y# c #EFBB0E", "Z# c #E2B50A", "`# c #B3964D", " $ c #EFEFEE", ".$ c #1E180B", "+$ c #B88205", "@$ c #EBB209", "#$ c #F0BC0E", "$$ c #F0BC0F", "%$ c #EEBA10", "&$ c #785C45", "*$ c #B98220", "=$ c #E8AF0B", "-$ c #EEB70C", ";$ c #F0BA0F", ">$ c #F1BE10", ",$ c #EFBC0F", "'$ c #F1BD0F", ")$ c #E9B409", "!$ c #BF8D12", "~$ c #71695A", "{$ c #9A9A9A", "]$ c #A7A7A7", "^$ c #959595", "/$ c #7B7B7B", "($ c #4F4F4F", "_$ c #221600", ":$ c #BF8804", "<$ c #EBB409", "[$ c #EFBD0F", "}$ c #ECB710", "|$ c #A57D2F", "1$ c #37294F", "2$ c #06042C", "3$ c #5E414B", "4$ c #AE7B17", "5$ c #CA9009", "6$ c #D49A09", "7$ c #DAA009", "8$ c #E2AA0B", "9$ c #EBB40C", "0$ c #F0BA0E", "a$ c #F1B90E", "b$ c #E1A909", "c$ c #B07A06", "d$ c #382808", "e$ c #151515", "f$ c #2B1C00", "g$ c #B67D03", "h$ c #E0A606", "i$ c #ECB50C", "j$ c #EBB30B", "k$ c #E4AA0C", "l$ c #BE8A17", "m$ c #34264D", "n$ c #050428", "o$ c #04022D", "p$ c #0F0A46", "q$ c #32224D", "r$ c #604134", "s$ c #906214", "t$ c #B57F08", "u$ c #C78E08", "v$ c #B17907", "w$ c #805303", "x$ c #150D2E", "y$ c #000045", "z$ c #000043", "A$ c #000042", "B$ c #000044", "C$ c #000047", "D$ c #160F3B", "E$ c #956204", "F$ c #BD8305", "G$ c #CB9105", "H$ c #C48A05", "I$ c #7B5527", "J$ c #0A073C", "K$ c #00000F", "L$ c #000018", "M$ c #0C0846", "N$ c #402A3F", "O$ c #6F4A0F", "P$ c #603F10", "Q$ c #160F4B", "R$ c #00000D", "S$ c #000008", "T$ c #000005", "U$ c #000004", "V$ c #000028", "W$ c #352337", "X$ c #764E04", "Y$ c #7C5309", "Z$ c #432C3F", "`$ c #02012C", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . + + + + + @ @ # # $ $ % & . . * = - ; > , ' ) ! ~ { ] ^ / ( _ ", " . + + + + + @ @ # # $ $ % & . . : < [ } | 1 2 3 4 5 6 7 8 9 0 a b ", " + + c d d d d d d e e f g g h i j k l l l l m n o p q r r s t u v l ", " + + d w x y z A B C w B e e f D E l l l l l F G H I J K s L M u N l l ", " + + A O P O Q B R d d e e h i S l | T l l | H U l V W X Y Z ` ...l l ", " + + d Q +.z C @.@.g R z z z e #.$.%.&.| T *.=.&.l l -.;.M >.,.'.).l l ", " + @ d Q !.e e B g g h i i ~.{.].^./.C (._.:.<.t $.l [.}.|.,.1.2.3.l l ", " @ @ d y @.C B R w A z e @.f {.4.5.6.7.8.9.0.X a.b.l c.d.*.e.f.g.h.l l ", " # # d A w f g g h i i ~.{.{.i.j.k.l.m.n.o.p.q.r.b.l s.&.t.u.n v.w.l l l ", " # x.C z @.y w d z e e B g R d y.z.A.B.C.D.E.F.G.H.l I.J.K._.L.M.N.l l l ", " x.$ f C d g h i i ~.{.{.i.O.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++m @+#+l l l ", " $ % f d g d i i ~.{.{.i.O.O.P.$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+l l l ", " % $ R C h C e @.f g w h h C e _+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+l l l ", " c+. g e i i ~.{.{.i.O.O.P.$+d+e+f+g+h+i+j+k+l+m+n+.+l l o+p+6+q+r+l l l ", " . . h f i ~.{.{.g h h P.$+~.s+t+u+v+w+x+y+m+v+v+v+z+l l A+B+C+D+E+l l l ", " . * i g ~.B g R h h d e ~.F+G+H+I+v+v+J+m+K+v+L+g+M+| l l N+O+P+Q+l l l ", " * = i ~.~.{.i.O.O.P.$+$+R+S+T+U+V+v+L+y+m+K+w+W+X+Y+Z+`+U l @.@+@l l l ", " = - ~.{.{.i.O.O.P.$+$+@@#@6+$@w+m+v+m+m+m+%@m+m+v+&@*@=@-@T+l ;@>@l l l ", " - ; {.{.i.O.O.P.P.$+@@,@'@)@!@v+v+v+m+v+v+K+v+v+v+v+y+~@{@]@l ^@/@l l l ", " ; ; {.i.O.O.P.$+$+@@(@_@:@<@m+v+m+v+l+m+m+K+v+m+v+m+v+[@T+}@T+l |@l l l ", " ; 1@i.O.O.P.P.$+@@(@2@3@(.4@m+v+m+v+y+m+m+K+v+m+v+m+v+5@l 6@7@l 8@l l l ", " 1@9@O.O.A @.@.B w R 0@a@b@c@v+m+m+v+d@m+v+K+m+m+e@m+m+f@l (.| l ^@g@l l ", " h@i@j@P.k@k@=.l@l@m@n@o@n p@m+v+m+v+q@v+m+K+v+m+v+m+v+r@$.}@T+$.s@t@l l ", " u@v@w@x@y@z@A@B@C@D@E@F@G@H@m+m+m+m+w+m+m+K+m+m+m+m+I@J@K@H 7@:@L@M@l l ", " N@O@P@Q@Q@R@S@T@U@V@W@X@Y@Z@m+m+m+y+m+m+K+m+m+m+m+`@ #.#l l +#@###l l ", " $#%#&#&#*#=#-#;#>#W@,#'#)#Q !#m+L+m+m+K+m+m+m+P ~#{#]#^#/#(#_#:#l l ", " l l l <#[#}#|#1#2#3#4#5#F 6#P m+v+v+K+v+v+v+7#8#9#0#a#b#c#d#e#f#l l ", " l l g#h#1#i#W@j#k#l#m#n#b@o#m+v+m+K+m+v+v+p#q#r#s#t#u#v#w#x#y#z#l ", " A#B#C#D#E#W@2#W@j#F#2#G#H#I#X+m+v+m+K+m+v+c@J#K#L#M#M#N#,#O#w#P#Q#l ", " R#S#T#U#V#2#2#W@W#j#X#Y#Z#`# $v+v+v+K+I+o#=..$+$@$,##$$$,#2#W@%$&$l ", " *$=$-$;$w#>$,$$$'$)$!$~${$]$^$/$($K.$._$:$<$[$,#F#$$}$|$1$2$ ", " 3$4$5$6$7$8$9$0$a$b$c$d$e$]+5+`+U l l f$g$h$i$j$k$l$m$n$z#l ", " o$p$q$r$s$t$u$u$v$w$x$y$z$A$z$B$B$C$D$E$F$G$H$I$J$K$l l ", " @L$M$N$O$P$Q$R$S$T$U$U$U$T$g@V$W$X$Y$Z$`$M@l ", " l l l l l ", " ", " ", " ", " "}; gscanbus-0.8/gnome-term-windows.xpm000066400000000000000000000200021151312264100174440ustar00rootroot00000000000000/* XPM */ static char * gnome_term_windows_xpm[] = { "48 48 208 2", " c None", ". c #D7D7CF", "+ c #EFEBDF", "@ c #E7E7DF", "# c #E7E3D7", "$ c #DFDFD7", "% c #DFDBD7", "& c #DFD7CF", "* c #D7D3C7", "= c #D7CFC7", "- c #CFCFC7", "; c #CFCBBE", "> c #CFC7BE", ", c #C7C7BE", "' c #C7C3BE", ") c #C7BEB6", "! c #BDBDB5", "~ c #BCB8B4", "{ c #BBB7AB", "] c #B6AEA7", "^ c #9B9B94", "/ c #8F8C81", "( c #7D7A76", "_ c #BEBEB6", ": c #BEBAB6", "< c #BCB8AC", "[ c #B9B1A9", "} c #AEAEA6", "| c #A9A6A2", "1 c #A4A196", "2 c #83807C", "3 c #B6B2B6", "4 c #797979", "5 c #717571", "6 c #717171", "7 c #696D69", "8 c #696969", "9 c #616561", "0 c #616161", "a c #595D59", "b c #595959", "c c #515551", "d c #515151", "e c #494D49", "f c #494949", "g c #484448", "h c #474347", "i c #3E3E3E", "j c #7C7C7C", "k c #A39C95", "l c #918A83", "m c #000000", "n c #8E8E8E", "o c #C7C3C7", "p c #9E9A9E", "q c #969696", "r c #8E8A8E", "s c #868286", "t c #868686", "u c #494549", "v c #3F3F3F", "w c #3E393E", "x c #3C373C", "y c #96938F", "z c #B6B6B6", "A c #E7E7E7", "B c #A6A6A6", "C c #797D79", "D c #404040", "E c #3F3B3F", "F c #3D393D", "G c #343434", "H c #9B9894", "I c #979489", "J c #BEC3BE", "K c #969296", "L c #9E9E9E", "M c #585858", "N c #403B40", "O c #3F3A3F", "P c #353535", "Q c #333333", "R c #9C988D", "S c #909089", "T c #B6BAB6", "U c #414141", "V c #363636", "W c #2C302C", "X c #95958D", "Y c #908D89", "Z c #413C41", "` c #373737", " . c #2D312D", ".. c #2C2C2C", "+. c #95918D", "@. c #8F8C88", "#. c #2F332F", "$. c #2D2D2D", "%. c #94908D", "&. c #8F8881", "*. c #E7DFD7", "=. c #505050", "-. c #2F2F2F", ";. c #252825", ">. c #958D86", ",. c #898982", "'. c #383838", "). c #303430", "!. c #262A26", "~. c #252525", "{. c #8D8D86", "]. c #898682", "^. c #303030", "/. c #272A27", "(. c #262626", "_. c #8D8A86", ":. c #DFDBCF", "<. c #FF0000", "[. c #800000", "}. c #00FF00", "|. c #008000", "1. c #282C28", "2. c #282828", "3. c #C6C6BD", "4. c #C7C3B6", "5. c #959195", "6. c #484C48", "7. c #484848", "8. c #272B27", "9. c #272727", "0. c #272327", "a. c #B3AFA3", "b. c #C3BFB2", "c. c #BABAB2", "d. c #BBB7B3", "e. c #BAB2AA", "f. c #B1B1A9", "g. c #0000FF", "h. c #B0ACA0", "i. c #A8A8A0", "j. c #A9A199", "k. c #A19D99", "l. c #A29E9A", "m. c #9A9692", "n. c #000080", "o. c #FFFF00", "p. c #808000", "q. c #9B978C", "r. c #B2AEAA", "s. c #B2AEA3", "t. c #A9A9A2", "u. c #A9A5A1", "v. c #A7A098", "w. c #9F9F98", "x. c #AF7B6F", "y. c #A19992", "z. c #918D82", "A. c #91918A", "B. c #8A8682", "C. c #536B67", "D. c #888561", "E. c #9D9D96", "F. c #9D9A96", "G. c #9C988E", "H. c #9D968F", "I. c #96928F", "J. c #95928E", "K. c #8F8F88", "L. c #8E8B87", "M. c #8E8780", "N. c #86827F", "O. c #888181", "P. c #878080", "Q. c #414441", "R. c #41413B", "S. c #726F6C", "T. c #726D61", "U. c #5C5C55", "V. c #79766D", "W. c #79796D", "X. c #5B5B54", "Y. c #6C655B", "Z. c #78786C", "`. c #55554E", " + c #4B4B45", ".+ c #5F5F59", "++ c #5F5C52", "@+ c #515956", "#+ c #7F7F78", "$+ c #85857F", "%+ c #938F85", "&+ c #8D8D87", "*+ c #8D8986", "=+ c #8D8B80", "-+ c #878480", ";+ c #86837F", ">+ c #7E7C78", ",+ c #797673", "'+ c #596259", ")+ c #878E87", "!+ c #8E8E87", "~+ c #9C998F", "{+ c #9A938D", "]+ c #95958F", "^+ c #969389", "/+ c #8F8B88", "(+ c #898282", "_+ c #807D79", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . + + + + + @ @ # # $ $ % & . . * = - ; ; > , ' ) ! ~ { ] ^ / ( ", " . + + + + + @ @ # # $ $ % & . . * - - ; ; > , ' ) _ : < [ } | 1 2 ", " + + 3 4 4 4 4 4 4 5 5 6 7 7 8 9 0 0 a a b b c d e e f g h i j k l m ", " + + 4 n o p q r s t n s 5 5 6 7 7 0 0 0 d e e f u f g g v w x k y m m ", " + + r z A z B s C 4 4 5 5 8 9 9 0 b b b c d e e f u g D E F G H I m m ", " + + 4 B J q t K K 7 C q q q 5 s n C 8 r t L 0 a n b M N O P Q R S m m ", " + @ 4 B T 5 5 s 7 7 8 9 9 0 a a b c c d d e f u u U U N V P W X Y m m ", " @ @ 4 p K t s C n r q 5 K 6 a C c c 4 e 0 a u u U Z Z ` V ...+.@.m m ", " # # 4 r n 6 7 7 8 9 9 0 a a b c c d d e f u u U Z Z ` ` #.$...%.&.m m m ", " # *.t q K p n 4 q 5 5 s 7 C 4 8 d 5 6 a a b 7 4 9 d =.#.-.$.;.>.,.m m m ", " *.$ 6 t 4 7 8 9 9 0 a a b c c d e e f u u U Z Z '.'.).-.-.!.~.{.].m m m ", " $ % 6 4 7 4 9 m 0 a a b c c d e e f u u U Z Z '.'.).^.-./.(.~._.].m m m ", " % $ C t 8 t 5 m 6 7 n 8 8 t 5 0 s a b 8 c 8 d 0 m m m m m m m m m m m m ", " :.. 7 5 9 9 0 a a m c c d e e f u u U U Z '.m m m m m m m m m m m m m m ", " . . 8 6 9 0 a a 7 m 8 d m 0 f u u U Z m '.m m m m m m m m m m m m m m m m ", " . * 9 7 0 s 7 <.8 8 4 m m 0 7 m b m m m 0 m m m [.[.<.<.m m }.}.|.|.m m m ", " * = 9 0 0 a b <.c d e m f u m m Z m m m ).m m <.<.<.<.<.m m }.}.}.}.}.m m ", " = - 0 a a b c c d <.e f u u m Z Z m '.).^.m m <.<.<.<.<.m m }.}.}.}.}.m m ", " - ; a a b c c d d <.f u <.U Z Z '.'.).<.^.m m <.<.<.<.<.m m }.}.}.}.}.m m ", " ; ; a b c c d m e f u <.<.Z Z <.'.<.<.<.1.m m <.<.<.<.<.m m }.}.}.}.}.m m ", " ; > b c c d d m f u u <.Z Z <.<.).<.<.<.2.m m <.<.<.<.<.m m }.}.}.}.}.m m ", " > , c c r K K s n m p r 4 q <.s L <.7 n 8 m m <.[.[.m m m m m m |.|.}.m m ", " 3.4.5.d 6.6.7.g g m N N m ` #.-.-.8.9.m 0.m m m m m m m m m m m m m m m m ", " a.b.c.d.{ e.f.g.h.h.i.m m j.k.m l.m m m m.m m m n.n.g.g.m m o.o.p.p.m m m ", " q.r.s.t.t.u.g.v.w.x.m y.z.m m A.m m m B.m m g.g.g.g.g.m m o.o.o.o.o.m m ", " C.D.E.E.F.G.H.g.I.J.K.L.m @.M.m N.O.P.m m g.g.g.g.g.m m o.o.o.o.o.m m ", " m m m m Q.R.g.S.T.g.U.V.W.X.Y.Z.g.`.m m g.g.g.g.g.m m o.o.o.o.o.m m ", " m m m m +.+.+g.g..+.+g..+g.g.g.++m m g.g.g.g.g.m m o.o.o.o.o.m m ", " @+#+$+%+m &+*+=+g.-+;+g.g.>+g.g.g.,+m m g.g.g.g.g.m m o.o.o.o.o.m m ", " '+)+!+~+{+]+m ^+!+!+/+g.&.;+g.P.(+_+m m g.n.n.m m m m m m p.p.o.m m ", " m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m ", " m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m ", " m m m m m m m m m m m m m m m m m m m ", " m m m m m m ", " ", " ", " ", " ", " "}; gscanbus-0.8/gnome-term.xpm000066400000000000000000000233721151312264100157710ustar00rootroot00000000000000/* XPM */ static char * gnome_term_xpm[] = { "48 48 320 2", " c None", ". c #D7D7CF", "+ c #EFEBDF", "@ c #E7E7DF", "# c #E7E3D7", "$ c #DFDFD7", "% c #DFDBD7", "& c #DFD7CF", "* c #D7D3C7", "= c #D7CFC7", "- c #CFCFC7", "; c #CFCBBE", "> c #CFC7BE", ", c #C7C7BE", "' c #C7C3BE", ") c #C7BEB6", "! c #BDBDB5", "~ c #BCB8B4", "{ c #BBB7AB", "] c #B6AEA7", "^ c #9B9B94", "/ c #8F8C81", "( c #7D7A76", "_ c #BEBEB6", ": c #BEBAB6", "< c #BCB8AC", "[ c #B9B1A9", "} c #AEAEA6", "| c #A9A6A2", "1 c #A4A196", "2 c #83807C", "3 c #B6B2B6", "4 c #797979", "5 c #717571", "6 c #717171", "7 c #696D69", "8 c #696969", "9 c #616561", "0 c #616161", "a c #595D59", "b c #595959", "c c #515551", "d c #515151", "e c #494D49", "f c #494949", "g c #484448", "h c #474347", "i c #3E3E3E", "j c #7C7C7C", "k c #A39C95", "l c #918A83", "m c #000000", "n c #8E8E8E", "o c #C7C3C7", "p c #9E9A9E", "q c #969696", "r c #8E8A8E", "s c #868286", "t c #868686", "u c #494549", "v c #3F3F3F", "w c #3E393E", "x c #3C373C", "y c #96938F", "z c #B6B6B6", "A c #E7E7E7", "B c #A6A6A6", "C c #797D79", "D c #404040", "E c #3F3B3F", "F c #3D393D", "G c #343434", "H c #9B9894", "I c #979489", "J c #BEC3BE", "K c #969296", "L c #9E9E9E", "M c #585858", "N c #403B40", "O c #3F3A3F", "P c #353535", "Q c #333333", "R c #9C988D", "S c #909089", "T c #B6BAB6", "U c #414141", "V c #363636", "W c #2C302C", "X c #95958D", "Y c #908D89", "Z c #413C41", "` c #373737", " . c #2D312D", ".. c #2C2C2C", "+. c #95918D", "@. c #8F8C88", "#. c #2F332F", "$. c #2D2D2D", "%. c #94908D", "&. c #8F8881", "*. c #E7DFD7", "=. c #505050", "-. c #2F2F2F", ";. c #252825", ">. c #958D86", ",. c #898982", "'. c #383838", "). c #303430", "!. c #262A26", "~. c #252525", "{. c #8D8D86", "]. c #898682", "^. c #303030", "/. c #272A27", "(. c #262626", "_. c #8D8A86", ":. c #272B27", "<. c #272727", "[. c #252125", "}. c #88827B", "|. c #DFDBCF", "1. c #262226", "2. c #1D1D1D", "3. c #8D867F", "4. c #827E7B", "5. c #282C28", "6. c #282828", "7. c #272327", "8. c #1E1E1E", "9. c #86837F", "0. c #827F7B", "a. c #1F1F1F", "b. c #1D1A1D", "c. c #827B7B", "d. c #1E1A1E", "e. c #161616", "f. c #86827E", "g. c #7B7B74", "h. c #282428", "i. c #1F1B1F", "j. c #7E7E77", "k. c #7A7773", "l. c #202020", "m. c #171717", "n. c #161216", "o. c #7E7A77", "p. c #7B7774", "q. c #0E0E0E", "r. c #7D7976", "s. c #797373", "t. c #201C20", "u. c #171317", "v. c #7C7575", "w. c #797272", "x. c #717971", "y. c #848084", "z. c #6E6E6E", "A. c #807C80", "B. c #525252", "C. c #0E0A0E", "D. c #7B7474", "E. c #C6C6BD", "F. c #C7C3B6", "G. c #959195", "H. c #484C48", "I. c #484848", "J. c #0D0A0D", "K. c #555955", "L. c #7A7373", "M. c #787171", "N. c #B3AFA3", "O. c #C3BFB2", "P. c #BABAB2", "Q. c #BBB7B3", "R. c #BAB2AA", "S. c #B1B1A9", "T. c #B1ADA9", "U. c #B0ACA0", "V. c #A8A8A0", "W. c #A9A5A1", "X. c #A9A199", "Y. c #A19D99", "Z. c #A29E9A", "`. c #A09991", " + c #999591", ".+ c #9A9692", "++ c #918D8A", "@+ c #918A8A", "#+ c #898981", "$+ c #87837F", "%+ c #85817D", "&+ c #817A7A", "*+ c #7D7676", "=+ c #767070", "-+ c #64645D", ";+ c #9B978C", ">+ c #B2AEAA", ",+ c #B2AEA3", "'+ c #A9A9A2", ")+ c #A8A499", "!+ c #A7A098", "~+ c #9F9F98", "{+ c #AF7B6F", "]+ c #A78A82", "^+ c #A19992", "/+ c #918D82", "(+ c #A76F68", "_+ c #997C6F", ":+ c #91918A", "<+ c #98918A", "[+ c #9F6B60", "}+ c #987B6F", "|+ c #8A8682", "1+ c #928A8A", "2+ c #6F6F68", "3+ c #83837C", "4+ c #899458", "5+ c #96BB23", "6+ c #8A9B3F", "7+ c #766F6F", "8+ c #726B6B", "9+ c #5F5F59", "0+ c #585852", "a+ c #536B67", "b+ c #888561", "c+ c #9D9D96", "d+ c #9D9A96", "e+ c #9C988E", "f+ c #9D968F", "g+ c #94948D", "h+ c #96928F", "i+ c #95928E", "j+ c #8F8F88", "k+ c #8E8B87", "l+ c #8E8780", "m+ c #888481", "n+ c #86827F", "o+ c #888181", "p+ c #878080", "q+ c #817D7A", "r+ c #807D79", "s+ c #807979", "t+ c #7A7A73", "u+ c #75726E", "v+ c #73706C", "w+ c #6E6868", "x+ c #6D6767", "y+ c #5A5A53", "z+ c #415252", "A+ c #415353", "B+ c #414441", "C+ c #41413B", "D+ c #4D4D47", "E+ c #726F6C", "F+ c #726D61", "G+ c #4E4E48", "H+ c #5C5C55", "I+ c #79766D", "J+ c #79796D", "K+ c #5B5B54", "L+ c #6C655B", "M+ c #78786C", "N+ c #72726C", "O+ c #55554E", "P+ c #5C5855", "Q+ c #4E4A48", "R+ c #53504D", "S+ c #524F4B", "T+ c #4B4B45", "U+ c #52524C", "V+ c #525652", "W+ c #69695F", "X+ c #696259", "Y+ c #535653", "Z+ c #5F5C52", "`+ c #706960", " @ c #706A6A", ".@ c #595952", "+@ c #5D5F57", "@@ c #515956", "#@ c #7F7F78", "$@ c #85857F", "%@ c #938F85", "&@ c #928B84", "*@ c #8D8D87", "=@ c #8D8986", "-@ c #8D8B80", ";@ c #86867F", ">@ c #878480", ",@ c #867F79", "'@ c #7E7C78", ")@ c #807C79", "!@ c #7F7979", "~@ c #797773", "{@ c #797673", "]@ c #79736D", "^@ c #73736D", "/@ c #6E6C68", "(@ c #696663", "_@ c #5E5E55", ":@ c #605F58", "<@ c #54504C", "[@ c #596259", "}@ c #878E87", "|@ c #8E8E87", "1@ c #9C998F", "2@ c #9A938D", "3@ c #95958F", "4@ c #949287", "5@ c #969389", "6@ c #8F8B88", "7@ c #8E8B80", "8@ c #898282", "9@ c #817A73", "0@ c #797972", "a@ c #76736F", "b@ c #6F6B69", "c@ c #6E6C63", "d@ c #55514C", "e@ c #56524E", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . + + + + + @ @ # # $ $ % & . . * = - ; ; > , ' ) ! ~ { ] ^ / ( ", " . + + + + + @ @ # # $ $ % & . . * - - ; ; > , ' ) _ : < [ } | 1 2 ", " + + 3 4 4 4 4 4 4 5 5 6 7 7 8 9 0 0 a a b b c d e e f g h i j k l m ", " + + 4 n o p q r s t n s 5 5 6 7 7 0 0 0 d e e f u f g g v w x k y m m ", " + + r z A z B s C 4 4 5 5 8 9 9 0 b b b c d e e f u g D E F G H I m m ", " + + 4 B J q t K K 7 C q q q 5 s n C 8 r t L 0 a n b M N O P Q R S m m ", " + @ 4 B T 5 5 s 7 7 8 9 9 0 a a b c c d d e f u u U U N V P W X Y m m ", " @ @ 4 p K t s C n r q 5 K 6 a C c c 4 e 0 a u u U Z Z ` V ...+.@.m m ", " # # 4 r n 6 7 7 8 9 9 0 a a b c c d d e f u u U Z Z ` ` #.$...%.&.m m m ", " # *.t q K p n 4 q 5 5 s 7 C 4 8 d 5 6 a a b 7 4 9 d =.#.-.$.;.>.,.m m m ", " *.$ 6 t 4 7 8 9 9 0 a a b c c d e e f u u U Z Z '.'.).-.-.!.~.{.].m m m ", " $ % 6 4 7 4 9 9 0 a a b c c d e e f u u U Z Z '.'.).^.-./.(.~._.].m m m ", " % $ C t 8 t 5 K 6 7 n 8 8 t 5 0 s a b 8 c 8 d 0 ).0 -.:.<.(.[._.}.m m m ", " |.. 7 5 9 9 0 a a b c c d e e f u u U U Z '.'.).^.^.:.<.<.1.2.3.4.m m m ", " . . 8 6 9 0 a a 7 8 8 d e 0 f u u U Z Z '.'.).^.^.5.6.<.7.8.2.9.0.m m m ", " . * 9 7 0 s 7 C 8 8 4 5 0 0 7 7 b 8 8 9 0 e f ^.5.6.6.7.a.8.b.9.c.m m m ", " * = 9 0 0 a b c c d e e f u u U Z Z '.'.).^.^.5.6.6.7.a.a.d.e.f.g.m m m ", " = - 0 a a b c c d e e f u u U Z Z '.'.).^.^.5.6.6.h.a.a.i.e.e.j.k.m m m ", " - ; a a b c c d d e f u u U Z Z '.'.).^.^.5.6.6.h.l.a.i.m.e.n.o.p.m m m ", " ; ; a b c c d e e f u u U Z Z '.'.).^.^.5.6.6.h.l.l.i.m.m.n.q.r.s.m m m ", " ; > b c c d d e f u u U Z Z '.'.).^.^.5.6.6.h.l.l.t.m.m.u.q.q.v.w.m m m ", " > , c c r K K s n C p r 4 q 5 s L 6 7 n 8 4 r t x.t y.z.A.B.C.D.w.m m m ", " E.F.G.d H.H.I.g g D N N ` ` #.-.-.:.<.<.7.7.a.i.m.e.n.q.q.J.K.L.M.m m m ", " N.O.P.Q.{ R.S.T.U.U.V.| W.X.Y.Y.Z.`. + +.+++++++@+#+$+%+&+*+L.=+-+m m m ", " ;+>+,+'+'+W.)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+0.2+3+4+5+6+w.7+8+9+0+m m m ", " a+b+c+c+d+e+f+g+h+i+j+k+k+@.l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+m m m m ", " m m m m B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+H+Q+R+m m m m m m m m m m m ", " m m m S+T+9+9+U+U+9+9+V+9+W+X+Y+Z+`+ @.@+@m m m m m m m m m m m ", " @@#@$@%@&@*@=@-@;@>@9.9.,@'@)@!@~@{@k.]@^@/@(@_@:@<@m m m m m m ", " [@}@|@1@2@3@4@5@|@|@6@7@&.9.m+p+8@r+r+9@0@a@b@c@d@e@m m m m m ", " m m m m m m m m m m m m m m m m m m m m m m m m m m ", " m m m m m m m m m m m m m m m m m m m m m m m ", " m m m m m m m m m m m m m m m ", " ", " ", " ", " ", " ", " "}; gscanbus-0.8/gscanbus.c000066400000000000000000001011631151312264100151350ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * Copyright (C) 2010 Gareth McMullin * * gscanbus.c - Linux IEEE-1394 Subsystem GDK Topology Viewing utility * written 18.11.1999 to 05.06.2001 by Andreas Micklei * updated for GTK+ 2 by Gareth McMullin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "raw1394util.h" #include "simpleavc.h" #include "topologyMap.h" #include "rominfo.h" #include "topologyTree.h" #include "decodeselfid.h" #include "menues.h" #include "debug.h" #include "icons.h" #include #include #include #include #include #define FONTNAME "-*-helvetica-*-*-*-*-12-*-*-*-*-*-*-*" #define FONTHEIGHT 12 #define NODEWIDTH 48 /* Pixmaps should not exceed this size */ #define NODEHEIGHT 48 #define SETLINEWIDTH(gc, width) gdk_gc_set_line_attributes(gc, width, GDK_LINE_SOLID, GDK_CAP_NOT_LAST, GDK_JOIN_MITER); raw1394handle_t handle; /* Global = dangerous (threading issues) */ TopologyTree *topologyTree; /* Global for mouse click detection */ GtkWidget *drawing_area; /* Global for use by bus reset handler */ int repaintCountdown = 0; static GdkPixmap *pixmap = NULL; const char not_compatible[] = "\ This libraw1394 does not work with your version of Linux. You need a different\ version that matches your kernel (see kernel help text for the raw1394 option to\ find out which is the correct version).\n"; const char not_loaded[] = "\ This probably means that you don't have raw1394 support in the kernel or that\ you haven't loaded the raw1394 module.\n"; /*--------------------------------------------------------------------------- * Drawing routines *---------------------------------------------------------------------------*/ /* * Draw a line for the topology Tree. * IN: drawable: The GDK drawing Area to draw into * gc: The GDK Graphics Context to use * x1: x position of beginning of line * y1: y position of beginning of line * x2: x position of end of line * y2: y position of end of line * node: The current node * child: The child node to draw the line to * col_new: The color to use for the line * col_old: The color to restore when finished */ void drawTopologyLine(GdkDrawable *drawable, GdkGC *gc, int x1, int y1, int x2, int y2, TopologyTree *node, TopologyTree *child, GdkColor *col_new, GdkColor *col_old) { SETLINEWIDTH(gc,(MIN(node->selfid[0].packetZero.phySpeed, child->selfid[0].packetZero.phySpeed)+1)*2); gdk_gc_set_foreground(gc, col_new); gdk_draw_line(drawable, gc, x1, y1, x2, y2); gdk_gc_set_foreground(gc, col_old); } void chooseLabel(Rom_info *rom_info, TopologyTree *node, char *label) { /* Use rom_info->label if it contains something meaningful */ if (rom_info->label != NULL && strcmp(rom_info->label, "Unknown")) { strcpy(node->label, rom_info->label); /* Use calculated label otherwise, if it exists */ } else if (label != NULL) { strcpy(node->label, label); } else { strcpy(node->label, "Unknown"); } } /* * Draw a topology Tree. * IN: drawable: The GDK drawing Area to draw into * window: The window to get various default values from * gc: The GDK Graphics Context to use * node: The topologyTree or subTree * myPhyID: Physical ID of the host, for highlighting * left: left offset to begin drawing * width: width of drawing area * level: depth of the current subTree in respect to the root */ void drawTopologyTree(GdkDrawable *drawable, GdkWindow *window, GdkGC *gc, TopologyTree *node, int myPhyID, int left, int width, int level) { int nodewidth = NODEWIDTH; int nodeheight = NODEHEIGHT; int xpmwidth; int xpmheight; GdkPixmap *xpm_node; GdkBitmap *xpm_node_mask; TopologyTree *child; Rom_info rom_info; GdkGCValues gc_values; char *label = NULL; /* All static variables are only loaded once and then reused */ static GdkFont *font; static GdkColormap *colormap; static GdkColor *col_arc; static GdkColor *col_lines; /* Remember default from gc */ gdk_gc_get_values(gc, &gc_values); /* Load resources (font, colours, pixmaps) */ if (font == NULL) { font = gdk_font_load(FONTNAME); gdk_font_ref (font); /* is this necessary? */ } if (colormap == NULL) { colormap = gdk_colormap_get_system(); gdk_colormap_ref(colormap); /* is this necessary? */ } if (col_arc == NULL) { col_arc = malloc(sizeof(GdkColor)); gdk_color_parse("cornflower blue", col_arc); gdk_colormap_alloc_color(colormap, col_arc, FALSE, TRUE); } if (col_lines == NULL) { /*col_lines = malloc(sizeof(GdkColor)); gdk_color_parse("gray", col_lines); gdk_colormap_alloc_color(colormap, col_lines, FALSE, TRUE);*/ col_lines = col_arc; } initIcons(window); rom_info = node->rom_info; /* Choose label and icon */ chooseIcon(&rom_info, &xpm_node, &xpm_node_mask, &label); chooseLabel(&rom_info, node, label); /* Recursively draw rest of tree */ if (numberOfChilds(node) == 0) { /* We are a leaf */ } else if (numberOfChilds(node) == 1) { /* Draw one child directly beneath us */ child = getNthChild(node,1); drawTopologyLine(drawable, gc, left+width/2, level*nodeheight*2+nodeheight/2, left+width/2, (level+1)*nodeheight*2+nodeheight/2, node, child, col_lines, &gc_values.foreground); drawTopologyTree(drawable, window, gc, child, myPhyID, left, width, level+1); } else if (numberOfChilds(node) == 2) { /* Draw two childs left and right beneath us */ child = getNthChild(node,1); drawTopologyLine(drawable, gc, left+width/2, level*nodeheight*2+nodeheight/2, left+width/4, (level+1)*nodeheight*2+nodeheight/2, node, child, col_lines, &gc_values.foreground); drawTopologyTree(drawable, window, gc, child, myPhyID, left, width/2, level+1); child = getNthChild(node,2); drawTopologyLine(drawable, gc, left+width/2, level*nodeheight*2+nodeheight/2, left+width/2+width/4, (level+1)*nodeheight*2+nodeheight/2, node, child, col_lines, &gc_values.foreground); drawTopologyTree(drawable, window, gc, child, myPhyID, left+width/2, width/2, level+1); } else if (numberOfChilds(node) == 3) { /* Draw three childs left, right and directly beneath us */ child = getNthChild(node,1); drawTopologyLine(drawable, gc, left+width/2, level*nodeheight*2+nodeheight/2, left+width/6, (level+1)*nodeheight*2+nodeheight/2, node, child, col_lines, &gc_values.foreground); drawTopologyTree(drawable, window, gc, child, myPhyID, left, width/3, level+1); child = getNthChild(node,2); drawTopologyLine(drawable, gc, left+width/2, level*nodeheight*2+nodeheight/2, left+width/2, (level+1)*nodeheight*2+nodeheight/2, node, child, col_lines, &gc_values.foreground); drawTopologyTree(drawable, window, gc, child, myPhyID, left, width, level+1); child = getNthChild(node,3); drawTopologyLine(drawable, gc, left+width/2, level*nodeheight*2+nodeheight/2, left+2*(width/3)+width/6, (level+1)*nodeheight*2+nodeheight/2, node, child, col_lines, &gc_values.foreground); drawTopologyTree(drawable, window, gc, child, myPhyID, left+2*(width/3), width/3, level+1); } SETLINEWIDTH(gc, 1); /* Highlight Host controller and give it a Linux pixmap */ if (node->selfid[0].packetZero.phyID == myPhyID) { if (strcmp(node->label, "Unknown") == 0) strcpy(node->label, "Localhost"); xpm_node = xpm_cpu_linux; /* Host controller */ xpm_node_mask = xpm_cpu_linux_mask; gdk_gc_set_foreground(gc, col_arc); gdk_draw_arc(drawable, gc, 1, left + (width/2 - nodewidth/2), level*nodeheight*2, nodewidth, nodeheight, 0, 360*64); } /* Draw icon */ gdk_gc_set_foreground(gc, &gc_values.foreground); gdk_drawable_get_size(GDK_DRAWABLE(xpm_node), &xpmwidth, &xpmheight); gdk_gc_set_clip_origin(gc, left + (width/2 - xpmwidth/2), level*nodeheight*2 + (nodeheight-xpmheight)/2); gdk_gc_set_clip_mask(gc, xpm_node_mask); gdk_draw_drawable(drawable, gc, xpm_node, 0, 0, left + (width/2 - xpmwidth/2), level*nodeheight*2 + (nodeheight-xpmheight)/2, xpmwidth, xpmheight); gdk_gc_set_clip_mask(gc, gc_values.clip_mask); /* Draw speed string */ gdk_draw_string(drawable, font, gc, left + (width/2 - nodewidth/2), level*nodeheight*2+nodeheight+FONTHEIGHT, decode_speed(node->selfid[0].packetZero.phySpeed)); /* Draw label */ gdk_draw_string(drawable, font, gc, left + (width/2 - nodewidth/2), level*nodeheight*2+nodeheight+FONTHEIGHT*2, node->label); } /* * Repaint the main window. * IN: data: A pointer to the drawable of the main window * RESULT: TRUE on success, FALSE otherwise */ gint Repaint (gpointer data) { RAW1394topologyMap* topologyMap; int nodeCount, depth; GtkWidget* drawing_area = (GtkWidget *) data; GdkRectangle update_rect; int width, height; GdkDrawable *drawable; GdkGC *gc; nodeCount = raw1394_get_nodecount(handle); topologyMap = raw1394GetTopologyMap(handle); /*topologyMap = generateTestTopologyMap(7);*/ if (topologyMap == NULL) { fprintf(stderr, "Could not read topologyMap\n"); return (TRUE); } if (topologyTree != NULL) freeTopologyTree(topologyTree); topologyTree = spawnTopologyTree(handle, topologyMap); DEBUG_GENERAL fprintf(stderr, "Root id: %d\n", topologyTreeRoot(topologyTree)->selfid[0].packetZero.phyID); depth = topologyTreeDepth(topologyTree); DEBUG_GENERAL fprintf(stderr, "\nTree depth: %d\n", depth); drawable = drawing_area->window; gc = gdk_gc_new(drawing_area->window); width = drawing_area->allocation.width; height = drawing_area->allocation.height; gdk_draw_rectangle(pixmap, drawing_area->style->white_gc, TRUE, 0, 0, width, height); if (depth != 0) drawTopologyTree(pixmap, drawable, gc, topologyTree, raw1394_get_local_id(handle) & 0x3f, 0, width, 0); gdk_gc_unref(gc); update_rect.x = 0; update_rect.y = 0; update_rect.width = width; update_rect.height = height; gtk_widget_draw(drawing_area, &update_rect); return (TRUE); } /* * Detect which node was clicked. * IN: node: The topologyTree or SubTree * left: left offset of drawing area * width: width of drawing area * level: depth of the current subTree in respect to the root * x: x position of mouse click * y: y position of mouse click * RESULT: clicked node or NULL if no node was clicked */ TopologyTree *detectClick(TopologyTree *node, int left, int width, int level, int x, int y) { TopologyTree *child; TopologyTree *click; if (y > level*NODEHEIGHT*2 && y < (level*NODEHEIGHT*2)+NODEHEIGHT) { if (x > (left+width/2)-NODEWIDTH/2 && x < (left+width/2)+NODEWIDTH/2) { /* Click detected, return phyID */ return node; } else { /* No need to go beyond this level, truncate search */ return NULL; } } if (numberOfChilds(node) == 0) { /* We are a leaf */ return NULL; } else if (numberOfChilds(node) == 1) { /* Process one child directly beneath us */ child = getNthChild(node,1); return detectClick(child, left, width, level+1, x, y); } else if (numberOfChilds(node) == 2) { /* Process two childs left and right beneath us */ child = getNthChild(node,1); click = detectClick(child, left, width/2, level+1, x, y); if (click != NULL) return click; child = getNthChild(node,2); return detectClick(child, left+width/2, width/2, level+1, x, y); } else if (numberOfChilds(node) == 3) { /* Process three childs left, right and directly beneath us */ child = getNthChild(node,1); click = detectClick(child, left, width/3, level+1, x, y); if (click != NULL) return click; child = getNthChild(node,2); click = detectClick(child, left, width, level+1, x, y); if (click != NULL) return click; child = getNthChild(node,3); return detectClick(child, left+2*(width/3), width/3, level+1, x, y); } return NULL; } /* * Called whenever the window is made visible. Copys the pixmap to the window. * IN: widget: the drawing area * event: the expose event * RESULT: always FALSE */ static gint expose_event(GtkWidget *widget, GdkEventExpose *event) { gdk_draw_drawable(widget->window, widget->style->fg_gc[GTK_WIDGET_STATE(widget)], GDK_DRAWABLE(pixmap), event->area.x, event->area.y, event->area.x, event->area.y, event->area.width, event->area.height); return FALSE; } /* * Called when the window is created or resized. * IN: widget: the drawing area * event: the configure event * RESULT: always TRUE */ static gint configure_event(GtkWidget *widget, GdkEventConfigure *event) { if (pixmap) { g_object_unref(pixmap); } pixmap = gdk_pixmap_new(widget->window, widget->allocation.width, widget->allocation.height, -1); Repaint((gpointer) drawing_area); return TRUE; } #define AVC_RETRY 4 #define CTLVCR0 AVC_CTYPE_CONTROL | AVC_SUBUNIT_TYPE_TAPE_RECORDER | AVC_SUBUNIT_ID_0 #define STATVCR0 AVC_CTYPE_STATUS | AVC_SUBUNIT_TYPE_TAPE_RECORDER | AVC_SUBUNIT_ID_0 #define CTLTUNER0 AVC_CTYPE_CONTROL | AVC_SUBUNIT_TYPE_TUNER | AVC_SUBUNIT_ID_0 #define STATTUNER0 AVC_CTYPE_STATUS | AVC_SUBUNIT_TYPE_TUNER | AVC_SUBUNIT_ID_0 #define TUNER0 AVC_SUBUNIT_TYPE_TUNER | AVC_SUBUNIT_ID_0 #define CTLUNIT AVC_CTYPE_CONTROL | AVC_SUBUNIT_TYPE_UNIT | AVC_SUBUNIT_ID_IGNORE #define STATUNIT AVC_CTYPE_STATUS | AVC_SUBUNIT_TYPE_UNIT | AVC_SUBUNIT_ID_IGNORE /* * Find out if an AVC device is currently playing * IN: handle: the libraw1394 handle * phyID: the phyisical ID of the node * RETURNS: OPERAND if device is playing * 0 otherwise */ int isPlaying(raw1394handle_t handle, int phyID) { quadlet_t response = avc_transaction(handle, phyID, STATVCR0 | VCR_COMMAND_TRANSPORT_STATE | VCR_OPERAND_TRANSPORT_STATE, AVC_RETRY); if (AVC_MASK_OPCODE(response) == VCR_RESPONSE_TRANSPORT_STATE_PLAY) return AVC_GET_OPERAND0(response); else return 0; } /* * Find out if an AVC device is currently recording * IN: handle: the libraw1394 handle * phyID: the phyisical ID of the node * RETURNS: OPERAND if device is recording * 0 otherwise */ int isRecording(raw1394handle_t handle, int phyID) { quadlet_t response = avc_transaction(handle, phyID, STATVCR0 | VCR_COMMAND_TRANSPORT_STATE | VCR_OPERAND_TRANSPORT_STATE, AVC_RETRY); if (AVC_MASK_OPCODE(response) == VCR_RESPONSE_TRANSPORT_STATE_RECORD) return AVC_GET_OPERAND0(response); else return 0; } /* * Called when the play button is clicked. Send a play command to a node * normally, or a play slow motion command if the node is already playing at * normal speed. * IN: widget: the button * data: The node */ void avc_play(GtkWidget *widget, gpointer data) { int phyID; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; if (isPlaying(handle, phyID) == VCR_OPERAND_PLAY_FORWARD) { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_PLAY | VCR_OPERAND_PLAY_SLOWEST_FORWARD); } else { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_PLAY | VCR_OPERAND_PLAY_FORWARD); } } /* * Called when the stop button is clicked. Send a stop command to a node. * IN: widget: the button * data: The node */ void avc_stop(GtkWidget *widget, gpointer data) { int phyID; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_WIND | VCR_OPERAND_WIND_STOP); } /* * Called when the rewind button is clicked. Send a wind_rewind when the * node is stopped or a play_rewind command when the node is playing or * paused to a node. * IN: widget: the button * data: The node */ void avc_rewind(GtkWidget *widget, gpointer data) { int phyID; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; if (isPlaying(handle, phyID)) { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_PLAY | VCR_OPERAND_PLAY_FASTEST_REVERSE); } else { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_WIND | VCR_OPERAND_WIND_REWIND); } } /* * Called when the pause button is clicked. Send a pause command to a node. * IN: widget: the button * data: The node */ void avc_pause(GtkWidget *widget, gpointer data) { int phyID, mode; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; if ((mode = isRecording(handle, phyID))) { if (mode == VCR_OPERAND_RECORD_PAUSE) { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_RECORD | VCR_OPERAND_RECORD_RECORD); } else { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_RECORD | VCR_OPERAND_RECORD_PAUSE); } } else { if (isPlaying(handle, phyID) ==VCR_OPERAND_PLAY_FORWARD_PAUSE) { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_PLAY | VCR_OPERAND_PLAY_FORWARD); } else { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_PLAY | VCR_OPERAND_PLAY_FORWARD_PAUSE); } } } /* * Called when the forward button is clicked. Send a wind_forward when the * node is stopped or a play_forward command when the node is playing or * paused to a node. * IN: widget: the button * data: The node */ void avc_forward(GtkWidget *widget, gpointer data) { int phyID; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; if (isPlaying(handle, phyID)) { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_PLAY | VCR_OPERAND_PLAY_FASTEST_FORWARD); } else { send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_WIND | VCR_OPERAND_WIND_FAST_FORWARD); } } /* * Called when the eject button is clicked. Send an eject command to a node. * IN: widget: the button * data: The node */ void avc_eject(GtkWidget *widget, gpointer data) { int phyID; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_LOAD_MEDIUM | VCR_OPERAND_LOAD_MEDIUM_EJECT); } /* * Called when the record button is clicked. Send a record command to a node. * IN: widget: the button * data: The node */ void avc_record(GtkWidget *widget, gpointer data) { int phyID; phyID = ((TopologyTree *)data)->selfid[0].packetZero.phyID; send_avc_command(handle, phyID, CTLVCR0 | VCR_COMMAND_RECORD | VCR_OPERAND_RECORD_RECORD); } #define MAX_DESCRIPTORS 0x100 void avc_test_descriptors(int phyID, quadlet_t subunit_type, quadlet_t subunit_id) { int i; quadlet_t response; char descriptors[MAX_DESCRIPTORS]; fprintf(stderr, "*** Test descriptors ***\n"); memset(descriptors,0,MAX_DESCRIPTORS); for (i=0; ientry)) return FALSE; phyID = status_entry->node->selfid[0].packetZero.phyID; status = avc_decode_vcr_response(avc_transaction(handle, phyID, STATVCR0 | VCR_COMMAND_TRANSPORT_STATE | VCR_OPERAND_TRANSPORT_STATE, AVC_RETRY)); gtk_entry_set_text(GTK_ENTRY(status_entry->entry), status); return TRUE; } GtkWidget *make_avc_buttons(TopologyTree *node) { GtkWidget *hbox1, *hbox2, *hbox3, *vbox, *button, *label, *entry; struct status_entry *status_entry; status_entry = malloc(sizeof(struct status_entry)); if (status_entry == NULL) fatal("out of memory"); hbox1 = gtk_hbox_new(TRUE, 0); hbox2 = gtk_hbox_new(TRUE, 0); hbox3 = gtk_hbox_new(FALSE, 0); button = gtk_button_new_with_label("<<"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_rewind), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("PLAY"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_play), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 0); button = gtk_button_new_with_label(">>"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_forward), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("STOP"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_stop), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("||"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_pause), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("Eject"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_eject), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0); button = gtk_button_new_with_label("Record"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(avc_record), node); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0); label = gtk_label_new("Status: "); gtk_widget_show(label); entry = gtk_entry_new(); gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE); gtk_widget_show(entry); gtk_box_pack_start(GTK_BOX(hbox3), label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox3), entry, TRUE, TRUE, 0); gtk_widget_show(hbox1); gtk_widget_show(hbox2); gtk_widget_show(hbox3); vbox = gtk_vbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox1, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox3, FALSE, FALSE, 0); gtk_widget_show(vbox); status_entry->node = node; status_entry->entry = entry; g_timeout_add(500, update_avc_status, status_entry); return vbox; } #define MAXTEXTLEAFCHARS 1000 #define VIDEO_MONITOR (AVC_SUBUNIT_TYPE_VIDEO_MONITOR>>19) #define DISC_RECORDER (AVC_SUBUNIT_TYPE_DISC_RECORDER>>19) #define TAPE_RECORDER (AVC_SUBUNIT_TYPE_TAPE_RECORDER>>19) #define TUNER (AVC_SUBUNIT_TYPE_TUNER>>19) #define VIDEO_CAMERA (AVC_SUBUNIT_TYPE_VIDEO_CAMERA>>19) #define VENDOR_UNIQUE (AVC_SUBUNIT_TYPE_VENDOR_UNIQUE>>19) #define NOTHING 0xFF #define VIDEO_MONITOR_S "Video Monitor" #define DISC_RECORDER_S "Disc Recorder" #define TAPE_RECORDER_S "Tape Recorder" #define TUNER_S "Tuner" #define VIDEO_CAMERA_S "Video Camera" #define VENDOR_UNIQUE_S "Vendor Unique" #define MAXAVCSTRINGCHARS 200 void append_subunit_strings(char *buf, quadlet_t table[8]) { int i, j; int entry; int id; int count; char *s; for (i=0; i<8; i++) { for (j=3; j>=0; j--) { entry = (table[i] >> (j * 8)) & 0xFF; if (entry == NOTHING) continue; id = entry >> 3; count = (entry & 7) + 1; switch (id) { case VIDEO_MONITOR: s = VIDEO_MONITOR_S; break; case DISC_RECORDER: s = DISC_RECORDER_S; break; case TAPE_RECORDER: s = TAPE_RECORDER_S; break; case TUNER: s = TUNER_S; break; case VIDEO_CAMERA: s = VIDEO_CAMERA_S; break; case VENDOR_UNIQUE: s = VENDOR_UNIQUE_S; break; default: s = "Unknown"; } strcpy(buf, s); buf += strlen(s); strcpy(buf, ": "); buf += 2; *buf++ = count + '0'; *buf++ = '\n'; } } *buf++ = 0; } /* * Popup a dialog displaying various detailed information about a particular * node. * IN: node: The node to display information about */ void popup_nodeinfo(TopologyTree *node) { GtkWidget *button, *dialog_window, *hbox, *text, *sw; char *s; char textualleafes[MAXTEXTLEAFCHARS]; int nchars, nleafes, i; quadlet_t table[8]; char avcstring[MAXAVCSTRINGCHARS]; dialog_window = gtk_dialog_new(); g_signal_connect(GTK_OBJECT(dialog_window), "destroy", G_CALLBACK(ClosingDialog), &dialog_window); if (node->label != NULL && node->label[0] != '\0') { gtk_window_set_title(GTK_WINDOW(dialog_window), node->label); } else gtk_window_set_title(GTK_WINDOW(dialog_window), "Node Info"); gtk_container_set_border_width(GTK_CONTAINER(dialog_window), 5); /*gtk_window_set_default_size(GTK_WINDOW(dialog_window), 300, 250);*/ gtk_window_set_default_size(GTK_WINDOW(dialog_window), 300, 300); nleafes = node->rom_info.nr_textual_leafes; nchars = (nleafes != 0) ? MAXTEXTLEAFCHARS / nleafes : 0; textualleafes[0] = '\0'; if (nchars != 0) { for(i=0; irom_info.textual_leafes[i] != NULL) { strncat(textualleafes, "\n", 1); strncat(textualleafes, node->rom_info .textual_leafes[i], nchars); } } } DEBUG_GENERAL fprintf(stderr,"Getting AVC subunit info\n"); if (get_node_type(&node->rom_info) == NODE_TYPE_AVC) { if (avc_subunit_info(handle, node->selfid[0].packetZero.phyID,table) < 0) { strcpy(avcstring, "Error getting subunit info\n"); } else { append_subunit_strings(avcstring, table); } } else { strcpy(avcstring, "N/A\n"); } DEBUG_GENERAL fprintf(stderr,"Got AVC subunit info\n"); //sprintf(s, "SelfID Info\n-----------\nPhysical ID: %i\nLink active: %s\nGap Count: %i\nPHY Speed: %s\nPHY Delay: %s\nIRM Capable: %s\nPower Class: %s\nPort 0: %s\nPort 1: %s\nPort 2: %s\nInit. reset: %s\n\nCSR ROM Info\n------------\nGUID: 0x%08X%08X\nNode Capabilities: 0x%08X\nVendor ID: 0x%08X\nUnit Spec ID: 0x%08X\nUnit SW Version: 0x%08X\nModel ID: 0x%08X\nNr. Textual Leafes: %i\n\nTextual Leafes: %s\n\nAV/C Subunits\n-------------\n%s", s = g_strdup_printf("SelfID Info\n-----------\nPhysical ID: %i\nLink active: %s\nGap Count: %i\nPHY Speed: %s\nPHY Delay: %s\nIRM Capable: %s\nPower Class: %s\n%sInit. reset: %s\n\nCSR ROM Info\n------------\nGUID: 0x%08X%08X\nNode Capabilities: 0x%08X\nVendor ID: 0x%08X\nUnit Spec ID: 0x%08X\nUnit SW Version: 0x%08X\nModel ID: 0x%08X\nNr. Textual Leafes: %i\n\nVendor: %s\nTextual Leafes: %s\n\nAV/C Subunits\n-------------\n%s", node->selfid[0].packetZero.phyID, yes_no(node->selfid[0].packetZero.linkActive), node->selfid[0].packetZero.gapCount, decode_speed(node->selfid[0].packetZero.phySpeed), decode_delay(node->selfid[0].packetZero.phyDelay), yes_no(node->selfid[0].packetZero.contender), decode_pwr(node->selfid[0].packetZero.powerClass), //decode_port_status(node->selfid[0].packetZero.port0), //decode_port_status(node->selfid[0].packetZero.port1), //decode_port_status(node->selfid[0].packetZero.port2), decode_all_ports_status(node->selfid), yes_no(node->selfid[0].packetZero.initiatedReset), node->rom_info.guid_hi, node->rom_info.guid_lo, node->rom_info.node_capabilities, node->rom_info.vendor_id, node->rom_info.unit_spec_id, node->rom_info.unit_sw_version, node->rom_info.model_id, node->rom_info.nr_textual_leafes, node->rom_info.vendor, textualleafes, avcstring); text = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); gtk_text_buffer_insert_at_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), s, -1); g_free(s); sw = gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(sw), text); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox), sw, TRUE, TRUE, 0); if (get_node_type(&node->rom_info) == NODE_TYPE_AVC) { gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox), make_avc_buttons(node), FALSE, TRUE, 0); } button = gtk_button_new_with_label("OK"); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(CloseDialog), dialog_window); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_grab_default(button); gtk_widget_show(button); gtk_widget_show_all(dialog_window); } /* * Called when the mouse button is pressed in the main window. Check if a node * was clicked, and pop up an information dialog if so. * IN: widget: not used * event: the button press event * RESULT: TRUE */ static gint button_press_event(GtkWidget *widget, GdkEventButton *event) { int x, y, width, height; GdkModifierType state; TopologyTree *node; if (event->type == GDK_BUTTON_PRESS) { x = event->x; y = event->y; state = event->state; gdk_drawable_get_size(GDK_DRAWABLE(event->window), &width, &height); node = detectClick(topologyTree, 0, width, 0, x, y); if (node != NULL) { popup_nodeinfo(node); } } return TRUE; } /* * Called whenever a bus reset has occured before the last read was startet. * Calls Repaint(). */ int bus_reset_handler(raw1394handle_t handle, unsigned int generation) { DEBUG_GENERAL fprintf(stderr, "Bus reset - current generation number: %d\n", generation); raw1394_update_generation(handle, generation); //Repaint((gpointer) drawing_area); repaintCountdown = 10; /* Repaint 10 times until reset is finished */ return 0; } /* * Called periodically by the timer. * Performs a dummy read to the cycle time register on the local node to * trigger the bus_reset_handler callback whenever a bus reset has occured. */ gint dummy_read(gpointer data) { quadlet_t quadlet; /* Repaint if repaintCountdown is running */ if (repaintCountdown) { repaintCountdown--; Repaint((gpointer) drawing_area); } cooked1394_read(handle, 0xffc0 | raw1394_get_local_id(handle), CSR_REGISTER_BASE + CSR_CYCLE_TIME, 4, (quadlet_t *) &quadlet); return TRUE; } /* * build the drawing area for the topology tree. * IN: x: horizontal size of drawing area * y: vertical size of drawing area * RETURNS: handle of the drawing area widget */ GtkWidget *makeDrawingArea(int x, int y) { GtkWidget *drawing_area; drawing_area = gtk_drawing_area_new (); gtk_widget_set_size_request(GTK_WIDGET(drawing_area), x, y); gtk_widget_show (drawing_area); g_signal_connect (GTK_OBJECT (drawing_area), "expose_event", G_CALLBACK (expose_event), NULL); g_signal_connect (GTK_OBJECT (drawing_area), "configure_event", G_CALLBACK (configure_event), NULL); g_signal_connect (GTK_OBJECT (drawing_area), "button_press_event", G_CALLBACK (button_press_event), NULL); gtk_widget_set_events(drawing_area, GDK_EXPOSURE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK); return drawing_area; } /* * The main Method. Get a handle from the 1394 subsystem, initialize the GTK * GUI, then enter the GTK event loop. */ int main (int argc, char *argv[]) { GtkWidget *window; GtkWidget *vbox; GtkWidget *menu_bar; quadlet_t quadlet; int c, level; int port = 0; /* Parse command line options */ const char *optstring = "p:v::"; do { c = getopt(argc, argv, optstring); switch(c) { case 'v': if (optarg == NULL) level = 1; else level = atoi(optarg); fprintf(stderr, "Debug level: %i\n", level); set_debug_level(level); break; case 'p': if (optarg == NULL) port = 0; else port = atoi(optarg); } } while (c != -1); /* Initialize 1394, check if we have access */ handle = raw1394_new_handle(); if (!handle) { if (!errno) { fprintf(stderr, not_compatible); } else { perror("couldn't get handle"); fprintf(stderr, not_loaded); } exit(1); } DEBUG_GENERAL fprintf(stderr, "successfully got handle\n"); DEBUG_GENERAL fprintf(stderr, "current generation number: %d\n", raw1394_get_generation(handle)); if (raw1394_set_port(handle, port) < 0) { perror("couldn't set port"); //exit(1); } DEBUG_GENERAL fprintf(stderr,"using first card found: %d nodes on bus, local ID is %d\n", raw1394_get_nodecount(handle), raw1394_get_local_id(handle) & 0x3f); if (cooked1394_read(handle, 0xffc0 | raw1394_get_local_id(handle), CSR_REGISTER_BASE + CSR_CYCLE_TIME, 4, (quadlet_t *) &quadlet) < 0) { fprintf(stderr, "something is wrong here\n"); } raw1394_set_bus_reset_handler(handle, bus_reset_handler); gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); g_signal_connect (GTK_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); menu_bar = makeMenuBar(window); drawing_area = makeDrawingArea(640, 480); gtk_box_pack_start (GTK_BOX (vbox), menu_bar, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0); gtk_widget_show_all (window); Repaint((gpointer) drawing_area); g_timeout_add(100, dummy_read, NULL); gtk_main (); /* Should never return */ DEBUG_GENERAL fprintf(stderr, "Closing down."); return 0; } gscanbus-0.8/gtcd.xpm000066400000000000000000000500041151312264100146300ustar00rootroot00000000000000/* XPM */ static char * gtcd_xpm[] = { "48 48 977 2", " c None", ". c #000000", "+ c #060505", "@ c #5B524D", "# c #837477", "$ c #857182", "% c #7F6686", "& c #88718C", "* c #9D8299", "= c #AB97A3", "- c #C2B4AF", "; c #B9A6AA", "> c #977A91", ", c #755177", "' c #59484F", ") c #080706", "! c #313231", "~ c #5F5D5D", "{ c #857E7B", "] c #B2A19D", "^ c #CDB7B6", "/ c #AB8CA1", "( c #937695", "_ c #8C6F93", ": c #9D859B", "< c #AF99A5", "[ c #CEBEB7", "} c #C8B0B9", "| c #B485B0", "1 c #AF7DAD", "2 c #C7ABAF", "3 c #CBBCA3", "4 c #A49D8D", "5 c #5E5953", "6 c #333434", "7 c #4C5252", "8 c #5E6265", "9 c #727272", "0 c #878585", "a c #A19797", "b c #CEBBB7", "c c #B9A1AF", "d c #A387A3", "e c #977B9D", "f c #A790A7", "g c #B7A3AF", "h c #D7CAC3", "i c #CDB2C1", "j c #B987B9", "k c #C39DB7", "l c #D2BEB6", "m c #D9CDB6", "n c #DCD3C7", "o c #DFDADB", "p c #C3BBBD", "q c #676063", "r c #0D0A0B", "s c #7A6B6F", "t c #7D7279", "u c #626569", "v c #575E60", "w c #676B6D", "x c #808080", "y c #979090", "z c #BEB0AF", "A c #D2BCC0", "B c #B097AD", "C c #9B7DA3", "D c #AD93AB", "E c #BCA9B4", "F c #DDD2C8", "G c #CDAFC4", "H c #B780BE", "I c #D0B4BE", "J c #DACDB7", "K c #DDD4C6", "L c #E2DCD9", "M c #E2DBDD", "N c #E1D7DA", "O c #E0D2D8", "P c #AEA1A5", "Q c #100E0E", "R c #4D3E41", "S c #BA98A2", "T c #B999A3", "U c #A58993", "V c #877B80", "W c #696B6F", "X c #5E6769", "Y c #727679", "Z c #8E8C8C", "` c #A79F9D", " . c #DACAC7", ".. c #BCA5B6", "+. c #A587AB", "@. c #B097B0", "#. c #C3B0BC", "$. c #DFD4CE", "%. c #CEADC7", "&. c #C395C1", "*. c #D9C7C3", "=. c #DFD5C3", "-. c #E3DCD5", ";. c #E6DFE1", ">. c #E5DADE", ",. c #E4D7DC", "'. c #E3D0D9", "). c #E2CDD7", "!. c #CFBEC6", "~. c #514B4E", "{. c #645C5C", "]. c #DAC2C4", "^. c #DEB7C1", "/. c #D4AFB9", "(. c #C6A5AF", "_. c #B299A1", ":. c #97878E", "<. c #727479", "[. c #697274", "}. c #828585", "|. c #9F999B", "1. c #CABCB9", "2. c #CFB9C3", "3. c #B095B2", "4. c #B29BB4", "5. c #C7B2C0", "6. c #E1D4D0", "7. c #CBA5C8", "8. c #D2B2C6", "9. c #E0D4C1", "0. c #E4DCD2", "a. c #E7E3E4", "b. c #E6DEE1", "c. c #E6D9DE", "d. c #E5D3DB", "e. c #E3CED8", "f. c #E4CFD9", "g. c #E5D5DC", "h. c #E0D4D8", "i. c #676164", "j. c #53524F", "k. c #DBD5D0", "l. c #E1D7D3", "m. c #E1D2D0", "n. c #E0C4C8", "o. c #DBB6C0", "p. c #CEA9B4", "q. c #B99DA5", "r. c #9B8C93", "s. c #74767B", "t. c #6D7679", "u. c #8E8E8E", "v. c #AFA7A5", "w. c #E3D3D0", "x. c #B9A1B7", "y. c #B299B6", "z. c #C8B7C3", "A. c #E0D2D3", "B. c #C699C8", "C. c #DCC7C7", "D. c #E4DACA", "E. c #E8E3E2", "F. c #E7DFE2", "G. c #E6DADF", "H. c #E6D4DC", "I. c #DFD7C1", "J. c #E6D8DE", "K. c #E7DCE0", "L. c #E7DDE1", "M. c #E2DADD", "N. c #565454", "O. c #0D0E0D", "P. c #D2D4CC", "Q. c #E3E2DA", "R. c #E2DFD9", "S. c #E2DCD7", "T. c #E2D8D4", "U. c #E2D0CF", "V. c #E0C1C8", "W. c #D7B2BC", "X. c #C3A5AF", "Y. c #A59399", "Z. c #76797D", "`. c #767B7D", " + c #999797", ".+ c #CBC0BE", "++ c #C7AFC1", "@+ c #B097B4", "#+ c #CAB9C4", "$+ c #DDCBD2", "%+ c #CA9FC8", "&+ c #E2D7C4", "*+ c #E7E1DB", "=+ c #E9E1E4", "-+ c #E7DBE1", ";+ c #E6D2DB", ">+ c #E7DBE0", ",+ c #E8DEE2", "'+ c #EAE2E5", ")+ c #EAE4E6", "!+ c #D8D5D5", "~+ c #0E0E0D", "{+ c #A7ABAE", "]+ c #D9DDDE", "^+ c #DEE1DF", "/+ c #E3E5DE", "(+ c #E5E6DD", "_+ c #E4E2DB", ":+ c #E4DED9", "<+ c #E5DBD8", "[+ c #E5D2D2", "}+ c #E1BCC7", "|+ c #CFAFB7", "1+ c #B29DA5", "2+ c #808287", "3+ c #878C8E", "4+ c #B0ABAB", "5+ c #E0CFD3", "6+ c #B49BBB", "7+ c #CFC0CA", "8+ c #DCC4D4", "9+ c #DEC7CF", "0+ c #E9E1D7", "a+ c #ECE6E7", "b+ c #EBE0E5", "c+ c #EAD8E0", "d+ c #EBDEE4", "e+ c #EBE2E6", "f+ c #ECE5E7", "g+ c #EDE7E9", "h+ c #ECE7E6", "i+ c #EBE5E0", "j+ c #EAE3DC", "k+ c #B7B2AB", "l+ c #5A5C61", "m+ c #D3D9E3", "n+ c #D5DAE3", "o+ c #D7DBE2", "p+ c #D9DDE2", "q+ c #DDE0E2", "r+ c #E1E4E2", "s+ c #E6E8E2", "t+ c #E7E6DF", "u+ c #E7E2DD", "v+ c #E7DDDB", "w+ c #E6CFD2", "x+ c #DBB9C4", "y+ c #C0A5AF", "z+ c #828589", "A+ c #939595", "B+ c #D2C7C6", "C+ c #BCA3BE", "D+ c #D0C1CB", "E+ c #D4B2D3", "F+ c #E6DCCB", "G+ c #E9D7DF", "H+ c #EADBE3", "I+ c #EDE9EA", "J+ c #ECE6E3", "K+ c #EAE4DC", "L+ c #EAE2D9", "M+ c #E9E1D4", "N+ c #E8E0D0", "O+ c #E8DFCE", "P+ c #625F57", "Q+ c #B1B5C1", "R+ c #CED4E5", "S+ c #D0D7E5", "T+ c #D3D9E5", "U+ c #D5DAE5", "V+ c #D8DCE5", "W+ c #DADEE5", "X+ c #DEE2E5", "Y+ c #E4E6E5", "Z+ c #EAECE5", "`+ c #EAE7E2", " @ c #EAE1DE", ".@ c #E8CDD2", "+@ c #9D7985", "@@ c #454648", "#@ c #605E60", "$@ c #8C7B89", "%@ c #B0A3AD", "&@ c #C6B0C6", "*@ c #D3CDC7", "=@ c #D5C7CE", "-@ c #EDDCE5", ";@ c #EFE6EA", ">@ c #F0EAEC", ",@ c #F0ECEE", "'@ c #F0ECEA", ")@ c #EEE8E2", "!@ c #EEE7DE", "~@ c #EDE6DB", "{@ c #EDE5D5", "]@ c #EDE4D3", "^@ c #ECE2D5", "/@ c #EADFD7", "(@ c #EADED7", "_@ c #C6BBB9", ":@ c #35373A", "<@ c #CFD4E7", "[@ c #D0D5E8", "}@ c #D0D7EA", "|@ c #D2D9EA", "1@ c #D4DAEA", "2@ c #D5DBEB", "3@ c #D8DCEA", "4@ c #D9DEEA", "5@ c #DBE0EA", "6@ c #DEE2EA", "7@ c #E1E5EA", "8@ c #CDD0CE", "9@ c #6F6F67", "0@ c #B2ABA7", "a@ c #B2A8AB", "b@ c #858585", "c@ c #828282", "d@ c #9A9998", "e@ c #C7C4C6", "f@ c #F0EBEE", "g@ c #DFDADD", "h@ c #E1DDDD", "i@ c #F0EBE6", "j@ c #F0E9DF", "k@ c #EFE7D9", "l@ c #EEE6D8", "m@ c #EDE2DA", "n@ c #EBDFDA", "o@ c #EBDEDC", "p@ c #EADBDD", "q@ c #E8D8DC", "r@ c #E7D4DB", "s@ c #E6D3DC", "t@ c #E4CFDC", "u@ c #393437", "v@ c #8F8F95", "w@ c #D3D3DF", "x@ c #D2D2E0", "y@ c #D2D3E2", "z@ c #D3D4E3", "A@ c #D3D4E4", "B@ c #D3D5E5", "C@ c #D3D7E6", "D@ c #D3D8E8", "E@ c #D3D8EA", "F@ c #ABB2CB", "G@ c #535767", "H@ c #D5D8DE", "I@ c #B4B5B8", "J@ c #616161", "K@ c #686868", "L@ c #7E7E7E", "M@ c #747474", "N@ c #B9B8B5", "O@ c #F0EDE7", "P@ c #D8D0CA", "Q@ c #D0BCB9", "R@ c #E7D7DA", "S@ c #E6D0D9", "T@ c #E2CAD9", "U@ c #E0C4D8", "V@ c #DEC1D9", "W@ c #DCBED9", "X@ c #DBB9D8", "Y@ c #DAB7D9", "Z@ c #D8B4D8", "`@ c #D8B0D8", " # c #D7B0D8", ".# c #8E7C8E", "+# c #AFABB0", "@# c #CBC7CE", "## c #CBC6CD", "$# c #CAC6CD", "%# c #C8C4CB", "&# c #CAC4CB", "*# c #C8C3CA", "=# c #48454A", "-# c #B7B6B9", ";# c #EAEAEB", "># c #797979", ",# c #535353", "'# c #7C7C7C", ")# c #7D7D7D", "!# c #EEE6ED", "~# c #DCCFDA", "{# c #B095AD", "]# c #DEC1DC", "^# c #E0C1DD", "/# c #E0C1DE", "(# c #BEAABC", "_# c #C6BFC1", ":# c #D2C8CB", "<# c #D2C8CA", "[# c #D3CACD", "}# c #D4CBCF", "|# c #D4CED2", "1# c #D5CFD4", "2# c #D7D2D8", "3# c #D9D5DB", "4# c #DBD9E0", "5# c #535358", "6# c #DEDEE2", "7# c #F1F2F4", "8# c #646464", "9# c #838383", "0# c #878787", "a# c #818181", "b# c #F0EDEF", "c# c #EBE7E8", "d# c #C0B7B4", "e# c #F2EBE6", "f# c #F1E9E6", "g# c #F1E6E7", "h# c #EFE4E6", "i# c #EFE3E6", "j# c #EEE0E6", "k# c #EDDFE6", "l# c #EDDEE6", "m# c #EDDCE6", "n# c #ECDBE6", "o# c #EBDAE5", "p# c #DCCDD6", "q# c #D7D4D8", "r# c #DBD9DE", "s# c #DDDAE1", "t# c #DDDCE3", "u# c #DEDEE5", "v# c #DFDFE6", "w# c #E0E0E8", "x# c #E2E2EA", "y# c #E2E3EB", "z# c #E3E5ED", "A# c #E5E8F0", "B# c #E9E8F1", "C# c #796F80", "D# c #E4DEE5", "E# c #F6F2F6", "F# c #BCBBBB", "G# c #717171", "H# c #777777", "I# c #848484", "J# c #767676", "K# c #B8B4B6", "L# c #EDE9EF", "M# c #E6E1E7", "N# c #9F8E9D", "O# c #E0D2DC", "P# c #E3D8DF", "Q# c #E5DAE0", "R# c #EAE1E3", "S# c #EFE6E6", "T# c #F2EAE7", "U# c #F3EDE8", "V# c #F4EDE9", "W# c #F3EDEA", "X# c #F3EBEA", "Y# c #F2EAEA", "Z# c #EEE6E6", "`# c #E3E4EC", " $ c #E5E6ED", ".$ c #E5E6EF", "+$ c #E6E8F0", "@$ c #E6EAF2", "#$ c #EAEAF2", "$$ c #EDE7F2", "%$ c #EEE6F1", "&$ c #EFE6F0", "*$ c #F1E5F0", "=$ c #D8C6D3", "-$ c #B4A7AD", ";$ c #F3F0F0", ">$ c #F6F4F1", ",$ c #CCCBCB", "'$ c #999999", ")$ c #7B7A7A", "!$ c #949292", "~$ c #B4B5B6", "{$ c #EAEAEA", "]$ c #F4F0F0", "^$ c #C7BCC6", "/$ c #A990B2", "($ c #D4C1D8", "_$ c #D9C8DB", ":$ c #DDCEDC", "<$ c #E0D2DE", "[$ c #E3D5DF", "}$ c #E5D8E0", "|$ c #E6DAE1", "1$ c #E8DEE3", "2$ c #ECE3E5", "3$ c #EFE6E7", "4$ c #F0EAE9", "5$ c #F2ECEA", "6$ c #E3E6ED", "7$ c #E8EAF3", "8$ c #EBEBF3", "9$ c #EEE9F3", "0$ c #EFE8F2", "a$ c #F0E8F2", "b$ c #F0E7F2", "c$ c #F1E6F2", "d$ c #F3E6F2", "e$ c #F3E8F0", "f$ c #F4EAEF", "g$ c #F4ECED", "h$ c #B9B2A3", "i$ c #E6E0E1", "j$ c #F5F0F4", "k$ c #F0F2F5", "l$ c #EBEAED", "m$ c #EEEFF2", "n$ c #F3EFEF", "o$ c #E3DFE1", "p$ c #CBCDCD", "q$ c #B2B0B0", "r$ c #DDCFCE", "s$ c #E6D8E2", "t$ c #DCCBDD", "u$ c #D4C1DA", "v$ c #D5C4DA", "w$ c #D9C7DC", "x$ c #DCCDDC", "y$ c #DFD0DF", "z$ c #E1D3DF", "A$ c #E3D5E1", "B$ c #E5D8E1", "C$ c #E6DAE2", "D$ c #E7DDE4", "E$ c #E3DAE0", "F$ c #DFDCE3", "G$ c #EFEAF3", "H$ c #F0EAF3", "I$ c #F0E9F3", "J$ c #F2E9F3", "K$ c #F2E8F2", "L$ c #F3E8F2", "M$ c #F4E9F2", "N$ c #F4E9F0", "O$ c #F4EBF0", "P$ c #F4EBEF", "Q$ c #F4EDEC", "R$ c #F3EEE6", "S$ c #F4EDED", "T$ c #C1B6C6", "U$ c #C1C1C7", "V$ c #CFCFD7", "W$ c #D5D8DD", "X$ c #D9D3D2", "Y$ c #BEA7B0", "Z$ c #7D8082", "`$ c #BBBBBC", " % c #D0CDCE", ".% c #EBE2E2", "+% c #EDE0E6", "@% c #E1D0DE", "#% c #D9C7DA", "$% c #D2BED8", "%% c #D3BED8", "&% c #D4C3D9", "*% c #D8C6D9", "=% c #DACADA", "-% c #DCCDDB", ";% c #DECFDC", ">% c #E0D2DD", ",% c #D0C6CD", "'% c #C4BEC6", ")% c #EFE5F0", "!% c #EFE2EF", "~% c #F0E3EF", "{% c #F0E2EF", "]% c #F0E4EE", "^% c #F0E4ED", "/% c #F1E5EB", "(% c #F1E6EA", "_% c #F0E7E8", ":% c #F0E8E4", "<% c #EFE9DD", "[% c #EFE7DF", "}% c #F0E6E7", "|% c #EFE2EA", "1% c #EDE0ED", "2% c #E1E4ED", "3% c #D2C8CD", "4% c #D4D7E6", "5% c #E1E5EC", "6% c #EFEAE6", "7% c #E8CBD4", "8% c #BBABB4", "9% c #858E95", "0% c #A5A5A7", "a% c #BCB7B7", "b% c #D8CDCD", "c% c #DDCBCE", "d% c #C8B0C3", "e% c #C0A5BE", "f% c #B69DB9", "g% c #B095B9", "h% c #B097BB", "i% c #B69DBC", "j% c #BBA3BE", "k% c #BEA7C1", "l% c #C3ADC3", "m% c #9F929F", "n% c #89808A", "o% c #E6D3E5", "p% c #E6D5E3", "q% c #E8D8E4", "r% c #E8DAE2", "s% c #E9DBE1", "t% c #E9DDE0", "u% c #E9DEDD", "v% c #E8E0D8", "w% c #E7E0CF", "x% c #E9DFD9", "y% c #EADEE0", "z% c #E9D9E3", "A% c #E9D7E7", "B% c #E2DBE9", "C% c #D4D4E0", "D% c #C7BEC8", "E% c #CBD0E5", "F% c #DBDFE7", "G% c #EAE9E5", "H% c #E9D2D8", "I% c #CDB2BE", "J% c #97959B", "K% c #8C9397", "L% c #A7A5AB", "M% c #BBB6B7", "N% c #D5CACB", "O% c #EADDDD", "P% c #DECDD7", "Q% c #D3BECF", "R% c #CDB6CB", "S% c #C6AFC7", "T% c #C1A7C7", "U% c #C3ABC7", "V% c #C6AFCA", "W% c #7A717A", "X% c #302D30", "Y% c #EDDEE4", "Z% c #EDE0E2", "`% c #EDE2E1", " & c #EBE2DC", ".& c #EAE2D7", "+& c #EAE3D4", "@& c #ECE3DB", "#& c #ECE1E1", "$& c #ECDDE5", "%& c #EBDAE7", "&& c #E6DAE8", "*& c #DBDEE9", "=& c #D0CDD5", "-& c #CAC4D0", ";& c #CFD4E9", ">& c #DCE0E8", ",& c #EDEBE6", "'& c #EBDEDE", ")& c #DCBEC7", "!& c #B6A5AD", "~& c #82878E", "{& c #95979B", "]& c #A9A7A9", "^& c #BBB6B6", "/& c #D3C7C7", "(& c #E6D8D8", "_& c #E5D5D9", ":& c #D7C3D0", "<& c #CFB9CB", "[& c #C8B0C8", "}& c #C3A9C6", "|& c #BCA3C4", "1& c #BCA1C3", "2& c #272327", "3& c #BBB1B6", "4& c #EADCE2", "5& c #EADCE0", "6& c #EADDDF", "7& c #EADFDC", "8& c #E9DFD7", "9& c #E7DFCF", "0& c #E7DFD2", "a& c #E9DED9", "b& c #E9DDDE", "c& c #E9D7E4", "d& c #E5D5E5", "e& c #DFD9E7", "f& c #D3D4DF", "g& c #C6BBC0", "h& c #C6C3D2", "i& c #CAD0E6", "j& c #E9EAE4", "k& c #E7DCDB", "l& c #E0BEC8", "m& c #C1A7B0", "n& c #908C93", "o& c #727B82", "p& c #8C8E93", "q& c #9D9B9D", "r& c #AFA9AB", "s& c #C4B9BB", "t& c #DACDCD", "u& c #E2D2D3", "v& c #D3BECA", "w& c #CAB2C6", "x& c #C3ADC1", "y& c #938397", "z& c #4F4A4B", "A& c #E5D8D9", "B& c #E4D9D7", "C& c #E4D9D2", "D& c #E3DACE", "E& c #E2DBC7", "F& c #E2DACD", "G& c #E4D9D3", "H& c #E5D8D8", "I& c #E4D7DB", "J& c #E4D3DE", "K& c #E3D0E1", "L& c #DDD3E1", "M& c #CFD5E2", "N& c #CACAD3", "O& c #BCB4B9", "P& c #C3C3D2", "Q& c #C6CEE1", "R& c #D3DAE1", "S& c #E5E8E0", "T& c #E5DDDA", "U& c #E3C6CD", "V& c #CDAFB6", "W& c #A7999F", "X& c #7B8082", "Y& c #768082", "Z& c #8E9090", "`& c #9F9F9F", " * c #AFABA9", ".* c #C3B9B7", "+* c #D8CBC7", "@* c #E6D8D4", "#* c #DACACE", "$* c #CEBBC7", "%* c #C8B4C4", "&* c #433C41", "** c #A29D98", "=* c #E3DCD0", "-* c #E2DBCA", ";* c #E2DCC7", ">* c #E2DBCD", ",* c #E5DBD3", "'* c #E6DAD9", ")* c #E5D8DB", "!* c #E5D5DE", "~* c #E4D2E0", "{* c #DFD3E1", "]* c #DAD8E3", "^* c #CDD2DA", "/* c #C4C0C4", "(* c #BCB7BC", "_* c #C0C4D4", ":* c #C4CEE0", "<* c #D2D8DE", "[* c #E1E5DE", "}* c #E3DED8", "|* c #E2CDCE", "1* c #D4B2B9", "2* c #B69DA5", "3* c #8C8589", "4* c #606D6F", "5* c #74797B", "6* c #878989", "7* c #979595", "8* c #A5A19F", "9* c #B7ADAB", "0* c #CBBEBB", "a* c #DCCDCA", "b* c #D8C7C8", "c* c #8E8186", "d* c #080807", "e* c #BDB5A2", "f* c #D4CBB2", "g* c #D5CABB", "h* c #D8CAC1", "i* c #D9C8C8", "j* c #D8C7CD", "k* c #D8C4CF", "l* c #D7C0D0", "m* c #D3BED3", "n* c #CEC3D4", "o* c #C0C6D4", "p* c #B7B9C6", "q* c #A99B9F", "r* c #A9A3B0", "s* c #ADB2C8", "t* c #B6BED4", "u* c #C1C8D3", "v* c #D4D8D2", "w* c #D9D3CB", "x* c #D8C6C4", "y* c #D0A5B0", "z* c #B2909B", "A* c #8E7982", "B* c #676769", "C* c #555C5E", "D* c #65696B", "E* c #767679", "F* c #858285", "G* c #958E8E", "H* c #A59B9B", "I* c #BCAFAD", "J* c #B8A8A6", "K* c #080707", "L* c #38352F", "M* c #CAC1B3", "N* c #D5C7C1", "O* c #D7C6C7", "P* c #D7C3C8", "Q* c #D4C0CB", "R* c #D4BCCE", "S* c #D2B9D0", "T* c #CBBBD0", "U* c #C3C1D3", "V* c #B6BBCA", "W* c #AFABB7", "X* c #9F959B", "Y* c #A39DAF", "Z* c #A7ADC7", "`* c #AFB7CF", " = c #BBC3CE", ".= c #D3CFC7", "+= c #D2C1C0", "@= c #CEA1AD", "#= c #B68C97", "$= c #957682", "%= c #6B6069", "&= c #4D5157", "*= c #4D5357", "== c #5A5C60", "-= c #726F72", ";= c #807979", ">= c #837C7C", ",= c #292525", "'= c #3F3837", ")= c #C2B0B1", "!= c #CBB4BC", "~= c #CAB2C0", "{= c #C8ADC1", "]= c #C8A9C6", "^= c #C3ADC6", "/= c #BEB0C8", "(= c #ABB2C7", "_= c #A7A7B7", ":= c #978E99", "<= c #908590", "[= c #9593A9", "}= c #99A1C0", "|= c #A3ADC7", "1= c #B0B7C6", "2= c #C3C7C4", "3= c #CDCAC0", "4= c #CBBCB7", "5= c #C8A1A9", "6= c #B78595", "7= c #997280", "8= c #746069", "9= c #555358", "0= c #3E464A", "a= c #4C4F51", "b= c #58585A", "c= c #626062", "d= c #6A666A", "e= c #282627", "f= c #30292B", "g= c #AE97A3", "h= c #C7ABBE", "i= c #C7A7C0", "j= c #C1A7C1", "k= c #BCA9C3", "l= c #B0AFC4", "m= c #A3A7B7", "n= c #908E9D", "o= c #806F76", "p= c #7D7480", "q= c #89879F", "r= c #8C95B9", "s= c #99A1BC", "t= c #A9AFBC", "u= c #BBBCBC", "v= c #C8C6BB", "w= c #C8B9B4", "x= c #C7A7AB", "y= c #C08799", "z= c #A37987", "A= c #856772", "B= c #655760", "C= c #4D4D53", "D= c #454A4D", "E= c #515357", "F= c #555357", "G= c #1C1B1C", "H= c #080608", "I= c #857281", "J= c #C4A7C1", "K= c #BEABC1", "L= c #B9ADC3", "M= c #A9B0C3", "N= c #A3A5B4", "O= c #99959F", "P= c #897D82", "Q= c #8E8797", "R= c #9597AF", "S= c #95A1C3", "T= c #A1ABC3", "U= c #ABB4C1", "V= c #BCC1C0", "W= c #CACABC", "X= c #C8BEB7", "Y= c #C8B0B0", "Z= c #C6909D", "`= c #AF7D8C", " - c #906D79", ".- c #6F5C65", "+- c #534F55", "@- c #404548", "#- c #313436", "$- c #030303", "%- c #403640", "&- c #948999", "*- c #B0B2C6", "=- c #A5A9BC", "-- c #9F9DAF", ";- c #90858E", ">- c #897D87", ",- c #8E879B", "'- c #9395B0", ")- c #BBC0C0", "!- c #CACBBE", "~- c #C8C0B7", "{- c #C8B2B0", "]- c #C497A1", "^- c #B4808E", "/- c #9B6F7B", "(- c #7D606B", "_- c #4B474A", ":- c #1D1D1D", "<- c #30333C", "[- c #6B6B78", "}- c #908D9A", "|- c #85747B", "1- c #857985", "2- c #878099", "3- c #8C8EAF", "4- c #8E99BE", "5- c #9DA3BC", "6- c #A5ABBC", "7- c #B4B9BC", "8- c #C4C6BB", "9- c #C4BBB2", "0- c #C3AFAD", "a- c #C19BA1", "b- c #B37D8D", "c- c #6D4D57", "d- c #291F22", "e- c #030203", "f- c #2C2629", "g- c #4C454D", "h- c #646074", "i- c #797C98", "j- c #8891B2", "k- c #9AA0B8", "l- c #A2AAB8", "m- c #A8ABAF", "n- c #AAABA2", "o- c #938D86", "p- c #716563", "q- c #423335", "r- c #040203", " ", " ", " ", " ", " ", " ", " . . . . . . . . . . ", " . . + @ # $ % & * = - ; > , ' ) . . ", " . . ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 . . ", " . . 6 7 8 9 0 a b c d e f g h i j k l m n o p q . . ", " . r s t u v w x y z A B C D E F G H I J K L M N O P Q . ", " . R S T U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.. ", " . {.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.. ", " . j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.d.J.K.L.M.N.. ", " O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+H.;+J.>+,+=+'+)+!+~+ ", " . {+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+c+d+e+f+a+g+h+i+j+k+. ", " . l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+g+b+G+H+e+f+g+I+J+K+L+M+N+O+P+. ", " . Q+R+S+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@. ", " :@<@[@}@|@|@1@2@3@4@5@6@7@8@9@0@a@b@c@b@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@ ", " . v@w@x@x@y@y@z@A@B@C@D@E@F@G@H@I@J@K@x c@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#. ", " . +#@#@###$#%#&#*#*#&###$#=#-#;#>#,#L@b@b@b@'#)#!#~#{#]#^#^#^#^#/#/#/#/#/#/#(#. ", " . _#:#:#<#<#[#}#|#1#2#3#4#5#6#7#x 8#9#0#0#0#L@a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#. ", " . q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#b@0#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#. ", " . x#y#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$J#!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$. ", " . 6$@$7$8$9$0$a$b$c$d$e$f$g$$.h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$A$B$C$D$E$. ", " . F$G$H$I$J$K$L$M$N$O$P$Q$R$R$S$=$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%;%>%,%. ", " . '%)%!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l%m%. ", " . n%o%o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%T%U%V%W%. ", " . X%n#m#l#Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&. ", " . 3&4&5&6&7&8&9&0&a&b&s%c&d&e&f&g&h&i&V+j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&C+y&. . ", " . z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&`& *.*+*@*#*$*%*&*. ", " . . **=*-*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*1*2*3*4*5*6*7*8*9*0*a*b*c*. . ", " . d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*A*B*C*D*E*F*G*H*I*J*K*. . ", " . . L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`* =8@.=+=@=#=$=%=&=*===B*-=;=>=,=. . . ", " . . '=)=!=~={=]=^=/=(=_=:=<=[=}=|=1=2=3=4=5=6=7=8=9=0=a=b=c=d=e=. . . ", " . . . f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C=D=E=F=G=. . . . ", " . . . H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-. . . . ", " . . . . %-&-*-=---;->-,-'-S=T=U=)-!-~-{-]-^-/-(-_-:-. . . . . ", " . . . . . <-[-}-|-1-2-3-4-5-6-7-8-9-0-a-b-c-d-. . . . . . ", " . . . . . . e-f-g-h-i-j-k-l-m-n-o-p-q-r-. . . . . . . ", " . . . . . . . . . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . . . . . ", " . . . . . . . . . . . . . ", " ", " ", " ", " "}; gscanbus-0.8/guid-resolv.conf000066400000000000000000000011571151312264100162750ustar00rootroot00000000000000# guid-resolv.cof # This is a sample configuration file. Insert the devices you wish to # be identified by gscanbus here. # # NOTE: These ids are globally unique (think of your Ethernet MAC # Address), so do not send your additions to me. They are only useful to # you. # # 8 byte GUID hex Identifying string CPU 080028500000ffff Unibrain FireBoard 400 1 0000d189201fffff Adaptec HotConnect 8920 1 08004601010fffff Sony DHR-1000VC 0 08004601016fffff Sony DCR-TRV900E PAL 0 008045813088ffff Panasonic NV-DV 10000 0 0080458050ABffff Panasonic NV-DS 15 0 00000001FEE3ffff Apple G4 1 0000000000000000 Your Device 0 gscanbus-0.8/icons.c000066400000000000000000000123541151312264100144460ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "icons.h" GdkPixmap *xpm_unknown = NULL; GdkPixmap *xpm_dvcr = NULL; GdkPixmap *xpm_disk = NULL; GdkPixmap *xpm_cpu = NULL; GdkPixmap *xpm_cpu_linux = NULL; GdkPixmap *xpm_cpu_apple = NULL; GdkPixmap *xpm_cpu_windows = NULL; GdkBitmap *xpm_unknown_mask; GdkBitmap *xpm_dvcr_mask; GdkPixmap *xpm_disk_mask; GdkBitmap *xpm_cpu_mask; GdkBitmap *xpm_cpu_linux_mask; GdkBitmap *xpm_cpu_apple_mask; GdkBitmap *xpm_cpu_windows_mask; GdkWindow *xpm_window = NULL; int chooseIconVendor(Rom_info *, GdkBitmap **, GdkBitmap **, char **); int contains(char *, char *); #if 0 /* * Initialize a GdkPixmap and corresponding mask from an xpm file. If the * pixmap was already loaded and the window has not changed, nothing is done. * If the pixmap was already loaded and the window has changed, the pixmap * will be reloaded. * IN: xpm: previously initialized pixmap if any * xpm_mask: previously initialized mask if any * xpm_window: the window previously used for pixmaps * window: the window to use now for pixmaps * filename: the filename of the xpm to load * OUT: xpm: the loaded pixmap * xpm_mask: the loaded mask */ void init_xpm(GdkPixmap **xpm, GdkBitmap **xpm_mask, GdkWindow *xpm_window, GdkWindow *window, char *filename) { if (xpm_window != window) { if (*xpm != NULL) gdk_pixmap_unref(*xpm); if (*xpm_mask != NULL) gdk_bitmap_unref(*xpm_mask); } if (*xpm == NULL || xpm_window != window) { *xpm = gdk_pixmap_create_from_xpm( window, xpm_mask, NULL, filename); } } #endif /* * Initialize a GdkPixmap and corresponding mask from xpm data. If the * pixmap was already loaded and the window has not changed, nothing is done. * If the pixmap was already loaded and the window has changed, the pixmap * will be reloaded. * IN: xpm: previously initialized pixmap if any * xpm_mask: previously initialized mask if any * xpm_window: the window previously used for pixmaps * window: the window to use now for pixmaps * data: a pointer to the xpm data * OUT: xpm: the loaded pixmap * xpm_mask: the loaded mask */ void init_xpm_d(GdkPixmap **xpm, GdkBitmap **xpm_mask, GdkWindow *xpm_window, GdkWindow *window, char **xpm_data) { if (xpm_window != window) { if (*xpm != NULL) gdk_pixmap_unref(*xpm); if (*xpm_mask != NULL) gdk_bitmap_unref(*xpm_mask); } if (*xpm == NULL || xpm_window != window) { *xpm = gdk_pixmap_create_from_xpm_d( window, xpm_mask, NULL, xpm_data); } } void initIcons(GdkWindow *window) { init_xpm_d(&xpm_unknown, &xpm_unknown_mask, xpm_window, window, gnome_question_xpm); init_xpm_d(&xpm_dvcr, &xpm_dvcr_mask, xpm_window, window, gnome_qeye_xpm); init_xpm_d(&xpm_disk, &xpm_disk_mask, xpm_window, window, gtcd_xpm); init_xpm_d(&xpm_cpu, &xpm_cpu_mask, xpm_window, window, gnome_term_xpm); init_xpm_d(&xpm_cpu_linux, &xpm_cpu_linux_mask, xpm_window, window, gnome_term_linux_xpm); init_xpm_d(&xpm_cpu_apple, &xpm_cpu_apple_mask, xpm_window, window, gnome_term_apple_xpm); init_xpm_d(&xpm_cpu_windows, &xpm_cpu_windows_mask, xpm_window, window, gnome_term_windows_xpm); xpm_window = window; } void chooseIcon(Rom_info *rom_info, GdkBitmap **xpm_node, GdkBitmap **xpm_node_mask, char **label) { switch(rom_info->node_type) { case NODE_TYPE_CONF_CAM: case NODE_TYPE_AVC: *xpm_node = xpm_dvcr; *xpm_node_mask = xpm_dvcr_mask; *label = "AV/C Device"; break; case NODE_TYPE_SBP2: *xpm_node = xpm_disk; *xpm_node_mask = xpm_disk_mask; *label = "SBP2 Device"; break; case NODE_TYPE_CPU: if (chooseIconVendor(rom_info, xpm_node, xpm_node_mask, label) < 0) { *xpm_node = xpm_cpu; *xpm_node_mask = xpm_cpu_mask; } break; default: if (chooseIconVendor(rom_info, xpm_node, xpm_node_mask, label) < 0) { *xpm_node = xpm_unknown; *xpm_node_mask = xpm_unknown_mask; } break; } } int chooseIconVendor(Rom_info *rom_info, GdkBitmap **xpm_node, GdkBitmap **xpm_node_mask, char **label) { if (contains(rom_info->vendor, "apple")) { *xpm_node = xpm_cpu_apple; *xpm_node_mask = xpm_cpu_apple_mask; *label = "MacOS"; } else if (contains(rom_info->vendor, "microsoft")) { *xpm_node = xpm_cpu_windows; *xpm_node_mask = xpm_cpu_windows_mask; *label = "Windows"; } else return -1; return 0; } int contains(char *s1, char *s2) { int i; int ls1, ls2; char *ps1 = s1; if (s1 == NULL || s2 == NULL) return 0; ls1 = strlen(s1); ls2 = strlen(s2); for(i=0; i * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "rominfo.h" #include #include "gnome-question.xpm" #include "gnome-qeye.xpm" #include "gnome-term.xpm" #include "gnome-term-linux.xpm" #include "gnome-term-apple.xpm" #include "gnome-term-windows.xpm" #include "gtcd.xpm" #include "apple-green.xpm" extern GdkPixmap *xpm_unknown; extern GdkPixmap *xpm_dvcr; extern GdkPixmap *xpm_disk; extern GdkPixmap *xpm_cpu; extern GdkPixmap *xpm_cpu_linux; extern GdkPixmap *xpm_cpu_apple; extern GdkPixmap *xpm_cpu_windows; extern GdkBitmap *xpm_unknown_mask; extern GdkBitmap *xpm_dvcr_mask; extern GdkPixmap *xpm_disk_mask; extern GdkBitmap *xpm_cpu_mask; extern GdkBitmap *xpm_cpu_linux_mask; extern GdkBitmap *xpm_cpu_apple_mask; extern GdkBitmap *xpm_cpu_windows_mask; extern GdkWindow *xpm_window; /* * Initialize a GdkPixmap and corresponding mask from xpm data. If the * pixmap was already loaded and the window has not changed, nothing is done. * If the pixmap was already loaded and the window has changed, the pixmap * will be reloaded. * IN: xpm: previously initialized pixmap if any * xpm_mask: previously initialized mask if any * xpm_window: the window previously used for pixmaps * window: the window to use now for pixmaps * data: a pointer to the xpm data * OUT: xpm: the loaded pixmap * xpm_mask: the loaded mask */ void init_xpm_d(GdkPixmap **xpm, GdkBitmap **xpm_mask, GdkWindow *xpm_window, GdkWindow *window, char **xpm_data); void initIcons(GdkWindow *window); void chooseIcon(Rom_info *rom_info, GdkBitmap **xpm_node, GdkBitmap **xpm_node_mask, char **label); gscanbus-0.8/install-sh000077500000000000000000000325371151312264100152000ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gscanbus-0.8/menues.c000066400000000000000000000352021151312264100146240ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * Copyright (C) 2010 Gareth McMullin * * menues.c - Menues and Transaction Dialogs for gscanbus * written 11.2.2000 to 6.4.2000 by Andreas Micklei * updated for GTK+ 2 by Gareth McMullin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include // isprint() #include // strlen() #include "menues.h" extern raw1394handle_t handle; // From gscanbus.c /* * Closes a dialog window. * IN: widget: not used * data: the dialog */ void CloseDialog(GtkWidget *widget, gpointer data) { gtk_widget_destroy(GTK_WIDGET(data)); } /* * Called when a dialog is closing. Releases the input focus. * IN: widget: the dialog */ void ClosingDialog(GtkWidget *widget, gpointer data) { gtk_grab_remove(GTK_WIDGET(widget)); } typedef struct { GtkWidget *entries[3]; GtkWidget *text; GtkWidget *dialog; } TransactionDialog; void ClosingTransactionDialog(GtkWidget *widget, gpointer data) { free(data); gtk_grab_remove(GTK_WIDGET(widget)); } /* * Callback for the about menu item from the menu bar. */ static void aboutApp(gpointer callback_data, guint callback_action, GtkWidget *widget) { const gchar *authors[] = {"Andreas Micklei ", "Jim Harkins (ASCII dump, compilation fixes)", "Manfred Weihs (Major bugfixes)", "Simon Vogl (endianess fixes)", "Mark Knecht (bug reports)", "PK Chen of VIA Technologies, Inc (hardware)", "Gareth McMullin ", NULL}; gtk_show_about_dialog(NULL, "program_name", PACKAGE_NAME, "version", VERSION, "comments", "A utility to access the IEEE1394 bus.\n" "Many ideas taken from gnome1394 by Emanuel Pirker", "copyright", "Copyright (C) 2001 Andreas Micklei\n" "Copyright (C) 2010 Gareth McMullin", "license", "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n\n" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software Foundation,\n" "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n", "website", "http://gscanbus.berlios.de/", "authors", authors, NULL); } GtkWidget *makeDialogWindow(char *title) { GtkWidget *dialog_window; dialog_window = gtk_dialog_new(); g_signal_connect(GTK_OBJECT(dialog_window), "destroy", G_CALLBACK(ClosingDialog), &dialog_window); gtk_window_set_title(GTK_WINDOW(dialog_window), title); gtk_container_set_border_width(GTK_CONTAINER(dialog_window), 5); gtk_window_set_default_size(GTK_WINDOW(dialog_window), 300, 200); return dialog_window; } TransactionDialog *makeTransactionDialog(char *title) { TransactionDialog *transactionDialog; transactionDialog = malloc(sizeof(TransactionDialog)); if (!transactionDialog) fatal("out of memory!"); transactionDialog->dialog = gtk_dialog_new(); g_signal_connect(GTK_OBJECT(transactionDialog->dialog), "destroy", G_CALLBACK(ClosingTransactionDialog), transactionDialog); gtk_window_set_title(GTK_WINDOW(transactionDialog->dialog), title); gtk_container_set_border_width(GTK_CONTAINER(transactionDialog->dialog), 5); gtk_window_set_default_size(GTK_WINDOW(transactionDialog->dialog), 300, 200); return transactionDialog; } GtkWidget *makeLabel(char *s) { GtkWidget *label; label = gtk_label_new(s); gtk_widget_show(label); return label; } GtkWidget *makeEntry(char *s) { GtkWidget *entry; entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(entry), s); gtk_widget_show(entry); return entry; } GtkWidget *makeButton(char *s, GtkSignalFunc func, gpointer data) { GtkWidget *button; button = gtk_button_new_with_label(s); g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(func), data); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); gtk_widget_show(button); return button; } int isEmptyString(char *s) { while (*s == ' ' || *s == '\t') s++; if (*s == '\0') return -1; else return 0; } void scanEditable(GtkWidget *editable, char *format, void *result) { char *s = gtk_editable_get_chars(GTK_EDITABLE(editable), 0, -1); if (s != NULL) { if (!isEmptyString(s)) { sscanf(s, format, result); } g_free(s); } } GtkWidget *tableAttachEntry(GtkWidget *table, char *slable, char *sentry, int pos) { GtkWidget *entry = makeEntry(sentry); gtk_table_attach_defaults(GTK_TABLE(table), makeLabel(slable), 0, 1, pos, pos+1); gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, pos, pos+1); return entry; } GtkWidget *tableAttachScrollText(GtkWidget *table, char *slable, char *stext, int pos) { GtkWidget *hbox, *sw, *text; gtk_table_attach_defaults(GTK_TABLE(table), makeLabel(slable), 0, 1, pos, pos+1); hbox = gtk_hbox_new(FALSE, 0); gtk_widget_show(hbox); text = gtk_text_view_new(); sw = gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(sw), text); gtk_widget_set_size_request(text, 230, 200); gtk_box_pack_start(GTK_BOX(hbox), sw, FALSE, FALSE, 0); gtk_widget_show_all(sw); gtk_table_attach_defaults(GTK_TABLE(table), hbox, 1, 3, pos, pos+1); return text; } void dialogAddOkClose(GtkWidget *dialog_window, GtkSignalFunc func) { GtkWidget *button_ok, *button_cancel; gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area), button_ok = makeButton("OK", G_CALLBACK(func), dialog_window), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area), button_cancel = makeButton("Close", G_CALLBACK(CloseDialog), dialog_window), TRUE, TRUE, 0); gtk_widget_grab_default(button_ok); } void transactionDialogAddOkClose(TransactionDialog *dialog, GtkSignalFunc func) { GtkWidget *button_ok, *button_cancel; gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog->dialog)->action_area), button_ok = makeButton("OK", G_CALLBACK(func), dialog), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog->dialog)->action_area), button_cancel = makeButton("Close", G_CALLBACK(CloseDialog), dialog->dialog), TRUE, TRUE, 0); gtk_widget_grab_default(button_ok); } /* * Performs a read quadlet transaction from the read quadlet dialog * IN: widget: not used * data: the dialog */ void readQuadletAppOk(GtkWidget *widget, gpointer data) { int destId = 0; octlet_t offset = 0; quadlet_t result; gchar sresult[11]; GtkWidget *entry_destid, *entry_offset, *entry_result; TransactionDialog *dialog; dialog = (TransactionDialog *) data; entry_destid = dialog->entries[0]; entry_offset = dialog->entries[1]; entry_result = dialog->entries[2]; scanEditable(entry_destid, "%i", &destId); scanEditable(entry_offset, "%Li", &offset); if (cooked1394_read(handle, 0xffc0 | destId, offset, 4, &result) < 0) { gtk_entry_set_text(GTK_ENTRY(entry_result), "Error"); } else { snprintf(sresult, 11, "0x%08X", ntohl(result)); gtk_entry_set_text(GTK_ENTRY(entry_result), sresult); } } /* * Callback for the read quadlet menu item from the menu bar. */ static void readQuadletApp(gpointer callback_data, guint callback_action, GtkWidget *widget) { GtkWidget *table; TransactionDialog *dialog; dialog = makeTransactionDialog("Read Quadlet"); table = gtk_table_new(3, 3, FALSE); dialog->entries[0] = tableAttachEntry(table, "Destination ID:", "0", 0); dialog->entries[1] = tableAttachEntry(table, "Memory Offset:", "0xFFFFF0000000", 1); dialog->entries[2] = tableAttachEntry(table, "Result:", "", 2); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog->dialog)->vbox), table, TRUE, TRUE, 0); transactionDialogAddOkClose(dialog, readQuadletAppOk); gtk_widget_show_all(dialog->dialog); } /* * Performs a write quadlet transaction from the write quadlet dialog * IN: widget: not used * data: the dialog */ void writeQuadletAppOk(GtkWidget *widget, gpointer data) { int destId = 0; octlet_t offset = 0; quadlet_t writedata; gchar swritedata[11]; GtkWidget *entry_destid, *entry_offset, *entry_data; TransactionDialog *dialog; dialog = (TransactionDialog *) data; entry_destid = dialog->entries[0]; entry_offset = dialog->entries[1]; entry_data = dialog->entries[2]; scanEditable(entry_destid, "%i", &destId); scanEditable(entry_offset, "%Li", &offset); scanEditable(entry_data, "%i", &writedata); writedata = htonl(writedata); if (cooked1394_write(handle, 0xffc0 | destId, offset, 4, &writedata) < 0) { gtk_entry_set_text(GTK_ENTRY(entry_data), "Error"); } else { snprintf(swritedata, 11, "0x%08X", ntohl(writedata)); gtk_entry_set_text(GTK_ENTRY(entry_data), swritedata); } } /* * Callback for the write quadlet menu item from the menu bar. */ static void writeQuadletApp(gpointer callback_data, guint callback_action, GtkWidget *widget) { GtkWidget *table; TransactionDialog *dialog; dialog = makeTransactionDialog("Write Quadlet"); table = gtk_table_new(3, 3, FALSE); dialog->entries[0] = tableAttachEntry(table, "Destination ID:", "0", 0); dialog->entries[1] = tableAttachEntry(table, "Memory Offset:", "0xFFFFF0000000", 1); dialog->entries[2] = tableAttachEntry(table, "Data:", "", 2); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog->dialog)->vbox), table, TRUE, TRUE, 0); transactionDialogAddOkClose(dialog, writeQuadletAppOk); gtk_widget_show_all(dialog->dialog); } /* * Performs a read block transaction from the read block dialog * IN: widget: not used * data: the dialog */ void readBlockAppOk(GtkWidget *widget, gpointer data) { int destId, length, i, j, pos = 0, nread; octlet_t offset = 0; quadlet_t *result, datum; gchar sresult[30], text[5]; GtkWidget *entry_destid, *entry_offset, *entry_length, *text_result; TransactionDialog *dialog; dialog = (TransactionDialog *) data; entry_destid = dialog->entries[0]; entry_offset = dialog->entries[1]; entry_length = dialog->entries[2]; text_result = dialog->text; scanEditable(entry_destid, "%i", &destId); scanEditable(entry_offset, "%Li", &offset); scanEditable(entry_length, "%i", &length); result = malloc(length); if (!result) fatal("out of memory!"); nread = cooked1394_read(handle, 0xffc0 | destId, offset, length,result); if (nread < 0) { gtk_entry_set_text(GTK_ENTRY(text_result), "Error"); } else { gtk_editable_delete_text(GTK_EDITABLE(text_result), 0, -1); pos = 0; //for (p=result; p>= 8; } text[4] = 0; snprintf(sresult, 30, "0x%08X:\t0x%08X %s\n", ((quadlet_t)offset)+i*4, ntohl(result[i]), (char *) text); gtk_text_buffer_insert_at_cursor( gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_result)), sresult, strlen(sresult)); } } free(result); } /* * Callback for the read block menu item from the menu bar. */ static void readBlockApp(gpointer callback_data, guint callback_action, GtkWidget *widget) { //GtkWidget *dialog_window, *table; GtkWidget *table; TransactionDialog *dialog; //dialog_window = makeDialogWindow("Read Block"); dialog = makeTransactionDialog("Read Block"); table = gtk_table_new(3, 4, FALSE); dialog->entries[0] = tableAttachEntry(table, "Destination ID:", "0", 0); dialog->entries[1] = tableAttachEntry(table, "Memory Offset:", "0xFFFFF0000000", 1); dialog->entries[2] = tableAttachEntry(table, "Length:", "4", 2); dialog->text = tableAttachScrollText(table, "Result:", "", 3); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog->dialog)->vbox), table, TRUE, TRUE, 0); //dialogAddOkClose(dialog->dialog, readBlockAppOk); transactionDialogAddOkClose(dialog, readBlockAppOk); gtk_widget_show_all(dialog->dialog); } /* * Callback for the force bus reset menu item from the menu bar. */ static void forceBusResetApp(gpointer callback_data, guint callback_action, GtkWidget *widget) { raw1394_reset_bus(handle); } /* * The data for the GtkItemFactory for the menu bar. This is the easy way to * create a menu bar in GTK+. Hopefully it is flexible enough for future * versions of this program. */ static GtkItemFactoryEntry menu_items[] = { {"/_File", NULL, 0, 0, "" }, {"/File/tearoff1", NULL, 0, 0, "" }, {"/File/_Quit", "Q", gtk_main_quit,0, }, {"/_Control", NULL, 0, 0, "" }, {"/Control/tearoff1", NULL, 0, 0, "" }, /*{"/Control/Show _Bus Information...", 0, 0, }, {"/Control/Show _CSR Space...", 0, 0, },*/ {"/Control/Force Bus _Reset", 0, forceBusResetApp, }, {"/_Transactions", NULL, 0, 0, "" }, {"/Transactions/tearoff1", NULL, 0, 0, "" }, {"/Transactions/Read Quadlet...", 0, readQuadletApp, }, {"/Transactions/Write Quadlet...", 0, writeQuadletApp, }, {"/Transactions/_Read Block...", 0, readBlockApp, }, /*{"/Transactions/_Write Block...", 0, 0, }, {"/Transactions/_Lock...", 0, 0, },*/ {"/_Help", NULL, 0, 0, ""}, {"/Help/_About", NULL, aboutApp,0 }, }; static int nmenu_items = sizeof(menu_items)/sizeof(menu_items[0]); /* * build the menu bar * IN: window: pointer to the window. This is needed for adding * keyboard accelerators * RETURNS: pointer to the feshly created and visible menu bar */ GtkWidget *makeMenuBar(GtkWidget *window) { GtkAccelGroup *accel_group; GtkItemFactory *item_factory; GtkWidget *menu_bar; accel_group = gtk_accel_group_new(); item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "", accel_group); gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL); //gtk_accel_group_attach(accel_group, GTK_OBJECT(window)); menu_bar = gtk_item_factory_get_widget(item_factory, ""); gtk_widget_show(menu_bar); return menu_bar; } gscanbus-0.8/menues.h000066400000000000000000000031031151312264100146240ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * menues.h - Menues and Transaction Dialogs for gscanbus * written 10.2.2000 by Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #include #include "fatal.h" #include "raw1394util.h" /* * Closes a dialog window. * IN: widget: not used * data: the dialog */ void CloseDialog(GtkWidget *widget, gpointer data); /* * Called when a dialog is closing. Releases the input focus. * IN: widget: the dialog */ void ClosingDialog(GtkWidget *widget, gpointer data); /* * build the menu bar * IN: window: pointer to the window. This is needed for adding * keyboard accelerators * RETURNS: pointer to the feshly created and visible menu bar */ GtkWidget *makeMenuBar(GtkWidget *window); gscanbus-0.8/missing000077500000000000000000000262331151312264100145670ustar00rootroot00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gscanbus-0.8/oui-resolv.conf000066400000000000000000004143641151312264100161510ustar00rootroot00000000000000000000 XEROX CORPORATION 000001 XEROX CORPORATION 000002 XEROX CORPORATION 000003 XEROX CORPORATION 000004 XEROX CORPORATION 000005 XEROX CORPORATION 000006 XEROX CORPORATION 000007 XEROX CORPORATION 000008 XEROX CORPORATION 000009 XEROX CORPORATION 00000A OMRON TATEISI ELECTRONICS CO. 00000B MATRIX CORPORATION 00000C CISCO SYSTEMS, INC. 00000D FIBRONICS LTD. 00000E FUJITSU LIMITED 00000F NEXT, INC. 000010 SYTEK INC. 000011 NORMEREL SYSTEMES 000012 INFORMATION TECHNOLOGY LIMITED 000013 CAMEX 000014 NETRONIX 000015 DATAPOINT CORPORATION 000016 DU PONT PIXEL SYSTEMS . 000017 TEKELEC 000018 WEBSTER COMPUTER CORPORATION 000019 APPLIED DYNAMICS INTERNATIONAL 00001A ADVANCED MICRO DEVICES 00001B NOVELL INC. 00001C BELL TECHNOLOGIES 00001D CABLETRON SYSTEMS, INC. 00001E TELSIST INDUSTRIA ELECTRONICA 00001F Telco Systems, Inc. 000020 DATAINDUSTRIER DIAB AB 000021 SUREMAN COMP. & COMMUN. CORP. 000022 VISUAL TECHNOLOGY INC. 000023 ABB INDUSTRIAL SYSTEMS AB 000024 CONNECT AS 000025 RAMTEK CORP. 000026 SHA-KEN CO., LTD. 000027 JAPAN RADIO COMPANY 000028 PRODIGY SYSTEMS CORPORATION 000029 IMC NETWORKS CORP. 00002A TRW - SEDD/INP 00002B CRISP AUTOMATION, INC 00002C AUTOTOTE LIMITED 00002D CHROMATICS INC 00002E SOCIETE EVIRA 00002F TIMEPLEX INC. 000030 VG LABORATORY SYSTEMS LTD 000031 QPSX COMMUNICATIONS PTY LTD 000032 Marconi plc 000033 EGAN MACHINERY COMPANY 000034 NETWORK RESOURCES CORPORATION 000035 SPECTRAGRAPHICS CORPORATION 000036 ATARI CORPORATION 000037 OXFORD METRICS LIMITED 000038 CSS LABS 000039 TOSHIBA CORPORATION 00003A CHYRON CORPORATION 00003B i Controls, Inc. 00003C AUSPEX SYSTEMS INC. 00003D UNISYS 00003E SIMPACT 00003F SYNTREX, INC. 000040 APPLICON, INC. 000041 ICE CORPORATION 000042 METIER MANAGEMENT SYSTEMS LTD. 000043 MICRO TECHNOLOGY 000044 CASTELLE CORPORATION 000045 FORD AEROSPACE & COMM. CORP. 000046 OLIVETTI NORTH AMERICA 000047 NICOLET INSTRUMENTS CORP. 000048 SEIKO EPSON CORPORATION 000049 APRICOT COMPUTERS, LTD 00004A ADC CODENOLL TECHNOLOGY CORP. 00004B ICL DATA OY 00004C NEC CORPORATION 00004D DCI CORPORATION 00004E AMPEX CORPORATION 00004F LOGICRAFT, INC. 000050 RADISYS CORPORATION 000051 HOB ELECTRONIC GMBH & CO. KG 000052 Intrusion.com, Inc. 000053 COMPUCORP 000054 MODICON, INC. 000055 COMMISSARIAT A L`ENERGIE ATOM. 000056 DR. B. STRUCK 000057 SCITEX CORPORATION LTD. 000058 RACORE COMPUTER PRODUCTS INC. 000059 HELLIGE GMBH 00005A SysKonnect GmbH 00005B ELTEC ELEKTRONIK AG 00005C TELEMATICS INTERNATIONAL INC. 00005D CS TELECOM 00005E USC INFORMATION SCIENCES INST 00005F SUMITOMO ELECTRIC IND., LTD. 000060 KONTRON ELEKTRONIK GMBH 000061 GATEWAY COMMUNICATIONS 000062 BULL HN INFORMATION SYSTEMS 000063 DR.ING.SEUFERT GMBH 000064 YOKOGAWA DIGITAL COMPUTER CORP 000065 NETWORK ASSOCIATES, INC. 000066 TALARIS SYSTEMS, INC. 000067 SOFT * RITE, INC. 000068 ROSEMOUNT CONTROLS 000069 CONCORD COMMUNICATIONS INC 00006A COMPUTER CONSOLES INC. 00006B SILICON GRAPHICS INC./MIPS 00006D CRAY COMMUNICATIONS, LTD. 00006E ARTISOFT, INC. 00006F MADGE NETWORKS LTD. 000070 HCL LIMITED 000071 ADRA SYSTEMS INC. 000072 MINIWARE TECHNOLOGY 000073 SIECOR CORPORATION 000074 RICOH COMPANY LTD. 000075 Nortel Networks 000076 ABEKAS VIDEO SYSTEM 000077 INTERPHASE CORPORATION 000078 LABTAM LIMITED 000079 NETWORTH INCORPORATED 00007A DANA COMPUTER INC. 00007B RESEARCH MACHINES 00007C AMPERE INCORPORATED 00007D SUN MICROSYSTEMS, INC. 00007E CLUSTRIX CORPORATION 00007F LINOTYPE-HELL AG 000080 CRAY COMMUNICATIONS A/S 000081 BAY NETWORKS 000082 LECTRA SYSTEMES SA 000083 TADPOLE TECHNOLOGY PLC 000084 SUPERNET 000085 CANON INC. 000086 MEGAHERTZ CORPORATION 000087 HITACHI, LTD. 000088 COMPUTER NETWORK TECH. CORP. 000089 CAYMAN SYSTEMS INC. 00008A DATAHOUSE INFORMATION SYSTEMS 00008B INFOTRON 00008C ALLOY COMPUTER PRODUCTS, INC. 00008D VERDIX CORPORATION 00008E SOLBOURNE COMPUTER, INC. 00008F RAYTHEON COMPANY 000090 MICROCOM 000091 ANRITSU CORPORATION 000092 COGENT DATA TECHNOLOGIES 000093 PROTEON INC. 000094 ASANTE TECHNOLOGIES 000095 SONY TEKTRONIX CORP. 000096 MARCONI ELECTRONICS LTD. 000097 EPOCH SYSTEMS 000098 CROSSCOMM CORPORATION 000099 MTX, INC. 00009A RC COMPUTER A/S 00009B INFORMATION INTERNATIONAL, INC 00009C ROLM MIL-SPEC COMPUTERS 00009D LOCUS COMPUTING CORPORATION 00009E MARLI S.A. 00009F AMERISTAR TECHNOLOGIES INC. 0000A0 TOKYO SANYO ELECTRIC CO. LTD. 0000A1 MARQUETTE ELECTRIC CO. 0000A2 BAY NETWORKS 0000A3 NETWORK APPLICATION TECHNOLOGY 0000A4 ACORN COMPUTERS LIMITED 0000A5 COMPATIBLE SYSTEMS CORP. 0000A6 NETWORK GENERAL CORPORATION 0000A7 NETWORK COMPUTING DEVICES INC. 0000A8 STRATUS COMPUTER INC. 0000A9 NETWORK SYSTEMS CORP. 0000AA XEROX CORPORATION 0000AB LOGIC MODELING CORPORATION 0000AC CONWARE COMPUTER CONSULTING 0000AD BRUKER INSTRUMENTS INC. 0000AE DASSAULT ELECTRONIQUE 0000AF NUCLEAR DATA INSTRUMENTATION 0000B0 RND-RAD NETWORK DEVICES 0000B1 ALPHA MICROSYSTEMS INC. 0000B2 TELEVIDEO SYSTEMS, INC. 0000B3 CIMLINC INCORPORATED 0000B4 EDIMAX COMPUTER COMPANY 0000B5 DATABILITY SOFTWARE SYS. INC. 0000B6 MICRO-MATIC RESEARCH 0000B7 DOVE COMPUTER CORPORATION 0000B8 SEIKOSHA CO., LTD. 0000B9 MCDONNELL DOUGLAS COMPUTER SYS 0000BA SIIG, INC. 0000BB TRI-DATA 0000BC ALLEN-BRADLEY CO. INC. 0000BD MITSUBISHI CABLE COMPANY 0000BE THE NTI GROUP 0000BF SYMMETRIC COMPUTER SYSTEMS 0000C0 WESTERN DIGITAL CORPORATION 0000C1 Madge Networks Ltd. 0000C2 INFORMATION PRESENTATION TECH. 0000C3 HARRIS CORP COMPUTER SYS DIV 0000C4 WATERS DIV. OF MILLIPORE 0000C5 FARALLON COMPUTING/NETOPIA 0000C6 EON SYSTEMS 0000C7 ARIX CORPORATION 0000C8 ALTOS COMPUTER SYSTEMS 0000C9 EMULEX CORPORATION 0000CA APPLITEK 0000CB COMPU-SHACK ELECTRONIC GMBH 0000CC DENSAN CO., LTD. 0000CD Centrecom Systems, Ltd. 0000CE MEGADATA CORP. 0000CF HAYES MICROCOMPUTER PRODUCTS 0000D0 DEVELCON ELECTRONICS LTD. 0000D1 ADAPTEC INCORPORATED 0000D2 SBE, INC. 0000D3 WANG LABORATORIES INC. 0000D4 PURE DATA LTD. 0000D5 MICROGNOSIS INTERNATIONAL 0000D6 PUNCH LINE HOLDING 0000D7 DARTMOUTH COLLEGE 0000D8 NOVELL, INC. 0000D9 NIPPON TELEGRAPH & TELEPHONE 0000DA ATEX 0000DB BRITISH TELECOMMUNICATIONS PLC 0000DC HAYES MICROCOMPUTER PRODUCTS 0000DD TCL INCORPORATED 0000DE CETIA 0000DF BELL & HOWELL PUB SYS DIV 0000E0 QUADRAM CORP. 0000E1 GRID SYSTEMS 0000E2 ACER TECHNOLOGIES CORP. 0000E3 INTEGRATED MICRO PRODUCTS LTD 0000E4 IN2 GROUPE INTERTECHNIQUE 0000E5 SIGMEX LTD. 0000E6 APTOR PRODUITS DE COMM INDUST 0000E7 STAR GATE TECHNOLOGIES 0000E8 ACCTON TECHNOLOGY CORP. 0000E9 ISICAD, INC. 0000EA UPNOD AB 0000EB MATSUSHITA COMM. IND. CO. LTD. 0000EC MICROPROCESS 0000ED APRIL 0000EE NETWORK DESIGNERS, LTD. 0000EF KTI 0000F0 SAMSUNG ELECTRONICS CO., LTD. 0000F1 MAGNA COMPUTER CORPORATION 0000F2 SPIDER COMMUNICATIONS 0000F3 GANDALF DATA LIMITED 0000F4 ALLIED TELESYN INTERNATIONAL 0000F5 DIAMOND SALES LIMITED 0000F6 APPLIED MICROSYSTEMS CORP. 0000F7 YOUTH KEEP ENTERPRISE CO LTD 0000F8 DIGITAL EQUIPMENT CORPORATION 0000F9 QUOTRON SYSTEMS INC. 0000FA MICROSAGE COMPUTER SYSTEMS INC 0000FB RECHNER ZUR KOMMUNIKATION 0000FC MEIKO 0000FD HIGH LEVEL HARDWARE 0000FE ANNAPOLIS MICRO SYSTEMS 0000FF CAMTEC ELECTRONICS LTD. 000100 EQUIP'TRANS 000102 3COM CORPORATION 000103 3COM CORPORATION 000104 DVICO Co., Ltd. 000105 BECKHOFF GmbH 000106 Tews Datentechnik GmbH 000107 Leiser GmbH 000108 AVLAB Technology, Inc. 000109 Nagano Japan Radio Co., Ltd. 00010A CIS TECHNOLOGY INC. 00010B Space CyberLink, Inc. 00010C System Talks Inc. 00010D CORECO, INC. 00010E Bri-Link Technologies Co., Ltd 00010F Nishan Systems, Inc. 000110 Gotham Networks 000111 iDigm Inc. 000112 Shark Multimedia Inc. 000113 OLYMPUS OPTICAL CO., LTD. 000114 KANDA TSUSHIN KOGYO CO., LTD. 000115 EXTRATECH CORPORATION 000116 Netspect Technologies, Inc. 000117 CANAL + 000118 EZ Digital Co., Ltd. 000119 Action Controls Pty. Ltd. 00011A EEH DataLink GmbH 00011B Unizone Technologies, Inc. 00011C Universal Talkware Corporation 00011D Centillium Communications 00011E Precidia Technologies, Inc. 00011F RC Networks, Inc. 000120 OSCILLOQUARTZ S.A. 000121 RapidStream Inc. 000122 Trend Communications, Ltd. 000123 DIGITAL ELECTRONICS CORP. 000124 Acer Incorporated 000125 YAESU MUSEN CO., LTD. 000126 PAC Labs 000127 The OPEN Group Limited 000128 EnjoyWeb, Inc. 000129 DFI Inc. 00012A Telematica Sistems Inteligente 00012B TELENET Co., Ltd. 00012C Aravox Technologies, Inc. 00012D Komodo Technology 00012E PC Partner Ltd. 00012F Twinhead International Corp 000130 Extreme Networks 000131 Detection Systems, Inc. 000132 Dranetz - BMI 000133 KYOWA Electronic Instruments C 000134 SIG Positec Systems AG 000135 KDC Corp. 000136 CyberTAN Technology, Inc. 000137 IT Farm Corporation 000138 XAVi Technologies Corp. 000139 Point Multimedia Systems 00013A SHELCAD COMMUNICATIONS, LTD. 00013B BNA SYSTEMS 00013C TIW SYSTEMS 00013D RiscStation Ltd. 00013E Ascom Tateco AB 00013F Neighbor World Co., Ltd. 000140 Sendtek Corporation 000141 CABLE PRINT 000142 Cisco Systems, Inc. 000143 Cisco Systems, Inc. 000144 Cereva Networks, Inc. 000145 WINSYSTEMS, INC. 000146 Tesco Controls, Inc. 000147 Zhone Technologies 000148 X-traWeb Inc. 000149 T.D.T. Transfer Data Test GmbH 00014A SONY COMPUTER SCIENCE LABS., I 00014B Ennovate Networks, Inc. 00014C Berkeley Process Control 00014D Shin Kin Enterprises Co., Ltd 00014E WIN Enterprises, Inc. 00014F LUMINOUS Networks, Inc. 000150 GILAT COMMUNICATIONS, LTD. 000151 Ensemble Communications 000152 CHROMATEK INC. 000153 ARCHTEK TELECOM CORPORATION 000154 G3M Corporation 000155 Promise Technology, Inc. 000156 FIREWIREDIRECT.COM, INC. 000157 SYSWAVE CO., LTD 000158 Electro Industries/Gauge Tech 000159 S1 Corporation 00015A Digital Video Broadcasting 00015B ITALTEL S.p.A/RF-UP-I 00015C CADANT INC. 00015D Pirus Networks 00015E BEST TECHNOLOGY CO., LTD. 00015F DIGITAL DESIGN GmbH 000160 ELMEX Co., LTD. 000161 Meta Machine Technology 000162 Cygnet Technologies, Inc. 000163 Cisco Systems, Inc. 000164 Cisco Systems, Inc. 000165 AirSwitch Corporation 000166 TC GROUP A/S 000167 HIOKI E.E. CORPORATION 000168 VITANA CORPORATION 000169 Celestix Networks Pte Ltd. 00016A ALITEC 00016B LightChip, Inc. 00016C FOXCONN 00016D Triton Network Systems 00016E Conklin Corporation 00016F HAITAI ELECTRONICS CO., LTD. 000170 ESE Embedded System Engineer'g 000171 Allied Data Technologies 000172 TechnoLand Co., LTD. 000173 JNI Corporation 000174 CyberOptics Corporation 000175 Radiant Communications Corp. 000176 Orient Silver Enterprises 000177 EDSL 000178 MARGI Systems, Inc. 000179 WIRELESS TECHNOLOGY, INC. 00017A Chengdu Maipu Electric Industrial Co., Ltd. 00017B Heidelberger Druckmaschinen AG 00017C AG-E GmbH 00017D ThermoQuest 00017E ADTEK System Science Co., Ltd. 00017F Experience Music Project 000180 AOpen, Inc. 000181 Nortel Networks 000182 DICA TECHNOLOGIES AG 000183 ANITE TELECOMS 000184 SIEB & MEYER AG 000185 Aloka Co., Ltd. 000186 DISCH GmbH 000187 i2SE GmbH 000188 LXCO Technologies ag 000189 Refraction Technology, Inc. 00018A ROI COMPUTER AG 00018B NetLinks Co., Ltd. 00018C Mega Vision 00018D AudeSi Technologies 00018E Logitec Corporation 00018F Kenetec, Inc. 000190 SMK-M 000191 SYRED Data Systems 000192 Texas Digital Systems 000193 Hanbyul Telecom Co., Ltd. 000194 Capital Equipment Corporation 000195 Sena Technologies, Inc. 000196 Cisco Systems, Inc. 000197 Cisco Systems, Inc. 000198 Darim Vision 000199 HeiSei Electronics 00019A LEUNIG GmbH 00019B Kyoto Microcomputer Co., Ltd. 00019C JDS Uniphase Inc. 00019D E-Control Systems, Inc. 00019E ESS Technology, Inc. 00019F Phonex Broadband 0001A0 Infinilink Corporation 0001A1 Mag-Tek, Inc. 0001A2 Logical Co., Ltd. 0001A3 GENESYS LOGIC, INC. 0001A4 Microlink Corporation 0001A5 Nextcomm, Inc. 0001A6 Scientific-Atlanta Arcodan A/S 0001A7 UNEX TECHNOLOGY CORPORATION 0001A8 Welltech Computer Co., Ltd. 0001A9 BMW AG 0001AA Airspan Communications, Ltd. 0001AB Main Street Networks 0001AC Sitara Networks, Inc. 0001AD Coach Master International d.b.a. CMI Worldwide, Inc. 0001AE Trex Enterprises 0001AF Motorola Computer Group 0001B0 Fulltek Technology Co., Ltd. 0001B1 General Bandwidth 0001B2 Digital Processing Systems, Inc. 0001B3 Precision Electronic Manufacturing 0001B4 Wayport, Inc. 0001B5 Turin Networks, Inc. 0001B6 SAEJIN T&M Co., Ltd. 0001B7 Centos, Inc. 0001B8 Netsensity, Inc. 0001B9 SKF Condition Monitoring 0001BA IC-Net, Inc. 0001BB Frequentis 0001BC Brains Corporation 0001BD Peterson Electro-Musical Products, Inc. 0001BE Gigalink Co., Ltd. 0001BF Teleforce Co., Ltd. 0001C0 CompuLab, Ltd. 0001C1 Exbit Technology 0001C2 ARK Research Corp. 0001C3 Acromag, Inc. 0001C4 NeoWave, Inc. 0001C5 Simpler Networks 0001C6 Quarry Technologies 0001C7 Cisco Systems, Inc. 0001C8 THOMAS CONRAD CORP. 0001C8 CONRAD CORP. 0001C9 Cisco Systems, Inc. 0001CA Geocast Network Systems, Inc. 0001CB NetGame, Ltd. 0001CC Japan Total Design Communication Co., Ltd. 0001CD ARtem 0001CE Custom Micro Products, Ltd. 0001CF Alpha Data Parallel Systems, Ltd. 0001D0 VitalPoint, Inc. 0001D1 CoNet Communications, Inc. 0001D2 MacPower Peripherals, Ltd. 0001D3 PAXCOMM, Inc. 0001D4 Leisure Time, Inc. 0001D5 HAEDONG INFO & COMM CO., LTD 0001D6 MAN Roland Druckmaschinen AG 0001D7 F5 Networks, Inc. 0001D8 Teltronics, Inc. 0001D9 Sigma, Inc. 0001DA WINCOMM Corporation 0001DB Freecom Technologies GmbH 0001DC Activetelco 0001DD Avail Networks 0001DE Trango Systems, Inc. 0001DF ISDN Communications, Ltd. 0001E0 Fast Systems, Inc. 0001E1 Kinpo Electronics, Inc. 0001E2 Ando Electric Corporation 0001E3 Siemens AG 0001E4 Sitera, Inc. 0001E5 Supernet, Inc. 0001E6 Hewlett-Packard Company 0001E7 Hewlett-Packard Company 0001E8 Force10 Networks, Inc. 0001E9 Litton Marine Systems B.V. 0001EA Cirilium Corp. 0001EB C-COM Corporation 0001EC Ericsson Group 0001ED SETA Corp. 0001EE Comtrol Europe, Ltd. 0001EF Camtel Technology Corp. 0001F0 Tridium, Inc. 0001F1 Innovative Concepts, Inc. 0001F3 QPS, Inc. 0001F4 Enterasys Networks 0001F5 ERIM S.A. 0001F6 Association of Musical Electronics Industry 0001F7 Image Display Systems, Inc. 0001F8 Adherent Systems, Ltd. 0001F9 TeraGlobal Communications Corp. 0001FA HOROSCAS 0001FB DoTop Technology, Inc. 0001FC Keyence Corporation 0001FD Digital Voice Systems, Inc. 0001FE DIGITAL EQUIPMENT CORPORATION 0001FF Data Direct Networks, Inc. 000200 Net & Sys Co., Ltd. 000201 IFM Electronic gmbh 000202 Amino Communications, Ltd. 000203 Woonsang Telecom, Inc. 000204 Bodmann Industries Elektronik GmbH 000205 Hitachi Denshi, Ltd. 000206 Telital R&D Denmark A/S 000208 Unify Networks, Inc. 000209 Shenzhen SED Information Technology Co., Ltd. 00020A Gefran Spa 00020B Native Networks, Inc. 00020C Metro-Optix 00020D Micronpc.com 00020E Laurel Networks, Inc. 00020F AATR 000210 Fenecom 000211 Nature Worldwide Technology Corp. 000212 SierraCom 000213 S.D.E.L. 000214 DTVRO 000215 Cotas Computer Technology A/B 000216 Cisco Systems, Inc. 000217 Cisco Systems, Inc. 000218 Advanced Scientific Corp 000219 Paralon Technologies 00021A Zuma Networks 00021B Kollmorgen-Servotronix 00021C Network Elements, Inc. 00021D Data General Communication Ltd. 00021E SIMTEL S.R.L. 00021F Aculab PLC 000220 Canon Aptex, Inc. 000221 DSP Application, Ltd. 000222 Chromisys, Inc. 000223 ClickTV 000224 Lantern Communications, Inc. 000225 Certus Technology, Inc. 000226 XESystems, Inc. 000227 ESD GmbH 000228 Necsom, Ltd. 000229 Adtec Corporation 00022A Asound Electronic 00022B Tamura Electric Works, Ltd. 00022C ABB Bomem, Inc. 00022D Agere Systems 00022E TEAC Corp. R& D 00022F P-Cube, Ltd. 000230 Intersoft Electronics 000231 Ingersoll-Rand 000232 Avision, Inc. 000233 Mantra Communications, Inc. 000234 Imperial Technology, Inc. 000235 Paragon Networks International 000236 INIT GmbH 000237 Cosmo Research Corp. 000238 Serome Technology, Inc. 000239 Visicom 00023A ZSK Stickmaschinen GmbH 00023B Redback Networks 00023C Creative Technology, Ltd. 00023D NuSpeed, Inc. 00023E Selta Telematica S.p.a 00023F Compal Electronics, Inc. 000240 Seedek Co., Ltd. 000241 Amer.com 000242 Videoframe Systems 000243 Raysis Co., Ltd. 000244 SURECOM Technology Co. 000245 Lampus Co, Ltd. 000246 All-Win Tech Co., Ltd. 000247 Great Dragon Information Technology (Group) Co., Ltd. 000248 Pila GmbH & Co. 000249 Aviv Infocom Co, Ltd. 00024A Cisco Systems, Inc. 00024B Cisco Systems, Inc. 00024C SiByte, Inc. 00024D Mannesman Dematic Colby Pty. Ltd. 00024E Datacard Group 00024F IPM Datacom S.R.L. 000250 Geyser Networks, Inc. 000251 Soma Networks 000252 Carrier Corporation 000253 Televideo, Inc. 000254 WorldGate 000255 IBM Corporation 000256 Alpha Processor, Inc. 000257 Microcom Corp. 000258 Flying Packets Communications 000259 Tsann Kuen China (Shanghai)Enterprise Co., Ltd. IT Group 00025A Catena Networks 00025B Cambridge Silicon Radio 00025C SCI Systems (Kunshan) Co., Ltd. 00025E High Technology Ltd 00025F Nortel Networks 000260 Accordion Networks, Inc. 000261 i3 Micro Technology AB 000262 Soyo Group Soyo Com Tech Co., Ltd 000263 UPS Manufacturing SRL 000264 AudioRamp.com 000265 Virditech Co. Ltd. 000266 Thermalogic Corporation 000267 NODE RUNNER, INC. 000268 Harris Government Communications 000269 Nadatel Co., Ltd 00026A Cocess Telecom Co., Ltd. 00026B BCM Computers Co., Ltd. 00026C Philips CFT 00026D Adept Telecom 00026E NeGeN Access, Inc. 00026F Senao International Co., Ltd. 000270 Crewave Co., Ltd. 000271 Vpacket Communications 000272 CC&C Technologies, Inc. 000273 Coriolis Networks 000274 Tommy Technologies Corp. 000275 SMART Technologies, Inc. 000276 Primax Electronics Ltd. 000277 Cash Systemes Industrie 000278 Samsung Electro-Mechanics Co., Ltd. 000279 Control Applications, Ltd. 00027A IOI Technology Corporation 00027B Amplify Net, Inc. 00027C Trilithic, Inc. 00027D Cisco Systems, Inc. 00027E Cisco Systems, Inc. 00027F ask-technologies.com 000280 Mu Net, Inc. 000281 Red-M (Communications) Ltd. 000282 ViaClix, Inc. 000283 Spectrum Controls, Inc. 000284 Alstom T&D P&C 000285 Riverstone Networks 000286 Occam Networks 000287 Adapcom 000288 GLOBAL VILLAGE COMMUNICATION 000289 DNE Technologies 00028A Ambit Microsystems Corporation 00028B VDSL Systems OY 00028C Micrel-Synergy Semiconductor 00028D Movita Technologies, Inc. 00028E Rapid 5 Networks, Inc. 00028F Globetek, Inc. 000290 Woorigisool, Inc. 000291 Open Network Co., Ltd. 000292 Logic Innovations, Inc. 000293 Solid Data Systems 000294 Tokyo Sokushin Co., Ltd. 000295 IP.Access Limited 000296 Lectron Co,. Ltd. 000297 C-COR.net 000298 Broadframe Corporation 000299 Apex, Inc. 00029A Storage Apps 00029B Kreatel Communications AB 00029D Merix Corp. 00029E Information Equipment Co., Ltd. 00029F L-3 Communication Aviation Recorders 0002A0 Flatstack Ltd. 0002A1 World Wide Packets 0002A2 Hilscher GmbH 0002A3 ABB Power Automation 0002A4 AddPac Technology Co., Ltd. 0002A5 Compaq Computer Corporation 0002A6 Effinet Systems Co., Ltd. 0002A7 Vivace Networks 0002A8 Air Link Technology 0002A9 RACOM, s.r.o. 0002AA PLcom Co., Ltd. 0002AB CTC Union Technologies Co., Ltd. 0002AC 3PAR data 0002AD Asahi Optical Co., Ltd. 0002AE Scannex Electronics Ltd. 0002AF TeleCruz Technology, Inc. 0002B0 Hokubu Communication & Industrial Co., Ltd. 0002B1 Anritsu, Ltd. 0002B2 Cablevision 0002B3 Intel Corporation 0002B4 DAPHNE 0002B5 Avnet, Inc. 0002B6 Acrosser Technology Co., Ltd. 0002B7 Watanabe Electric Industry Co., Ltd. 0002B8 WHI KONSULT AB 0002B9 Cisco Systems, Inc. 0002BA Cisco Systems, Inc. 0002BB Continuous Computing 0002BC LVL 7 Systems, Inc. 0002BD Bionet Co., Ltd. 0002BE Totsu Engineering, Inc. 0002BF dotRocket, Inc. 0002C0 Bencent Tzeng Industry Co., Ltd. 0002C1 Innovative Electronic Designs, Inc. 0002C2 Net Vision Telecom 0002C3 Arelnet Ltd. 0002C4 Vector International BUBA 0002C5 Evertz Microsystems Ltd. 0002C6 Data Track Technology PLC 0002C7 ALPS ELECTRIC Co., Ltd. 0002C8 Technocom Communications Technology (pte) Ltd 0002C9 Mellanox Technologies 0002CA EndPoints, Inc. 0002CB TriState Ltd. 0002CC M.C.C.I 0002CD TeleDream, Inc. 0002CE FoxJet, Inc. 0002CF ZyGate Communications, Inc. 0002D0 Comdial Corporation 0002D1 Vivotek, Inc. 0002D2 Workstation AG 0002D3 NetBotz, Inc. 0002D4 PDA Peripherals, Inc. 0002D5 ACR 0002D6 NICE Systems 0002D7 EMPEG Ltd 0002D8 BRECIS Communications Corporation 0002D9 Reliable Controls 0002DA ExiO Communications, Inc. 0002DB NETSEC 0002DC Fujitsu General Limited 0002DD Bromax Communications, Ltd. 0002DE Astrodesign, Inc. 0002DF Net Com Systems, Inc. 0002E0 ETAS GmbH 0002E1 Integrated Network Corporation 0002E2 NDC Infared Engineering 0002E3 LITE-ON Communications, Inc. 0002E4 JC HYUN Systems, Inc. 0002E5 Timeware Ltd. 0002E6 Gould Instrument Systems, Inc. 0002E7 CAB GmbH & Co KG 0002E8 E.D.&A. 0002E9 CS Systemes De Securite - C3S 0002EA Videonics, Inc. 0002EB Easent Communications 0002EC Maschoff Design Engineering 0002ED DXO Telecom Co., Ltd. 0002EE Nokia Danmark A/S 0002EF CCC Network Systems Group Ltd. 0002F0 AME Optimedia Technology Co., Ltd. 0002F1 Pinetron Co., Ltd. 0002F2 eDevice, Inc. 0002F3 Media Serve Co., Ltd. 0002F4 PCTEL, Inc. 0002F5 VIVE Synergies, Inc. 0002F6 Equipe Communications 0002F7 ARM 0002F8 SEAKR Engineering, Inc. 0002F9 Mimos Semiconductor SDN BHD 0002FA DX Antenna Co., Ltd. 0002FB Baumuller Aulugen-Systemtechnik GmbH 0002FC Cisco Systems, Inc. 0002FD Cisco Systems, Inc. 0002FE Viditec, Inc. 0002FF Handan Broad InfoCom 000300 NetContinuum, Inc. 000301 Avantas Networks Corporation 000302 Oasys Telecom, Inc. 000303 JAMA Electronics Co., Ltd. 000304 Pacific Broadband Communications 000305 Smart Network Devices GmbH 000306 Fusion In Tech Co., Ltd. 000307 Secure Works, Inc. 000308 AM Communications, Inc. 000309 Texcel Technology PLC 00030A Argus Technologies 00030B Hunter Technology, Inc. 00030C Telesoft Technologies Ltd. 00030D Uniwill Computer Corp. 00030E Core Communications Co., Ltd. 00030F Legend Digital China Ltd. 000310 Link Evolution Corp. 000311 Micro Technology Co., Ltd. 000312 TR-Systemtechnik GmbH 000313 Access Media SPA 000314 Teleware Network Systems 000315 Cidco Incorporated 000316 Nobell Communications, Inc. 000317 Merlin Systems, Inc. 000318 Cyras Systems, Inc. 000319 Infineon AG 00031A Beijing Broad Telecom Ltd., China 00031B Cellvision Systems, Inc. 00031C Svenska Hardvarufabriken AB 00031D Taiwan Commate Computer, Inc. 00031E Optranet, Inc. 00031F Condev Ltd. 000320 Xpeed, Inc. 000321 Reco Research Co., Ltd. 000322 IDIS Co., Ltd. 000323 Cornet Technology, Inc. 000324 Tottori SANYO Electric Co., Ltd. 000325 Arima Computer Corp. 000326 Iwasaki Information Systems Co., Ltd. 000327 ACT'L 000328 Mace Group, Inc. 000329 F3, Inc. 00032A UniData Communication Systems, Inc. 00032B GAI Datenfunksysteme GmbH 00032C ABB Industrie AG 00032D IBASE Technology, Inc. 00032E Scope Information Management, Ltd. 00032F Global Sun Technology, Inc. 000330 Imagenics, Co., Ltd. 000331 Cisco Systems, Inc. 000332 Cisco Systems, Inc. 000333 Digitel Co., Ltd. 000334 Newport Electronics 000335 Mirae Technology 000336 Zetes Technologies 000337 Vaone, Inc. 000338 Oak Technology 000339 Eurologic Systems, Ltd. 00033A Silicon Wave, Inc. 00033B TAMI Tech Co., Ltd. 00033C Daiden Co., Ltd. 00033D ILSHin Lab 00033E Tateyama System Laboratory Co., Ltd. 00033F BigBand Networks, Ltd. 000340 Floware Wireless Systems, Ltd. 000341 Axon Digital Design 000342 Nortel Networks 000343 Martin Professional A/S 000344 Tietech.Co., Ltd. 000345 Routrek Networks Corporation 000346 Hitachi Kokusai Electric, Inc. 000347 Intel Corporation 000348 Norscan Instruments, Ltd. 000349 Vidicode Datacommunicatie B.V. 00034A RIAS Corporation 00034B Nortel Networks 00034C Shanghai DigiVision Technology Co., Ltd. 00034D Chiaro Networks, Ltd. 00034E Pos Data Company, Ltd. 00034F Sur-Gard Security 000350 BTICINO SPA 000351 Diebold, Inc. 000352 Colubris Networks 000353 Mitac, Inc. 000354 Fiber Logic Communications 000355 TeraBeam Internet Systems 000356 Wincor Nixdorf GmbH & Co KG 000357 Intervoice-Brite, Inc. 000358 iCable System Co., Ltd. 000359 DigitalSis 00035A Phototron Limited 00035B BridgeWave Communications 00035C Saint Song Corp. 00035D Bosung Hi-Net Co., Ltd. 00035E Metropolitan Area Networks, Inc. 00035F Schuehle Mess - und. Kontrollsysteme 000360 PAC Interactive Technology, Inc. 000361 Widcomm, Inc. 000362 Vodtel Communications, Inc. 000363 Miraesys Co., Ltd. 000364 Scenix Semiconductor, Inc. 000365 Kira Information & Communications, Ltd. 000366 ASM Pacific Technology 000367 Jasmine Networks, Inc. 000368 Embedone Co., Ltd. 000369 Nippon Antenna Co., Ltd. 00036A Mainnet, Ltd. 00036B Cisco Systems, Inc. 00036C Cisco Systems, Inc. 00036D Runtop, Inc. 00036E Nicon Systems (Pty) Limited 00036F Telsey SPA 000370 NXTV, Inc. 000371 Acomz Networks Corp. 000372 ULAN 000373 Aselsan A.S 000374 Hunter Watertech 000375 NetMedia, Inc. 000376 Graphtec Technology, Inc. 000377 Gigabit Wireless 000378 HUMAX Co., Ltd. 000379 Proscend Communications, Inc. 00037A Taiyo Yuden Co., Ltd. 00037B IDEC IZUMI Corporation 00037C Coax Media 00037D Stellcom 00037E PORTech Communications, Inc. 00037F Atheros Communications, Inc. 000381 Ingenico International 000382 A-One Co., Ltd. 000383 Metera Networks, Inc. 000384 AETA 000385 Actelis Networks, Inc. 000386 Ho Net, Inc. 000387 Blaze Network Products 000388 Fastfame Technology Co., Ltd. 000389 Plantronics 00038A America Online, Inc. 00038B PLUS-ONE I&T, Inc. 00038C Total Impact 00038D PCS Revenue Control Systems, Inc. 00038E Atoga Systems, Inc. 00038F Weinschel Corporation 000390 Digital Video Communications, Inc. 000392 Hyundai Teletek Co., Ltd. 000393 Apple Computer, Inc. 000394 Connect One 000395 California Amplifier 000396 EZ Cast Co., Ltd. 000397 Watchfront Electronics 000398 WISI 000399 Dongju Informations & Communications Co., Ltd. 00039A nSine, Ltd. 00039B NetChip Technology, Inc. 00039C OptiMight Communications, Inc. 00039D Acer Communications & Multimedia, Inc. 00039E Tera System Co., Ltd. 00039F Cisco Systems, Inc. 0003A0 Cisco Systems, Inc. 0003A1 HIPER Information & Communication, Inc. 0003A2 Catapult Communications 0003A3 MAVIX, Ltd. 0003A4 Data Storage and Information Management 0003A5 Medea Corporation 0003A7 Unixtar Technology, Inc. 0003A8 IDOT Computers, Inc. 0003A9 AXCENT Media AG 0003AA Watlow 0003AB Bridge Information Systems 0003AC Fronius Schweissmaschinen 0003AD Emerson Energy Systems AB 0003AE Allied Advanced Manufacturing Pte, Ltd. 0003AF Paragea Communications 0003B0 Xsense Technology Corp. 0003B1 Abbott Laboratories HPD 0003B2 Radware 0003B3 IA Link Systems Co., Ltd. 0003B4 Macrotek International Corp. 0003B5 Entra Technology Co. 0003B6 QSI Corporation 0003B7 ZACCESS Systems 0003B8 NetKit Solutions, LLC 0003B9 Hualong Telecom Co., Ltd. 0003BA Sun Microsystems 0003BB Signal Communications Limited 0003BC COT GmbH 0003BD OmniCluster Technologies, Inc. 0003BE Netility 0003BF Centerpoint Broadband Technologies, Inc. 0003C0 RFTNC Co., Ltd. 0003C1 Packet Dynamics Ltd 0003C2 Solphone K.K. 0003C3 Micronik Multimedia 0003C4 Tomra Systems ASA 0003C5 Mobotix AG 0003C6 ICUE Systems, Inc. 0003C7 hopf Elektronik GmbH 0003C8 CML Emergency Services 0003C9 TECOM Co., Ltd. 0003CA MTS Systems Corp. 0003CB Nippon Systems Development Co., Ltd. 0003CC Momentum Computer, Inc. 0003CD Clovertech, Inc. 0003CE ETEN Technologies, Inc. 0003CF Muxcom, Inc. 0003D0 KOANKEISO Co., Ltd. 0003D1 Takaya Corporation 0003D2 Crossbeam Systems, Inc. 0003D3 Internet Energy Systems, Inc. 0003D4 Alloptic, Inc. 0003D5 Advanced Communications Co., Ltd. 0003D6 RADVision, Ltd. 0003D7 NextNet Wireless, Inc. 0003D8 iMPath Networks, Inc. 0003D9 Secheron SA 0003DA Takamisawa Cybernetics Co., Ltd. 0003DB Apogee Electronics Corp. 0003DC Lexar Media, Inc. 0003DD Comark Corp. 0003DE OTC Wireless 0003DF Desana Systems 0003E0 RadioFrame Networks, Inc. 0003E1 Winmate Communication, Inc. 0003E2 Comspace Corporation 0003E3 Cisco Systems, Inc. 0003E4 Cisco Systems, Inc. 0003E5 Hermstedt SG 0003E6 Entone Technologies, Inc. 0003E7 Logostek Co. Ltd. 0003E8 Wavelength Digital Limited 0003E9 Akara Canada, Inc. 0003EA Mega System Technologies, Inc. 0003EB Atrica 0003EC ICG Research, Inc. 0003ED Shinkawa Electric Co., Ltd. 0003EE MKNet Corporation 0003EF Oneline AG 0003F0 Redfern Broadband Networks 0003F1 Cicada Semiconductor, Inc. 0003F2 Seneca Networks 0003F3 Dazzle Multimedia, Inc. 0003F4 NetBurner 0003F5 Chip2Chip 0003F6 Allegro Networks, Inc. 0003F7 Plast-Control GmbH 0003F8 SanCastle Technologies, Inc. 0003F9 Pleiades Communications, Inc. 0003FA TiMetra Networks 0003FB Toko Seiki Company, Ltd. 0003FC Intertex Data AB 0003FD Cisco Systems, Inc. 0003FE Cisco Systems, Inc. 0003FF Connectix 000400 LEXMARK INTERNATIONAL, INC. 000401 Osaki Electric Co., Ltd. 000402 Nexsan Technologies, Ltd. 000403 Nexsi Corporation 000404 Makino Milling Machine Co., Ltd. 000405 ACN Technologies 000406 Fa. Metabox AG 000407 Topcon Positioning Systems, Inc. 000408 Sanko Electronics Co., Ltd. 000409 Cratos Networks 00040A Sage Systems 00040B 3com Europe Ltd. 00040C KANNO Work's Ltd. 00040D Avaya, Inc. 00040E AVM GmbH 00040F Asus Network Technologies, Inc. 000410 Spinnaker Networks, Inc. 000411 Inkra Networks, Inc. 000412 WaveSmith Networks, Inc. 000413 SNOM Technology AG 000414 Umezawa Musen Denki Co., Ltd. 000415 Rasteme Systems Co., Ltd. 000416 Parks S/A Comunicacoes Digitais 000417 ELAU AG 000418 Teltronic S.A.U. 000419 Fibercycle Networks, Inc. 00041A ines GmbH 00041B Digital Interfaces Ltd. 00041C ipDialog, Inc. 00041D Corega of America 00041E Shikoku Instrumentation Co., Ltd. 00041F Sony Computer Entertainment, Inc. 000420 Slim Devices, Inc. 000421 Ocular Networks 000422 Gordon Kapes, Inc. 000423 Intel Corporation 000424 TMC s.r.l. 000425 Atmel Corporation 000426 Autosys 000427 Cisco Systems, Inc. 000428 Cisco Systems, Inc. 000429 Pixord Corporation 00042A Wireless Networks, Inc. 00042B IT Access Co., Ltd. 00042C Minet, Inc. 00042D Sarian Systems, Ltd. 00042E Netous Technologies, Ltd. 00042F International Communications Products, Inc. 000430 Netgem 000431 Play Industries 000432 Voyetra Turtle Beach, Inc. 000433 Cyberboard A/S 000434 Accelent Systems, Inc. 000435 Comptek International, Inc. 000436 ELANsat Technologies, Inc. 000437 Powin Information Technology, Inc. 000438 Nortel Networks 000439 Rosco Entertainment Technology, Inc. 00043A Intelligent Telecommunications, Inc. 00043B Lava Computer Mfg., Inc. 00043C SONOS Co., Ltd. 00043D INDEL AG 00043E Telencomm 00043F Electronic Systems Technology, Inc. 000440 cyberPIXIE, Inc. 000441 Half Dome Systems, Inc. 000442 NACT 000443 Agilent Technologies, Inc. 000444 Wireless Home 000445 LMS Skalar Instruments GmbH 000446 CYZENTECH Co., Ltd. 000447 Acrowave Systems Co., Ltd. 000448 Polaroid Professional Imaging 000449 Mapletree Networks 00044A iPolicy Networks, Inc. 00044B NVIDIA 00044C JENOPTIK 00044D Cisco Systems, Inc. 00044E Cisco Systems, Inc. 00044F Leukhardt Systemelektronik GmbH 000450 DMD Computers SRL 000451 Medrad, Inc. 000452 RocketLogix, Inc. 000453 Yotta Yotta, Inc. 000454 Quadriga UK 000455 ANTARA.net 000456 PipingHot Networks 000457 Universal Access Technology, Inc. 000458 Fusion X Co., Ltd. 000459 Veristar Corporation 00045A The Linksys Group, Inc. 00045B Techsan Electronics Co., Ltd. 00045C Mobiwave Pte Ltd 00045D BEKA Elektronik 00045E Poly Trax Information Technology AG 00045F Evalue Technology, Inc. 000460 Knilink Technology, Inc. 000461 EPOX Computer Co., Ltd. 000462 DAKOS Data & Communication Co., Ltd. 000463 Philips Communication Security & Imaging 000464 Fantasma Networks, Inc. 000465 ist isdn support tecknik GmbH 000466 ARMITEL Co. 000467 Wuhan Research Institute 000468 Vivity, Inc. 000469 Innocom, Inc. 00046A Navini Networks 00046B Palm Wireless, Inc. 00046C Cyber Technology Co., Ltd. 00046D Cisco Systems, Inc. 00046E Cisco Systems, Inc. 00046F Digitel S/A Industria Eletronica 000470 ipUnplugged AB 000471 IPrad 000472 Telelynx, Inc. 000473 Photonex Corporation 000474 LEGRAND 000475 3 Com Corporation 000476 3 Com Corporation 000477 e-Appliance Corp. 000478 G. Star Technology Corporation 000479 Radius Co., Ltd. 00047A AXXESSIT ASA 00047B Schlumberger 00047C Skidata AG 00047D Pelco 00047E NKF Electronics 00047F Chr. Mayr GmbH & Co. KG 000480 Foundry Networks, Inc. 000481 Econolite Control Products, Inc. 000482 MediaLogic Corp. 000483 Deltron Technology, Inc. 000484 Amann GmbH 000485 PicoLight 000486 ITTC, University of Kansas 000487 Cogency Semiconductor, Inc. 000488 Eurotherm Action Incorporated. 000489 YAFO Networks, Inc. 00048A Temia Vertriebs GmbH 00048B Poscon Corporation 00048C Nayna Networks, Inc. 00048D Tone Commander Systems, Inc. 00048E Ohm Tech Labs, Inc. 00048F TD Systems Corp. 000490 Optical Access 000491 Technovision, Inc. 000492 Hive Internet, Ltd. 000493 Tsinghua Unisplendour Co., Ltd. 000494 Breezecom, Ltd. 000495 Tejas Networks 000496 Extreme Networks 000497 MacroSystem Digital Video AG 000499 Chino Corporation 00049A Cisco Systems, Inc. 00049B Cisco Systems, Inc. 00049C Surgient Networks, Inc. 00049D Ipanema Technologies 00049E Wirelink Co., Ltd. 00049F Metrowerks 0004A0 Verity Instruments, Inc. 0004A1 Pathway Connectivity 0004A2 L.S.I. Japan Co., Ltd. 0004A3 Microchip Technology, Inc. 0004A4 NetEnabled, Inc. 0004A5 Barco Projection Systems NV 0004A6 SAF Tehnika Ltd. 0004A7 FabiaTech Corporation 0004A8 Broadmax Technologies, Inc. 0004A9 SandStream Technologies, Inc. 0004AA Jetstream Communications 0004AB Comverse Network Systems, Inc. 0004AC IBM CORP. 0004AD Malibu Networks 0004AE Liquid Metronics 0004AF Digital Fountain, Inc. 0004B0 ELESIGN Co., Ltd. 0004B1 Signal Technology, Inc. 0004B2 ESSEGI SRL 0004B3 Videotek, Inc. 0004B4 CIAC 0004B5 Equitrac Corporation 0004B6 Tellumat (Pty) Ltd. 0004B7 AMB i.t. Holding 0004B8 Kumahira Co., Ltd. 0004B9 S.I. Soubou, Inc. 0004BA KDD Media Will Corporation 0004BB Bardac Corporation 0004BC Giantec, Inc. 0004BD Motorola BCS 0004BE OptXCon, Inc. 0004BF Versa Logic Corp. 0004C0 Cisco Systems, Inc. 0004C1 Cisco Systems, Inc. 0004C2 Magnipix, Inc. 0004C3 CASTOR Informatique 0004C4 Allen & Health 0004C5 ASE Technologies, USA 0004C6 Yamaha Motor Co., Ltd. 0004C7 NetMount 0004C8 LIBA Maschinefabrik GmbH 0004C9 Micro Electron Co., Ltd. 0004CA FreeMs Corp. 0004CB Tdsoft Communication, Ltd. 0004CC Peek Traffic BV. 0004CD Informedia Research Group 0004CE Patria Ailon 0004CF Seagate Technology 0004D0 Softlink s.r.o. 0004D1 Drew Technologies, Inc. 0004D2 Adcon Telemetry AG 0004D3 Toyokeiki Co., Ltd. 0004D4 Proview Electronics Co., Ltd. 0004D5 Hitachi Communication Systems, Inc. 0004D6 Takagi Industrial Co., Ltd. 0004D7 Omitec Instrumentation Ltd. 0004D8 IPWireless, Inc. 0004D9 Titan Electronics, Inc. 0004DA Relax Technology, Inc. 0004DB Tellus Group Corp. 0004DC Nortel Networks 0004DD Cisco Systems, Inc. 0004DE Cisco Systems, Inc. 0004DF Teracom Telematica Ltda. 0004E0 Procket Networks 0004E1 Infinior Microsystems 0004E2 SMC Networks, Inc. 0004E3 Accton Technology Corp. 0004E4 Daeryung Ind., Inc. 0004E5 Glonet Systems, Inc. 0004E6 Banyan Network Private Limited 0004E7 Lightpointe Communications, Inc 0004E8 IER, Inc. 0004E9 Infiniswitch Corporation 0004EA Hewlett-Packard Company 0004EB Paxonet Communications, Inc. 0004EC Memobox SA 0004ED Billion Electric Co., Ltd. 0004EE Lincoln Electric Company 0004EF Polestar Corp. 0004F0 International Computers, Ltd 0004F1 WhereNet 0004F2 Circa Communications, Ltd. 0004F3 FS FORTH-SYSTEME GmbH 0004F4 Infinite Electronics Inc. 0004F5 SnowShore Networks, Inc. 0004F6 Amphus 0004F7 Omega Band, Inc. 0004F8 QUALICABLE TV Industria E Com., Ltda 0004F9 Xtera Communications, Inc. 0004FA MIST Inc. 0004FB Commtech, Inc. 0004FC Stratus Computer (DE), Inc. 0004FD Japan Control Engineering Co., Ltd. 0004FE Pelago Networks 0004FF Acronet Co., Ltd. 000500 Cisco Systems, Inc. 000501 Cisco Systems, Inc. 000502 APPLE COMPUTER 000503 ICONAG 000504 Naray Information & Communication Enterprise 000505 Systems Integration Solutions, Inc. 000506 Reddo Networks AB 000507 Fine Appliance Corp. 000508 Inetcam, Inc. 000509 AVOC Nishimura Ltd. 00050A ICS Spa 00050B SICOM Systems, Inc. 00050C Network Photonics, Inc. 00050D Midstream Technologies, Inc. 00050E 3ware, Inc. 00050F Tanaka S/S Ltd. 000510 Infinite Shanghai Communication Terminals Ltd. 000511 Complementaty Technologies Ltd 000512 MeshNetworks, Inc. 000513 VTLinx Multimedia Systems, Inc. 000514 KDT Systems Co., Ltd. 000515 Nuark Co., Ltd. 000516 SMART Modular Technologies 000517 Shellcomm, Inc. 000518 Jupiters Technology 000519 Siemens Building Technologies AG, 00051A 3Com Europe Ltd. 00051B Magic Control Technology Corporation 00051C Xnet Technology Corp. 00051D Airocon, Inc. 00051E Rhapsody Networks 00051F Taijin Media Co., Ltd. 000520 Smartronix, Inc. 000521 Control Microsystems 000522 LEA*D Corporation, Inc. 000523 AVL List GmbH 000524 BTL System (HK) Limited 000525 Puretek Industrial Co., Ltd. 000526 IPAS GmbH 000527 SJ Tek Co. Ltd 000528 New Focus, Inc. 000529 Shanghai Broadan Communication Technology Co., Ltd 00052A Ikegami Tsushinki Co., Ltd. 00052B HORIBA, Ltd. 00052C Supreme Magic Corporation 00052D Zoltrix International Limited 00052E Cinta Networks 00052F Leviton Voice and Data 000530 Andiamo Systems, Inc. 000531 Cisco Systems, Inc. 000532 Cisco Systems, Inc. 000533 Sanera Systems, Inc. 000534 Northstar Engineering Ltd. 000535 Chip PC Ltd. 000536 Danam Communications, Inc. 000537 Nets Technology Co., Ltd. 000538 Merilus, Inc. 000539 A Brand New World in Sweden AB 00053A Willowglen Services Pte Ltd 00053B Harbour Networks Ltd., Co. Beijing 00053C Xircom 00053D Agere Systems 00053E KID Systeme GmbH 00053F VisionTek, Inc. 000540 FAST Corporation 000541 Advanced Systems Co., Ltd. 000542 Otari, Inc. 000543 IQ Wireless GmbH 000544 Valley Technologies, Inc. 000545 Internet Photonics 000546 KDD Network Systems Co., Ltd. 000547 Starent Networks 000548 Disco Corporation 000549 Salira Optical Network Systems 00054A Ario Data Networks, Inc. 00054B Micro Innovation AG 00054C RF Innovations Pty Ltd 00054D Brans Technologies, Inc. 00054E Philips Components 000550 Digi-Tech Communications Limited 000551 F & S Elektronik Systeme GmbH 000552 Xycotec Computer GmbH 000553 DVC Company, Inc. 000554 Rangestar Wireless 000555 Japan Cash Machine Co., Ltd. 000556 360 Systems 000557 Agile TV Corporation 000558 Synchronous, Inc. 000559 Intracom S.A. 00055A Power Dsine Ltd. 00055B Charles Industries, Ltd. 00055C Kowa Company, Ltd. 00055D D-Link Systems, Inc. 00055E Cisco Systems, Inc. 00055F Cisco Systems, Inc. 000560 LEADER COMM.CO., LTD 000561 nac Image Technology, Inc. 000562 Digital View Limited 000563 J-Works, Inc. 000564 Tsinghua Bitway Co., Ltd. 000565 Tailyn Communication Company Ltd. 000566 Secui.com Corporation 000567 Etymonic Design, Inc. 000568 Piltofish Networks AB 000569 VMWARE, Inc. 00056B C.P. Technology Co., Ltd. 00056C Hung Chang Co., Ltd. 00056D Pacific Corporation 00056E National Enhance Technology, Inc. 00056F Innomedia Technologies Pvt. Ltd. 000570 Baydel Ltd. 000571 Seiwa Electronics Co. 000572 Deonet Co., Ltd. 000573 Cisco Systems, Inc. 000574 Cisco Systems, Inc. 000575 CDS-Electronics BV 000576 NSM Technology Ltd. 000577 SM Information & Communication 000579 Universal Control Solution Corp. 00057A Hatteras Networks 00057B Chung Nam Electronic Co., Ltd. 00057C RCO Security AB 00057D Sun Communications, Inc. 00057E Eckelmann Steuerungstechnik GmbH 00057F Acqis Technology 000580 Fibrolan Ltd. 000581 Snell & Wilcox Ltd. 000582 ClearCube Technology 000583 ImageCom Limited 000584 AbsoluteValue Systems, Inc. 000585 Juniper Networks, Inc. 000586 Lucent Technologies 000587 Locus, Incorporated 000588 Sensoria Corp. 000589 National Datacomputer 00058A Netcom Co., Ltd. 00058B IPmental, Inc. 00058C Opentech Inc. 00058D Lynx Photonic Networks, Inc. 00058E Ahead Communications System GmbH 00058F CLCsoft co. 000590 Ascom Business Systems 000591 Active Silicon Ltd. 000592 Pultex Corp. 000593 Grammar Engine Inc. 000594 IXXAT Automation GmbH 000595 Alesis Corporation 000596 Genotech Co., Ltd. 000597 Eagle Traffic Control Systems 000598 CRONOS S.r.l. 000599 PEI Electronics, Inc. 00059A Cisco Systems, Inc. 00059B Cisco Systems, Inc. 00059C Kleinknecht GmbH, Ing. Buero 00059D Daniel Computing Systems, Inc. 00059E Zinwell Corporation 00059F Yotta Networks, Inc. 0005A0 MOBILINE Kft. 0005A1 Zenocom 0005A2 CELOX Networks 0005A3 QEI, Inc. 0005A4 Lucid Voice Ltd. 0005A5 KOTT 0005A6 Extron Electronics 0005A7 Hyperchip, Inc. 0005A8 WYLE ELECTRONICS 0005A9 Princeton Networks, Inc. 0005AA Moore Industries Int. 0005AB Cyber Fone, Inc. 0005AC Northern Digital, Inc. 0005AD Topspin Communications, Inc. 0005AE Mediaport USA 0005AF InnoScan Computing A/S 0005B0 Korea Computer Technology Co., Ltd. 0005B1 ASB Technology BV 0005B2 Medison Co., Ltd. 0005B3 Asahi-Engineering Co., Ltd. 0005B4 Aceex Corporation 0005B5 Broadcom Technologies 0005B6 INSYS Microelectronics GmbH 0005B7 Arbor Technology Corp. 0005B8 Electronic Design Associates, Inc. 0005B9 Airvana, Inc. 0005BA Area Netwoeks, Inc. 0005BC Resorsys Ltd. 0005BD ROAX BV 0005BE Kongsberg Seatex AS 0005BF JustEzy Technology, Inc. 0005C0 Digital Network Alacarte Co., Ltd. 0005C1 A-Kyung Motion, Inc. 0005C2 Digital Archway, Inc. 0005C3 Pacific Instruments, Inc. 0005C4 Telect, Inc. 0005C5 Flaga HF 0005C6 Triz Communications 0005C7 I/F-COM A/S 0005C8 VERYTECH 0005C9 LG Innotek 0005CA Hitron Technology, Inc. 0005CB ROIS Technologies, Inc. 0005CC Sumtel Communications, Inc. 0005CD Nippon Columbia 0005CE Prolink Microsystems Corporation 0005CF Thunder River Technologies, Inc. 0005D0 Solinet Systems 0005D1 Metavector Technologies 0005D2 DAP Technologies 0005D3 CAC, Inc. 0005D4 FutureSmart Networks, Inc. 0005D5 Speedcom Wireless 0005D6 Titan Wireless 0005D7 Vista Imaging, Inc. 0005D8 Arescom, Inc. 0005D9 Techno Valley, Inc. 0005DA Apex Automationstechnik 0005DB Nentec GmbH 0005DC Cisco Systems, Inc. 0005DD Cisco Systems, Inc. 0005DE Gi Fone Korea, Inc. 0005DF Electronic Innovation, Inc. 0005E0 Empirix Corp. 0005E1 Trellis Photonics, Ltd. 0005E2 Creativ Network Technologies 0005E3 LightSand Communications, Inc. 0005E4 Red Lion Controls L.P. 0005E5 Renishaw PLC 0005E6 Egenera, Inc. 0005E7 Netrake 0005E8 TurboWave, Inc. 0005E9 Unicess Networks, Inc. 0005EA Viewcast Corporation 0005EB Blue Ridge Networks, Inc. 0005EC Mosaic Systems Inc. 0005ED Technikum Joanneaum GmbH 0005EE BEWATOR Group 0005EF ADOIR Digital Technology 0005F0 SATEC 0005F1 VRcom, Inc. 0005F2 Power R, Inc. 0005F3 Weboyn 0005F4 SystemBase Co., Ltd. 0005F5 OYO Geospace Corp. 0005F6 Young Chang Co. Ltd. 0005F7 Analog Devices, Inc. 0005F8 Real Time Access, Inc. 0005F9 Diva Systems 0005FA IPOptical, Inc. 0005FB Sharegate 0005FC Schenck Pegasus Corp. 0005FD PacketLight Networks Ltd. 0005FE Traficon N.V. 0005FF SNS Solutions, Inc. 000600 Tokyo Electronic Industry Co., Ltd. 000601 Otanikeiki Co., Ltd. 000602 Cirkitech Electronics Co. 000603 Baker Hughes 000604 @Track Communications, Inc. 000605 Inncom International, Inc. 000606 RapidWan, Inc. 000607 Omni-Directional Control Technology Inc. 000608 At-Sky SAS 000609 Crossport Systems 00060A Blue2space.com 00060B Paceline Systems Corporation 00060C Melco Industries, Inc. 00060D Wave7 Optics 00060E IGSYS Systems, Inc. 00060F Narad Networks Inc 000610 Abeona Networks Inc 000611 Zeus Wireless, Inc. 000612 Accusys, Inc. 000613 Kawasaki Steel Corporation 000614 Prism Holdings 000615 Kimoto Electric Co., Ltd. 000616 Tel Net Co., Ltd. 000617 Redswitch Inc. 000618 DigiPower Manufacturing Inc. 000619 Connection Technology Systems 00061A Zetari Inc. 00061B Portable Systems, IBM Japan Co, Ltd 00061C Hoshino Metal Industries, Ltd. 00061D MIP Telecom, Inc. 00061E Maxan Systems 00061F Vision Components GmbH 000620 Serial System Ltd. 000621 Hinox, Co., Ltd. 000622 Chung Fu Chen Yeh Enterprise Corp. 000623 MGE UPS Systems France 000624 Gentner Communications 000625 The Linksys Group, Inc. 000626 MWE GmbH 000627 Uniwide Technologies, Inc. 000628 Cisco Systems, Inc. 000629 IBM CORPORATION 00062A Cisco Systems, Inc. 00062B INTRASERVER TECHNOLOGY 00062C Network Robots, Inc. 00062D TouchStar Technologies, L.L.C. 00062E Aristos Logic Corp. 00062F Pivotech Systems Inc. 000630 Adtranz Sweden 000631 Optical Solutions, Inc. 000632 Mesco Engineering GmbH 000633 Heimann Biometric Systems GmbH 000634 GTE Airfone Inc. 000635 PacketAir Networks, Inc. 000636 Jedai Broadband Networks 000637 Toptrend-Meta Information (ShenZhen) Inc. 000638 Sungjin C&C Co., Ltd. 000639 Newtec 00063A Dura Micro, Inc. 00063B Lineo Canada Corp. 00063C NMI Electronics Ltd 00063D Microwave Data Systems Inc. 00063E Opthos Inc. 00063F Everex Communications Inc. 000640 White Rock Networks 000641 ITCN 000642 Genetel Systems Inc. 000643 SONO Computer Co., Ltd. 000644 NEIX Inc. 000645 Meisei Electric Co. Ltd. 000646 ShenZhen XunBao Network Technology Co Ltd 000647 Etrali S.A. 000648 Seedsware, Inc. 000649 Quante 00064A Honeywell Co., Ltd. (KOREA) 00064B Alexon Co., Ltd. 00064C Invicta Networks, Inc. 00064D Sencore 00064E Broad Net Technology Inc. 00064F PRO-NETS Technology Corporation 000650 Tiburon Networks, Inc. 000651 Aspen Networks Inc. 000652 Cisco Systems, Inc. 000653 Cisco Systems, Inc. 000654 Maxxio Technologies 000655 Yipee, Inc. 000656 Tactel AB 000657 Market Central, Inc. 000658 Helmut Fischer GmbH & Co. KG 000659 EAL (Apeldoorn) B.V. 00065A Strix Systems 00065B Dell Computer Corp. 00065C Malachite Technologies, Inc. 00065D Heidelberg Web Systems 00065E Photuris, Inc. 00065F ECI Telecom - NGTS Ltd. 000660 NADEX Co., Ltd. 000661 NIA Home Technologies Corp. 000662 MBM Technology Ltd. 000663 Human Technology Co., Ltd. 000664 Fostex Corporation 000665 Summy Gikem, Inc. 000666 Roving Networks 000667 Tripp Lite 000668 Vicon Industries Inc. 000669 Datasound Laboratories Ltd 00066A InfiniCon Systems, Inc. 00066B Sysmex Corporation 00066C Robinson Corporation 00066D Compuprint S.P.A. 00066E Delta Electronics, Inc. 00066F Korea Data Systems 000670 Upponetti Oy 000671 Softing AG 000672 Netezza 000673 Optelecom, Inc. 000674 Spectrum Control, Inc. 000675 Banderacom, Inc. 000676 Novra Technologies, Inc. 000677 SICK AG 000678 Marantz Japan, Inc. 000679 Konami Corporation 00067A JMP Systems 00067B Toplink C&C Corporation 00067C CISCO SYSTEMS, INC. 00067D Takasago Ltd. 0006C1 CISCO SYSTEMS, INC. 000701 RACAL-DATACOM 0007C6 VDS Vosskuehler GmbH 000800 MULTITECH SYSTEMS, INC. 0008C7 COMPAQ COMPUTER CORPORATION 000A27 Apple Computer, Inc. 001000 CABLE TELEVISION 001001 MCK COMMUNICATIONS 001002 ACTIA 001003 IMATRON, INC. 001004 THE BRANTLEY COILE COMPANY,INC 001005 UEC COMMERCIAL 001006 RACAL RECORDERS LTD. 001007 CISCO SYSTEMS, INC. 001008 VIENNA SYSTEMS CORPORATION 001009 HORO QUARTZ 00100A WILLIAMS COMMUNICATIONS GROUP 00100B CISCO SYSTEMS, INC. 00100C ITO CO., LTD. 00100D CISCO SYSTEMS, INC. 00100E MICRO LINEAR COPORATION 00100F INDUSTRIAL CPU SYSTEMS 001010 INITIO CORPORATION 001011 CISCO SYSTEMS, INC. 001012 PROCESSOR SYSTEMS (I) PVT LTD 001013 INDUSTRIAL COMPUTER SOURCE 001014 CISCO SYSTEMS, INC. 001015 OOMON INC. 001016 T.SQWARE 001017 MICOS GMBH 001018 BROADCOM CORPORATION 001019 SIRONA DENTAL SYSTEMS 00101A PICTURETEL CORP. 00101B CORNET TECHNOLOGY, INC. 00101C OHM TECHNOLOGIES INTL, LLC 00101D WINBOND ELECTRONICS CORP. 00101E MATSUSHITA ELECTRONIC 00101F CISCO SYSTEMS, INC. 001020 WELCH ALLYN, DATA COLLECTION 001021 ENCANTO NETWORKS, INC. 001022 SATCOM MEDIA CORPORATION 001023 FLOWWISE NETWORKS, INC. 001024 NAGOYA ELECTRIC WORKS CO., LTD 001025 GRAYHILL INC. 001026 ACCELERATED NETWORKS, INC. 001027 L-3 COMMUNICATIONS EAST 001028 COMPUTER TECHNICA, INC. 001029 CISCO SYSTEMS, INC. 00102A ZF MICROSYSTEMS, INC. 00102B UMAX DATA SYSTEMS, INC. 00102C Lasat Networks A/S 00102D HITACHI SOFTWARE ENGINEERING 00102E NETWORK SYSTEMS & TECHNOLOGIES 00102F CISCO SYSTEMS, INC. 001030 WI-LAN, INC. 001031 OBJECTIVE COMMUNICATIONS, INC. 001032 ALTA TECHNOLOGY 001033 ACCESSLAN COMMUNICATIONS, INC. 001034 GNP COMPUTERS 001035 ELITEGROUP COMPUTER 001036 INTER-TEL INTEGRATED SYSTEMS 001037 CYQ'VE TECHNOLOGY CO., LTD. 001038 MICRO RESEARCH INSTITUTE, INC. 001039 VECTRON SYSTEMS GMBH 00103A DIAMOND NETWORK TECH 00103B HIPPI NETWORKING FORUM 00103C IC ENSEMBLE, INC. 00103D PHASECOM, LTD. 00103E NETSCHOOLS CORPORATION 00103F TOLLGRADE COMMUNICATIONS, INC. 001040 INTERMEC CORPORATION 001041 BRISTOL BABCOCK, INC. 001042 ALACRITECH 001043 A2 CORPORATION 001044 INNOLABS CORPORATION 001045 Nortel Networks 001046 ALCORN MCBRIDE INC. 001047 ECHO ELETRIC CO. LTD. 001048 HTRC AUTOMATION, INC. 001049 SHORELINE TELEWORKS, INC. 00104A THE PARVUC CORPORATION 00104B 3COM CORPORATION 00104C COMPUTER ACCESS TECHNOLOGY 00104D SURTEC INDUSTRIES, INC. 00104E CEOLOGIC 00104F STORAGE TECHNOLOGY CORPORATION 001050 RION CO., LTD. 001051 CMICRO CORPORATION 001052 METTLER-TOLEDO (ALBSTADT) GMBH 001053 COMPUTER TECHNOLOGY CORP. 001054 CISCO SYSTEMS, INC. 001055 FUJITSU MICROELECTRONICS, INC. 001056 SODICK CO., LTD. 001057 Rebel.com, Inc. 001058 ARROWPOINT COMMUNICATIONS,INC. 001059 DIABLO RESEARCH CO. LLC 00105A 3COM CORPORATION 00105B NET INSIGHT AB 00105C QUANTUM DESIGNS (H.K.) LTD. 00105D DRAGER, BUSINESS UNIT 00105E HEKIMIAN LABORATORIES, INC. 00105F IN-SNEC 001060 BILLIONTON SYSTEMS, INC. 001061 HOSTLINK CORP. 001062 NX SERVER, ILNC. 001063 STARGUIDE DIGITAL NETWORKS 001064 DIGITAL EQUIPMENT CORP. 001065 RADYNE CORPORATION 001066 ADVANCED CONTROL SYSTEMS, INC. 001067 REDBACK NETWORKS, INC. 001068 COMOS TELECOM 001069 HELIOSS COMMUNICATIONS, INC. 00106A DIGITAL MICROWAVE CORPORATION 00106B SONUS NETWORKS, INC. 00106C INFRATEC PLUS GMBH 00106D INTEGRITY COMMUNICATIONS, INC. 00106E TADIRAN COM. LTD. 00106F TRENTON TECHNOLOGY INC. 001070 CARADON TREND LTD. 001071 ADVANET INC. 001072 GVN TECHNOLOGIES, INC. 001073 TECHNOBOX, INC. 001074 ATEN INTERNATIONAL CO., LTD. 001075 Maxtor Corporation 001076 EUREM GMBH 001077 SAF DRIVE SYSTEMS, LTD. 001078 NUERA COMMUNICATIONS, INC. 001079 CISCO SYSTEMS, INC. 00107A AMBICOM, INC. 00107B CISCO SYSTEMS, INC. 00107C P-COM, INC. 00107D AURORA COMMUNICATIONS, LTD. 00107E BACHMANN ELECTRONIC GMBH 00107F CRESTRON ELECTRONICS, INC. 001080 METAWAVE COMMUNICATIONS 001081 DPS, INC. 001082 JNA TELECOMMUNICATIONS LIMITED 001083 HEWLETT-PACKARD COMPANY 001084 K-BOT COMMUNICATIONS 001085 POLARIS COMMUNICATIONS, INC. 001086 ATTO TECHNOLOGY, INC. 001087 Xstreamis PLC 001088 AMERICAN NETWORKS INC. 001089 WEBSONIC 00108A TERALOGIC, INC. 00108B LASERANIMATION SOLLINGER GMBH 00108C FUJITSU TELECOMMUNICATIONS 00108D JOHNSON CONTROLS, INC. 00108E HUGH SYMONS CONCEPT 00108F RAPTOR SYSTEMS 001090 CIMETRICS, INC. 001091 NO WIRES NEEDED BV 001092 NETCORE INC. 001093 CMS COMPUTERS, LTD. 001094 ADTECH, INC. 001095 THOMSON CONSUMER ELECTRONICS 001096 TRACEWELL SYSTEMS, INC. 001097 WINNET METROPOLITAN 001098 STARNET TECHNOLOGIES, INC. 001099 INNOMEDIA, INC. 00109A NETLINE 00109B VIXEL CORPORATION 00109C M-SYSTEM CO., LTD. 00109D CLARINET SYSTEMS, INC. 00109E AWARE, INC. 00109F PAVO, INC. 0010A0 INNOVEX TECHNOLOGIES, INC. 0010A1 KENDIN SEMICONDUCTOR, INC. 0010A2 TNS 0010A3 OMNITRONIX, INC. 0010A4 XIRCOM 0010A5 OXFORD INSTRUMENTS 0010A6 CISCO SYSTEMS, INC. 0010A7 UNEX TECHNOLOGY CORPORATION 0010A8 RELIANCE COMPUTER CORP. 0010A9 ADHOC TECHNOLOGIES 0010AA MEDIA4, INC. 0010AB KOITO INDUSTRIES, LTD. 0010AC IMCI TECHNOLOGIES 0010AD SOFTRONICS USB, INC. 0010AE SHINKO ELECTRIC INDUSTRIES CO. 0010AF TAC SYSTEMS, INC. 0010B0 MERIDIAN TECHNOLOGY CORP. 0010B1 FOR-A CO., LTD. 0010B2 COACTIVE AESTHETICS 0010B3 NOKIA MULTIMEDIA TERMINALS 0010B4 ATMOSPHERE NETWORKS 0010B5 ACCTON TECHNOLOGY CORPORATION 0010B6 ENTRATA COMMUNICATIONS CORP. 0010B7 COYOTE TECHNOLOGIES, LLC 0010B8 ISHIGAKI COMPUTER SYSTEM CO. 0010B9 MAXTOR CORP. 0010BA MARTINHO-DAVIS SYSTEMS, INC. 0010BB DATA & INFORMATION TECHNOLOGY 0010BC Nortel Networks 0010BD THE TELECOMMUNICATION 0010BE TELEXIS CORP. 0010BF INTER AIR WIRELESS 0010C0 ARMA, INC. 0010C1 OI ELECTRIC CO., LTD. 0010C2 WILLNET, INC. 0010C3 CSI-CONTROL SYSTEMS 0010C4 MEDIA LINKS CO., LTD. 0010C5 PROTOCOL TECHNOLOGIES, INC. 0010C6 USI 0010C7 DATA TRANSMISSION NETWORK 0010C8 COMMUNICATIONS ELECTRONICS 0010C9 MITSUBISHI ELECTRONICS 0010CA INTEGRAL ACCESS 0010CB FACIT K.K. 0010CC CLP COMPUTER LOGISTIK 0010CD INTERFACE CONCEPT 0010CE VOLAMP, LTD. 0010CF FIBERLANE COMMUNICATIONS 0010D0 WITCOM, LTD. 0010D1 Top Layer Networks, Inc. 0010D2 NITTO TSUSHINKI CO., LTD 0010D3 GRIPS ELECTRONIC GMBH 0010D4 STORAGE COMPUTER CORPORATION 0010D5 IMASDE CANARIAS, S.A. 0010D6 ITT A/CD 0010D7 ARGOSY RESEARCH INC. 0010D8 CALISTA 0010D9 IBM JAPAN, FUJISAWA MT+D 0010DA MOTION ENGINEERING, INC. 0010DB NETSCREEN TECHNOLOGIES, INC. 0010DC MICRO-STAR INTERNATIONAL 0010DD ENABLE SEMICONDUCTOR, INC. 0010DE INTERNATIONAL DATACASTING 0010DF RISE COMPUTER INC. 0010E0 COBALT MICROSERVER, INC. 0010E1 S.I. TECH, INC. 0010E2 ARRAYCOMM, INC. 0010E3 COMPAQ COMPUTER CORPORATION 0010E4 NSI CORPORATION 0010E5 SOLECTRON TEXAS 0010E6 APPLIED INTELLIGENT 0010E7 BREEZECOM 0010E8 TELOCITY, INCORPORATED 0010E9 RAIDTEC LTD. 0010EA ADEPT TECHNOLOGY 0010EB SELSIUS SYSTEMS, ILNC. 0010EC RPCG, LLC 0010ED SUNDANCE TECHNOLOGY, INC. 0010EE CTI PRODUCTS, INC. 0010EF DB NETWORKS, INC. 0010F0 RITTAL-WERK RUDOLF LOH 0010F1 I-O CORPORATION 0010F2 ANTEC 0010F3 NEXCOM INTERNATIONAL CO., LTD. 0010F4 VERTICAL NETWORKS, INC. 0010F5 AMHERST SYSTEMS, INC. 0010F6 CISCO SYSTEMS, INC. 0010F7 IRIICHI TECHNOLOGIES 0010F8 KENWOOD TMI CORPORATION 0010F9 UNIQUE SYSTEMS, INC. 0010FA ZAYANTE, INC. 0010FB ZIDA TECHNOLOGIES LIMITED 0010FC BROADBAND NETWORKS, INC. 0010FD COCOM A/S 0010FE DIGITAL EQUIPMENT CORPORATION 0010FF CISCO SYSTEMS, INC. 001C7C PERQ SYSTEMS CORPORATION 002000 LEXMARK INTERNATIONAL, INC. 002001 DSP SOLUTIONS, INC. 002002 SERITECH ENTERPRISE CO., LTD. 002003 PIXEL POWER LTD. 002004 YAMATAKE-HONEYWELL CO., LTD. 002005 SIMPLE TECHNOLOGY 002006 GARRETT COMMUNICATIONS, INC. 002007 SFA, INC. 002008 CABLE & COMPUTER TECHNOLOGY 002009 PACKARD BELL ELEC., INC. 00200A SOURCE-COMM CORP. 00200B OCTAGON SYSTEMS CORP. 00200C ADASTRA SYSTEMS CORP. 00200D CARL ZEISS 00200E SATELLITE TECHNOLOGY MGMT, INC 00200F TANBAC CO., LTD. 002010 JEOL SYSTEM TECHNOLOGY CO. LTD 002011 CANOPUS CO., LTD. 002012 CAMTRONICS MEDICAL SYSTEMS 002013 DIVERSIFIED TECHNOLOGY, INC. 002014 GLOBAL VIEW CO., LTD. 002015 ACTIS COMPUTER SA 002016 SHOWA ELECTRIC WIRE & CABLE CO 002017 ORBOTECH 002018 CIS TECHNOLOGY INC. 002019 OHLER GMBH 00201A N-BASE SWITCH COMMUNICATIONS 00201B NORTHERN TELECOM/NETWORK 00201C EXCEL, INC. 00201D KATANA PRODUCTS 00201E NETQUEST CORPORATION 00201F BEST POWER TECHNOLOGY, INC. 002020 MEGATRON COMPUTER INDUSTRIES 002021 ALGORITHMS SOFTWARE PVT. LTD. 002022 TEKNIQUE, INC. 002023 T.C. TECHNOLOGIES PTY. LTD 002024 PACIFIC COMMUNICATION SCIENCES 002025 CONTROL TECHNOLOGY, INC. 002026 AMKLY SYSTEMS, INC. 002027 MING FORTUNE INDUSTRY CO., LTD 002028 WEST EGG SYSTEMS, INC. 002029 TELEPROCESSING PRODUCTS, INC. 00202A N.V. DZINE 00202B ADVANCED TELECOMMUNICATIONS 00202C WELLTRONIX CO., LTD. 00202D TAIYO CORPORATION 00202E DAYSTAR DIGITAL 00202F ZETA COMMUNICATIONS, LTD. 002030 ANALOG & DIGITAL SYSTEMS 002031 ERTEC GMBH 002032 ALCATEL TAISEL 002033 SYNAPSE TECHNOLOGIES, INC. 002034 ROTEC INDUSTRIEAUTOMATION GMBH 002035 IBM CORPORATION 002036 BMC SOFTWARE 002037 SEAGATE TECHNOLOGY 002038 VME MICROSYSTEMS INTERNATIONAL 002039 SCINETS 00203A DIGITAL BI0METRICS INC. 00203B WISDM LTD. 00203C EUROTIME AB 00203D NOVAR ELECTRONICS CORPORATION 00203E LOGICAN TECHNOLOGIES, INC. 00203F JUKI CORPORATION 002040 Motorola Broadband Communications Sector 002041 DATA NET 002042 DATAMETRICS CORP. 002043 NEURON COMPANY LIMITED 002044 GENITECH PTY LTD 002045 ION Networks, Inc. 002046 CIPRICO, INC. 002047 STEINBRECHER CORP. 002048 Marconi Communications 002049 COMTRON, INC. 00204A PRONET GMBH 00204B AUTOCOMPUTER CO., LTD. 00204C MITRON COMPUTER PTE LTD. 00204D INOVIS GMBH 00204E NETWORK SECURITY SYSTEMS, INC. 00204F DEUTSCHE AEROSPACE AG 002050 KOREA COMPUTER INC. 002051 PHOENIX DATA COMMUNUNICATIONS 002052 RAGULA SYSTEMS 002053 HUNTSVILLE MICROSYSTEMS, INC. 002054 EASTERN RESEARCH, INC. 002055 ALTECH CO., LTD. 002056 NEOPRODUCTS 002057 TITZE DATENTECHNIK GMBH 002058 ALLIED SIGNAL INC. 002059 MIRO COMPUTER PRODUCTS AG 00205A COMPUTER IDENTICS 00205B SKYLINE TECHNOLOGY 00205C INTERNET SYSTEMS/ FLORIDA INC. 00205D NANOMATIC OY 00205E CASTLE ROCK, INC. 00205F GAMMADATA COMPUTER GMBH 002060 ALCATEL ITALIA S.P.A. 002061 DYNATECH COMMUNICATIONS, INC. 002062 SCORPION LOGIC, LTD. 002063 WIPRO INFOTECH LTD. 002064 PROTEC MICROSYSTEMS, INC. 002065 SUPERNET NETWORKING INC. 002066 GENERAL MAGIC, INC. 002068 ISDYNE 002069 ISDN SYSTEMS CORPORATION 00206A OSAKA COMPUTER CORP. 00206B MINOLTA CO., LTD. 00206C EVERGREEN TECHNOLOGY CORP. 00206D DATA RACE, INC. 00206E XACT, INC. 00206F FLOWPOINT CORPORATION 002070 HYNET, LTD. 002071 IBR GMBH 002072 WORKLINK INNOVATIONS 002073 FUSION SYSTEMS CORPORATION 002074 SUNGWOON SYSTEMS 002075 MOTOROLA COMMUNICATION ISRAEL 002076 REUDO CORPORATION 002077 KARDIOS SYSTEMS CORP. 002078 RUNTOP, INC. 002079 MIKRON GMBH 00207A WISE COMMUNICATIONS, INC. 00207B LEVEL ONE COMMUNICATIONS 00207C AUTEC GMBH 00207D ADVANCED COMPUTER APPLICATIONS 00207E FINECOM CO., LTD. 00207F KYOEI SANGYO CO., LTD. 002080 SYNERGY (UK) LTD. 002081 TITAN ELECTRONICS 002082 ONEAC CORPORATION 002083 PRESTICOM INCORPORATED 002084 OCE PRINTING SYSTEMS, GMBH 002085 EXIDE ELECTRONICS 002086 MICROTECH ELECTRONICS LIMITED 002087 MEMOTEC COMMUNICATIONS CORP. 002088 GLOBAL VILLAGE COMMUNICATION 002089 T3PLUS NETWORKING, INC. 00208A SONIX COMMUNICATIONS, LTD. 00208B LAPIS TECHNOLOGIES, INC. 00208C GALAXY NETWORKS, INC. 00208D CMD TECHNOLOGY 00208E CHEVIN SOFTWARE ENG. LTD. 00208F ECI TELECOM LTD. 002090 ADVANCED COMPRESSION 002091 J125, NATIONAL SECURITY AGENCY 002092 CHESS ENGINEERING B.V. 002093 LANDINGS TECHNOLOGY CORP. 002094 CUBIX CORPORATION 002095 RIVA ELECTRONICS 002096 SIEBE ENVIRONMENTAL CONTROLS 002097 APPLIED SIGNAL TECHNOLOGY 002098 HECTRONIC AB 002099 BON ELECTRIC CO., LTD. 00209A THE 3DO COMPANY 00209B ERSAT ELECTRONIC GMBH 00209C PRIMARY ACCESS CORP. 00209D LIPPERT AUTOMATIONSTECHNIK 00209E BROWN'S OPERATING SYSTEM 00209F MERCURY COMPUTER SYSTEMS, INC. 0020A0 OA LABORATORY CO., LTD. 0020A1 DOVATRON 0020A2 GALCOM NETWORKING LTD. 0020A3 DIVICOM INC. 0020A4 MULTIPOINT NETWORKS 0020A5 API ENGINEERING 0020A6 PROXIM, INC. 0020A7 PAIRGAIN TECHNOLOGIES, INC. 0020A8 SAST TECHNOLOGY CORP. 0020A9 WHITE HORSE INDUSTRIAL 0020AA DIGIMEDIA VISION LTD. 0020AB MICRO INDUSTRIES CORP. 0020AC INTERFLEX DATENSYSTEME GMBH 0020AD LINQ SYSTEMS 0020AE ORNET DATA COMMUNICATION TECH. 0020AF 3COM CORPORATION 0020B0 GATEWAY DEVICES, INC. 0020B1 COMTECH RESEARCH INC. 0020B2 GKD GESELLSCHAFT FUR 0020B3 SCLTEC COMMUNICATIONS SYSTEMS 0020B4 TERMA ELEKTRONIK AS 0020B5 YASKAWA ELECTRIC CORPORATION 0020B6 AGILE NETWORKS, INC. 0020B7 NAMAQUA COMPUTERWARE 0020B8 PRIME OPTION, INC. 0020B9 METRICOM, INC. 0020BA CENTER FOR HIGH PERFORMANCE 0020BB ZAX CORPORATION 0020BC JTEC PTY LTD. 0020BD NIOBRARA R & D CORPORATION 0020BE LAN ACCESS CORP. 0020BF AEHR TEST SYSTEMS 0020C0 PULSE ELECTRONICS, INC. 0020C1 TAIKO ELECTRIC WORKS, LTD. 0020C2 TEXAS MEMORY SYSTEMS, INC. 0020C3 COUNTER SOLUTIONS LTD. 0020C4 INET,INC. 0020C5 EAGLE TECHNOLOGY 0020C6 NECTEC 0020C7 AKAI Professional M.I. Corp. 0020C8 LARSCOM INCORPORATED 0020C9 VICTRON BV 0020CA DIGITAL OCEAN 0020CB PRETEC ELECTRONICS CORP. 0020CC DIGITAL SERVICES, LTD. 0020CD HYBRID NETWORKS, INC. 0020CE LOGICAL DESIGN GROUP, INC. 0020CF TEST & MEASUREMENT SYSTEMS INC 0020D0 VERSALYNX CORPORATION 0020D1 MICROCOMPUTER SYSTEMS (M) SDN. 0020D2 RAD DATA COMMUNICATIONS, LTD. 0020D3 OST (OUEST STANDARD TELEMATIQU 0020D4 CABLETRON - ZEITTNET INC. 0020D5 VIPA GMBH 0020D6 BREEZECOM 0020D7 JAPAN MINICOMPUTER SYSTEMS CO. 0020D8 NETWAVE TECHNOLOGIES, INC. 0020D9 PANASONIC TECHNOLOGIES, INC./ 0020DA XYLAN CORPORATION 0020DB XNET TECHNOLOGY, INC. 0020DC DENSITRON TAIWAN LTD. 0020DD AWA LTD. 0020DE JAPAN DIGITAL LABORAT'Y CO.LTD 0020DF KYOSAN ELECTRIC MFG. CO., LTD. 0020E0 PREMAX ELECTRONICS, INC. 0020E1 ALAMAR ELECTRONICS 0020E2 INFORMATION RESOURCE 0020E3 MCD KENCOM CORPORATION 0020E4 HSING TECH ENTERPRISE CO., LTD 0020E5 APEX DATA, INC. 0020E6 LIDKOPING MACHINE TOOLS AB 0020E7 B&W NUCLEAR SERVICE COMPANY 0020E8 DATATREK CORPORATION 0020E9 DANTEL 0020EA EFFICIENT NETWORKS, INC. 0020EB CINCINNATI MICROWAVE, INC. 0020EC TECHWARE SYSTEMS CORP. 0020ED GIGA-BYTE TECHNOLOGY CO., LTD. 0020EE GTECH CORPORATION 0020EF USC CORPORATION 0020F0 UNIVERSAL MICROELECTRONICS CO. 0020F1 ALTOS INDIA LIMITED 0020F2 SUN MICROSYSTEMS, INC. 0020F3 RAYNET CORPORATION 0020F4 SPECTRIX CORPORATION 0020F5 PANDATEL AG 0020F6 NET TEK AND KARLNET, INC. 0020F7 CYBERDATA 0020F8 CARRERA COMPUTERS, INC. 0020F9 PARALINK NETWORKS, INC. 0020FA GDE SYSTEMS, INC. 0020FB OCTEL COMMUNICATIONS CORP. 0020FC MATROX 0020FD ITV TECHNOLOGIES, INC. 0020FE TOPWARE INC. / GRAND COMPUTER 0020FF SYMMETRICAL TECHNOLOGIES 003000 ALLWELL TECHNOLOGY CORP. 003001 SMP 003002 Expand Networks 003003 Phasys Ltd. 003004 LEADTEK RESEARCH INC. 003005 Fujitsu Siemens Computers 003006 SUPERPOWER COMPUTER 003007 OPTI, INC. 003008 AVIO DIGITAL, INC. 003009 Tachion Networks, Inc. 00300A AZTECH SYSTEMS LTD. 00300B mPHASE Technologies, Inc. 00300C CONGRUENCY, LTD. 00300D MMC Technology, Inc. 00300E Klotz Digital AG 00300F IMT - Information Management T 003010 VISIONETICS INTERNATIONAL 003011 HMS FIELDBUS SYSTEMS AB 003012 DIGITAL ENGINEERING LTD. 003013 NEC Corporation 003014 DIVIO, INC. 003015 CP CLARE CORP. 003016 ISHIDA CO., LTD. 003017 TERASTACK LTD. 003018 Jetway Information Co., Ltd. 003019 CISCO SYSTEMS, INC. 00301A SMARTBRIDGES PTE. LTD. 00301B SHUTTLE, INC. 00301C ALTVATER AIRDATA SYSTEMS 00301D SKYSTREAM, INC. 00301E 3COM Europe Ltd. 00301F OPTICAL NETWORKS, INC. 003020 TSI, Inc.. 003021 HSING TECH. ENTERPRISE CO.,LTD 003022 Fong Kai Industrial Co., Ltd. 003023 COGENT COMPUTER SYSTEMS, INC. 003024 CISCO SYSTEMS, INC. 003025 CHECKOUT COMPUTER SYSTEMS, LTD 003026 HEITEL 003027 KERBANGO, INC. 003028 FASE Saldatura srl 003029 OPICOM 00302A SOUTHERN INFORMATION 00302B INALP NETWORKS, INC. 00302C SYLANTRO SYSTEMS CORPORATION 00302D QUANTUM BRIDGE COMMUNICATIONS 00302E Hoft & Wessel AG 00302F Smiths Industries 003030 HARMONIX CORPORATION 003031 LIGHTWAVE COMMUNICATIONS, INC. 003032 MAGICRAM, INC. 003033 ORIENT TELECOM CO., LTD. 003036 RMP ELEKTRONIKSYSTEME GMBH 003037 Packard Bell Nec Services 003038 XCP, INC. 003039 SOFTBOOK PRESS 00303A MAATEL 00303B PowerCom Technology 00303C ONNTO CORP. 00303D IVA CORPORATION 00303E Radcom Ltd. 00303F TurboComm Tech Inc. 003040 CISCO SYSTEMS, INC. 003041 SAEJIN T & M CO., LTD. 003042 DeTeWe-Deutsche Telephonwerke 003043 IDREAM TECHNOLOGIES, PTE. LTD. 003044 Portsmith LLC 003045 Village Networks, Inc. (VNI) 003046 Controlled Electronic Manageme 003047 NISSEI ELECTRIC CO., LTD. 003048 Supermicro Computer, Inc. 003049 BRYANT TECHNOLOGY, LTD. 00304A FRAUNHOFER INSTITUTE IMS 00304B ORBACOM SYSTEMS, INC. 00304C APPIAN COMMUNICATIONS, INC. 00304D ESI 00304E BUSTEC PRODUCTION LTD. 00304F PLANET Technology Corporation 003050 Versa Technology 003051 ORBIT AVIONIC & COMMUNICATION 003052 ELASTIC NETWORKS 003053 Basler AG 003054 CASTLENET TECHNOLOGY, INC. 003055 Hitachi Semiconductor America, 003056 Beck IPC GmbH 003057 E-Tel Corporation 003058 API MOTION 003059 DIGITAL-LOGIC AG 00305A TELGEN CORPORATION 00305B MODULE DEPARTMENT 00305C SMAR Laboratories Corp. 00305D DIGITRA SYSTEMS, INC. 00305E Abelko Innovation 00305F IMACON APS 003060 STARMATIX, INC. 003061 MobyTEL 003062 PATH 1 NETWORK TECHNOL'S INC. 003063 SANTERA SYSTEMS, INC. 003064 ADLINK TECHNOLOGY, INC. 003065 APPLE COMPUTER, INC. 003066 DIGITAL WIRELESS CORPORATION 003067 BIOSTAR MICROTECH INT'L CORP. 003068 CYBERNETICS TECH. CO., LTD. 003069 IMPACCT TECHNOLOGY CORP. 00306A PENTA MEDIA CO., LTD. 00306B CMOS SYSTEMS, INC. 00306C Hitex Holding GmbH 00306D LUCENT TECHNOLOGIES 00306E HEWLETT PACKARD 00306F SEYEON TECH. CO., LTD. 003070 1Net Corporation 003071 Cisco Systems, Inc. 003072 INTELLIBYTE INC. 003073 International Microsystems, In 003074 EQUIINET LTD. 003075 ADTECH 003076 Akamba Corporation 003077 ONPREM NETWORKS 003078 Cisco Systems, Inc. 003079 CQOS, INC. 00307A Advanced Technology & Systems 00307B Cisco Systems, Inc. 00307C ADID SA 00307D GRE AMERICA, INC. 00307E Redflex Communication Systems 00307F IRLAN LTD. 003080 CISCO SYSTEMS, INC. 003081 ALTOS C&C 003082 TAIHAN ELECTRIC WIRE CO., LTD. 003083 Ivron Systems 003084 ALLIED TELESYN INTERNAIONAL 003085 CISCO SYSTEMS, INC. 003086 Transistor Devices, Inc. 003087 VEGA GRIESHABER KG 003088 Siara Systems, Inc. 003089 Spectrapoint Wireless, LLC 00308A NICOTRA SISTEMI S.P.A 00308B Brix Networks 00308C ADVANCED DIGITAL INFORMATION 00308D PINNACLE SYSTEMS, INC. 00308E CROSS MATCH TECHNOLOGIES, INC. 00308F MICRILOR, Inc. 003090 CYRA TECHNOLOGIES, INC. 003091 TAIWAN FIRST LINE ELEC. CORP. 003092 ModuNORM GmbH 003093 SONNET TECHNOLOGIES, INC. 003094 Cisco Systems, Inc. 003095 Procomp Informatics, Ltd. 003096 CISCO SYSTEMS, INC. 003097 EXOMATIC AB 003098 Global Converging Technologies 003099 BOENIG UND KALLENBACH OHG 00309A ASTRO TERRA CORP. 00309B Smartware 00309C Timing Applications, Inc. 00309D Nimble Microsystems, Inc. 00309E WORKBIT CORPORATION. 00309F AMBER NETWORKS 0030A0 TYCO SUBMARINE SYSTEMS, LTD. 0030A1 OPTI TECH CO., LTD. 0030A2 Lightner Engineering 0030A3 CISCO SYSTEMS, INC. 0030A4 Woodwind Communications System 0030A5 ACTIVE POWER 0030A6 VIANET TECHNOLOGIES, LTD. 0030A7 SCHWEITZER ENGINEERING 0030A8 OL'E COMMUNICATIONS, INC. 0030A9 Netiverse, Inc. 0030AA AXUS MICROSYSTEMS, INC. 0030AB DELTA NETWORKS, INC. 0030AC Systeme Lauer GmbH & Co., Ltd. 0030AD SHANGHAI COMMUNICATION 0030AE Times N System, Inc. 0030AF Honeywell Reqelsysteme GmbH 0030B0 Convergenet Technologies 0030B1 GOC GESELLSCHAFT FUR OPTISCHE 0030B2 WESCAM - HEALDSBURG 0030B3 San Valley Systems, Inc. 0030B4 INTERSIL CORP. 0030B5 Tadiran Microwave Networks 0030B6 CISCO SYSTEMS, INC. 0030B7 Teletrol Systems, Inc. 0030B8 RiverDelta Networks 0030B9 ECTEL 0030BA AC&T SYSTEM CO., LTD. 0030BB CacheFlow, Inc. 0030BC Optronic AG 0030BD BELKIN COMPONENTS 0030BE City-Net Technology, Inc. 0030BF MULTIDATA GMBH 0030C0 Lara Technology, Inc. 0030C1 HEWLETT-PACKARD 0030C2 COMONE 0030C3 FLUECKIGER ELEKTRONIK AG 0030C4 Niigata Canotec Co., Inc. 0030C5 CADENCE DESIGN SYSTEMS 0030C6 CONTROL SOLUTIONS, INC. 0030C7 MACROMATE CORP. 0030C8 GAD LINE, LTD. 0030C9 LuxN, N 0030CA Discovery Com 0030CB OMNI FLOW COMPUTERS, INC. 0030CC Tenor Networks, Inc. 0030CD CONEXANT SYSTEMS, INC. 0030CE Zaffire 0030CF TWO TECHNOLOGIES, INC. 0030D1 INOVA CORPORATION 0030D2 WIN TECHNOLOGIES, CO., LTD. 0030D3 Agilent Technologies 0030D4 COMTIER 0030D5 DResearch GmbH 0030D6 MSC VERTRIEBS GMBH 0030D7 Innovative Systems, L.L.C. 0030D8 SITEK 0030D9 DATACORE SOFTWARE CORP. 0030DA COMTREND CO. 0030DB Mindready Solutions, Inc. 0030DC RIGHTECH CORPORATION 0030DD INDIGITA CORPORATION 0030DE WAGO Kontakttechnik GmbH 0030DF KB/TEL TELECOMUNICACIONES 0030E0 OXFORD SEMICONDUCTOR LTD. 0030E1 ACROTRON SYSTEMS, INC. 0030E2 GARNET SYSTEMS CO., LTD. 0030E3 SEDONA NETWORKS CORP. 0030E4 CHIYODA SYSTEM RIKEN 0030E5 Amper Datos S.A. 0030E6 SIEMENS MEDICAL SYSTEMS 0030E7 CNF MOBILE SOLUTIONS, INC. 0030E8 ENSIM CORP. 0030E9 GMA COMMUNICATION MANUFACT'G 0030EA TeraForce Technology Corporation 0030EB TURBONET COMMUNICATIONS, INC. 0030EC BORGARDT 0030ED Expert Magnetics Corp. 0030EE DSG Technology, Inc. 0030EF NEON TECHNOLOGY, INC. 0030F0 Uniform Industrial Corp. 0030F1 Accton Technology Corp. 0030F2 CISCO SYSTEMS, INC. 0030F3 At Work Computers 0030F4 STARDOT TECHNOLOGIES 0030F5 Wild Lab. Ltd. 0030F6 SECURELOGIX CORPORATION 0030F7 RAMIX INC. 0030F8 Dynapro Systems, Inc. 0030F9 Sollae Systems Co., Ltd. 0030FA TELICA, INC. 0030FB AZS Technology AG 0030FC Terawave Communications, Inc. 0030FD INTEGRATED SYSTEMS DESIGN 0030FE DSA GmbH 0030FF DATAFAB SYSTEMS, INC. 004000 PCI COMPONENTES DA AMZONIA LTD 004001 ZYXEL COMMUNICATIONS, INC. 004002 PERLE SYSTEMS LIMITED 004003 WESTINGHOUSE PROCESS CONTROL 004004 ICM CO. LTD. 004005 ANI COMMUNICATIONS INC. 004006 SAMPO TECHNOLOGY CORPORATION 004007 TELMAT INFORMATIQUE 004008 A PLUS INFO CORPORATION 004009 TACHIBANA TECTRON CO., LTD. 00400A PIVOTAL TECHNOLOGIES, INC. 00400B CISCO SYSTEMS, INC. 00400C GENERAL MICRO SYSTEMS, INC. 00400D LANNET DATA COMMUNICATIONS,LTD 00400E MEMOTEC COMMUNICATIONS, INC. 00400F DATACOM TECHNOLOGIES 004010 SONIC SYSTEMS, INC. 004011 ANDOVER CONTROLS CORPORATION 004012 WINDATA, INC. 004013 NTT DATA COMM. SYSTEMS CORP. 004014 COMSOFT GMBH 004015 ASCOM INFRASYS AG 004016 HADAX ELECTRONICS, INC. 004017 XCD INC. 004018 ADOBE SYSTEMS, INC. 004019 AEON SYSTEMS, INC. 00401A FUJI ELECTRIC CO., LTD. 00401B PRINTER SYSTEMS CORP. 00401C AST RESEARCH, INC. 00401D INVISIBLE SOFTWARE, INC. 00401E ICC 00401F COLORGRAPH LTD 004020 PINACL COMMUNICATION 004021 RASTER GRAPHICS 004022 KLEVER COMPUTERS, INC. 004023 LOGIC CORPORATION 004024 COMPAC INC. 004025 MOLECULAR DYNAMICS 004026 MELCO, INC. 004027 SMC MASSACHUSETTS, INC. 004028 NETCOMM LIMITED 004029 COMPEX 00402A CANOGA-PERKINS 00402B TRIGEM COMPUTER, INC. 00402C ISIS DISTRIBUTED SYSTEMS, INC. 00402D HARRIS ADACOM CORPORATION 00402E PRECISION SOFTWARE, INC. 00402F XLNT DESIGNS INC. 004030 GK COMPUTER 004031 KOKUSAI ELECTRIC CO., LTD 004032 DIGITAL COMMUNICATIONS 004033 ADDTRON TECHNOLOGY CO., LTD. 004034 BUSTEK CORPORATION 004035 OPCOM 004036 TRIBE COMPUTER WORKS, INC. 004037 SEA-ILAN, INC. 004038 TALENT ELECTRIC INCORPORATED 004039 OPTEC DAIICHI DENKO CO., LTD. 00403A IMPACT TECHNOLOGIES 00403B SYNERJET INTERNATIONAL CORP. 00403C FORKS, INC. 00403D TERADATA 00403E RASTER OPS CORPORATION 00403F SSANGYONG COMPUTER SYSTEMS 004040 RING ACCESS, INC. 004041 FUJIKURA LTD. 004042 N.A.T. GMBH 004043 NOKIA TELECOMMUNICATIONS 004044 QNIX COMPUTER CO., LTD. 004045 TWINHEAD CORPORATION 004046 UDC RESEARCH LIMITED 004047 WIND RIVER SYSTEMS 004048 SMD INFORMATICA S.A. 004049 TEGIMENTA AG 00404A WEST AUSTRALIAN DEPARTMENT 00404B MAPLE COMPUTER SYSTEMS 00404C HYPERTEC PTY LTD. 00404D TELECOMMUNICATIONS TECHNIQUES 00404E FLUENT, INC. 00404F SPACE & NAVAL WARFARE SYSTEMS 004050 IRONICS, INCORPORATED 004051 GRACILIS, INC. 004052 STAR TECHNOLOGIES, INC. 004053 AMPRO COMPUTERS 004054 CONNECTION MACHINES SERVICES 004055 METRONIX GMBH 004056 MCM JAPAN LTD. 004057 LOCKHEED - SANDERS 004058 KRONOS, INC. 004059 YOSHIDA KOGYO K. K. 00405A GOLDSTAR INFORMATION & COMM. 00405B FUNASSET LIMITED 00405C FUTURE SYSTEMS, INC. 00405D STAR-TEK, INC. 00405E NORTH HILLS ISRAEL 00405F AFE COMPUTERS LTD. 004060 COMENDEC LTD 004061 DATATECH ENTERPRISES CO., LTD. 004062 E-SYSTEMS, INC./GARLAND DIV. 004063 VIA TECHNOLOGIES, INC. 004064 KLA INSTRUMENTS CORPORATION 004065 GTE SPACENET 004066 HITACHI CABLE, LTD. 004067 OMNIBYTE CORPORATION 004068 EXTENDED SYSTEMS 004069 LEMCOM SYSTEMS, INC. 00406A KENTEK INFORMATION SYSTEMS,INC 00406B SYSGEN 00406C COPERNIQUE 00406D LANCO, INC. 00406E COROLLARY, INC. 00406F SYNC RESEARCH INC. 004070 INTERWARE CO., LTD. 004071 ATM COMPUTER GMBH 004072 APPLIED INNOVATION, INC. 004073 BASS ASSOCIATES 004074 CABLE AND WIRELESS 004075 M-TRADE (UK) LTD 004076 Sun Conversion Technologies 004077 MAXTON TECHNOLOGY CORPORATION 004078 WEARNES AUTOMATION PTE LTD 004079 JUKO MANUFACTURE COMPANY, LTD. 00407A SOCIETE D'EXPLOITATION DU CNIT 00407B SCIENTIFIC ATLANTA 00407C QUME CORPORATION 00407D EXTENSION TECHNOLOGY CORP. 00407E EVERGREEN SYSTEMS, INC. 00407F AGEMA INFRARED SYSTEMS AB 004080 ATHENIX CORPORATION 004081 MANNESMANN SCANGRAPHIC GMBH 004082 LABORATORY EQUIPMENT CORP. 004083 TDA INDUSTRIA DE PRODUTOS 004084 HONEYWELL INC. 004085 SAAB INSTRUMENTS AB 004086 MICHELS & KLEBERHOFF COMPUTER 004087 UBITREX CORPORATION 004088 MOBIUS TECHNOLOGIES, INC. 004089 MEIDENSHA CORPORATION 00408A TPS TELEPROCESSING SYS. GMBH 00408B RAYLAN CORPORATION 00408C AXIS COMMUNICATIONS AB 00408D THE GOODYEAR TIRE & RUBBER CO. 00408E DIGILOG, INC. 00408F WM-DATA MINFO AB 004090 ANSEL COMMUNICATIONS 004091 PROCOMP INDUSTRIA ELETRONICA 004092 ASP COMPUTER PRODUCTS, INC. 004093 PAXDATA NETWORKS LTD. 004094 SHOGRAPHICS, INC. 004095 R.P.T. INTERGROUPS INT'L LTD. 004096 Aironet Wireless Communication 004097 DATEX DIVISION OF 004098 DRESSLER GMBH & CO. 004099 NEWGEN SYSTEMS CORP. 00409A NETWORK EXPRESS, INC. 00409B HAL COMPUTER SYSTEMS INC. 00409C TRANSWARE 00409D DIGIBOARD, INC. 00409E CONCURRENT TECHNOLOGIES LTD. 00409F LANCAST/CASAT TECHNOLOGY, INC. 0040A0 GOLDSTAR CO., LTD. 0040A1 ERGO COMPUTING 0040A2 KINGSTAR TECHNOLOGY INC. 0040A3 MICROUNITY SYSTEMS ENGINEERING 0040A4 ROSE ELECTRONICS 0040A5 CLINICOMP INTL. 0040A6 Cray, Inc. 0040A7 ITAUTEC PHILCO S.A. 0040A8 IMF INTERNATIONAL LTD. 0040A9 DATACOM INC. 0040AA VALMET AUTOMATION INC. 0040AB ROLAND DG CORPORATION 0040AC SUPER WORKSTATION, INC. 0040AD SMA REGELSYSTEME GMBH 0040AE DELTA CONTROLS, INC. 0040AF DIGITAL PRODUCTS, INC. 0040B0 BYTEX CORPORATION, ENGINEERING 0040B1 CODONICS INC. 0040B2 SYSTEMFORSCHUNG 0040B3 PAR MICROSYSTEMS CORPORATION 0040B4 NEXTCOM K.K. 0040B5 VIDEO TECHNOLOGY COMPUTERS LTD 0040B6 COMPUTERM CORPORATION 0040B7 STEALTH COMPUTER SYSTEMS 0040B8 IDEA ASSOCIATES 0040B9 MACQ ELECTRONIQUE SA 0040BA ALLIANT COMPUTER SYSTEMS CORP. 0040BB GOLDSTAR CABLE CO., LTD. 0040BC ALGORITHMICS LTD. 0040BD STARLIGHT NETWORKS, INC. 0040BE BOEING DEFENSE & SPACE 0040BF CHANNEL SYSTEMS INTERN'L INC. 0040C0 VISTA CONTROLS CORPORATION 0040C1 BIZERBA-WERKE WILHEIM KRAUT 0040C2 APPLIED COMPUTING DEVICES 0040C3 FISCHER AND PORTER CO. 0040C4 KINKEI SYSTEM CORPORATION 0040C5 MICOM COMMUNICATIONS INC. 0040C6 FIBERNET RESEARCH, INC. 0040C7 RUBY TECH CORPORATION 0040C8 MILAN TECHNOLOGY CORPORATION 0040C9 NCUBE 0040CA FIRST INTERNAT'L COMPUTER, INC 0040CB LANWAN TECHNOLOGIES 0040CC SILCOM MANUF'G TECHNOLOGY INC. 0040CD TERA MICROSYSTEMS, INC. 0040CE NET-SOURCE, INC. 0040CF STRAWBERRY TREE, INC. 0040D0 MITAC INTERNATIONAL CORP. 0040D1 FUKUDA DENSHI CO., LTD. 0040D2 PAGINE CORPORATION 0040D3 KIMPSION INTERNATIONAL CORP. 0040D4 GAGE TALKER CORP. 0040D5 SARTORIUS AG 0040D6 LOCAMATION B.V. 0040D7 STUDIO GEN INC. 0040D8 OCEAN OFFICE AUTOMATION LTD. 0040D9 AMERICAN MEGATRENDS INC. 0040DA TELSPEC LTD 0040DB ADVANCED TECHNICAL SOLUTIONS 0040DC TRITEC ELECTRONIC GMBH 0040DD HONG TECHNOLOGIES 0040DE ELETTRONICA SAN GIORGIO 0040DF DIGALOG SYSTEMS, INC. 0040E0 ATOMWIDE LTD. 0040E1 MARNER INTERNATIONAL, INC. 0040E2 MESA RIDGE TECHNOLOGIES, INC. 0040E3 QUIN SYSTEMS LTD 0040E4 E-M TECHNOLOGY, INC. 0040E5 SYBUS CORPORATION 0040E6 C.A.E.N. 0040E7 ARNOS INSTRUMENTS & COMPUTER 0040E8 CHARLES RIVER DATA SYSTEMS,INC 0040E9 ACCORD SYSTEMS, INC. 0040EA PLAIN TREE SYSTEMS INC 0040EB MARTIN MARIETTA CORPORATION 0040EC MIKASA SYSTEM ENGINEERING 0040ED NETWORK CONTROLS INT'NATL INC. 0040EE OPTIMEM 0040EF HYPERCOM, INC. 0040F0 MICRO SYSTEMS, INC. 0040F1 CHUO ELECTRONICS CO., LTD. 0040F2 JANICH & KLASS COMPUTERTECHNIK 0040F3 NETCOR 0040F4 CAMEO COMMUNICATIONS, INC. 0040F5 OEM ENGINES 0040F6 KATRON COMPUTERS INC. 0040F7 POLAROID MEDICAL IMAGING SYS. 0040F8 SYSTEMHAUS DISCOM 0040F9 COMBINET 0040FA MICROBOARDS, INC. 0040FB CASCADE COMMUNICATIONS CORP. 0040FC IBR COMPUTER TECHNIK GMBH 0040FD LXE 0040FE SYMPLEX COMMUNICATIONS 0040FF TELEBIT CORPORATION 005000 NEXO COMMUNICATIONS, INC. 005001 YAMASHITA SYSTEMS CORP. 005002 OMNISEC AG 005003 GRETAG MACBETH AG 005004 3COM CORPORATION 005006 TAC AB 005007 SIEMENS TELECOMMUNICATION 005008 TIVA MICROCOMPUTER CORP. (TMC) 005009 PHILIPS BROADBAND NETWORKS 00500A IRIS TECHNOLOGIES, INC. 00500B CISCO SYSTEMS, INC. 00500C ETEK LABS, INC. 00500D SATORI ELECTORIC CO., LTD. 00500E CHROMATIS NETWORKS,INC. 00500F CISCO SYSTEMS, INC. 005010 NOVANET LEARNING, INC. 005012 CBL - GMBH 005013 Chaparral Technologies, Inc. 005014 CISCO SYSTEMS, INC. 005015 BRIGHT STAR ENGINEERING 005016 SST/WOODHEAD INDUSTRIES 005017 RSR S.R.L. 005018 ADVANCED MULTIMEDIA INTERNET 005019 SPRING TIDE NETWORKS, INC. 00501A UISIQN 00501B ABL CANADA, INC. 00501C JATOM SYSTEMS, INC. 00501E MIRANDA TECHNOLOGIES, INC. 00501F MRG SYSTEMS, LTD. 005020 MEDIASTAR CO., LTD. 005021 EIS INTERNATIONAL, INC. 005022 ZONET TECHNOLOGY, INC. 005023 PG DESIGN ELECTRONICS, INC. 005024 NAVIC SYSTEMS, INC. 005026 COSYSTEMS, INC. 005027 GENICOM CORPORATION 005028 AVAL COMMUNICATIONS 005029 1394 PRINTER WORKING GROUP 00502A CISCO SYSTEMS, INC. 00502B GENRAD LTD. 00502C SOYO COMPUTER, INC. 00502D ACCEL, INC. 00502E CAMBEX CORPORATION 00502F TOLLBRIDGE TECHNOLOGIES, INC. 005030 FUTURE PLUS SYSTEMS 005031 AEROFLEX LABORATORIES, INC. 005032 PICAZO COMMUNICATIONS, INC. 005033 MAYAN NETWORKS 005036 NETCAM, LTD. 005037 KOGA ELECTRONICS CO. 005038 DAIN TELECOM CO., LTD. 005039 MARINER NETWORKS 00503A DATONG ELECTRONICS LTD. 00503B MEDIAFIRE CORPORATION 00503C TSINGHUA NOVEL ELECTRONICS 00503E CISCO SYSTEMS, INC. 00503F ANCHOR GAMES 005040 EMWARE, INC. 005041 CTX OPTO ELECTRONIC CORP. 005042 SCI MANUFACTURING 005043 MARVELL SEMICONDUCTOR, INC. 005044 ASACA CORPORATION 005045 RIOWORKS SOLUTIONS, INC. 005046 MENICX INTERNATIONAL CO., LTD. 005048 INFOLIBRIA 005049 ELLACOYA NETWORKS, INC. 00504A ELTECO A.S. 00504B BARCONET N.V. 00504C GALIL MOTION CONTROL, INC. 00504D TOKYO ELECTRON DEVICE LTD. 00504E SIERRA MONITOR CORP. 00504F OLENCOM ELECTRONICS 005050 CISCO SYSTEMS, INC. 005051 IWATSU ELECTRIC CO., LTD. 005052 TIARA NETWORKS, INC. 005053 CISCO SYSTEMS, INC. 005054 CISCO SYSTEMS, INC. 005055 DOMS A/S 005056 VMWARE, INC. 005057 BROADBAND ACCESS SYSTEMS 005058 VEGASTREAM LIMITED 005059 SUITE TECHNOLOGY SYSTEMS 00505A NETWORK ALCHEMY, INC. 00505B KAWASAKI LSI U.S.A., INC. 00505C TUNDO CORPORATION 00505E DIGITEK MICROLOGIC S.A. 00505F BRAND INNOVATORS 005060 TANDBERG TELECOM AS 005062 KOUWELL ELECTRONICS CORP. ** 005063 OY COMSEL SYSTEM AB 005064 CAE ELECTRONICS 005065 DENSEI-LAMBAD Co., Ltd. 005066 ATECOM GMBH ADVANCED 005067 AEROCOMM, INC. 005068 ELECTRONIC INDUSTRIES 005069 PIXSTREAM INCORPORATED 00506A EDEVA, INC. 00506B SPX-ATEG 00506C G & L BEIJER ELECTRONICS AB 00506D VIDEOJET SYSTEMS 00506E CORDER ENGINEERING CORPORATION 00506F G-CONNECT 005070 CHAINTECH COMPUTER CO., LTD. 005071 AIWA CO., LTD. 005072 CORVIS CORPORATION 005073 CISCO SYSTEMS, INC. 005074 ADVANCED HI-TECH CORP. 005075 KESTREL SOLUTIONS 005076 IBM 005077 PROLIFIC TECHNOLOGY, INC. 005078 MEGATON HOUSE, LTD. 00507A XPEED, INC. 00507B MERLOT COMMUNICATIONS 00507C VIDEOCON AG 00507D IFP 00507E NEWER TECHNOLOGY 00507F DRAYTEK CORP. 005080 CISCO SYSTEMS, INC. 005081 MURATA MACHINERY, LTD. 005082 FORESSON CORPORATION 005083 GILBARCO, INC. 005084 ATL PRODUCTS 005086 TELKOM SA, LTD. 005087 TERASAKI ELECTRIC CO., LTD. 005088 AMANO CORPORATION 005089 SAFETY MANAGEMENT SYSTEMS 00508B COMPAQ COMPUTER CORPORATION 00508C RSI SYSTEMS 00508D ABIT COMPUTER CORPORATION 00508E OPTIMATION, INC. 00508F ASITA TECHNOLOGIES INT'L LTD. 005090 DCTRI 005091 NETACCESS, INC. 005092 RIGAKU INDUSTRIAL CORPORATION 005093 BOEING 005094 PACE MICRO TECHNOLOGY PLC 005095 PERACOM NETWORKS 005096 SALIX TECHNOLOGIES, INC. 005097 MMC-EMBEDDED 005098 GLOBALOOP, LTD. 005099 3COM EUROPE, LTD. 00509A TAG ELECTRONIC SYSTEMS 00509B SWITCHCORE AB 00509C BETA RESEARCH 00509D THE INDUSTREE B.V. 00509E LES TECHNOLOGIES 00509F HORIZON COMPUTER 0050A0 DELTA COMPUTER SYSTEMS, INC. 0050A1 CARLO GAVAZZI, INC. 0050A2 CISCO SYSTEMS, INC. 0050A3 TRANSMEDIA COMMUNICATIONS, INC 0050A4 IO TECH, INC. 0050A5 CAPITOL BUSINESS SYSTEMS, LTD. 0050A6 OPTRONICS 0050A7 CISCO SYSTEMS, INC. 0050A8 OPENCON SYSTEMS, INC. 0050A9 MOLDAT WIRELESS TECHNOLGIES 0050AA KONICA CORPORATION 0050AB NALTEC, INC. 0050AC MAPLE COMPUTER CORPORATION 0050AD COMMUNIQUE WIRELESS CORP. 0050AE IWAKI ELECTRONICS CO., LTD. 0050AF INTERGON, INC. 0050B0 TECHNOLOGY ATLANTA CORPORATION 0050B1 GIDDINGS & LEWIS 0050B2 BRODEL AUTOMATION 0050B3 VOICEBOARD CORPORATION 0050B4 SATCHWELL CONTROL SYSTEMS, LTD 0050B5 FICHET-BAUCHE 0050B6 GOOD WAY IND. CO., LTD. 0050B7 BOSER TECHNOLOGY CO., LTD. 0050B8 INOVA COMPUTERS GMBH & CO. KG 0050B9 XITRON TECHNOLOGIES, INC. 0050BA D-LINK 0050BB CMS TECHNOLOGIES 0050BC HAMMER STORAGE SOLUTIONS 0050BD CISCO SYSTEMS, INC. 0050BE FAST MULTIMEDIA AG 0050BF MOTOTECH INC. 0050C0 GATAN, INC. 0050C1 GEMFLEX NETWORKS, LTD. 0050C2 IEEE REGISTRATION AUTHORITY 0050C4 IMD 0050C5 ADS TECHNOLOGIES, INC. 0050C6 LOOP TELECOMMUNICATION 0050C8 ADDONICS COMMUNICATIONS, INC. 0050C9 MASPRO DENKOH CORP. 0050CA NET TO NET TECHNOLOGIES 0050CB JETTER 0050CC XYRATEX 0050CD DIGIANSWER A/S 0050CE LG INTERNATIONAL CORP. 0050CF VANLINK COMMUNICATION 0050D0 MINERVA SYSTEMS 0050D1 CISCO SYSTEMS, INC. 0050D2 BAE Systems Canada, Inc. 0050D3 DIGITAL AUDIO 0050D4 JOOHONG INFORMATION & 0050D5 AD SYSTEMS CORP. 0050D6 ATLAS COPCO TOOLS AB 0050D7 TELSTRAT 0050D8 UNICORN COMPUTER CORP. 0050D9 ENGETRON-ENGENHARIA ELETRONICA 0050DA 3COM CORPORATION 0050DB CONTEMPORARY CONTROL 0050DC TAS TELEFONBAU A. SCHWABE 0050DD SERRA SOLDADURA, S.A. 0050DE SIGNUM SYSTEMS CORP. 0050DF AIRFIBER, INC. 0050E1 NS TECH ELECTRONICS SDN BHD 0050E2 CISCO SYSTEMS, INC. 0050E3 TELEGATE 0050E4 APPLE COMPUTER, INC. 0050E6 HAKUSAN CORPORATION 0050E7 PARADISE INNOVATIONS (ASIA) 0050E8 NOMADIX INC. 0050EA XEL COMMUNICTIONS, INC. 0050EB ALPHA-TOP CORPORATION 0050EC OLICOM A/S 0050ED ANDA NETWORKS 0050EE TEK DIGITEL CORPORATION 0050EF SPE SYSTEMHAUS GMBH 0050F0 CISCO SYSTEMS, INC. 0050F1 LIBIT SIGNAL PROCESSING, LTD. 0050F2 MICROSOFT CORP. 0050F3 GLOBAL NET INFORMATION CO.,LTD 0050F4 SIGMATEK GMBH & CO. KG 0050F6 PAN-INTERNATIONAL 0050F7 VENTURE MANUFACTURING 0050F8 ENTREGA TECHNOLOGIES, INC. 0050FA OXTEL, LTD. 0050FB VSK ELECTRONICS 0050FC EDIMAX TECHNOLOGY CO., LTD. 0050FD ISIONCOMM CO., LTD. 0050FE PCTVNET ASA 0050FF HAKKO ELECTRONICS CO., LTD. 006000 XYCOM INC. 006001 INNOSYS, INC. 006002 SCREEN SUBTITLING SYSTEMS, LTD 006003 TERAOKA WEIGH SYSTEM PTE, LTD. 006004 COMPUTADORES MODULARES SA 006005 FEEDBACK DATA LTD. 006006 SOTEC CO., LTD 006007 ACRES GAMING, INC. 006008 3COM CORPORATION 006009 CISCO SYSTEMS, INC. 00600A SORD COMPUTER CORPORATION 00600B LOGWARE GMBH 00600C APPLIED DATA SYSTEMS, INC. 00600D MICRODESIGN GMBH 00600E WAVENET INTERNATIONAL, INC. 00600F WESTELL, INC. 006010 NETWORK MACHINES, INC. 006011 CRYSTAL SEMICONDUCTOR CORP. 006012 POWER COMPUTING CORPORATION 006013 NETSTAL MASCHINEN AG 006014 EDEC CO., LTD. 006015 NET2NET CORPORATION 006016 CLARIION 006017 TOKIMEC INC. 006018 STELLAR ONE CORPORATION 006019 BOEHRINGER MANNHEIM CORP. 00601A KEITHLEY INSTRUMENTS 00601B MESA ELECTRONICS 00601C TELXON CORPORATION 00601D LUCENT TECHNOLOGIES 00601E SOFTLAB, INC. 00601F STALLION TECHNOLOGIES 006020 PIVOTAL NETWORKING, INC. 006021 DSC CORPORATION 006022 VICOM SYSTEMS, INC. 006023 PERICOM SEMICONDUCTOR CORP. 006024 GRADIENT TECHNOLOGIES, INC. 006025 ACTIVE IMAGING PLC 006026 VIKING COMPONENTS, INC. 006027 Superior Modular Products 006028 MACROVISION CORPORATION 006029 CARY PERIPHERALS INC. 00602A SYMICRON COMPUTER 00602B PEAK AUDIO 00602C LINX DATA TERMINALS, INC. 00602D ALERTON TECHNOLOGIES, INC. 00602E CYCLADES CORPORATION 00602F CISCO SYSTEMS, INC. 006030 VILLAGE TRONIC 006031 HRK SYSTEMS 006032 I-CUBE, INC. 006033 ACUITY IMAGING, INC. 006034 ROBERT BOSCH GMBH 006035 DALLAS SEMICONDUCTOR, INC. 006036 AUSTRIAN RESEARCH CENTER 006037 PHILIPS SEMICONDUCTORS 006038 Nortel Networks 006039 SANCOM TECHNOLOGY, INC. 00603A QUICK CONTROLS LTD. 00603B AMTEC SPA 00603C HAGIWARA SYS-COM CO., LTD. 00603D 3CX 00603E CISCO SYSTEMS, INC. 00603F PATAPSCO DESIGNS 006040 NETRO CORP. 006041 Yokogawa Electric Corporation 006042 TKS (USA), INC. 006043 COMSOFT SYSTEMS, INC. 006044 LITTON/POLY-SCIENTIFIC 006045 PATHLIGHT TECHNOLOGIES 006046 VMETRO, INC. 006047 CISCO SYSTEMS, INC. 006048 EMC CORPORATION 006049 VINA TECHNOLOGIES 00604A SAIC IDEAS GROUP 00604B BIODATA GMBH 00604C SAT 00604D MMC NETWORKS, INC. 00604E CYCLE COMPUTER CORPORATION, INC. 00604F SUZUKI MFG. CO., LTD. 006050 INTERNIX INC. 006051 QUALITY SEMICONDUCTOR 006052 PERIPHERALS ENTERPRISE CO., L. 006053 TOYODA MACHINE WORKS, LTD. 006054 CONTROLWARE GMBH 006055 CORNELL UNIVERSITY 006056 NETWORK TOOLS, INC. 006057 MURATA MANUFACTURING CO., LTD. 006058 COPPER MOUNTAIN 006059 TECHNICAL COMMUNICATIONS CORP. 00605A CELCORE, INC. 00605B INTRASERVER TECHNOLOGY INC. 00605C CISCO SYSTEMS, INC. 00605D SCANIVALVE CORP. 00605E LIBERTY TECHNOLOGY NETWORKING 00605F NIPPON UNISOFT CORPORATION 006060 DAWNING TECHNOLOGIES, INC. 006061 WHISTLE COMMUNICATIONS CORP. 006062 TELESYNC, INC. 006063 PSION DACOM PLC. 006064 NETCOMM LIMITED 006065 BERNECKER & RAINER 006066 LACROIX TECHNOLGIE 006067 ACER NETXUS INC. 006068 EICON TECHNOLOGY CORPORATION 006069 BROCADE COMMUNICATIONS SYSTEMS 00606A MITSUBISHI WIRELESS COMM. INC. 00606B AICHI ELECTRONICS CO.,LTD. 00606C ARESCOM 00606D DIGITAL EQUIPMENT CORP. 00606E DAVICOM SEMICONDUCTOR, INC. 00606F CLARION CORPORATION OF AMERICA 006070 CISCO SYSTEMS, INC. 006071 MIDAS LAB, INC. 006072 VXL INSTRUMENTS, LIMITED 006073 REDCREEK COMMUNICATIONS, INC. 006074 QSC AUDIO PRODUCTS 006075 PENTEK, INC. 006076 SCHLUMBERGER TECHNOLOGIES 006077 PRISA NETWORKS 006078 POWER MEASUREMENT LTD. 006079 WAVEPHORE NETWORKS, INC. 00607A DVS GMBH 00607B FORE SYSTEMS, INC. 00607C WAVEACCESS, LTD. 00607D SENTIENT NETWORKS INC. 00607E GIGALABS, INC. 00607F AURORA TECHNOLOGIES, INC. 006080 MICROTRONIX DATACOM LTD. 006081 TV/COM INTERNATIONAL 006082 NOVALINK TECHNOLOGIES, INC. 006083 CISCO SYSTEMS, INC. 006084 DIGITAL VIDEO 006085 STORAGE CONCEPTS 006086 LOGIC REPLACEMENT TECH. LTD. 006087 KANSAI ELECTRIC CO., LTD. 006088 WHITE MOUNTAIN DSP, INC. 006089 XATA 00608A CITADEL COMPUTER 00608B CONFERTECH INTERNATIONAL 00608C 3COM CORPORATION 00608D UNIPULSE CORP. 00608E HE ELECTRONICS, TECHNOLOGIE & 00608F TEKRAM TECHNOLOGY CO., LTD. 006090 ABLE COMMUNICATIONS, INC. 006091 FIRST PACIFIC NETWORKS, INC. 006092 MICRO/SYS, INC. 006093 VARIAN 006094 IBM CORP. 006095 ACCU-TIME SYSTEMS, INC. 006096 T.S. MICROTECH INC. 006097 3COM CORPORATION 006098 HT COMMUNICATIONS 006099 LAN MEDIA CORPORATION 00609A NJK TECHNO CO. 00609B ASTRO-MED, INC. 00609C PERKIN-ELMER CORPORATION 00609D PMI FOOD EQUIPMENT GROUP 00609E X3 - INFORMATION TECHNOLOGY 00609F PHAST CORPORATION 0060A0 SWITCHED NETWORK 0060A1 VPNET 0060A2 NIHON UNISYS LIMITED CO. 0060A3 CONTINUUM TECHNOLOGY CORP. 0060A4 GRINAKER SYSTEM TECHNOLOGIES 0060A5 PERFORMANCE TELECOM CORP. 0060A6 PARTICLE MEASURING SYSTEMS 0060A7 MICROSENS GMBH & CO. KG 0060A8 TIDOMAT AB 0060A9 GESYTEC MBH 0060AA INTELLIGENT DEVICES INC. (IDI) 0060AB LARSCOM INCORPORATED 0060AC RESILIENCE CORPORATION 0060AD MEGACHIPS CORPORATION 0060AE TRIO INFORMATION SYSTEMS AB 0060AF PACIFIC MICRO DATA, INC. 0060B0 HEWLETT-PACKARD CO. 0060B1 INPUT/OUTPUT, INC. 0060B2 PROCESS CONTROL CORP. 0060B3 Z-COM, INC. 0060B4 GLENAYRE R&D INC. 0060B5 KEBA GMBH 0060B6 LAND COMPUTER CO., LTD. 0060B7 CHANNELMATIC, INC. 0060B8 CORELIS INC. 0060B9 NITSUKO CORPORATION 0060BA SAHARA NETWORKS, INC. 0060BB CABLETRON - NETLINK, INC. 0060BC KEUNYOUNG ELECTRONICS & 0060BD HUBBELL-PULSECOM 0060BE WEBTRONICS 0060BF MACRAIGOR SYSTEMS, INC. 0060C0 NERA AS 0060C1 WAVESPAN CORPORATION 0060C2 MPL AG 0060C3 NETVISION CORPORATION 0060C4 SOLITON SYSTEMS K.K. 0060C5 ANCOT CORP. 0060C6 DCS AG 0060C7 AMATI COMMUNICATIONS CORP. 0060C8 KUKA WELDING SYSTEMS & ROBOTS 0060C9 CONTROLNET, INC. 0060CA HARMONIC SYSTEMS INCORPORATED 0060CB HITACHI ZOSEN CORPORATION 0060CC EMTRAK, INCORPORATED 0060CD VIDEOSERVER, INC. 0060CE ACCLAIM COMMUNICATIONS 0060CF ALTEON NETWORKS, INC. 0060D0 SNMP RESEARCH INCORPORATED 0060D1 CASCADE COMMUNICATIONS 0060D2 LUCENT TECHNOLOGIES TAIWAN 0060D3 AT&T 0060D4 ELDAT COMMUNICATION LTD. 0060D5 MIYACHI TECHNOS CORP. 0060D6 NOVATEL WIRELESS TECHNOLOGIES 0060D7 ECOLE POLYTECHNIQUE FEDERALE 0060D8 ELMIC SYSTEMS, INC. 0060D9 TRANSYS NETWORKS INC. 0060DA JBM ELECTRONICS CO. 0060DB NTP ELEKTRONIK A/S 0060DC TOYO COMMUNICATION EQUIPMENT 0060DD MYRICOM, INC. 0060DE KAYSER-THREDE GMBH 0060DF INRANGE TECHNOLOGIES CORP. 0060E0 AXIOM TECHNOLOGY CO., LTD. 0060E1 ORCKIT COMMUNICATIONS LTD. 0060E2 QUEST ENGINEERING & DEV. 0060E3 ARBIN INSTRUMENTS 0060E4 COMPUSERVE, INC. 0060E5 FUJI AUTOMATION CO., LTD. 0060E6 SHOMITI SYSTEMS INCORPORATED 0060E7 RANDATA 0060E8 HITACHI COMPUTER PRODUCTS 0060E9 ATOP TECHNOLOGIES, INC. 0060EA STREAMLOGIC 0060EB FOURTHTRACK SYSTEMS 0060EC HERMARY OPTO ELECTRONICS INC. 0060ED RICARDO TEST AUTOMATION LTD. 0060EE APOLLO 0060EF FLYTECH TECHNOLOGY CO., LTD. 0060F0 JOHNSON & JOHNSON MEDICAL, INC 0060F1 EXP COMPUTER, INC. 0060F2 LASERGRAPHICS, INC. 0060F3 NETCOM SYSTEMS, INC. 0060F4 ADVANCED COMPUTER SOLUTIONS, 0060F5 ICON WEST, INC. 0060F6 NEXTEST COMMUNICATION 0060F7 DATAFUSION SYSTEMS 0060F8 LORAN INTERNATIONAL TECHN. INC 0060F9 DIAMOND LANE COMMUNICATIONS 0060FA EDUCATIONAL TECHNOLOGY 0060FB PACKETEER, INC. 0060FC CONSERVATION THROUGH 0060FD NETICS, INC. 0060FE LYNX SYSTEM DEVELOPERS, INC. 0060FF QUVIS, INC. 0070B0 M/A-COM INC. COMPANIES 0070B3 DATA RECALL LTD. 008000 MULTITECH SYSTEMS, INC. 008001 PERIPHONICS CORPORATION 008002 SATELCOM (UK) LTD 008003 HYTEC ELECTRONICS LTD. 008004 ANTLOW COMMUNICATIONS, LTD. 008005 CACTUS COMPUTER INC. 008006 COMPUADD CORPORATION 008007 DLOG NC-SYSTEME 008008 DYNATECH COMPUTER SYSTEMS 008009 JUPITER SYSTEMS, INC. 00800A JAPAN COMPUTER CORP. 00800B CSK CORPORATION 00800C VIDECOM LIMITED 00800D VOSSWINKEL F.U. 00800E ATLANTIX CORPORATION 00800F STANDARD MICROSYSTEMS 008010 COMMODORE INTERNATIONAL 008011 DIGITAL SYSTEMS INT'L. INC. 008012 INTEGRATED MEASUREMENT SYSTEMS 008013 THOMAS-CONRAD CORPORATION 008014 ESPRIT SYSTEMS 008015 SEIKO SYSTEMS, INC. 008016 WANDEL AND GOLTERMANN 008017 PFU LIMITED 008018 KOBE STEEL, LTD. 008019 DAYNA COMMUNICATIONS, INC. 00801A BELL ATLANTIC 00801B KODIAK TECHNOLOGY 00801C NEWPORT SYSTEMS SOLUTIONS 00801D INTEGRATED INFERENCE MACHINES 00801E XINETRON, INC. 00801F KRUPP ATLAS ELECTRONIK GMBH 008020 NETWORK PRODUCTS 008021 NEWBRIDGE RESEARCH CORP. 008022 SCAN-OPTICS 008023 INTEGRATED BUSINESS NETWORKS 008024 KALPANA, INC. 008025 STOLLMANN GMBH 008026 NETWORK PRODUCTS CORPORATION 008027 ADAPTIVE SYSTEMS, INC. 008028 TRADPOST (HK) LTD 008029 EAGLE TECHNOLOGY, INC. 00802A TEST SYSTEMS & SIMULATIONS INC 00802B INTEGRATED MARKETING CO 00802C THE SAGE GROUP PLC 00802D XYLOGICS INC 00802E CASTLE ROCK COMPUTING 00802F NATIONAL INSTRUMENTS CORP. 008030 NEXUS ELECTRONICS 008031 BASYS, CORP. 008032 ACCESS CO., LTD. 008033 FORMATION, INC. 008034 SMT GOUPIL 008035 TECHNOLOGY WORKS, INC. 008036 REFLEX MANUFACTURING SYSTEMS 008037 Ericsson Group 008038 DATA RESEARCH & APPLICATIONS 008039 ALCATEL STC AUSTRALIA 00803A VARITYPER, INC. 00803B APT COMMUNICATIONS, INC. 00803C TVS ELECTRONICS LTD 00803D SURIGIKEN CO., LTD. 00803E SYNERNETICS 00803F TATUNG COMPANY 008040 JOHN FLUKE MANUFACTURING CO. 008041 VEB KOMBINAT ROBOTRON 008042 FORCE COMPUTERS 008043 NETWORLD, INC. 008044 SYSTECH COMPUTER CORP. 008045 MATSUSHITA ELECTRIC IND. CO 008046 UNIVERSITY OF TORONTO 008047 IN-NET CORP. 008048 COMPEX INCORPORATED 008049 NISSIN ELECTRIC CO., LTD. 00804A PRO-LOG 00804B EAGLE TECHNOLOGIES PTY.LTD. 00804C CONTEC CO., LTD. 00804D CYCLONE MICROSYSTEMS, INC. 00804E APEX COMPUTER COMPANY 00804F DAIKIN INDUSTRIES, LTD. 008050 ZIATECH CORPORATION 008051 FIBERMUX 008052 TECHNICALLY ELITE CONCEPTS 008053 INTELLICOM, INC. 008054 FRONTIER TECHNOLOGIES CORP. 008055 FERMILAB 008056 SPHINX ELEKTRONIK GMBH 008057 ADSOFT, LTD. 008058 PRINTER SYSTEMS CORPORATION 008059 STANLEY ELECTRIC CO., LTD 00805A TULIP COMPUTERS INTERNAT'L B.V 00805B CONDOR SYSTEMS, INC. 00805C AGILIS CORPORATION 00805D CANSTAR 00805E LSI LOGIC CORPORATION 00805F COMPAQ COMPUTER CORPORATION 008060 NETWORK INTERFACE CORPORATION 008061 LITTON SYSTEMS, INC. 008062 INTERFACE CO. 008063 RICHARD HIRSCHMANN GMBH & CO. 008064 WYSE TECHNOLOGY 008065 CYBERGRAPHIC SYSTEMS PTY LTD. 008066 ARCOM CONTROL SYSTEMS, LTD. 008067 SQUARE D COMPANY 008068 YAMATECH SCIENTIFIC LTD. 008069 COMPUTONE SYSTEMS 00806A ERI (EMPAC RESEARCH INC.) 00806B SCHMID TELECOMMUNICATION 00806C CEGELEC PROJECTS LTD 00806D CENTURY SYSTEMS CORP. 00806E NIPPON STEEL CORPORATION 00806F ONELAN LTD. 008070 COMPUTADORAS MICRON 008071 SAI TECHNOLOGY 008072 MICROPLEX SYSTEMS LTD. 008073 DWB ASSOCIATES 008074 FISHER CONTROLS 008075 PARSYTEC GMBH 008076 MCNC 008077 BROTHER INDUSTRIES, LTD. 008078 PRACTICAL PERIPHERALS, INC. 008079 MICROBUS DESIGNS LTD. 00807A AITECH SYSTEMS LTD. 00807B ARTEL COMMUNICATIONS CORP. 00807C FIBERCOM, INC. 00807D EQUINOX SYSTEMS INC. 00807E SOUTHERN PACIFIC LTD. 00807F DY-4 INCORPORATED 008080 DATAMEDIA CORPORATION 008081 KENDALL SQUARE RESEARCH CORP. 008082 PEP MODULAR COMPUTERS GMBH 008083 AMDAHL 008084 THE CLOUD INC. 008085 H-THREE SYSTEMS CORPORATION 008086 COMPUTER GENERATION INC. 008087 OKI ELECTRIC INDUSTRY CO., LTD 008088 VICTOR COMPANY OF JAPAN, LTD. 008089 TECNETICS (PTY) LTD. 00808A SUMMIT MICROSYSTEMS CORP. 00808B DACOLL LIMITED 00808C NetScout Systems, Inc. 00808D WESTCOAST TECHNOLOGY B.V. 00808E RADSTONE TECHNOLOGY 00808F C. ITOH ELECTRONICS, INC. 008090 MICROTEK INTERNATIONAL, INC. 008091 TOKYO ELECTRIC CO.,LTD 008092 JAPAN COMPUTER INDUSTRY, INC. 008093 XYRON CORPORATION 008094 ALFA LAVAL AUTOMATION AB 008095 BASIC MERTON HANDELSGES.M.B.H. 008096 HUMAN DESIGNED SYSTEMS, INC. 008097 CENTRALP AUTOMATISMES 008098 TDK CORPORATION 008099 KLOCKNER MOELLER IPC 00809A NOVUS NETWORKS LTD 00809B JUSTSYSTEM CORPORATION 00809C LUXCOM, INC. 00809D Commscraft Ltd. 00809E DATUS GMBH 00809F ALCATEL BUSINESS SYSTEMS 0080A0 EDISA HEWLETT PACKARD S/A 0080A1 MICROTEST, INC. 0080A2 CREATIVE ELECTRONIC SYSTEMS 0080A3 LANTRONIX 0080A4 LIBERTY ELECTRONICS 0080A5 SPEED INTERNATIONAL 0080A6 REPUBLIC TECHNOLOGY, INC. 0080A7 MEASUREX CORP. 0080A8 VITACOM CORPORATION 0080A9 CLEARPOINT RESEARCH 0080AA MAXPEED 0080AB DUKANE NETWORK INTEGRATION 0080AC IMLOGIX, DIVISION OF GENESYS 0080AD CNET TECHNOLOGY, INC. 0080AE HUGHES NETWORK SYSTEMS 0080AF ALLUMER CO., LTD. 0080B0 ADVANCED INFORMATION 0080B1 SOFTCOM A/S 0080B2 NETWORK EQUIPMENT TECHNOLOGIES 0080B3 AVAL DATA CORPORATION 0080B4 SOPHIA SYSTEMS 0080B5 UNITED NETWORKS INC. 0080B6 THEMIS COMPUTER 0080B7 STELLAR COMPUTER 0080B8 BUG, INCORPORATED 0080B9 ARCHE TECHNOLIGIES INC. 0080BA SPECIALIX (ASIA) PTE, LTD 0080BB HUGHES LAN SYSTEMS 0080BC HITACHI ENGINEERING CO., LTD 0080BD THE FURUKAWA ELECTRIC CO., LTD 0080BE ARIES RESEARCH 0080BF TAKAOKA ELECTRIC MFG. CO. LTD. 0080C0 PENRIL DATACOMM 0080C1 LANEX CORPORATION 0080C2 IEEE 802 COMMITTEE 0080C3 BICC INFORMATION SYSTEMS & SVC 0080C4 DOCUMENT TECHNOLOGIES, INC. 0080C5 NOVELLCO DE MEXICO 0080C6 NATIONAL DATACOMM CORPORATION 0080C7 XIRCOM 0080C8 D-LINK SYSTEMS, INC. 0080C9 ALBERTA MICROELECTRONIC CENTRE 0080CA NETCOM RESEARCH INCORPORATED 0080CB FALCO DATA PRODUCTS 0080CC MICROWAVE BYPASS SYSTEMS 0080CD MICRONICS COMPUTER, INC. 0080CE BROADCAST TELEVISION SYSTEMS 0080CF EMBEDDED PERFORMANCE INC. 0080D0 COMPUTER PERIPHERALS, INC. 0080D1 KIMTRON CORPORATION 0080D2 SHINNIHONDENKO CO., LTD. 0080D3 SHIVA CORP. 0080D4 CHASE RESEARCH LTD. 0080D5 CADRE TECHNOLOGIES 0080D6 NUVOTECH, INC. 0080D7 FANTUM ENGINEERING, INC. 0080D8 NETWORK PERIPHERALS INC. 0080D9 EMK ELEKTRONIK 0080DA BRUEL & KJAER 0080DB GRAPHON CORPORATION 0080DC PICKER INTERNATIONAL 0080DD GMX INC/GIMIX 0080DE GIPSI S.A. 0080DF ADC CODENOLL TECHNOLOGY CORP. 0080E0 XTP SYSTEMS, INC. 0080E1 STMICROELECTRONICS 0080E2 T.D.I. CO., LTD. 0080E3 CORAL NETWORK CORPORATION 0080E4 NORTHWEST DIGITAL SYSTEMS, INC 0080E5 MYLEX CORPORATION 0080E6 PEER NETWORKS, INC. 0080E7 LYNWOOD SCIENTIFIC DEV. LTD. 0080E8 CUMULUS CORPORATIION 0080E9 MADGE NETWORKS 0080EA ADVA Optical Networking Ltd. 0080EB COMPCONTROL B.V. 0080EC SUPERCOMPUTING SOLUTIONS, INC. 0080ED IQ TECHNOLOGIES, INC. 0080EE THOMSON CSF 0080EF RATIONAL 0080F0 KYUSHU MATSUSHITA ELECTRIC CO. 0080F1 OPUS SYSTEMS 0080F2 RAYCOM SYSTEMS INC 0080F3 SUN ELECTRONICS CORP. 0080F4 TELEMECANIQUE ELECTRIQUE 0080F5 QUANTEL LTD 0080F6 SYNERGY MICROSYSTEMS 0080F7 ZENITH ELECTRONICS 0080F8 MIZAR, INC. 0080F9 HEURIKON CORPORATION 0080FA RWT GMBH 0080FB BVM LIMITED 0080FC AVATAR CORPORATION 0080FD EXSCEED CORPRATION 0080FE AZURE TECHNOLOGIES, INC. 0080FF SOC. DE TELEINFORMATIQUE RTC 009000 DIAMOND MULTIMEDIA 009001 NISHIMU ELCTRONICS INDUSTRIES 009002 ALLGON AB 009003 APLIO 009004 3COM EUROPE LTD. 009005 PROTECH SYSTEMS CO., LTD. 009006 HAMAMATSU PHOTONICS K.K. 009007 DOMEX TECHNOLOGY CORP. 009008 HAN A SYSTEMS, INC. 009009 i Controls, Inc. 00900A PROTON ELECTRONIC INDUSTRIAL 00900B LANNER ELECTRONICS, INC. 00900C CISCO SYSTEMS, INC. 00900D OVERLAND DATA INC. 00900E HANDLINK TECHNOLOGIES, INC. 00900F KAWASAKI HEAVY INDUSTRIES, LTD 009010 SIMULATION LABORATORIES, INC. 009011 WAVTRACE, INC. 009012 GLOBESPAN SEMICONDUCTOR, INC. 009013 SAMSAN CORP. 009014 ROTORK INSTRUMENTS, LTD. 009015 CENTIGRAM COMMUNICATIONS CORP. 009016 ZAC 009017 ZYPCOM, INC. 009018 ITO ELECTRIC INDUSTRY CO, LTD. 009019 HERMES ELECTRONICS CO., LTD. 00901A UNISPHERE SOLUTIONS 00901B DIGITAL CONTROLS 00901C MPS SOFTWARE GMBH 00901D PEC (NZ) LTD. 00901E SELESTA INGEGNE RIA S.P.A. 00901F ADTEC PRODUCTIONS, INC. 009020 PHILIPS ANALYTICAL X-RAY B.V. 009021 CISCO SYSTEMS, INC. 009022 IVEX 009023 ZILOG INC. 009024 PIPELINKS, INC. 009025 VISION SYSTEMS LTD. PTY 009026 ADVANCED SWITCHING 009027 INTEL CORPORATION 009028 NIPPON SIGNAL CO., LTD. 009029 CRYPTO AG 00902A COMMUNICATION DEVICES, INC. 00902B CISCO SYSTEMS, INC. 00902C DATA & CONTROL EQUIPMENT LTD. 00902D DATA ELECTRONICS 00902E NAMCO LIMITED 00902F NETCORE SYSTEMS, INC. 009030 HONEYWELL-DATING 009031 MYSTICOM, LTD. 009032 PELCOMBE GROUP LTD. 009033 INNOVAPHONE GMBH 009034 IMAGIC, INC. 009035 ALPHA TELECOM, INC. 009036 ENS, INC. 009037 ACUCOMM, INC. 009038 FOUNTAIN TECHNOLOGIES, INC. 009039 SHASTA NETWORKS 00903A NIHON MEDIA TOOL INC. 00903B TRIEMS RESEARCH LAB, INC. 00903C ATLANTIC NETWORK SYSTEMS 00903D BIOPAC SYSTEMS, INC. 00903E N.V. PHILIPS INDUSTRIAL 00903F AZTEC RADIOMEDIA 009040 CASTLE NETWORKS, INC. 009041 APPLIED DIGITAL ACCESS 009042 ECCS 009043 NICHIBEI DENSHI CO., LTD. 009044 ASSURED DIGITAL, INC. 009045 MARIPOSA TECHNOLOGY 009046 DEXDYNE, LTD. 009047 GIGA FAST E. LTD. 009048 ZEAL CORPORATION 009049 ENTRIDIA CORPORATION 00904A CONCUR SYSTEM TECHNOLOGIES 00904B GEMTEK TECHNOLOGY CO., LTD. 00904C EPIGRAM, INC. 00904D SPEC S.A. 00904E DELEM BV 00904F ABB POWER T&D COMPANY, INC. 009050 TELESTE OY 009051 ULTIMATE TECHNOLOGY CORP. 009052 SELCOM ELETTRONICA S.R.L. 009053 DAEWOO ELECTRONICS CO., LTD. 009054 INNOVATIVE SEMICONDUCTORS, INC 009055 PARKER HANNIFIN CORPORATION 009056 TELESTREAM, INC. 009057 AANETCOM, INC. 009058 ULTRA ELECTRONICS LTD. 009059 TELECOM DEVICE K.K. 00905A DEARBORN GROUP, INC. 00905B RAYMOND AND LAE ENGINEERING 00905C EDMI 00905D NETCOM SICHERHEITSTECHNIK GMBH 00905E RAULAND-BORG CORPORATION 00905F CISCO SYSTEMS, INC. 009060 SYSTEM CREATE CORP. 009061 PACIFIC RESEARCH & ENGINEERING 009062 ICP VORTEX COMPUTERSYSTEME 009063 COHERENT COMMUNICATIONS 009064 THOMSON BROADCAST SYSTEMS 009065 FINISAR CORPORATION 009066 Troika Networks, Inc. 009067 WALKABOUT COMPUTERS, INC. 009068 DVT CORP. 009069 JUNIPER NETWORKS, INC. 00906A TURNSTONE SYSTEMS, INC. 00906B APPLIED RESOURCES, INC. 00906C GWT GLOBAL WEIGHING 00906D CISCO SYSTEMS, INC. 00906E PRAXON, INC. 00906F CISCO SYSTEMS, INC. 009070 NEO NETWORKS, INC. 009071 BADGER TECHNOLOGY, INC. 009072 SIMRAD AS 009073 GAIO TECHNOLOGY 009074 ARGON NETWORKS, INC. 009075 NEC DO BRASIL S.A. 009076 FMT AIRCRAFT GATE SUPPORT 009077 ADVANCED FIBRE COMMUNICATIONS 009078 MER TELEMANAGEMENT 009079 CLEARONE INC. 00907A SPECTRALINK CORP. 00907B E-TECH, INC. 00907C DIGITALCAST, INC. 00907D HOME WIRELESS NETWORKS 00907E VETRONIX CORP. 00907F WATCHGUARD TECHNOLOGIES, INC. 009080 NOT LIMITED, INC. 009081 ALOHA NETWORKS, INC. 009082 FORCE INSTITUTE 009083 TURBO COMMUNICATION, INC. 009084 ATECH SYSTEM 009085 GOLDEN ENTERPRISES, INC. 009086 CISCO SYSTEMS, INC. 009087 ITIS 009088 BAXALL SECURITY LTD. 009089 SOFTCOM MICROSYSTEMS, INC. 00908A BAYLY COMMUNICATIONS, INC. 00908B CELL COMPUTING, INC. 00908C ETREND ELECTRONICS, INC. 00908D VICKERS ELECTRONICS SYSTEMS 00908E Nortel Networks Broadband Access 00908F AUDIOCODES LTD. 009090 I-BUS 009091 DIGITALSCAPE, INC. 009092 CISCO SYSTEMS, INC. 009093 NANAO CORPORATION 009094 OSPREY TECHNOLOGIES, INC. 009095 UNIVERSAL AVIONICS 009096 ASKEY COMPUTER CORP. 009097 SYCAMORE NETWORKS 009098 SBC DESIGNS, INC. 009099 ALLIED TELESIS,K.K. 00909A ONE WORLD SYSTEMS, INC. 00909B MARKPOINT AB 00909C COMBOX, LTD. 00909D GSE SYSTEMS, INC. 00909E DELPHI ENGINEERING GROUP 00909F DIGI-DATA CORPORATION 0090A0 8X8 INC. 0090A1 FLYING PIG SYSTEMS, LTD. 0090A2 CYBERTAN TECHNOLOGY, INC. 0090A3 MEDIALINCS CO., LTD. 0090A4 ALTIGA NETWORKS 0090A5 SPECTRA LOGIC 0090A6 CISCO SYSTEMS, INC. 0090A7 CLIENTEC CORPORATION 0090A8 NINETILES NETWORKS LTD. 0090A9 WESTERN DIGITAL 0090AA INDIGO ACTIVE VISION 0090AB CISCO SYSTEMS, INC. 0090AC OPTIVISION, INC. 0090AD ASPECT ELECTRONICS, INC. 0090AE ITALTEL SPA 0090AF J. MORITA MFG. CORP. 0090B0 VADEM 0090B1 CISCO SYSTEMS, INC. 0090B2 AVICI SYSTEMS INC. 0090B3 AGRANAT SYSTEMS 0090B4 WILLOWBROOK TECHNOLOGIES 0090B5 NIKON CORPORATION 0090B6 FIBEX SYSTEMS 0090B7 DIGITAL LIGHTWAVE, INC. 0090B8 ROHDE & SCHWARZ GMBH & CO. KG 0090B9 BERAN INSTRUMENTS LTD. 0090BA VALID NETWORKS, INC. 0090BB TAINET COMMUNICATION SYSTEM 0090BC TELEMANN CO., LTD. 0090BD OMNIA COMMUNICATIONS, INC. 0090BE IBC/INTEGRATED BUSINESS 0090BF CISCO SYSTEMS, INC. 0090C0 K.J. LAW ENGINEERS, INC. 0090C1 EDA INDUSTRIES 0090C2 JK MICROSYSTEMS, INC. 0090C3 TOPIC SEMICONDUCTOR CORP. 0090C4 JAVELIN SYSTEMS, INC. 0090C5 INTERNET MAGIC, INC. 0090C6 OPTIM SYSTEMS, INC. 0090C7 ICOM INC. 0090C8 WAVERIDER COMMUNICATIONS 0090C9 PRODUCTIVITY ENHANCEMENT 0090CA ACCORD VIDEO 0090CB WIRELESS ONLINE, INC. 0090CC PLANEX COMMUNICATIONS, INC. 0090CD ENT-EMPRESA NACIONAL 0090CE TETRA GMBH 0090CF NORTEL 0090D0 ALCATEL BELL 0090D1 LEICHU ENTERPRISE CO., LTD. 0090D2 ARTEL VIDEO SYSTEMS 0090D3 GIESECKE & DEVRIENT GMBH 0090D4 BINDVIEW DEVELOPMENT CORP. 0090D5 EUPHONIX, INC. 0090D6 CRYSTAL GROUP 0090D7 NETBOOST CORP. 0090D8 WHITECROSS SYSTEMS 0090D9 CISCO SYSTEMS, INC. 0090DA DYNARC, INC. 0090DB NEXT LEVEL COMMUNICATIONS 0090DC TECO INFORMATION SYSTEMS 0090DD THE MIHARU COMMUNICATIONS 0090DE CARDKEY SYSTEMS, INC. 0090DF MITSUBISHI CHEMICAL 0090E0 SYSTRAN CORP. 0090E1 TELENA S.P.A. 0090E2 DISTRIBUTED PROCESSING 0090E3 AVEX ELECTRONICS INC. 0090E4 NEC AMERICA, INC. 0090E5 TEKNEMA, INC. 0090E6 ACER LABORATORIES, INC. 0090E7 HORSCH ELEKTRONIK AG 0090E8 MOXA TECHNOLOGIES CORP., LTD. 0090E9 JANZ COMPUTER AG 0090EA ALPHA TECHNOLOGIES, INC. 0090EB SENTRY TELECOM SYSTEMS 0090EC PYRESCOM 0090ED CENTRAL SYSTEM RESEARCH 0090EE PERSONAL COMMUNICATIONS 0090EF INTEGRIX, INC. 0090F0 HARMONIC LIGHTWAVES, LTD. 0090F1 DOT HILL SYSTEMS CORPORATION 0090F2 CISCO SYSTEMS, INC. 0090F3 ASPECT COMMUNICATIONS 0090F4 LIGHTNING INSTRUMENTATION 0090F5 CLEVO CO. 0090F6 ESCALATE NETWORKS, INC. 0090F7 NBASE COMMUNICATIONS LTD. 0090F8 MEDIATRIX TELECOM 0090F9 LEITCH 0090FA GIGANET, INC. 0090FB PORTWELL, INC. 0090FC NETWORK COMPUTING DEVICES 0090FD COPPERCOM, INC. 0090FE ELECOM CO., LTD. (LANEED DIV. 0090FF TELLUS TECHNOLOGY INC. 009D8E CARDIAC RECORDERS, INC. 00A000 CENTILLION NETWORKS, INC. 00A001 WATKINS-JOHNSON COMPANY 00A002 LEEDS & NORTHRUP AUSTRALIA 00A003 STAEFA CONTROL SYSTEM 00A004 NETPOWER, INC. 00A005 DANIEL INSTRUMENTS, LTD. 00A006 IMAGE DATA PROCESSING 00A007 APEXX TECHNOLOGY, INC. 00A008 NETCORP 00A009 WHITETREE NETWORK 00A00A R.D.C. COMMUNICATION 00A00B COMPUTEX CO., LTD. 00A00C KINGMAX TECHNOLOGY, INC. 00A00D THE PANDA PROJECT 00A00E VISUAL NETWORKS, INC. 00A00F Broadband Technologies 00A010 SYSLOGIC DATENTECHNIK AG 00A011 MUTOH INDUSTRIES LTD. 00A012 B.A.T.M. ADVANCED TECHNOLOGIES 00A013 TELTREND LTD. 00A014 CSIR 00A015 WYLE 00A016 MICROPOLIS CORP. 00A017 J B M CORPORATION 00A018 CREATIVE CONTROLLERS, INC. 00A019 NEBULA CONSULTANTS, INC. 00A01A BINAR ELEKTRONIK AB 00A01B PREMISYS COMMUNICATIONS, INC. 00A01C NASCENT NETWORKS CORPORATION 00A01D SIXNET 00A01E EST CORPORATION 00A01F TRICORD SYSTEMS, INC. 00A020 CITICORP/TTI 00A021 GENERAL DYNAMICS- 00A022 CENTRE FOR DEVELOPMENT OF 00A023 APPLIED CREATIVE TECHNOLOGY, 00A024 3COM CORPORATION 00A025 REDCOM LABS INC. 00A026 TELDAT, S.A. 00A027 FIREPOWER SYSTEMS, INC. 00A028 CONNER PERIPHERALS 00A029 COULTER CORPORATION 00A02A TRANCELL SYSTEMS 00A02B TRANSITIONS RESEARCH CORP. 00A02C INTERWAVE COMMUNICATIONS 00A02D 1394 Trade Association 00A02E BRAND COMMUNICATIONS, LTD. 00A02F PIRELLI CAVI 00A030 CAPTOR NV/SA 00A031 HAZELTINE CORPORATION, MS 1-17 00A032 GES SINGAPORE PTE. LTD. 00A033 IMC MESS-SYSTEME GMBH 00A034 AXEL 00A035 CYLINK CORPORATION 00A036 APPLIED NETWORK TECHNOLOGY 00A037 DATASCOPE CORPORATION 00A038 EMAIL ELECTRONICS 00A039 ROSS TECHNOLOGY, INC. 00A03A KUBOTEK CORPORATION 00A03B TOSHIN ELECTRIC CO., LTD. 00A03C EG&G NUCLEAR INSTRUMENTS 00A03D OPTO - 22 00A03E ATM FORUM 00A03F COMPUTER SOCIETY MICROPROCES'R 00A040 APPLE COMPUTER 00A041 LEYBOLD-INFICON 00A042 SPUR PRODUCTS CORP. 00A043 AMERICAN TECHNOLOGY LABS, INC. 00A044 NTT INTELLIGENT TECHNOLOGY 00A045 PHOENIX CONTACT GMBH & CO. 00A046 SCITEX CORP. LTD. 00A047 INTEGRATED FITNESS CORP. 00A048 QUESTECH, LTD. 00A049 DIGITECH INDUSTRIES, INC. 00A04A NISSHIN ELECTRIC CO., LTD. 00A04B TFL LAN INC. 00A04C INNOVATIVE SYSTEMS & TECH. INC 00A04D EDA INSTRUMENTS, INC. 00A04E VOELKER TECHNOLOGIES, INC. 00A04F AMERITEC CORP. 00A050 CYPRESS SEMICONDUCTOR 00A051 ANGIA COMMUNICATIONS. INC. 00A052 STANILITE ELECTRONICS PTY. LTD 00A053 COMPACT DEVICES, INC. 00A055 LINKTECH, INC. 00A056 MICROPROSS 00A057 ELSA AG 00A058 GLORY, LTD. 00A059 HAMILTON HALLMARK 00A05A KOFAX IMAGE PRODUCTS 00A05B MARQUIP, INC. 00A05C INVENTORY CONVERSION, INC./ 00A05D CS COMPUTER SYSTEME GMBH 00A05E MYRIAD LOGIC INC. 00A05F BTG ENGINEERING BV 00A060 ACER PERIPHERALS, INC. 00A061 PURITAN BENNETT 00A062 AES PRODATA 00A063 JRL SYSTEMS, INC. 00A064 KVB/ANALECT 00A065 NEXLAND, INC. 00A066 ISA CO., LTD. 00A067 NETWORK SERVICES GROUP 00A068 BHP LIMITED 00A069 TrueTime 00A06A VERILINK CORP. 00A06B DMS DORSCH MIKROSYSTEM GMBH 00A06C SHINDENGEN ELECTRIC MFG. 00A06D MANNESMANN TALLY CORPORATION 00A06E AUSTRON, INC. 00A06F THE APPCON GROUP, INC. 00A070 COASTCOM 00A071 VIDEO LOTTERY TECHNOLOGIES,INC 00A072 OVATION SYSTEMS LTD. 00A073 COM21, INC. 00A074 PERCEPTION TECHNOLOGY 00A075 MICRON TECHNOLOGY, INC. 00A076 CARDWARE LAB, INC. 00A077 FUJITSU NEXION, INC. 00A078 Marconi Communications 00A079 ALPS ELECTRIC (USA), INC. 00A07A ADVANCED PERIPHERALS 00A07B DAWN COMPUTER INCORPORATION 00A07C TONYANG NYLON CO., LTD. 00A07D SEEQ TECHNOLOGY, INC. 00A07E AVID TECHNOLOGY, INC. 00A07F GSM-SYNTEL, LTD. 00A080 ANTARES MICROSYSTEMS 00A081 ALCATEL DATA NETWORKS 00A082 NKT ELEKTRONIK A/S 00A083 ASIMMPHONY TURKEY 00A084 DATAPLEX PTY. LTD. 00A086 AMBER WAVE SYSTEMS, INC. 00A087 MITEL SEMICONDUCTOR, LTD. 00A088 ESSENTIAL COMMUNICATIONS 00A089 XPOINT TECHNOLOGIES, INC. 00A08A BROOKTROUT TECHNOLOGY, INC. 00A08B ASTON ELECTRONIC DESIGNS LTD. 00A08C MULTIMEDIA LANS, INC. 00A08D JACOMO CORPORATION 00A08E Nokia Internet Communications 00A08F DESKNET SYSTEMS, INC. 00A090 TIMESTEP CORPORATION 00A091 APPLICOM INTERNATIONAL 00A092 H. BOLLMANN MANUFACTURERS, LTD 00A093 B/E AEROSPACE 00A094 COMSAT CORPORATION 00A095 ACACIA NETWORKS, INC. 00A096 MITSUMI ELECTRIC CO., LTD. 00A097 JC INFORMATION SYSTEMS 00A098 NETWORK APPLIANCE CORP. 00A099 K-NET LTD. 00A09A NIHON KOHDEN AMERICA 00A09B QPSX COMMUNICATIONS, LTD. 00A09C XYPLEX, INC. 00A09D JOHNATHON FREEMAN TECHNOLOGIES 00A09E ICTV 00A09F COMMVISION CORP. 00A0A0 COMPACT DATA, LTD. 00A0A1 EPIC DATA INC. 00A0A2 DIGICOM S.P.A. 00A0A3 RELIABLE POWER METERS 00A0A4 MICROS SYSTEMS, INC. 00A0A5 TEKNOR MICROSYSTEME, INC. 00A0A6 M.I. SYSTEMS, K.K. 00A0A7 VORAX CORPORATION 00A0A8 RENEX CORPORATION 00A0A9 GN NETTEST (CANADA) INC. 00A0AA SPACELABS MEDICAL 00A0AB NETCS INFORMATIONSTECHNIK GMBH 00A0AC GILAT SATELLITE NETWORKS, LTD. 00A0AD MARCONI SPA 00A0AE NUCOM SYSTEMS, INC. 00A0AF WMS INDUSTRIES 00A0B0 I-O DATA DEVICE, INC. 00A0B1 FIRST VIRTUAL CORPORATION 00A0B2 SHIMA SEIKI 00A0B3 ZYKRONIX 00A0B4 TEXAS MICROSYSTEMS, INC. 00A0B5 3H TECHNOLOGY 00A0B6 SANRITZ AUTOMATION CO., LTD. 00A0B7 CORDANT, INC. 00A0B8 SYMBIOS LOGIC INC. 00A0B9 EAGLE TECHNOLOGY, INC. 00A0BA PATTON ELECTRONICS CO. 00A0BB HILAN GMBH 00A0BC VIASAT, INCORPORATED 00A0BD I-TECH CORP. 00A0BE INTEGRATED CIRCUIT SYSTEMS,INC 00A0BF WIRELESS DATA GROUP MOTOROLA 00A0C0 DIGITAL LINK CORP. 00A0C1 ORTIVUS MEDICAL AB 00A0C2 R.A. SYSTEMS CO., LTD. 00A0C3 UNICOMPUTER GMBH 00A0C4 CRISTIE ELECTRONICS LTD. 00A0C5 ZYXEL COMMUNICATION 00A0C6 QUALCOMM INCORPORATED 00A0C7 TADIRAN TELECOMMUNICATIONS 00A0C8 ADTRAN INC. 00A0C9 INTEL CORPORATION - HF1-06 00A0CA FUJITSU DENSO LTD. 00A0CB ARK TELECOMMUNICATIONS, INC. 00A0CC LITE-ON COMMUNICATIONS, INC. 00A0CD DR. JOHANNES HEIDENHAIN GMBH 00A0CE ASTROCOM CORPORATION 00A0CF SOTAS, INC. 00A0D0 TEN X TECHNOLOGY, INC. 00A0D1 INVENTEC CORPORATION 00A0D2 ALLIED TELESIS INTERNATIONAL 00A0D3 INSTEM COMPUTER SYSTEMS, LTD. 00A0D4 RADIOLAN, INC. 00A0D5 SIERRA WIRELESS INC. 00A0D6 SBE, INC. 00A0D7 KASTEN CHASE APPLIED RESEARCH 00A0D8 SPECTRA - TEK 00A0D9 CONVEX COMPUTER CORPORATION 00A0DA INTEGRATED SYSTEMS 00A0DB FISHER & PAYKEL PRODUCTION 00A0DC O.N. ELECTRONIC CO., LTD. 00A0DD AZONIX CORPORATION 00A0DE YAMAHA CORPORATION 00A0DF STS TECHNOLOGIES, INC. 00A0E0 TENNYSON TECHNOLOGIES PTY LTD 00A0E1 WESTPORT RESEARCH 00A0E2 KEISOKU GIKEN CORP. 00A0E3 XKL SYSTEMS CORP. 00A0E4 OPTIQUEST 00A0E5 NHC COMMUNICATIONS 00A0E6 DIALOGIC CORPORATION 00A0E7 CENTRAL DATA CORPORATION 00A0E8 REUTERS HOLDINGS PLC 00A0E9 ELECTRONIC RETAILING SYSTEMS 00A0EA ETHERCOM CORP. 00A0EB FASTCOMM COMMUNICATIONS CORP. 00A0EC TRANSMITTON LTD. 00A0ED PRI AUTOMATION 00A0EE NASHOBA NETWORKS 00A0EF LUCIDATA LTD. 00A0F0 TORONTO MICROELECTRONICS INC. 00A0F1 MTI 00A0F2 INFOTEK COMMUNICATIONS, INC. 00A0F3 STAUBLI 00A0F4 GE 00A0F5 RADGUARD LTD. 00A0F6 AUTOGAS SYSTEMS, INC. 00A0F7 V.I COMPUTER CORP. 00A0F8 SYMBOL TECHNOLOGIES, INC. 00A0F9 BINTEC COMMUNICATIONS GMBH 00A0FA Marconi Communication GmbH 00A0FB TORAY ENGINEERING CO., LTD. 00A0FC IMAGE SCIENCES, INC. 00A0FD SCITEX DIGITAL PRINTING, INC. 00A0FE BOSTON TECHNOLOGY, INC. 00A0FF TELLABS OPERATIONS, INC. 00AA00 INTEL CORPORATION 00AA01 INTEL CORPORATION 00AA02 INTEL CORPORATION 00AA3C OLIVETTI TELECOM SPA (OLTECO) 00B009 Grass Valley Group 00B017 InfoGear Technology Corp. 00B019 Casi-Rusco 00B01C Westport Technologies 00B01E Rantic Labs, Inc. 00B02A ORSYS GmbH 00B02D ViaGate Technologies, Inc. 00B03B HiQ Networks 00B048 Marconi Communications Inc. 00B04A Cisco Systems, Inc. 00B052 Intellon Corporation 00B064 Cisco Systems, Inc. 00B069 Honewell Oy 00B06D Jones Futurex Inc. 00B080 Mannesmann Ipulsys B.V. 00B086 LocSoft Limited 00B08E Cisco Systems, Inc. 00B091 Transmeta Corp. 00B094 Alaris, Inc. 00B09A Morrow Technologies Corp. 00B09D Point Grey Research Inc. 00B0AC SIAE-Microelettronica S.p.A. 00B0AE Symmetricom 00B0B3 Xstreamis PLC 00B0C2 Cisco Systems, Inc. 00B0C7 Tellabs Operations, Inc. 00B0CE TECHNOLOGY RESCUE 00B0D0 Dell Computer Corp. 00B0DB Nextcell, Inc. 00B0DF Reliable Data Technology, Inc. 00B0E7 British Federal Ltd. 00B0EC EACEM 00B0EE Ajile Systems, Inc. 00B0F0 CALY NETWORKS 00B0F5 NetWorth Technologies, Inc. 00BB01 OCTOTHORPE CORP. 00BBF0 UNGERMANN-BASS INC. 00C000 LANOPTICS, LTD. 00C001 DIATEK PATIENT MANAGMENT 00C002 SERCOMM CORPORATION 00C003 GLOBALNET COMMUNICATIONS 00C004 JAPAN BUSINESS COMPUTER CO.LTD 00C005 LIVINGSTON ENTERPRISES, INC. 00C006 NIPPON AVIONICS CO., LTD. 00C007 PINNACLE DATA SYSTEMS, INC. 00C008 SECO SRL 00C009 KT TECHNOLOGY (S) PTE LTD 00C00A MICRO CRAFT 00C00B NORCONTROL A.S. 00C00C RELIA TECHNOLGIES 00C00D ADVANCED LOGIC RESEARCH, INC. 00C00E PSITECH, INC. 00C00F QUANTUM SOFTWARE SYSTEMS LTD. 00C010 HIRAKAWA HEWTECH CORP. 00C011 INTERACTIVE COMPUTING DEVICES 00C012 NETSPAN CORPORATION 00C013 NETRIX 00C014 TELEMATICS CALABASAS INT'L,INC 00C015 NEW MEDIA CORPORATION 00C016 ELECTRONIC THEATRE CONTROLS 00C017 FORTE NETWORKS 00C018 LANART CORPORATION 00C019 LEAP TECHNOLOGY, INC. 00C01A COROMETRICS MEDICAL SYSTEMS 00C01B SOCKET COMMUNICATIONS, INC. 00C01C INTERLINK COMMUNICATIONS LTD. 00C01D GRAND JUNCTION NETWORKS, INC. 00C01E LA FRANCAISE DES JEUX 00C01F S.E.R.C.E.L. 00C020 ARCO ELECTRONIC, CONTROL LTD. 00C021 NETEXPRESS 00C022 LASERMASTER TECHNOLOGIES, INC. 00C023 TUTANKHAMON ELECTRONICS 00C024 EDEN SISTEMAS DE COMPUTACAO SA 00C025 DATAPRODUCTS CORPORATION 00C026 LANS TECHNOLOGY CO., LTD. 00C027 CIPHER SYSTEMS, INC. 00C028 JASCO CORPORATION 00C029 KABEL RHEYDT AG 00C02A OHKURA ELECTRIC CO., LTD. 00C02B GERLOFF GESELLSCHAFT FUR 00C02C CENTRUM COMMUNICATIONS, INC. 00C02D FUJI PHOTO FILM CO., LTD. 00C02E NETWIZ 00C02F OKUMA CORPORATION 00C030 INTEGRATED ENGINEERING B. V. 00C031 DESIGN RESEARCH SYSTEMS, INC. 00C032 I-CUBED LIMITED 00C033 TELEBIT COMMUNICATIONS APS 00C034 TRANSACTION NETWORK 00C035 QUINTAR COMPANY 00C036 RAYTECH ELECTRONIC CORP. 00C037 DYNATEM 00C038 RASTER IMAGE PROCESSING SYSTEM 00C039 TDK SEMICONDUCTOR CORPORATION 00C03A MEN-MIKRO ELEKTRONIK GMBH 00C03B MULTIACCESS COMPUTING CORP. 00C03C TOWER TECH S.R.L. 00C03D WIESEMANN & THEIS GMBH 00C03E FA. GEBR. HELLER GMBH 00C03F STORES AUTOMATED SYSTEMS, INC. 00C040 ECCI 00C041 DIGITAL TRANSMISSION SYSTEMS 00C042 DATALUX CORP. 00C043 STRATACOM 00C044 EMCOM CORPORATION 00C045 ISOLATION SYSTEMS, LTD. 00C046 KEMITRON LTD. 00C047 UNIMICRO SYSTEMS, INC. 00C048 BAY TECHNICAL ASSOCIATES 00C049 U.S. ROBOTICS, INC. 00C04A GROUP 2000 AG 00C04B CREATIVE MICROSYSTEMS 00C04C DEPARTMENT OF FOREIGN AFFAIRS 00C04D MITEC, INC. 00C04E COMTROL CORPORATION 00C04F DELL COMPUTER CORPORATION 00C050 TOYO DENKI SEIZO K.K. 00C051 ADVANCED INTEGRATION RESEARCH 00C052 BURR-BROWN 00C053 DAVOX CORPORATION 00C054 NETWORK PERIPHERALS, LTD. 00C055 MODULAR COMPUTING TECHNOLOGIES 00C056 SOMELEC 00C057 MYCO ELECTRONICS 00C058 DATAEXPERT CORP. 00C059 NIPPON DENSO CO., LTD. 00C05A SEMAPHORE COMMUNICATIONS CORP. 00C05B NETWORKS NORTHWEST, INC. 00C05C ELONEX PLC 00C05D L&N TECHNOLOGIES 00C05E VARI-LITE, INC. 00C05F FINE-PAL COMPANY LIMITED 00C060 ID SCANDINAVIA AS 00C061 SOLECTEK CORPORATION 00C062 IMPULSE TECHNOLOGY 00C063 MORNING STAR TECHNOLOGIES, INC 00C064 GENERAL DATACOMM IND. INC. 00C065 SCOPE COMMUNICATIONS, INC. 00C066 DOCUPOINT, INC. 00C067 UNITED BARCODE INDUSTRIES 00C068 PHILIP DRAKE ELECTRONICS LTD. 00C069 ADAPTIVE BROADBAND CORPORATION 00C06A ZAHNER-ELEKTRIK GMBH & CO. KG 00C06B OSI PLUS CORPORATION 00C06C SVEC COMPUTER CORP. 00C06D BOCA RESEARCH, INC. 00C06E HAFT TECHNOLOGY, INC. 00C06F KOMATSU LTD. 00C070 SECTRA SECURE-TRANSMISSION AB 00C071 AREANEX COMMUNICATIONS, INC. 00C072 KNX LTD. 00C073 XEDIA CORPORATION 00C074 TOYODA AUTOMATIC LOOM 00C075 XANTE CORPORATION 00C076 I-DATA INTERNATIONAL A-S 00C077 DAEWOO TELECOM LTD. 00C078 COMPUTER SYSTEMS ENGINEERING 00C079 FONSYS CO.,LTD. 00C07A PRIVA B.V. 00C07B ASCEND COMMUNICATIONS, INC. 00C07C HIGHTECH INFORMATION 00C07D RISC DEVELOPMENTS LTD. 00C07E KUBOTA CORPORATION ELECTRONIC 00C07F NUPON COMPUTING CORP. 00C080 NETSTAR, INC. 00C081 METRODATA LTD. 00C082 MOORE PRODUCTS CO. 00C083 TRACE MOUNTAIN PRODUCTS, INC. 00C084 DATA LINK CORP. LTD. 00C085 ELECTRONICS FOR IMAGING, INC. 00C086 THE LYNK CORPORATION 00C087 UUNET TECHNOLOGIES, INC. 00C088 EKF ELEKTRONIK GMBH 00C089 TELINDUS DISTRIBUTION 00C08A LAUTERBACH DATENTECHNIK GMBH 00C08B RISQ MODULAR SYSTEMS, INC. 00C08C PERFORMANCE TECHNOLOGIES, INC. 00C08D TRONIX PRODUCT DEVELOPMENT 00C08E NETWORK INFORMATION TECHNOLOGY 00C08F MATSUSHITA ELECTRIC WORKS, LTD 00C090 PRAIM S.R.L. 00C091 JABIL CIRCUIT, INC. 00C092 MENNEN MEDICAL INC. 00C093 ALTA RESEARCH CORP. 00C094 VMX INC. 00C095 ZNYX 00C096 TAMURA CORPORATION 00C097 ARCHIPEL SA 00C098 CHUNTEX ELECTRONIC CO., LTD. 00C099 YOSHIKI INDUSTRIAL CO.,LTD. 00C09A PHOTONICS CORPORATION 00C09B RELIANCE COMM/TEC, R-TEC 00C09C TOA ELECTRONIC LTD. 00C09D DISTRIBUTED SYSTEMS INT'L, INC 00C09E CACHE COMPUTERS, INC. 00C09F QUANTA COMPUTER, INC. 00C0A0 ADVANCE MICRO RESEARCH, INC. 00C0A1 TOKYO DENSHI SEKEI CO. 00C0A2 INTERMEDIUM A/S 00C0A3 DUAL ENTERPRISES CORPORATION 00C0A4 UNIGRAF OY 00C0A5 DICKENS DATA SYSTEMS 00C0A6 EXICOM AUSTRALIA PTY. LTD 00C0A7 SEEL LTD. 00C0A8 GVC CORPORATION 00C0A9 BARRON MCCANN LTD. 00C0AA SILICON VALLEY COMPUTER 00C0AB Telco Systems, Inc. 00C0AC GAMBIT COMPUTER COMMUNICATIONS 00C0AD MARBEN COMMUNICATION SYSTEMS 00C0AE TOWERCOM CO. INC. DBA PC HOUSE 00C0AF TEKLOGIX INC. 00C0B0 GCC TECHNOLOGIES,INC. 00C0B1 GENIUS NET CO. 00C0B2 NORAND CORPORATION 00C0B3 COMSTAT DATACOMM CORPORATION 00C0B4 MYSON TECHNOLOGY, INC. 00C0B5 CORPORATE NETWORK SYSTEMS,INC. 00C0B6 MERIDIAN DATA, INC. 00C0B7 AMERICAN POWER CONVERSION CORP 00C0B8 FRASER'S HILL LTD. 00C0B9 FUNK SOFTWARE, INC. 00C0BA NETVANTAGE 00C0BB FORVAL CREATIVE, INC. 00C0BC TELECOM AUSTRALIA/CSSC 00C0BD INEX TECHNOLOGIES, INC. 00C0BE ALCATEL - SEL 00C0BF TECHNOLOGY CONCEPTS, LTD. 00C0C0 SHORE MICROSYSTEMS, INC. 00C0C1 QUAD/GRAPHICS, INC. 00C0C2 INFINITE NETWORKS LTD. 00C0C3 ACUSON COMPUTED SONOGRAPHY 00C0C4 COMPUTER OPERATIONAL 00C0C5 SID INFORMATICA 00C0C6 PERSONAL MEDIA CORP. 00C0C7 SPARKTRUM MICROSYSTEMS, INC. 00C0C8 MICRO BYTE PTY. LTD. 00C0C9 ELSAG BAILEY PROCESS 00C0CA ALFA, INC. 00C0CB CONTROL TECHNOLOGY CORPORATION 00C0CC TELESCIENCES CO SYSTEMS, INC. 00C0CD COMELTA, S.A. 00C0CE CEI SYSTEMS & ENGINEERING PTE 00C0CF IMATRAN VOIMA OY 00C0D0 RATOC SYSTEM INC. 00C0D1 COMTREE TECHNOLOGY CORPORATION 00C0D2 SYNTELLECT, INC. 00C0D3 OLYMPUS IMAGE SYSTEMS, INC. 00C0D4 AXON NETWORKS, INC. 00C0D5 QUANCOM ELECTRONIC GMBH 00C0D6 J1 SYSTEMS, INC. 00C0D7 TAIWAN TRADING CENTER DBA 00C0D8 UNIVERSAL DATA SYSTEMS 00C0D9 QUINTE NETWORK CONFIDENTIALITY 00C0DA NICE SYSTEMS LTD. 00C0DB IPC CORPORATION (PTE) LTD. 00C0DC EOS TECHNOLOGIES, INC. 00C0DD QLogic Corporation 00C0DE ZCOMM, INC. 00C0DF KYE SYSTEMS CORP. 00C0E0 DSC COMMUNICATION CORP. 00C0E1 SONIC SOLUTIONS 00C0E2 CALCOMP, INC. 00C0E3 OSITECH COMMUNICATIONS, INC. 00C0E4 SIEMENS BUILDING 00C0E5 GESPAC, S.A. 00C0E6 Verilink Corporation 00C0E7 FIBERDATA AB 00C0E8 PLEXCOM, INC. 00C0E9 OAK SOLUTIONS, LTD. 00C0EA ARRAY TECHNOLOGY LTD. 00C0EB SEH COMPUTERTECHNIK GMBH 00C0EC DAUPHIN TECHNOLOGY 00C0ED US ARMY ELECTRONIC 00C0EE KYOCERA CORPORATION 00C0EF ABIT CORPORATION 00C0F0 KINGSTON TECHNOLOGY CORP. 00C0F1 SHINKO ELECTRIC CO., LTD. 00C0F2 TRANSITION NETWORKS 00C0F3 NETWORK COMMUNICATIONS CORP. 00C0F4 INTERLINK SYSTEM CO., LTD. 00C0F5 METACOMP, INC. 00C0F6 CELAN TECHNOLOGY INC. 00C0F7 ENGAGE COMMUNICATION, INC. 00C0F8 ABOUT COMPUTING INC. 00C0F9 HARRIS AND JEFFRIES, INC. 00C0FA CANARY COMMUNICATIONS, INC. 00C0FB ADVANCED TECHNOLOGY LABS 00C0FC ELASTIC REALITY, INC. 00C0FD PROSUM 00C0FE APTEC COMPUTER SYSTEMS, INC. 00C0FF DOT HILL SYSTEMS CORPORATION 00CBBD Cambridge Broadband Ltd. 00CF1C COMMUNICATION MACHINERY CORP. 00D000 FERRAN SCIENTIFIC, INC. 00D001 VST TECHNOLOGIES, INC. 00D002 DITECH CORPORATION 00D003 COMDA ENTERPRISES CORP. 00D004 PENTACOM LTD. 00D005 ZHS ZEITMANAGEMENTSYSTEME 00D006 CISCO SYSTEMS, INC. 00D007 MIC ASSOCIATES, INC. 00D008 MACTELL CORPORATION 00D009 HSING TECH. ENTERPRISE CO. LTD 00D00A LANACCESS TELECOM S.A. 00D00B RHK TECHNOLOGY, INC. 00D00C SNIJDER MICRO SYSTEMS 00D00D MICROMERITICS INSTRUMENT 00D00E PLURIS, INC. 00D00F SPEECH DESIGN GMBH 00D010 CONVERGENT NETWORKS, INC. 00D011 PRISM VIDEO, INC. 00D012 GATEWORKS CORP. 00D013 PRIMEX AEROSPACE COMPANY 00D014 ROOT, INC. 00D015 UNIVEX MICROTECHNOLOGY CORP. 00D016 SCM MICROSYSTEMS, INC. 00D017 SYNTECH INFORMATION CO., LTD. 00D018 QWES. COM, INC. 00D019 DAINIPPON SCREEN CORPORATE 00D01A URMET SUD S.P.A. 00D01B MIMAKI ENGINEERING CO., LTD. 00D01C SBS TECHNOLOGIES, 00D01D FURUNO ELECTRIC CO., LTD. 00D01E PINGTEL CORP. 00D01F CTAM PTY. LTD. 00D020 AIM SYSTEM, INC. 00D021 REGENT ELECTRONICS CORP. 00D022 INCREDIBLE TECHNOLOGIES, INC. 00D023 INFORTREND TECHNOLOGY, INC. 00D024 Cognex Corporation 00D025 XROSSTECH, INC. 00D026 HIRSCHMANN AUSTRIA GMBH 00D027 APPLIED AUTOMATION, INC. 00D028 OMNEON VIDEO NETWORKS 00D029 WAKEFERN FOOD CORPORATION 00D02A FLEXION SYSTEMS 00D02B JETCELL, INC. 00D02C CAMPBELL SCIENTIFIC, INC. 00D02D ADEMCO 00D02E COMMUNICATION AUTOMATION CORP. 00D02F VLSI TECHNOLOGY INC. 00D030 SAFETRAN SYSTEMS CORP. 00D031 INDUSTRIAL LOGIC CORPORATION 00D032 YANO ELECTRIC CO., LTD. 00D033 DALIAN DAXIAN NETWORK 00D034 ORMEC SYSTEMS CORP. 00D035 BEHAVIOR TECH. COMPUTER CORP. 00D036 TECHNOLOGY ATLANTA CORP. 00D037 PHILIPS-DVS-LO BDR 00D038 FIVEMERE, LTD. 00D039 UTILICOM, INC. 00D03A ZONEWORX, INC. 00D03B VISION PRODUCTS PTY. LTD. 00D03C Vieo, Inc. 00D03E ROCKETCHIPS, INC. 00D03F AMERICAN COMMUNICATION 00D040 SYSMATE CO., LTD. 00D041 AMIGO TECHNOLOGY CO., LTD. 00D042 MAHLO GMBH & CO. UG 00D043 ZONAL RETAIL DATA SYSTEMS 00D044 ALIDIAN NETWORKS, INC. 00D045 KVASER AB 00D046 DOLBY LABORATORIES, INC. 00D047 XN TECHNOLOGIES 00D048 ECTON, INC. 00D049 IMPRESSTEK CO., LTD. 00D04A PRESENCE TECHNOLOGY GMBH 00D04B LA CIE GROUP S.A. 00D04C EUROTEL TELECOM LTD. 00D04D DIV OF RESEARCH & STATISTICS 00D04E LOGIBAG 00D04F BITRONICS, INC. 00D050 ISKRATEL 00D051 O2 MICRO, INC. 00D052 ASCEND COMMUNICATIONS, INC. 00D053 CONNECTED SYSTEMS 00D054 SAS INSTITUTE INC. 00D055 KATHREIN-WERKE KG 00D056 SOMAT CORPORATION 00D057 ULTRAK, INC. 00D058 CISCO SYSTEMS, INC. 00D059 AMBIT MICROSYSTEMS CORP. 00D05A SYMBIONICS, LTD. 00D05B ACROLOOP MOTION CONTROL 00D05C TECHNOTREND SYSTEMTECHNIK GMBH 00D05D INTELLIWORXX, INC. 00D05E STRATABEAM TECHNOLOGY, INC. 00D05F VALCOM, INC. 00D060 PANASONIC EUROPEAN 00D061 TREMON ENTERPRISES CO., LTD. 00D062 DIGIGRAM 00D063 CISCO SYSTEMS, INC. 00D064 MULTITEL 00D065 TOKO ELECTRIC 00D066 WINTRISS ENGINEERING CORP. 00D067 CAMPIO COMMUNICATIONS 00D068 IWILL CORPORATION 00D069 TECHNOLOGIC SYSTEMS 00D06A LINKUP SYSTEMS CORPORATION 00D06B SR TELECOM INC. 00D06C SHAREWAVE, INC. 00D06D ACRISON, INC. 00D06E TRENDVIEW RECORDERS LTD. 00D06F KMC CONTROLS 00D070 LONG WELL ELECTRONICS CORP. 00D071 ECHELON CORP. 00D072 BROADLOGIC 00D073 ACN ADVANCED COMMUNICATIONS 00D074 TAQUA SYSTEMS, INC. 00D075 ALARIS MEDICAL SYSTEMS, INC. 00D076 MERRILL LYNCH & CO., INC. 00D077 LUCENT TECHNOLOGIES 00D078 ELTEX OF SWEDEN AB 00D079 CISCO SYSTEMS, INC. 00D07A AMAQUEST COMPUTER CORP. 00D07B COMCAM INTERNATIONAL LTD. 00D07C KOYO ELECTRONICS INC. CO.,LTD. 00D07D COSINE COMMUNICATIONS 00D07E KEYCORP LTD. 00D07F STRATEGY & TECHNOLOGY, LIMITED 00D080 EXABYTE CORPORATION 00D081 REAL TIME DEVICES USA, INC. 00D082 IOWAVE INC. 00D083 INVERTEX, INC. 00D084 NEXCOMM SYSTEMS, INC. 00D085 OTIS ELEVATOR COMPANY 00D086 FOVEON, INC. 00D087 MICROFIRST INC. 00D088 MAINSAIL NETWORKS, INC. 00D089 DYNACOLOR, INC. 00D08A PHOTRON USA 00D08B ADVA Limited 00D08C GENOA TECHNOLOGY, INC. 00D08D PHOENIX GROUP, INC. 00D08E NVISION INC. 00D08F ARDENT TECHNOLOGIES, INC. 00D090 CISCO SYSTEMS, INC. 00D091 SMARTSAN SYSTEMS, INC. 00D092 GLENAYRE WESTERN MULTIPLEX 00D093 TQ - COMPONENTS GMBH 00D094 TIMELINE VISTA, INC. 00D095 XYLAN CORPORATION 00D096 3COM EUROPE LTD. 00D097 CISCO SYSTEMS, INC. 00D098 IPS AUTOMATION 00D099 ELCARD OY 00D09A FILANET CORPORATION 00D09B SPECTEL LTD. 00D09C KAPADIA COMMUNICATIONS 00D09D VERIS INDUSTRIES 00D09E 2WIRE, INC. 00D09F NOVTEK TEST SYSTEMS 00D0A0 MIPS DENMARK 00D0A1 OSKAR VIERLING GMBH + CO. KG 00D0A2 INTEGRATED DEVICE 00D0A3 VOCAL DATA, INC. 00D0A4 ALANTRO COMMUNICATIONS 00D0A5 AMERICAN ARIUM 00D0A6 LANBIRD TECHNOLOGY CO., LTD. 00D0A7 TOKYO SOKKI KENKYUJO CO., LTD. 00D0A8 NETWORK ENGINES, INC. 00D0A9 SHINANO KENSHI CO., LTD. 00D0AA CHASE COMMUNICATIONS 00D0AB DELTAKABEL TELECOM CV 00D0AC GRAYSON WIRELESS 00D0AD TL INDUSTRIES 00D0AE ORESIS COMMUNICATIONS, INC. 00D0AF CUTLER-HAMMER, INC. 00D0B0 BITSWITCH LTD. 00D0B1 OMEGA ELECTRONICS SA 00D0B2 XIOTECH CORPORATION 00D0B3 DRS FLIGHT SAFETY AND 00D0B4 KATSUJIMA CO., LTD. 00D0B5 DOTCOM 00D0B6 CRESCENT NETWORKS, INC. 00D0B7 INTEL CORPOTATION 00D0B8 IOMEGA CORP. 00D0B9 MICROTEK INTERNATIONAL, INC. 00D0BA CISCO SYSTEMS, INC. 00D0BB CISCO SYSTEMS, INC. 00D0BC CISCO SYSTEMS, INC. 00D0BD SICAN GMBH 00D0BE EMUTEC INC. 00D0BF PIVOTAL TECHNOLOGIES 00D0C0 CISCO SYSTEMS, INC. 00D0C1 HARMONIC DATA SYSTEMS, LTD. 00D0C2 BALTHAZAR TECHNOLOGY AB 00D0C3 VIVID TECHNOLOGY PTE, LTD. 00D0C4 TERATECH CORPORATION 00D0C5 COMPUTATIONAL SYSTEMS, INC. 00D0C6 THOMAS & BETTS CORP. 00D0C7 PATHWAY, INC. 00D0C8 I/O CONSULTING A/S 00D0C9 ADVANTECH CO., LTD. 00D0CA INTRINSYC SOFTWARE INC. 00D0CB DASAN CO., LTD. 00D0CC TECHNOLOGIES LYRE INC. 00D0CD ATAN TECHNOLOGY INC. 00D0CE ASYST ELECTRONIC 00D0CF MORETON BAY 00D0D0 ZHONGXING TELECOM LTD. 00D0D1 SIROCCO SYSTEMS, INC. 00D0D2 EPILOG CORPORATION 00D0D3 CISCO SYSTEMS, INC. 00D0D4 V-BITS, INC. 00D0D5 GRUNDIG AG 00D0D6 AETHRA TELECOMUNICAZIONI 00D0D7 B2C2, INC. 00D0D8 3Com Corporation 00D0D9 DEDICATED MICROCOMPUTERS 00D0DA TAICOM DATA SYSTEMS CO., LTD. 00D0DB MCQUAY INTERNATIONAL 00D0DC MODULAR MINING SYSTEMS, INC. 00D0DD SUNRISE TELECOM, INC. 00D0DE PHILIPS MULTIMEDIA NETWORK 00D0DF KUZUMI ELECTRONICS, INC. 00D0E0 DOOIN ELECTRONICS CO. 00D0E1 AVIONITEK ISRAEL INC. 00D0E2 MRT MICRO, INC. 00D0E3 ELE-CHEM ENGINEERING CO., LTD. 00D0E4 CISCO SYSTEMS, INC. 00D0E5 SOLIDUM SYSTEMS CORP. 00D0E6 IBOND INC. 00D0E7 VCON TELECOMMUNICATION LTD. 00D0E8 MAC SYSTEM CO., LTD. 00D0E9 ADVANTAGE CENTURY 00D0EA NEXTONE COMMUNICATIONS, INC. 00D0EB LIGHTERA NETWORKS, INC. 00D0EC NAKAYO TELECOMMUNICATIONS, INC 00D0ED XIOX 00D0EE DICTAPHONE CORPORATION 00D0EF IGT 00D0F0 CONVISION TECHNOLOGY GMBH 00D0F1 SEGA ENTERPRISES, LTD. 00D0F2 MONTEREY NETWORKS 00D0F3 SOLARI DI UDINE SPA 00D0F4 CARINTHIAN TECH INSTITUTE 00D0F5 ORANGE MICRO, INC. 00D0F6 NORTHCHURCH COMMUNICATIONS INC 00D0F7 NEXT NETS CORPORATION 00D0F8 FUJIAN STAR TERMINAL 00D0F9 ACUTE COMMUNICATIONS CORP. 00D0FA RACAL GUARDATA 00D0FB TEK MICROSYSTEMS, INCORPORATED 00D0FC GRANITE MICROSYSTEMS 00D0FD OPTIMA TELE.COM, INC. 00D0FE ASTRAL POINT 00D0FF CISCO SYSTEMS, INC. 00DD00 UNGERMANN-BASS INC. 00DD01 UNGERMANN-BASS INC. 00DD02 UNGERMANN-BASS INC. 00DD03 UNGERMANN-BASS INC. 00DD04 UNGERMANN-BASS INC. 00DD05 UNGERMANN-BASS INC. 00DD06 UNGERMANN-BASS INC. 00DD07 UNGERMANN-BASS INC. 00DD08 UNGERMANN-BASS INC. 00DD09 UNGERMANN-BASS INC. 00DD0A UNGERMANN-BASS INC. 00DD0B UNGERMANN-BASS INC. 00DD0C UNGERMANN-BASS INC. 00DD0D UNGERMANN-BASS INC. 00DD0E UNGERMANN-BASS INC. 00DD0F UNGERMANN-BASS INC. 00E000 FUJITSU, LTD 00E001 STRAND LIGHTING LIMITED 00E002 CROSSROADS SYSTEMS, INC. 00E003 NOKIA WIRELESS BUSINESS COMMUN 00E004 PMC-SIERRA, INC. 00E005 TECHNICAL CORP. 00E006 SILICON INTEGRATED SYS. CORP. 00E007 NETWORK ALCHEMY LTD. 00E008 AMAZING CONTROLS! INC. 00E009 MARATHON TECHNOLOGIES CORP. 00E00A DIBA, INC. 00E00B ROOFTOP COMMUNICATIONS CORP. 00E00C MOTOROLA 00E00D RADIANT SYSTEMS 00E00E AVALON IMAGING SYSTEMS, INC. 00E00F SHANGHAI BAUD DATA 00E010 HESS SB-AUTOMATENBAU GMBH 00E011 UNIDEN SAN DIEGO 00E012 PLUTO TECHNOLOGIES 00E013 EASTERN ELECTRONIC CO., LTD. 00E014 CISCO SYSTEMS, INC. 00E015 HEIWA CORPORATION 00E016 RAPID CITY COMMUNICATIONS 00E017 EXXACT GMBH 00E018 ASUSTEK COMPUTER INC. 00E019 ING. GIORDANO ELETTRONICA 00E01A COMTEC SYSTEMS. CO., LTD. 00E01B SPHERE COMMUNICATIONS, INC. 00E01C MOBILITY ELECTRONICSY 00E01D WEBTV NETWORKS, INC. 00E01E CISCO SYSTEMS, INC. 00E01F AVIDIA SYSTEMS, INC. 00E020 TECNOMEN OY 00E021 FREEGATE CORP. 00E022 MEDIALIGHT INC. 00E023 TELRAD 00E024 GADZOOX NETWORKS 00E025 DIT CO., LTD. 00E026 EASTMAN KODAK CO. 00E027 DUX, INC. 00E028 APTIX CORPORATION 00E029 STANDARD MICROSYSTEMS CORP. 00E02A TANDBERG TELEVISION AS 00E02B EXTREME NETWORKS 00E02C AST COMPUTER 00E02D INNOMEDIALOGIC, INC. 00E02E SPC ELECTRONICS CORPORATION 00E02F MCNS HOLDINGS, L.P. 00E030 MELITA INTERNATIONAL CORP. 00E031 HAGIWARA ELECTRIC CO., LTD. 00E032 MISYS FINANCIAL SYSTEMS, LTD. 00E033 E.E.P.D. GMBH 00E034 CISCO SYSTEMS, INC. 00E035 LOUGHBOROUGH SOUND IMAGES, PLC 00E036 PIONEER CORPORATION 00E037 CENTURY CORPORATION 00E038 PROXIMA CORPORATION 00E039 PARADYNE CORP. 00E03A CABLETRON SYSTEMS, INC. 00E03B PROMINET CORPORATION 00E03C ADVANSYS 00E03D FOCON ELECTRONIC SYSTEMS A/S 00E03E ALFATECH, INC. 00E03F JATON CORPORATION 00E040 DESKSTATION TECHNOLOGY, INC. 00E041 CSPI 00E042 PACOM DATA LTD. 00E043 VITALCOM 00E044 LSICS CORPORATION 00E045 TOUCHWAVE, INC. 00E046 BENTLY NEVADA CORP. 00E047 INFOCUS SYSTEMS 00E048 SDL COMMUNICATIONS, INC. 00E049 MICROWI ELECTRONIC GMBH 00E04A ENHANCED MESSAGING SYSTEMS,INC 00E04B JUMP INDUSTRIELLE 00E04C REALTEK SEMICONDUCTOR CORP. 00E04D INTERNET INITIATIVE JAPAN, INC 00E04E SANYO DENKI CO., LTD. 00E04F CISCO SYSTEMS, INC. 00E050 EXECUTONE INFORMATION 00E051 TALX CORPORATION 00E052 FOUNDRY NETWORKS, INC. 00E053 CELLPORT LABS, INC. 00E054 KODAI HITEC CO., LTD. 00E055 INGENIERIA ELECTRONICA 00E056 HOLONTECH CORPORATION 00E057 HAN MICROTELECOM. CO., LTD. 00E058 PHASE ONE DENMARK A/S 00E059 CONTROLLED ENVIRONMENTS, LTD. 00E05A GALEA NETWORK SECURITY 00E05B WEST END SYSTEMS CORP. 00E05C MATSUSHITA KOTOBUKI 00E05D UNITEC CO., LTD. 00E05E JAPAN AVIATION ELECTRONICS 00E05F E-NET, INC. 00E060 SHERWOOD 00E061 EDGEPOINT NETWORKS, INC. 00E062 HOST ENGINEERING 00E063 CABLETRON - YAGO SYSTEMS, INC. 00E064 SAMSUNG ELECTRONICS 00E065 OPTICAL ACCESS INTERNATIONAL 00E066 PROMAX SYSTEMS, INC. 00E067 EAC AUTOMATION-CONSULTING GMBH 00E068 MERRIMAC SYSTEMS INC. 00E069 JAYCOR NETWORKS, INC. 00E06A KAPSCH AG 00E06B W&G SPECIAL PRODUCTS 00E06C BALTIMORE TECHNOLOGIES, LTD. 00E06D COMPUWARE CORPORATION 00E06E FAR SYSTEMS SPA 00E06F TERAYON CORP. 00E070 DH TECHNOLOGY 00E071 EPIS MICROCOMPUTER 00E072 LYNK 00E073 NATIONAL AMUSEMENT 00E074 TIERNAN COMMUNICATIONS, INC. 00E075 ATLAS COMPUTER EQUIPMENT, INC. 00E076 DEVELOPMENT CONCEPTS, INC. 00E077 WEBGEAR, INC. 00E078 BERKELEY NETWORKS 00E079 A.T.N.R. 00E07A MIKRODIDAKT AB 00E07B BAY NETWORKS 00E07C METTLER-TOLEDO, INC. 00E07D NETRONIX, INC. 00E07E WALT DISNEY IMAGINEERING 00E07F LOGISTISTEM SRL 00E080 CONTROL RESOURCES CORPORATION 00E081 TYAN COMPUTER CORP. 00E082 ANERMA 00E083 JATO TECHNOLOGIES, INC. 00E084 COMPULITE R&D 00E085 GLOBAL MAINTECH, INC. 00E086 CYBEX COMPUTER PRODUCTS 00E087 LECROY 00E088 LTX CORPORATION 00E089 ION Networks, Inc. 00E08A GEC AVERY, LTD. 00E08B QLOGIC CORP. 00E08C NEOPARADIGM LABS, INC. 00E08D PRESSURE SYSTEMS, INC. 00E08E UTSTARCOM 00E08F CISCO SYSTEMS, INC. 00E090 BECKMAN LAB. AUTOMATION DIV. 00E091 LG ELECTRONICS, INC. 00E092 ADMTEK INCORPORATED 00E093 ACKFIN NETWORKS 00E094 OSAI SRL 00E095 ADVANCED-VISION TECHNOLGIES 00E096 SHIMADZU CORPORATION 00E097 CARRIER ACCESS CORPORATION 00E098 ABOCOM SYSTEMS, INC. 00E099 SAMSON AG 00E09A POSITRON INDUSTRIES, INC. 00E09B ENGAGE NETWORKS, INC. 00E09C MII 00E09D SARNOFF CORPORATION 00E09E QUANTUM CORPORATION 00E09F PIXEL VISION 00E0A0 WILTRON CO. 00E0A1 HIMA PAUL HILDEBRANDT 00E0A2 MICROSLATE INC. 00E0A3 CISCO SYSTEMS, INC. 00E0A4 ESAOTE S.P.A. 00E0A5 COMCORE SEMICONDUCTOR, INC. 00E0A6 TELOGY NETWORKS, INC. 00E0A7 IPC INFORMATION SYSTEMS, INC. 00E0A8 SAT GMBH&CO 00E0A9 FUNAI ELECTRIC CO., LTD. 00E0AA ELECTROSONIC LTD. 00E0AB DIMAT S.A. 00E0AC MIDSCO, INC. 00E0AD EES TECHNOLOGY, LTD. 00E0AE XAQTI CORPORATION 00E0AF GENERAL DYNAMICS INFORMATION 00E0B0 CISCO SYSTEMS, INC. 00E0B1 PACKET ENGINES, INC. 00E0B2 TELMAX COMMUNICATIONS CORP. 00E0B3 ETHERWAN SYSTEMS, INC. 00E0B4 TECHNO SCOPE CO., LTD. 00E0B5 ARDENT COMMUNICATIONS CORP. 00E0B6 Entrada Networks 00E0B7 PI GROUP, LTD. 00E0B8 GATEWAY 2000 00E0B9 BYAS SYSTEMS 00E0BA BERGHOF AUTOMATIONSTECHNIK 00E0BB NBX CORPORATION 00E0BC SYMON COMMUNICATIONS, INC. 00E0BD INTERFACE SYSTEMS, INC. 00E0BE GENROCO INTERNATIONAL, INC. 00E0BF TORRENT NETWORKING 00E0C0 SEIWA ERECTRIC MFG. CO., LTD. 00E0C1 MEMOREX TELEX JAPAN, LTD. 00E0C2 NECSY SPA 00E0C3 SAKAI SYSTEM DEVELOPMENT CORP. 00E0C4 HORNER ELECTRIC, INC. 00E0C5 BCOM ELECTRONICS INC. 00E0C6 LINK2IT, L.L.C. 00E0C7 EUROTECH SRL 00E0C8 VIRTUAL ACCESS, LTD. 00E0C9 AUTOMATEDLOGIC CORPORATION 00E0CA BEST DATA PRODUCTS 00E0CB RESON, INC. 00E0CC HERO SYSTEMS, LTD. 00E0CD SENSIS CORPORATION 00E0CE ARN 00E0CF INTEGRATED DEVICE 00E0D0 NETSPEED, INC. 00E0D1 TELSIS LIMITED 00E0D2 VERSANET COMMUNICATIONS, INC. 00E0D3 DATENTECHNIK GMBH 00E0D4 EXCELLENT COMPUTER 00E0D5 ARCXEL TECHNOLOGIES, INC. 00E0D6 COMPUTER & COMMUNICATION 00E0D7 SUNSHINE ELECTRONICS, INC. 00E0D8 LANBIT COMPUTER, INC. 00E0D9 TAZMO CO., LTD. 00E0DA ASSURED ACCESS 00E0DB VIAVIDEO COMMUNICATIONS 00E0DC NEXWARE CORP. 00E0DD ZENITH ELECTRONICS CORPORATION 00E0DE DATAX NV 00E0DF KE KOMMUNIKATIONS-ELECTRONIK 00E0E0 SI ELECTRONICS, LTD. 00E0E1 G2 NETWORKS, ILNC. 00E0E2 INNOVA CORP. 00E0E3 SK-ELEKTRONIK GMBH 00E0E4 FANUC ROBOTICS NORTH AMERICA, 00E0E5 CINCO NETWORKS, INC. 00E0E6 INCAA DATACOM B.V. 00E0E7 RAYTHEON E-SYSTEMS, INC. 00E0E8 GRETACODER DATA SYSTEMS AG 00E0E9 DATA LABS, INC. 00E0EA INNOVAT COMMUNICATIONS, INC. 00E0EB DIGICOM SYSTEMS, INCORPORATED 00E0EC CELESTICA INC. 00E0ED SILICOM, LTD. 00E0EE MAREL HF 00E0EF DIONEX 00E0F0 ABLER TECHNOLOGY, INC. 00E0F1 THAT CORPORATION 00E0F2 ARLOTTO COMNET, INC. 00E0F3 WEBSPRINT COMMUNICATIONS, INC. 00E0F4 INSIDE TECHNOLOGY A/S 00E0F5 TELES AG 00E0F6 DECISION EUROPE 00E0F7 CISCO SYSTEMS, INC. 00E0F8 DIANA CONTROL AB 00E0F9 CISCO SYSTEMS, INC. 00E0FA TRL TECHNOLOGY, LTD. 00E0FB LEIGHTRONIX, INC. 00E0FC HUAWEI TECHNOLOGIES CO., LTD. 00E0FD A-TREND TECHNOLOGY CO., LTD. 00E0FE CISCO SYSTEMS, INC. 00E0FF SECURITY DYNAMICS TECHNOLOGIES 00E6D3 NIXDORF COMPUTER CORP. 020701 RACAL-DATACOM 021C7C PERQ SYSTEMS CORPORATION 026086 LOGIC REPLACEMENT TECH. LTD. 02608C 3COM CORPORATION 027001 RACAL-DATACOM 0270B0 M/A-COM INC. COMPANIES 0270B3 DATA RECALL LTD 029D8E CARDIAC RECORDERS INC. 02AA3C OLIVETTI TELECOMM SPA (OLTECO) 02BB01 OCTOTHORPE CORP. 02C08C 3COM CORPORATION 02CF1C COMMUNICATION MACHINERY CORP. 02E6D3 NIXDORF COMPUTER CORPORATION 040AE0 XMIT AG COMPUTER NETWORKS 04E0C4 TRIUMPH-ADLER AG 080001 COMPUTERVISION CORPORATION 080002 BRIDGE COMMUNICATIONS INC. 080003 ADVANCED COMPUTER COMM. 080004 CROMEMCO INCORPORATED 080005 SYMBOLICS INC. 080006 SIEMENS AG 080007 APPLE COMPUTER INC. 080008 BOLT BERANEK AND NEWMAN INC. 080009 HEWLETT PACKARD 08000A NESTAR SYSTEMS INCORPORATED 08000B UNISYS CORPORATION 08000C MIKLYN DEVELOPMENT CO. 08000D INTERNATIONAL COMPUTERS LTD. 08000E NCR CORPORATION 08000F MITEL CORPORATION 080011 TEKTRONIX INC. 080012 BELL ATLANTIC INTEGRATED SYST. 080013 EXXON 080014 EXCELAN 080015 STC BUSINESS SYSTEMS 080016 BARRISTER INFO SYS CORP 080017 NATIONAL SEMICONDUCTOR 080018 PIRELLI FOCOM NETWORKS 080019 GENERAL ELECTRIC CORPORATION 08001A TIARA/ 10NET 08001B DATA GENERAL 08001C KDD-KOKUSAI DEBNSIN DENWA CO. 08001D ABLE COMMUNICATIONS INC. 08001E APOLLO COMPUTER INC. 08001F SHARP CORPORATION 080020 SUN MICROSYSTEMS INC. 080021 3M COMPANY 080022 NBI INC. 080023 MATSUHITA GRAPHIC COMM SYS INC 080024 10NET COMMUNICATIONS/DCA 080025 CONTROL DATA 080026 NORSK DATA A.S. 080027 CADMUS COMPUTER SYSTEMS 080028 TEXAS INSTRUMENTS 080029 MEGATEK CORPORATION 08002A MOSAIC TECHNOLOGIES INC. 08002B DIGITAL EQUIPMENT CORPORATION 08002C BRITTON LEE INC. 08002D LAN-TEC INC. 08002E METAPHOR COMPUTER SYSTEMS 08002F PRIME COMPUTER INC. 080030 NETWORK RESEARCH CORPORATION 080030 CERN 080030 ROYAL MELBOURNE INST OF TECH 080031 LITTLE MACHINES INC. 080032 TIGAN INCORPORATED 080033 BAUSCH & LOMB 080034 FILENET CORPORATION 080035 MICROFIVE CORPORATION 080036 INTERGRAPH CORPORATION 080037 FUJI-XEROX CO. LTD. 080038 CII HONEYWELL BULL 080039 SPIDER SYSTEMS LIMITED 08003A ORCATECH INC. 08003B TORUS SYSTEMS LIMITED 08003C SCHLUMBERGER WELL SERVICES 08003D CADNETIX CORPORATIONS 08003E CODEX CORPORATION 08003F FRED KOSCHARA ENTERPRISES 080040 FERRANTI COMPUTER SYS. LIMITED 080041 RACAL-MILGO INFORMATION SYS.. 080042 JAPAN MACNICS CORP. 080043 PIXEL COMPUTER INC. 080044 DAVID SYSTEMS INC. 080045 CONCURRENT COMPUTER CORP. 080046 SONY CORPORATION LTD. 080047 SEQUENT COMPUTER SYSTEMS INC. 080048 EUROTHERM GAUGING SYSTEMS 080049 UNIVATION 08004A BANYAN SYSTEMS INC. 08004B PLANNING RESEARCH CORP. 08004C HYDRA COMPUTER SYSTEMS INC. 08004D CORVUS SYSTEMS INC. 08004E 3COM EUROPE LTD. 08004F CYGNET SYSTEMS 080050 DAISY SYSTEMS CORP. 080051 EXPERDATA 080052 INSYSTEC 080053 MIDDLE EAST TECH. UNIVERSITY 080055 STANFORD TELECOMM. INC. 080056 STANFORD LINEAR ACCEL. CENTER 080057 EVANS & SUTHERLAND 080058 SYSTEMS CONCEPTS 080059 A/S MYCRON 08005A IBM CORPORATION 08005B VTA TECHNOLOGIES INC. 08005C FOUR PHASE SYSTEMS 08005D GOULD INC. 08005E COUNTERPOINT COMPUTER INC. 08005F SABER TECHNOLOGY CORP. 080060 INDUSTRIAL NETWORKING INC. 080061 JAROGATE LTD. 080062 GENERAL DYNAMICS 080063 PLESSEY 080064 AUTOPHON AG 080065 GENRAD INC. 080066 AGFA CORPORATION 080067 COMDESIGN 080068 RIDGE COMPUTERS 080069 SILICON GRAPHICS INC. 08006A ATT BELL LABORATORIES 08006B ACCEL TECHNOLOGIES INC. 08006C SUNTEK TECHNOLOGY INT'L 08006D WHITECHAPEL COMPUTER WORKS 08006E MASSCOMP 08006F PHILIPS APELDOORN B.V. 080070 MITSUBISHI ELECTRIC CORP. 080071 MATRA (DSIE) 080072 XEROX CORP UNIV GRANT PROGRAM 080073 TECMAR INC. 080074 CASIO COMPUTER CO. LTD. 080075 DANSK DATA ELECTRONIK 080076 PC LAN TECHNOLOGIES 080077 TSL COMMUNICATIONS LTD. 080078 ACCELL CORPORATION 080079 THE DROID WORKS 08007A INDATA 08007B SANYO ELECTRIC CO. LTD. 08007C VITALINK COMMUNICATIONS CORP. 08007E AMALGAMATED WIRELESS(AUS) LTD 08007F CARNEGIE-MELLON UNIVERSITY 080080 AES DATA INC. 080081 ,ASTECH INC. 080082 VERITAS SOFTWARE 080083 SEIKO INSTRUM. AND ELECTRONICS 080084 TOMEN ELECTRONICS CORP. 080085 ELXSI 080086 IMAGEN CORPORATION 080087 XYPLEX 080088 MCDATA CORPORATION 080089 KINETICS 08008A PERFORMANCE TECHNOLOGY 08008B PYRAMID TECHNOLOGY CORP. 08008C NETWORK RESEARCH CORPORATION 08008D XYVISION INC. 08008E TANDEM COMPUTERS 08008F CHIPCOM CORPORATION 080090 SONOMA SYSTEMS 08BBCC AK-NORD EDV VERTRIEBSGES. MBH 10005A IBM CORPORATION 1000E8 NATIONAL SEMICONDUCTOR 800010 ATT BELL LABORATORIES A06A00 Verilink Corporation AA0000 DIGITAL EQUIPMENT CORPORATION AA0001 DIGITAL EQUIPMENT CORPORATION AA0002 DIGITAL EQUIPMENT CORPORATION AA0003 DIGITAL EQUIPMENT CORPORATION AA0004 DIGITAL EQUIPMENT CORPORATION gscanbus-0.8/raw1394support.h000066400000000000000000000044111151312264100161020ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * raw1394support.h - Linux IEEE-1394 Subsystem RAW 1394 support library * for some compatibility with older library * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __RAW1394SUPPORT_H__ #define __RAW1394SUPPORT_H__ #include #include #define SELFID_PORT_CHILD 0x3 #define SELFID_PORT_PARENT 0x2 #define SELFID_PORT_NCONN 0x1 #define SELFID_PORT_NONE 0x0 typedef union { struct packetZero_t { unsigned designator :2; unsigned phyID :6; unsigned ZeroOrMore :1; unsigned linkActive :1; unsigned gapCount :6; unsigned phySpeed :2; unsigned phyDelay :2; unsigned contender :1; unsigned powerClass :3; unsigned port0 :2; unsigned port1 :2; unsigned port2 :2; unsigned initiatedReset :1; unsigned morePackets :1; } packetZero; struct packetMore_t { unsigned designator :2; unsigned phyID :6; unsigned ZeroOrMore :1; unsigned packetNumber :3; unsigned rsv :2; unsigned portA :2; unsigned portB :2; unsigned portC :2; unsigned portD :2; unsigned portE :2; unsigned portF :2; unsigned portG :2; unsigned portH :2; unsigned r :1; unsigned morePackets :1; } packetMore; } SelfIdPacket_t; typedef struct RAW1394topologyMap_t { u_int16_t length; u_int16_t crc; u_int32_t generationNumber; u_int16_t nodeCount; u_int16_t selfIdCount; SelfIdPacket_t selfIdPacket[(0x400 - 4)]; } RAW1394topologyMap; #endif gscanbus-0.8/raw1394util.c000066400000000000000000000047561151312264100153520ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * raw1394util.c - Linux IEEE-1394 Subsystem utility routines for * libraw1394 * These routines provide cooked versions of the routines in libraw1394. They * do automatic error checking and retries, return code munging, etc. * * When this code has settleted into a stable form it should probably merged * into libraw1394. * * Written 4.10.2000 - 26.01.2001 by Andreas Micklei * * 26.01.2001: Adapted to new error handling scheme in libraw1394 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "raw1394util.h" #define DEBUG_ACK_RCODE(ackcode,rcode) DEBUG_LOWLEVEL_ERR fprintf(stderr, "Ack code: 0x%0x, Response code: 0x%0x\n",(ackcode),(rcode)); #define MAXTRIES 20 #define DELAY 10000 int cooked1394_read(raw1394handle_t handle, nodeid_t node, nodeaddr_t addr, size_t length, quadlet_t *buffer) { int retval, i; for(i=0; i= 0 ) return retval; /* Everything is OK */ DEBUG_ACK_RCODE( raw1394_get_ack(raw1394_get_errcode(handle)), raw1394_get_rcode(raw1394_get_errcode(handle)) ); if( errno != EAGAIN ) break; usleep(DELAY); } perror("Error while reading from IEEE1394: "); return retval; } int cooked1394_write(raw1394handle_t handle, nodeid_t node, nodeaddr_t addr, size_t length, quadlet_t *data) { int retval, i; for(i=0; i= 0 ) return retval; /* Everything is OK */ DEBUG_ACK_RCODE( raw1394_get_ack(raw1394_get_errcode(handle)), raw1394_get_rcode(raw1394_get_errcode(handle)) ); if( errno != EAGAIN ) break; usleep(DELAY); } perror("Error while writing to IEEE1394: "); return retval; } gscanbus-0.8/raw1394util.h000066400000000000000000000031351151312264100153450ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * raw1394util.h - Linux IEEE-1394 Subsystem utility routines for * libraw1394 * These routines provide cooked versions of the routines in libraw1394. They * do automatic error checking and retries, return code munging, etc. * * When this code has settleted into a stable form it should probably merged * into libraw1394. * * Written 4.10.2000 by Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __RAW1394UITL_H__ #define __RAW1394UTIL_H__ #include #include "debug.h" #include #include #include int cooked1394_read(raw1394handle_t handle, nodeid_t node, nodeaddr_t addr, size_t length, quadlet_t *buffer); int cooked1394_write(raw1394handle_t handle, nodeid_t node, nodeaddr_t addr, size_t length, quadlet_t *data); #endif gscanbus-0.8/rominfo.c000066400000000000000000000432451151312264100150070ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * rominfo.c - Linux IEEE-1394 Subsystem CSR ROM info reading routines * written 23.11.1999 - 24.11. 1999 by Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "rominfo.h" #include #define MAXLINE 80 #define GUIDFILENAME0 "guid-resolv.conf" #define GUIDFILENAME1 SYSCONFDIR "/guid-resolv.conf" #define GUIDERROR "Error while opening guid-resolv.conf" #define OUIFILENAME0 "oui-resolv.conf" #define OUIFILENAME1 SYSCONFDIR "/oui-resolv.conf" #define OUIERROR "Error while opening oui-resolv.conf" #define QUADINC(x) x = x + 4 #define WARN(s, phyID, adr) fprintf(stderr,"%i/0x%08x%08x: %s\n",phyID,(int) (adr>>32), (int) adr,s) #define QUADREADERR(handle, phyID, offset, buf) if(cooked1394_read(handle, 0xffc0 | phyID, offset, 4, buf) < 0) WARN("read failed", phyID, offset); /* * Fill out the structure with zeroes * IN: rom_info: Pointer to the unitiliazied structure */ void init_rom_info(Rom_info *rom_info) { rom_info->magic = 0; rom_info->irmc = 0; rom_info->cmc = 0; rom_info->isc = 0; rom_info->bmc = 0; rom_info->cyc_clk_acc = 0; rom_info->max_rec = 0; rom_info->guid_hi = 0; rom_info->guid_lo = 0; rom_info->node_capabilities = 0; rom_info->vendor_id = 0; rom_info->unit_spec_id = 0; rom_info->unit_sw_version = 0; rom_info->model_id = 0; rom_info->nr_textual_leafes = 0; rom_info->textual_leafes = NULL; rom_info->label = NULL; rom_info->vendor = NULL; } int check_guid_line(char *s) { if (s == NULL) return 0; if (s[0] == '#') return 0; return 1; } /* * Resolve a guid into a name from the configuration file. Read in the file on * first invocation * IN: guid_hi: High quadlet of GUI * guid_lo: Low quadlet of GUI * OUT: cpu: 1 if device is a CPU, 0 otherwise * RETURNS: Pointer to the description string */ char *resolv_guid(int guid_hi, int guid_lo, char *cpu) { static int nr_guids = -1; static int *guids_hi; static int *guids_lo; static char **descriptions; static char *cpus; int *pguid_hi, *pguid_lo, i; FILE *file; char s[MAXLINE+1], description[MAXLINE+1], **pdescription, *pdesc, *pcpu, *pcpus; char *filename; /* read in descriptions on first call */ if (nr_guids < 0) { filename = GUIDFILENAME0; file = fopen(filename, "r"); DEBUG_GENERAL fprintf(stderr,"Opening \"%s\": ",filename); if (file == NULL) { filename = GUIDFILENAME1; DEBUG_GENERAL fprintf(stderr,"Error\nOpening \"%s\": ", filename); file = fopen(filename, "r"); } if (file == NULL) { DEBUG_GENERAL fprintf(stderr,"Error\n"); perror(GUIDERROR); nr_guids = 0; /* Never try again */ return NULL; } DEBUG_GENERAL fprintf(stderr,"OK\n"); nr_guids = 0; /* Count guids */ while (fgets(s, MAXLINE+1, file) != NULL) { if (check_guid_line(s)) nr_guids++; } DEBUG_GENERAL fprintf(stderr,"%s: %i lines\n",filename,nr_guids); /* Allocate memory */ guids_hi = (int *) calloc(nr_guids, sizeof(int)); if (!guids_hi) fatal("out of memory!"); guids_lo = (int *) calloc(nr_guids, sizeof(int)); if (!guids_lo) fatal("out of memory!"); descriptions = (char **) calloc(nr_guids, sizeof(char *)); if (!descriptions) fatal("out of memory!"); cpus = (char *) calloc(nr_guids, sizeof(char)); if (!cpus) fatal("out of memory!"); rewind(file); /* read in guids */ pguid_hi = guids_hi; pguid_lo = guids_lo; pdescription = descriptions; pcpus = cpus; while (fgets(s, MAXLINE+1, file) != NULL) { if (!check_guid_line(s)) continue; sscanf(s, "%8x%8x%[^\n]", pguid_hi++, pguid_lo++, description); pdesc = description; while (*pdesc == ' ' || *pdesc == '\t') pdesc++; pcpu = pdesc; while (*pcpu != '\t' && *pcpu != '\0') pcpu++; *pdescription = (char *) malloc((pcpu - pdesc) + 1); if (!*pdescription) fatal("out of memory!"); strncpy(*pdescription, pdesc, pcpu - pdesc); *(*pdescription + (pcpu - pdesc)) = '\0'; pdescription++; while (*pcpu == '\t' || *pcpu == ' ') pcpu++; *pcpus = *pcpu - '0'; pcpus++; DEBUG_CONFIG fprintf(stderr,"%08x%08x_%s_%i\n", (unsigned) pguid_hi-1, (unsigned) pguid_lo-1, *(pdescription-1), *(pcpus-1)); } fclose(file); } for (i=0; iunit_spec_id == 0xA02D) { if ((rom_info->unit_sw_version == 0x100)|| (rom_info->unit_sw_version == 0x101) || (rom_info->unit_sw_version == 0x102)) { return NODE_TYPE_CONF_CAM; } else if (rom_info->unit_sw_version == 0x10000 || rom_info->unit_sw_version == 0x10001) { return NODE_TYPE_AVC; } } else if (rom_info->unit_spec_id == 0x609E && rom_info->unit_sw_version == 0x10483) { return NODE_TYPE_SBP2; } else { resolv_guid(rom_info->guid_hi, rom_info->guid_lo, &cpu); if (cpu) return NODE_TYPE_CPU; } return NODE_TYPE_UNKNOWN; } /* * Obtain the global unique identifier of a node from its configuration ROM. * The GUID can also be read from a filled out Rom_info structure, but this * method is of course faster than reading the whole configuration ROM and can * for instance be used to obtain a hash key for caching Rom_info structures * in memory. * IN: phyID: Physical ID of the node to read from * hi: Pointer to an integer which should receive the HI quadlet * hi: Pointer to an integer which should receive the LOW quadlet */ void get_guid(raw1394handle_t handle, int phyID, unsigned int *hi, unsigned int *lo) { if (cooked1394_read(handle, 0xffC0 | phyID, CSR_REGISTER_BASE + CSR_CONFIG_ROM + 0x0C, 4, hi) < 0) { *hi=0; *lo=0; return; } if (cooked1394_read(handle, 0xffC0 | phyID, CSR_REGISTER_BASE + CSR_CONFIG_ROM + 0x10, 4, lo) < 0) { *hi=0; *lo=0; return; } } /* * Read a textual leaf into a malloced ASCII string * TODO: This routine should probably care about character sets, Unicode, etc. * IN: phyID: Physical ID of the node to read from * offset: Memory offset to read from * RETURNS: pointer to a freshly malloced string that contains the * requested text or NULL if the text could not be read. */ char *read_textual_leaf(raw1394handle_t handle, int phyID, octlet_t offset) { int i, length; char *s; quadlet_t quadlet; DEBUG_CSR fprintf(stderr, "Reading textual leaf: %i 0x%08x%08x\n", phyID, (unsigned int) (offset>>32), (unsigned int) offset&0xFFFFFFFF); QUADREADERR(handle, phyID, offset, &quadlet); quadlet = htonl(quadlet); length = (quadlet >> 16) * 4; DEBUG_CSR fprintf(stderr, "Textual leaf length: %i (0x%08X)\n", length, length); if (length<3*4 || length > 256) return NULL; /* FIXME */ QUADINC(offset); /* language specifier */ QUADINC(offset); /* language id / character set */ length = length - 2*4; if ((s = (char *) malloc(length+1)) == NULL) fatal("Out of memory"); for (i=0; i>24; if (++i < length) s[i] = (quadlet>>16)&0xFF; else break; DEBUG_CSR fprintf(stderr,"."); if (++i < length) s[i] = (quadlet>>8)&0xFF; else break; DEBUG_CSR fprintf(stderr,"."); if (++i < length) s[i] = (quadlet)&0xFF; else break; DEBUG_CSR fprintf(stderr,"."); } s[i] = '\0'; DEBUG_CSR fprintf(stderr,"\nText: %s\n",s); return s; } /* * Read a whole bunch of textual leafes from a node into an array of ASCII * strings. * IN: phyID: Physical ID of the node to read from * offsets: Memory offsets to read from * n: Number of Strings to read * RETURNS: pointer to a freshly malloced array of freshly malloced * strings that contains the requested texts. Some of the * strings might be NULL however. * Returns NULL when the number of textual leafes is 0. */ char **read_textual_leafes(raw1394handle_t handle, int phyID, octlet_t offsets[], int n) { int i; char **textual_leafes; if (n == 0) return NULL; if ((textual_leafes = (char **) calloc(n,sizeof(char *))) == NULL) fatal("out of memory"); for (i=0; i>24; if (length != 4) { WARN("wrong bus info block length",phyID, offset); return -1; } QUADINC(offset); QUADREADERR(handle, phyID, offset, &quadlet); quadlet = htonl(quadlet); rom_info->magic = quadlet; DEBUG_CSR fprintf(stderr, "Magic Quadlet: 0x%08x\n", quadlet); if (rom_info->magic != 0x31333934) { WARN("wrong magic quadlet: ",phyID, offset); return -1; } QUADINC(offset); QUADREADERR(handle, phyID, offset, &quadlet); quadlet = htonl(quadlet); rom_info->irmc = quadlet>>31; rom_info->cmc = (quadlet>>30)&1; rom_info->isc = (quadlet>>29)&1; rom_info->bmc = (quadlet>>28)&1; rom_info->cyc_clk_acc = (quadlet>>16)&0xFF; rom_info->max_rec = (quadlet>>12)&0xF; QUADINC(offset); QUADREADERR(handle, phyID, offset, &quadlet); quadlet = htonl(quadlet); rom_info->guid_hi = quadlet; QUADINC(offset); QUADREADERR(handle, phyID, offset, &quadlet); quadlet = htonl(quadlet); rom_info->guid_lo = quadlet; /* Read Root Directory */ nr_textual_leafes = 0; QUADINC(offset); if (cooked1394_read(handle, 0xffc0 | phyID, offset, 4, &quadlet) < 0) { WARN("read failed",phyID, offset); return -1; } quadlet = htonl(quadlet); length = quadlet>>16; DEBUG_CSR fprintf(stderr, "Root Directory length: %i\n",length); for (i=0; i>24; value = quadlet&0x00FFFFFF; DEBUG_LOWLEVEL fprintf(stderr,"key/value: 0x%02x 0x%06x\n", key, value); switch (key) { case 0x0C: rom_info->node_capabilities = value; break; case 0x03: rom_info->vendor_id = value; break; case 0x81: textual_leafes[nr_textual_leafes++] = offset + value*4; break; case 0xD1: unit_directory = offset + value*4; break; default: DEBUG_CSR fprintf(stderr, "Unknown key/value pair 0x%02x 0x%06x\n", key, value); } } /* Read Unit Directory */ if (unit_directory != 0) { DEBUG_CSR fprintf(stderr, "Reading Unit directory: %i 0x%08x%08x\n", phyID, (unsigned int) (unit_directory>>32), (unsigned int) unit_directory&0xFFFFFFFF); offset = unit_directory; if (cooked1394_read(handle, 0xffc0 | phyID, offset, 4, &quadlet) < 0) { WARN("read failed", phyID, offset); return -1; } quadlet = htonl(quadlet); length = quadlet>>16; DEBUG_CSR fprintf(stderr, "Unit Directory length: %i\n", length); for (i=0; i>24; value = quadlet&0x00FFFFFF; switch (key) { case 0x12: rom_info->unit_spec_id = value; break; case 0x13: rom_info->unit_sw_version = value; break; case 0x17: rom_info->model_id = value; break; case 0xD1: textual_leafes[nr_textual_leafes++] = offset + value*4; break; default: DEBUG_CSR fprintf(stderr, "Unknown key/value pair 0x%02x 0x%06x\n", key, value); } } } /* Read textual leafes */ rom_info->nr_textual_leafes = nr_textual_leafes; rom_info->textual_leafes = read_textual_leafes(handle, phyID, textual_leafes, nr_textual_leafes); /* Calculate label */ rom_info->label = resolv_guid(rom_info->guid_hi, rom_info->guid_lo, &cpu); if (rom_info->label == NULL) { if (rom_info->nr_textual_leafes != 0) { rom_info->label = rom_info->textual_leafes[0]; } else { rom_info->label = "Unknown"; } } /* Get vendor */ rom_info->vendor = resolv_oui(rom_info->vendor_id); if (rom_info->vendor == NULL) { rom_info->vendor = "Unknown"; } /* Get node type */ rom_info->node_type = get_node_type(rom_info); return 0; } /* * Free up all memory malloced by get_rom_info. * IN: rom_info: pointer to the Rom_info structure which is no longer * needed */ void free_rom_info(Rom_info *rom_info) { int i; return; //FIXME if (rom_info == NULL || rom_info->textual_leafes == NULL) return; for (i=0; inr_textual_leafes; i++) { free(rom_info->textual_leafes[i]); } if (rom_info->textual_leafes != 0) free(rom_info->textual_leafes); rom_info->textual_leafes = 0; } gscanbus-0.8/rominfo.h000066400000000000000000000112631151312264100150070ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * rominfo.h - Linux IEEE-1394 Subsystem CSR ROM info reading routines * written 23.11.1999 by Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __ROMINFO_H__ #define __ROMINFO_H__ #include "raw1394support.h" #include "raw1394util.h" //#include "topologyTree.h" #include "fatal.h" #include "debug.h" #include #include #include #include #define NODE_TYPE_UNKNOWN 0 #define NODE_TYPE_CONF_CAM 1 #define NODE_TYPE_AVC 2 #define NODE_TYPE_SBP2 3 #define NODE_TYPE_CPU 4 /* * This structure holds various interesting data about a device which can be * obtained from the configuration rom */ typedef struct rom_info_t { quadlet_t magic; /* should contain 1394 in ASCII */ char irmc; char cmc; char isc; char bmc; unsigned char cyc_clk_acc; char max_rec; quadlet_t guid_hi; quadlet_t guid_lo; quadlet_t node_capabilities; quadlet_t vendor_id; quadlet_t unit_spec_id; quadlet_t unit_sw_version; quadlet_t model_id; int nr_textual_leafes; char **textual_leafes; char *label; /* aggregated from textual leafes */ char *vendor; int node_type; /* NODE_TYPE_AVC, etc. */ } Rom_info; /* * Fill out the structure with zeroes * IN: rom_info: Pointer to the unitiliazied structure */ void init_rom_info(Rom_info *rom_info); /* * Resolve a guid into a name from the configuration file. Read in the file on * first invocation * IN: guid_hi: High quadlet of GUI * guid_lo: Low quadlet of GUI * RETURNS: Pointer to the description string */ char *resolv_guid(int guid_hi, int guid_lo, char *cpu); /* * Get the type / protocol of a node * IN: rom_info: pointer to the Rom_info structure of the node * RETURNS: one of the defined node types, i.e. NODE_TYPE_AVC, etc. */ int get_node_type(Rom_info *rom_info); /* * Obtain the global unique identifier of a node from its configuration ROM. * The GUID can also be read from a filled out Rom_info structure, but this * method is of course faster than reading the whole configuration ROM and can * for instance be used to obtain a hash key for caching Rom_info structures * in memory. * IN: phyID: Physical ID of the node to read from * hi: Pointer to an integer which should receive the HI quadlet * hi: Pointer to an integer which should receive the LOW quadlet */ /*void get_guid(raw1394handle_t handle, int phyID, unsigned int *hi, unsigned int *lo);*/ /* * Read a textual leaf into a malloced ASCII string * TODO: This routine should probably care about character sets, Unicode, etc. * IN: phyID: Physical ID of the node to read from * offset: Memory offset to read from * RETURNS: pointer to a freshly malloced string that contains the * requested text or NULL if the text could not be read. */ /*char *read_textual_leaf(raw1394handle_t handle, int phyID, octlet_t offset);*/ /* * Read a whole bunch of textual leafes from a node into an array of ASCII * strings. * IN: phyID: Physical ID of the node to read from * offsets: Memory offsets to read from * n: Number of Strings to read * RETURNS: pointer to a freshly malloced array of freshly malloced * strings that contains the requested texts. Some of the * strings might be NULL however. */ /*char **read_textual_leafes(raw1394handle_t handle, int phyID, octlet_t offsets[], int n);*/ /* * Read various information from the configuration ROM of a device into a * Rom_info struct. * IN: phyID: Physical ID of the node to read from * rom_info: Pointer to a structure to fill * RETURNS: 0 on success, -1 on error * NOTE: Some strings may be malloced by this routine. free_rom_info * schould therefore be called, when the contents of this * structure are no longer needed. */ int get_rom_info(raw1394handle_t handle, int phyID, Rom_info *rom_info); /* * Free up all memory malloced by get_rom_info. * IN: rom_info: pointer to the Rom_info structure which is no longer * needed */ void free_rom_info(Rom_info *rom_info); #endif gscanbus-0.8/simpleavc.c000066400000000000000000000305151151312264100153150ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * simpleavc.c - Linux IEEE-1394 Subsystem AV/C routines * These routines are very basic. They can only be used for sending simple * commands to AV/C equipment. No control of Input and Output Plugs, etc. is * provided. * Written 8.12.1999 - 22.5.2000 by Andreas Micklei * 14.1.2000: added block operations * 6.4.2000: adapted to new fcp handling for libraw1394 0.6 * avc_transaction() and avc_transaction_block() are much cleaner * now thanks to the new fcp handling. get_avc_response() and * get_avc_response_block() are broken at the moment and will * probably bee removed. * 22.5.2000: fixed block transactions * added lots of defines and some new convenience functions for * special operations like AV/C descriptor processing * 4.10.2000: switched to cooked functions from raw1394util * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "simpleavc.h" /* For select() */ #include #include #include #include #include #include //DEBUG #define MAX_RESPONSE_SIZE 512 unsigned char fcp_response[MAX_RESPONSE_SIZE]; void htonl_block(quadlet_t *buf, int len) { int i; for (i=0; i= 0); stop_avc_response_handler(handle); return -1; } /* * Send an AV/C request to a device, wait for the corresponding AV/C * response and return that. This version uses block transactions. * IN: handle: the libraw1394 handle * node: the phyisical ID of the node * buf: the FCP request to send * len: the length of the FCP request * retry: retry sending the request this many times * RETURNS: the AV/C response if everything went well, NULL in case of an * error. The response always has the same length as the request. */ quadlet_t *avc_transaction_block(raw1394handle_t handle, nodeid_t node, quadlet_t *buf, int len, int retry) { quadlet_t *response; /*int i;*/ init_avc_response_handler(handle); do { if (send_avc_command_block(handle, node, buf, len) < 0) { fprintf(stderr,"send oops\n"); usleep(10); continue; } raw1394_loop_iterate(handle); response = (quadlet_t *)fcp_response; while ((response[0] & 0x0F000000) == 0x0F000000) { fprintf(stderr,"INTERIM\n"); raw1394_loop_iterate(handle); response = (quadlet_t *)fcp_response; } stop_avc_response_handler(handle); ntohl_block(response, len); /*fprintf(stderr, "avc_transaction_block received response: "); for (i=0; i= 0); stop_avc_response_handler(handle); return NULL; } /*--------------------- * HIGH-LEVEL-FUNCTIONS * -------------------- */ /* * Open an AV/C descriptor */ int avc_open_descriptor(raw1394handle_t handle, nodeid_t node, quadlet_t ctype, quadlet_t subunit, unsigned char *descriptor_identifier, int len_descriptor_identifier, unsigned char readwrite) { //quadlet_t request[2]; quadlet_t request[2]; quadlet_t *response; int i; unsigned char subfunction = readwrite? AVC_OPERAND_DESCRIPTOR_SUBFUNCTION_WRITE_OPEN :AVC_OPERAND_DESCRIPTOR_SUBFUNCTION_READ_OPEN; fprintf(stderr, "Open descriptor: ctype: 0x%08X, subunit:0x%08X,\n descriptor_identifier:", ctype, subunit); for (i=0; i> 16); request[1] = ((*descriptor_identifier & 0xFF) << 24) | subfunction;*/ request[0] = ctype | subunit | AVC_COMMAND_OPEN_DESCRIPTOR | *descriptor_identifier; request[1] = subfunction << 24; if (ctype == AVC_CTYPE_STATUS) request[1] = 0xFF00FFFF; response = avc_transaction_block(handle, node, request, 2, 3); if (response == NULL) return -1; fprintf(stderr, "Open descriptor response: 0x%08X.\n", *response); return 0; } /* * Close an AV/C descriptor */ int avc_close_descriptor(raw1394handle_t handle, nodeid_t node, quadlet_t ctype, quadlet_t subunit, unsigned char *descriptor_identifier, int len_descriptor_identifier) { quadlet_t request[2]; quadlet_t *response; int i; unsigned char subfunction = AVC_OPERAND_DESCRIPTOR_SUBFUNCTION_CLOSE; fprintf(stderr, "Close descriptor: ctype: 0x%08X, subunit:0x%08X,\n descriptor_identifier:", ctype, subunit); for (i=0; i> 16); request[1] = ((*descriptor_identifier & 0xFF) << 24) | subfunction;*/ request[0] = ctype | subunit | AVC_COMMAND_OPEN_DESCRIPTOR | *descriptor_identifier; request[1] = subfunction << 24; response = avc_transaction_block(handle, node, request, 2, 3); if (response == NULL) return -1; fprintf(stderr, "Close descriptor response: 0x%08X.\n", *response); return 0; } /* * Read an entire AV/C descriptor */ unsigned char *avc_read_descriptor(raw1394handle_t handle, nodeid_t node, quadlet_t subunit, unsigned char *descriptor_identifier, int len_descriptor_identifier) { quadlet_t request[128]; quadlet_t *response; if (len_descriptor_identifier != 1) fprintf(stderr, "Unimplemented.\n"); memset(request, 0, 128*4); request[0] = AVC_CTYPE_CONTROL | subunit | AVC_COMMAND_READ_DESCRIPTOR | *descriptor_identifier; request[1] = 0xFF000000; /* read entire descriptor */ request[2] = 0x00000000; /* beginning from 0x0000 */ response = avc_transaction_block(handle, node, request, 3, 3); if (response == NULL) return NULL; return (unsigned char *) response; } /* * Get subunit info */ #define EXTENSION_CODE 7 int avc_subunit_info(raw1394handle_t handle, nodeid_t node, quadlet_t *table) { quadlet_t request[2]; quadlet_t *response; int page; for (page=0; page < 8; page++) { request[0] = AVC_CTYPE_STATUS | AVC_SUBUNIT_TYPE_UNIT | AVC_SUBUNIT_ID_IGNORE | AVC_COMMAND_SUBUNIT_INFO | page << 4 | EXTENSION_CODE; request[1] = 0xFFFFFFFF; response = avc_transaction_block(handle, node, request, 2, 3); if (response == NULL) return -1; table[page] = response[1]; } /*fprintf(stderr, "avc_subunit_info:"); for (page=0; page < 8; page++) fprintf(stderr, " 0x%08X", table[page]); fprintf(stderr, "\n");*/ return 0; } quadlet_t *avc_unit_info(raw1394handle_t handle, nodeid_t node) { quadlet_t request[2]; quadlet_t *response; request[0] = AVC_CTYPE_STATUS | AVC_SUBUNIT_TYPE_UNIT | AVC_SUBUNIT_ID_IGNORE | AVC_COMMAND_UNIT_INFO | 0xFF; request[1] = 0xFFFFFFFF; response = avc_transaction_block(handle, node, request, 2, 3); if (response == NULL) return NULL; fprintf(stderr, "avc_unit_info: 0x%08X 0x%08X\n", response[0], response[1]); return response; } char *avc_decode_vcr_response(quadlet_t response) { /*quadlet_t resp0 = AVC_MASK_RESPONSE_OPERAND(response, 0); quadlet_t resp1 = AVC_MASK_RESPONSE_OPERAND(response, 1);*/ quadlet_t resp2 = AVC_MASK_RESPONSE_OPERAND(response, 2); quadlet_t resp3 = AVC_MASK_RESPONSE_OPERAND(response, 3); if (response == 0) { return "OK"; } else if (resp2 == VCR_RESPONSE_TRANSPORT_STATE_LOAD_MEDIUM) { return("Loading Medium"); } else if (resp2 == VCR_RESPONSE_TRANSPORT_STATE_RECORD) { return("Recording"); } else if (resp2 == VCR_RESPONSE_TRANSPORT_STATE_PLAY) { if (resp3 >= VCR_OPERAND_PLAY_FAST_FORWARD_1 && resp3 <= VCR_OPERAND_PLAY_FASTEST_FORWARD) { return("Playing Fast Forward"); } else if (resp3 >= VCR_OPERAND_PLAY_FAST_REVERSE_1 && resp3 <= VCR_OPERAND_PLAY_FASTEST_REVERSE) { return("Playing Reverse"); } else if (resp3 == VCR_OPERAND_PLAY_FORWARD_PAUSE) { return("Playing Paused"); } else { return("Playing"); } } else if (resp2 == VCR_RESPONSE_TRANSPORT_STATE_WIND) { if (resp3 == VCR_OPERAND_WIND_HIGH_SPEED_REWIND) { return("Winding backward at incredible speed"); } else if (resp3 == VCR_OPERAND_WIND_STOP) { return("Winding stopped"); } else if (resp3 == VCR_OPERAND_WIND_REWIND) { return("Winding reverse"); } else if (resp3 == VCR_OPERAND_WIND_FAST_FORWARD) { return("Winding forward"); } else { return("Winding"); } } else { return("Unknown"); } } gscanbus-0.8/simpleavc.h000066400000000000000000000253551151312264100153300ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * simpleavc.h - Linux IEEE-1394 Subsystem AV/C routines * These routines are very basic. They can only be used for sending simple * commands to AV/C equipment. No control of Input and Output Plugs, etc. is * provided. * Written 8.12.1999 - 14.1.2000 by Andreas Micklei * 14.1.2000: added AVC constants and macros * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __SIMPLEAVC_H__ #define __SIMPLEAVC_H__ #include #include #include "debug.h" #include "raw1394util.h" /* FCP Register Space */ #define FCP_COMMAND_ADDR 0xFFFFF0000B00 #define FCP_RESPONSE_ADDR 0xFFFFF0000D00 /* AV/C Mask macros */ #define AVC_MASK_START(x) ((x) & 0xF0000000) #define AVC_MASK_CTYPE(x) ((x) & 0x0F000000) #define AVC_MASK_RESPONSE(x) ((x) & 0x0F000000) #define AVC_MASK_SUBUNIT_TYPE(x) ((x) & 0x00F80000) #define AVC_MASK_SUBUNIT_ID(x) ((x) & 0x00070000) #define AVC_MASK_OPCODE(x) ((x) & 0x0000FF00) #define AVC_MASK_OPERAND0(x) ((x) & 0x000000FF) #define AVC_MASK_OPERAND(x, n) ((x) & (0xFF000000 >> ((((n)-1)%4)*8))) #define AVC_MASK_RESPONSE_OPERAND(x, n) ((x) & (0xFF000000 >> (((n)%4)*8))) /* AV/C Mask and shift macros */ #define AVC_GET_CTYPE(x) (((x) & 0x0F000000) >> 24) #define AVC_GET_RESPONSE(x) (((x) & 0x0F000000) >> 24) #define AVC_GET_SUBUNIT_TYPE(x) (((x) & 0x00F80000) >> 19) #define AVC_GET_SUBUNIT_ID(x) (((x) & 0x00070000) >> 16) #define AVC_GET_OPCODE(x) (((x) & 0x0000FF00) >> 8) #define AVC_GET_OPERAND0(x) ((x) & 0x000000FF) #define AVC_GET_OPERAND(x, n) (((x) & (0xFF000000 >> ((((n)-1)%4)*8))) >> ((((n)-1)%4)*8)) #define AVC_GET_RESPONSE_OPERAND(x, n) (((x) & (0xFF000000 >> (((n)%4)*8))) >> (((n)%4)*8)) /* AV/C command types */ #define AVC_CTYPE_CONTROL 0x00000000 #define AVC_CTYPE_STATUS 0x01000000 #define AVC_CTYPE_SPECIFIC_INQUIRY 0x02000000 #define AVC_CTYPE_NOTIFY 0x03000000 #define AVC_CTYPE_GENERAL_INQUIRY 0x04000000 /* AV/C response codes */ #define AVC_RESPONSE_NOT_IMPLEMENTED 0x08000000 #define AVC_RESPONSE_ACCEPTED 0x09000000 #define AVC_RESPONSE_REJECTED 0x0A000000 #define AVC_RESPONSE_IN_TRANSITION 0x0B000000 #define AVC_RESPONSE_IMPLEMENTED 0x0C000000 #define AVC_RESPONSE_STABLE 0x0C000000 #define AVC_RESPONSE_CHANGED 0x0D000000 #define AVC_RESPONSE_INTERIM 0x0F000000 /* AV/C subunit types */ #define AVC_SUBUNIT_TYPE_VIDEO_MONITOR (0 <<19) #define AVC_SUBUNIT_TYPE_DISC_RECORDER (3 <<19) #define AVC_SUBUNIT_TYPE_TAPE_RECORDER (4 <<19) #define AVC_SUBUNIT_TYPE_TUNER (5 <<19) #define AVC_SUBUNIT_TYPE_VIDEO_CAMERA (7 <<19) #define AVC_SUBUNIT_TYPE_VENDOR_UNIQUE (0x1C <<19) #define AVC_SUBUNIT_TYPE_EXTENDED (0x1E <<19) /* Not implemented */ #define AVC_SUBUNIT_TYPE_UNIT (0x1F <<19) /* AV/C subunit IDs */ #define AVC_SUBUNIT_ID_0 (0 << 16) #define AVC_SUBUNIT_ID_1 (1 << 16) #define AVC_SUBUNIT_ID_2 (2 << 16) #define AVC_SUBUNIT_ID_3 (3 << 16) #define AVC_SUBUNIT_ID_4 (4 << 16) #define AVC_SUBUNIT_ID_EXTENDED (5 <<16) /* Not implemented */ #define AVC_SUBUNIT_ID_IGNORE (7 << 16) /* AV/C Unit commands */ #define AVC_COMMAND_CHANNEL_USAGE 0x00001200 #define AVC_COMMAND_CONNECT 0x00002400 #define AVC_COMMAND_CONNECT_AV 0x00002000 #define AVC_COMMAND_CONNECTIONS 0x00002200 #define AVC_COMMAND_DIGITAL_INPUT 0x00001100 #define AVC_COMMAND_DIGITAL_OUTPUT 0x00001000 #define AVC_COMMAND_DISCONNECT 0x00002500 #define AVC_COMMAND_DISCONNECT_AV 0x00002100 #define AVC_COMMAND_INPUT_PLUG_SIGNAL_FORMAT 0x00001900 #define AVC_COMMAND_OUTPUT_PLUG_SIGNAL_FORMAT 0x00001800 #define AVC_COMMAND_SUBUNIT_INFO 0x00003100 #define AVC_COMMAND_UNIT_INFO 0x00003000 /* AV/C Common unit and subunit commands */ #define AVC_COMMAND_OPEN_DESCRIPTOR 0x00000800 #define AVC_COMMAND_READ_DESCRIPTOR 0x00000900 #define AVC_COMMAND_WRITE_DESCRIPTOR 0x00000A00 #define AVC_COMMAND_SEARCH_DESCRIPTOR 0x00000B00 #define AVC_COMMAND_OBJECT_NUMBER_SELECT 0x00000D00 #define AVC_COMMAND_POWER 0x0000B200 #define AVC_COMMAND_RESERVE 0x00000100 #define AVC_COMMAND_PLUG_INFO 0x00000200 #define AVC_COMMAND_VENDOR_DEPENDENT 0x00000000 /* AV/C Common unit and subunit command operands */ #define AVC_OPERAND_DESCRIPTOR_TYPE_SUBUNIT_IDENTIFIER_DESCRIPTOR 0x00 #define AVC_OPERAND_DESCRIPTOR_TYPE_OBJECT_LIST_DESCRIPTOR_ID 0x10 #define AVC_OPERAND_DESCRIPTOR_TYPE_OBJECT_LIST_DESCRIPTOR_TYPE 0x11 #define AVC_OPERAND_DESCRIPTOR_TYPE_OBJECT_ENTRY_DESCRIPTOR_POSITION 0x20 #define AVC_OPERAND_DESCRIPTOR_TYPE_OBJECT_ENTRY_DESCRIPTOR_ID 0x21 #define AVC_OPERAND_DESCRIPTOR_SUBFUNCTION_CLOSE 0x00 #define AVC_OPERAND_DESCRIPTOR_SUBFUNCTION_READ_OPEN 0x01 #define AVC_OPERAND_DESCRIPTOR_SUBFUNCTION_WRITE_OPEN 0x03 /* VCR subunit commands (Alphabetically) */ #define VCR_COMMAND_ANALOG_AUDIO_OUTPUT_MODE 0x000007000 #define VCR_COMMAND_AREA_MODE 0x000007200 #define VCR_COMMAND_ABSOLUTE_TRACK_NUMBER 0x000005200 #define VCR_COMMAND_AUDIO_MODE 0x000007100 #define VCR_COMMAND_BACKWARD 0x000005600 #define VCR_COMMAND_BINARY_GROUP 0x000005A00 #define VCR_COMMAND_EDIT_MODE 0x000004000 #define VCR_COMMAND_FORWARD 0x000005500 #define VCR_COMMAND_INPUT_SIGNAL_MODE 0x000007900 #define VCR_COMMAND_LOAD_MEDIUM 0x00000C100 #define VCR_COMMAND_MARKER 0x00000CA00 #define VCR_COMMAND_MEDIUM_INFO 0x00000DA00 #define VCR_COMMAND_OPEN_MIC 0x000006000 #define VCR_COMMAND_OUTPUT_SIGNAL_MODE 0x000007800 #define VCR_COMMAND_PLAY 0x00000C300 #define VCR_COMMAND_PRESET 0x000004500 #define VCR_COMMAND_READ_MIC 0x000006100 #define VCR_COMMAND_RECORD 0x00000C200 #define VCR_COMMAND_RECORDING_DATE 0x000005300 #define VCR_COMMAND_RECORDING_SPEED 0x00000DB00 #define VCR_COMMAND_RECORDING_TIME 0x000005400 #define VCR_COMMAND_RELATIVE_TIME_COUNTER 0x000005700 #define VCR_COMMAND_SEARCH_MODE 0x000005000 #define VCR_COMMAND_SMPTE_EBU_RECORDING_TIME 0x000005C00 #define VCR_COMMAND_SMPTE_EBU_TIME_CODE 0x000005900 #define VCR_COMMAND_TAPE_PLAYBACK_FORMAT 0x00000D300 #define VCR_COMMAND_TAPE_RECORDING_FORMAT 0x00000D200 #define VCR_COMMAND_TIME_CODE 0x000005100 #define VCR_COMMAND_TRANSPORT_STATE 0x00000D000 #define VCR_COMMAND_WIND 0x00000C400 #define VCR_COMMAND_WRITE_MIC 0x000006200 /* VCR subunit command operands */ #define VCR_OPERAND_LOAD_MEDIUM_EJECT 0x60 #define VCR_OPERAND_LOAD_MEDIUM_OPEN_TRAY 0x31 #define VCR_OPERAND_LOAD_MEDIUM_CLOSE_TRAY 0x32 #define VCR_OPERAND_PLAY_NEXT_FRAME 0x30 #define VCR_OPERAND_PLAY_SLOWEST_FORWARD 0x31 #define VCR_OPERAND_PLAY_FAST_FORWARD_1 0x39 #define VCR_OPERAND_PLAY_FAST_FORWARD_2 0x3A #define VCR_OPERAND_PLAY_FAST_FORWARD_3 0x3B #define VCR_OPERAND_PLAY_FAST_FORWARD_4 0x3C #define VCR_OPERAND_PLAY_FAST_FORWARD_5 0x3D #define VCR_OPERAND_PLAY_FAST_FORWARD_6 0x3E #define VCR_OPERAND_PLAY_FASTEST_FORWARD 0x3F #define VCR_OPERAND_PLAY_PREVIOUS_FRAME 0x40 #define VCR_OPERAND_PLAY_SLOWEST_REVERSE 0x41 #define VCR_OPERAND_PLAY_FAST_REVERSE_1 0x49 #define VCR_OPERAND_PLAY_FAST_REVERSE_2 0x4A #define VCR_OPERAND_PLAY_FAST_REVERSE_3 0x4B #define VCR_OPERAND_PLAY_FAST_REVERSE_4 0x4C #define VCR_OPERAND_PLAY_FAST_REVERSE_5 0x4D #define VCR_OPERAND_PLAY_FAST_REVERSE_6 0x4E #define VCR_OPERAND_PLAY_FASTEST_REVERSE 0x4F #define VCR_OPERAND_PLAY_FORWARD 0x75 #define VCR_OPERAND_PLAY_FORWARD_PAUSE 0x7D #define VCR_OPERAND_RECORD_RECORD 0x75 #define VCR_OPERAND_RECORD_PAUSE 0x7D #define VCR_OPERAND_TRANSPORT_STATE 0x7F #define VCR_RESPONSE_TRANSPORT_STATE_LOAD_MEDIUM 0x0000C100 #define VCR_RESPONSE_TRANSPORT_STATE_RECORD 0x0000C200 #define VCR_RESPONSE_TRANSPORT_STATE_PLAY 0x0000C300 #define VCR_RESPONSE_TRANSPORT_STATE_WIND 0x0000C400 #define VCR_OPERAND_WIND_HIGH_SPEED_REWIND 0x45 #define VCR_OPERAND_WIND_STOP 0x60 #define VCR_OPERAND_WIND_REWIND 0x65 #define VCR_OPERAND_WIND_FAST_FORWARD 0x75 #define VCR_OPERAND_RELATIVE_TIME_COUNTER_CONTROL 0x20 #define VCR_OPERAND_RELATIVE_TIME_COUNTER_STATUS 0x71 #define VCR_OPERAND_TIME_CODE_CONTROL 0x20 #define VCR_OPERAND_TIME_CODE_STATUS 0x71 #define VCR_OPERAND_TRANSPORT_STATE 0x7F #define VCR_OPERAND_RECORDING_TIME_STATUS 0x71 /* Tuner subunit commands (Alphabetically) */ #define TUNER_COMMAND_DIRECT_SELECT_INFORMATION_TYPE 0xC8 #define TUNER_COMMAND_DIRECT_SELECT_DATA 0xCB #define TUNER_COMMAND_CA_ENABLE 0xCC #define TUNER_COMMAND_TUNER_STATUS 0xCD /* Tuner subunit commands operands (Alphabetically) */ #define TUNER_COMMAND_DIRECT_SELECT_INFORMATION_TYPE 0xC8 #define TUNER_COMMAND_DIRECT_SELECT_DATA 0xCB #define TUNER_COMMAND_CA_ENABLE 0xCC #define TUNER_COMMAND_TUNER_STATUS 0xCD /* deprecated */ #if 0 #define DVCR_PLAY 0x0020C375 #define DVCR_PLAY_FF 0x0020C33F #define DVCR_PLAY_REWIND 0x0020C34F #define DVCR_PLAY_PAUSE 0x0020C37D #define DVCR_PLAY_SLOWEST_FORWARD 0x0020C331 #define DVCR_LOAD_EJECT 0x0020C160 #define DVCR_WIND_HIGH_SPEED_REWIND 0x0020C445 #define DVCR_WIND_STOP 0x0020C460 #define DVCR_WIND_REWIND 0x0020C465 #define DVCR_WIND_FAST_FORWARD 0x0020C475 #define DVCR_STATUS_TRANSPORT_STATE 0x0120D07F #define DVCR_TRANSPORT_STATE_LOAD_MEDIUM 0x0000C100 #define DVCR_TRANSPORT_STATE_RECORD 0x0000C200 #define DVCR_TRANSPORT_STATE_PLAY 0x0000C300 #define DVCR_TRANSPORT_STATE_WIND 0x0000C400 #define DVCR_TRANSPORT_STATE_PLAY_FORWARD 0x0000C375 #define DVCR_RELATIVE_TIME_COUNTER #endif int send_avc_command(raw1394handle_t handle, nodeid_t node, quadlet_t command); int send_avc_command_block(raw1394handle_t handle, nodeid_t node, quadlet_t *command, int command_len); quadlet_t get_avc_response(raw1394handle_t handle); quadlet_t *get_avc_response_block(raw1394handle_t handle, quadlet_t *buf, int len); quadlet_t avc_transaction(raw1394handle_t handle, nodeid_t node, quadlet_t quadlet, int retry); quadlet_t *avc_transaction_block(raw1394handle_t handle, nodeid_t node, quadlet_t *buf, int len, int retry); int avc_open_descriptor(raw1394handle_t handle, nodeid_t node, quadlet_t ctype, quadlet_t subunit, unsigned char *descriptor_identifier, int len_descriptor_identifier, unsigned char readwrite); int avc_close_descriptor(raw1394handle_t handle, nodeid_t node, quadlet_t ctype, quadlet_t subunit, unsigned char *descriptor_identifier, int len_descriptor_identifier); int avc_subunit_info(raw1394handle_t handle, nodeid_t node, quadlet_t *table); quadlet_t *avc_unit_info(raw1394handle_t handle, nodeid_t node); char *avc_decode_vcr_response(quadlet_t response); #endif gscanbus-0.8/topologyMap.c000066400000000000000000000053031151312264100156410ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * topologyMap.c - Linux IEEE-1394 Subsystem Topology Map fetching routine. * This routine serves as a temporary replacement for the * raw1394GetTopologyMap routine found in version 0.2 of libraw1394. * Written 8.12.1999 by Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include /* * This routine fetches the topology map from the CSR space of the local node * and returns it in a struct RAW1394topologyMap. Note that this behaviour is * not fully complient with the IEEE1394 standard, since the topology map is * only guaranteed to be correct in the bus manager node. It does work * however. * IN: handle: The handle from libraw1394 * RESULT: The topology map. */ RAW1394topologyMap *raw1394GetTopologyMap(raw1394handle_t handle) { static RAW1394topologyMap topoMap; int ret,p; quadlet_t buf; if ((ret = cooked1394_read(handle, 0xffc0 | raw1394_get_local_id(handle), CSR_REGISTER_BASE + CSR_TOPOLOGY_MAP, 4, (quadlet_t *) &buf)) < 0) return NULL; buf = htonl(buf); topoMap.length = (u_int16_t) (buf>>16); topoMap.crc = (u_int16_t) buf; if ((ret = cooked1394_read(handle, 0xffc0 | raw1394_get_local_id(handle), CSR_REGISTER_BASE + CSR_TOPOLOGY_MAP + 4, 4, (quadlet_t *) &topoMap.generationNumber)) < 0) return NULL; topoMap.generationNumber = htonl(topoMap.generationNumber); if ((ret = cooked1394_read(handle, 0xffc0 | raw1394_get_local_id(handle), CSR_REGISTER_BASE + CSR_TOPOLOGY_MAP + 8, 4, (quadlet_t *) &buf)) < 0) return NULL; buf = htonl(buf); topoMap.nodeCount = (u_int16_t) (buf>>16); topoMap.selfIdCount = (u_int16_t) buf; if (cooked1394_read(handle, 0xffc0 | raw1394_get_local_id(handle), CSR_REGISTER_BASE + CSR_TOPOLOGY_MAP + 3*4, (topoMap.length-2)*4, ((quadlet_t *)&topoMap)+3) < 0) return NULL; for ( p=0 ; p < topoMap.length-2 ; p++) { *( ((quadlet_t *)&topoMap) +3+p) = htonl( *( ( (quadlet_t *)&topoMap ) +3+p ) ); } return &topoMap; } gscanbus-0.8/topologyMap.h000066400000000000000000000024321151312264100156460ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * topologyMap.h - Linux IEEE-1394 Subsystem Topology Map fetching routine. * This routine serves as a temporary replacement for the * raw1394GetTopologyMap routine found in version 0.2 of libraw1394. * Written 8.12.1999 by Andreas Micklei * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __TOPOLOGYMAP_H__ #define __TOPOLOGYMAP_H__ #include #include #include "raw1394support.h" #include "raw1394util.h" RAW1394topologyMap *raw1394GetTopologyMap(raw1394handle_t handle); #endif gscanbus-0.8/topologyTree.c000066400000000000000000000207551151312264100160330ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * topologyTree.c - Linux IEEE-1394 Subsystem Topology Tree * spawning and traversing routines * Written 8.11.1999 - 2.6.2000 by Andreas Micklei * 2.6.2000: added support for >=4 port phys * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include "topologyTree.h" #define MIN(x,y) ((x)<(y))?(x):(y) #define MAX(a,b) ((a)>(b)?(a):(b)) static const char *decodeCameraSwVersion(quadlet_t quadlet) { if ((quadlet & 0xFFFFFF) == 0x000101) return "1.20"; if ((quadlet & 0xFFFFFF) == 0x000100) return "1.04"; return "Unknown"; } static int flipcoin(void) { return (random()/(RAND_MAX/2)); } RAW1394topologyMap *generateTestTopologyMap(int nnodes) { RAW1394topologyMap *map; quadlet_t *pselfid; int i, leafes; map = malloc(sizeof(RAW1394topologyMap)); if (!map) fatal("out of memory!"); leafes = 1; for (i=nnodes-1; i>=0; i--) { pselfid = ((quadlet_t *) &(map->selfIdPacket[i])); *pselfid = (TEST_SELFID | (i<<24)); if (ilength = nnodes*4+4; map->crc = 0; /*invalid*/ map->generationNumber = 0; map->nodeCount = nnodes; map->selfIdCount = nnodes; return map; } /* * in: topologyTree: topology Tree from lowest node on * nodeid: number of root node of current subtree * parent: parent node of subtree * out: number of next lower unprocessed child node */ int spawnTopologySubTree(TopologyTree *topologyTree, int nodeid, TopologyTree *parent) { SelfIdPacket_t *selfid0, *selfid1, *selfid2, *selfid3; TopologyTree *pnode; int myid; /* FIXME - only handles three ports */ /*printf("SpawnTopologySubTree called with nodeid: %d\n",nodeid);*/ myid = nodeid; /* remember current id */ pnode = &topologyTree[nodeid]; /* point at current node */ selfid0 = pnode->selfid; /* get current node selfid */ pnode->parent = parent; /* set parent node */ nodeid--; /* process only lower nodes */ /* get nodeids of child nodes */ if (selfid0->packetZero.morePackets == 1) { selfid1 = selfid0+1; if (selfid1->packetMore.morePackets == 1) { selfid2 = selfid1+1; if (selfid2->packetMore.morePackets == 1) { selfid3 = selfid2+1; /* FIXME */ } /* FIXME */ } if (selfid1->packetMore.portH == SELFID_PORT_CHILD) { pnode->child[10] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portG == SELFID_PORT_CHILD) { pnode->child[9] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portF == SELFID_PORT_CHILD) { pnode->child[8] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portE == SELFID_PORT_CHILD) { pnode->child[7] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portD == SELFID_PORT_CHILD) { pnode->child[6] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portC == SELFID_PORT_CHILD) { pnode->child[5] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portB == SELFID_PORT_CHILD) { pnode->child[4] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid1->packetMore.portA == SELFID_PORT_CHILD) { pnode->child[3] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } } if (selfid0->packetZero.port2 == SELFID_PORT_CHILD) { /*printf("Child3 of node %d is node %d\n", myid, nodeid);*/ pnode->child[2] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid0->packetZero.port1 == SELFID_PORT_CHILD) { /*printf("Child2 of node %d is node %d\n", myid, nodeid);*/ pnode->child[1] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } if (selfid0->packetZero.port0 == SELFID_PORT_CHILD) { /*printf("Child1 of node %d is node %d\n", myid, nodeid);*/ pnode->child[0] = &topologyTree[nodeid]; nodeid = spawnTopologySubTree(topologyTree, nodeid, pnode); } return nodeid; } TopologyTree *spawnTopologyTree(raw1394handle_t handle, RAW1394topologyMap *topologyMap) { int i, j, ret, selfIdCount, nodeCount; unsigned int *pselfid_int; //unsigned char *pselfid_char; TopologyTree *topologyTree, *ptopologyTree; if (topologyMap == NULL) return NULL; selfIdCount = topologyMap->selfIdCount; nodeCount = topologyMap->nodeCount; //topologyTree = calloc(nodeCount, sizeof(TopologyTree)); topologyTree = malloc(nodeCount*sizeof(TopologyTree)); if (!topologyTree) fatal("out of memory!"); ptopologyTree = topologyTree; for (i=0; i < selfIdCount; i++) { //pselfid_int = (void *) &topologyMap->selfIdPacket[i]; //ret = decode_selfid(&(ptopologyTree->selfid), *pselfid_int); pselfid_int = (unsigned int *) &topologyMap->selfIdPacket[i]; ret = decode_selfid(ptopologyTree->selfid, pselfid_int); if (ret < 0) { //printbin(*((unsigned int *)ptopologyTree->selfid),32); //printbin(*((unsigned int *)ptopologyTree->selfid),32); //printbin(*((unsigned int *)ptopologyTree->selfid),32); //printbin(*((unsigned int *)ptopologyTree->selfid),32); fatal("invalid or unsupported selfid format!"); } if (ptopologyTree->selfid[0].packetZero.linkActive) { get_rom_info(handle, ptopologyTree->selfid[0].packetZero.phyID, &ptopologyTree->rom_info); } else { init_rom_info(&ptopologyTree->rom_info); } ptopologyTree->parent = NULL; for (j=0; j < MAX_CHILDS; j++) ptopologyTree->child[j] = NULL; ptopologyTree++; DEBUG_GENERAL fprintf(stderr, "selfIdCount: %i, nodeCount: %i, i: %i, selfids: %i\n", selfIdCount, nodeCount, i, ret); i += (ret-1); }; spawnTopologySubTree(topologyTree, nodeCount-1, NULL); return &topologyTree[nodeCount-1]; /* return root node */ } TopologyTree *topologyTreeLowestNode(TopologyTree *topologyTree) { TopologyTree *p = topologyTree; int i; for (i=0; ichild[i] != NULL) p = MIN(topologyTreeLowestNode( p->child[i]), p); } return p; } void freeSubTopologyTree(TopologyTree *topologyTree) { int i; for (i=0; ichild[i] != NULL) freeSubTopologyTree(topologyTree->child[i]); } free_rom_info(&topologyTree->rom_info); } void freeTopologyTree(TopologyTree *topologyTree) { TopologyTree *ptopologyTree = topologyTreeLowestNode(topologyTree); freeSubTopologyTree(topologyTree); return; //FIXME free(ptopologyTree); } TopologyTree *topologyTreeRoot(TopologyTree *topologyTree) { if (topologyTree->parent == NULL) return topologyTree; else return topologyTreeRoot(topologyTree->parent); } int topologySubTreeDepth(TopologyTree *node, int level) { int maxdepth, i; if (node == NULL) return level; maxdepth = 0; level++; for (i=0; ichild[i], level)); } return maxdepth; } int topologyTreeDepth(TopologyTree *topologyTree) { return topologySubTreeDepth(topologyTreeRoot(topologyTree), 0); } int numberOfChilds(TopologyTree *node) { int i, n = 0; if(!node) return 0; for (i=0; ichild[i] != NULL) n++; return n; } TopologyTree *getNthChild(TopologyTree *node, int n) { int i; if (n < 1 || n > MAX_CHILDS) return NULL; for (i=0; ichild[i] != NULL) n--; if (n < 1) return node->child[i]; } fatal("Unexpected Error in getNthChild"); return NULL; } gscanbus-0.8/topologyTree.h000066400000000000000000000047151151312264100160360ustar00rootroot00000000000000/* * This file is part of the gscanbus project. * Copyright (C) 2001 Andreas Micklei * * topologyTree.h - Linux IEEE-1394 Subsystem Topology Tree * spawning and traversing routines * Written 8.11.1999 - 2.6.2000 by Andreas Micklei * 2.6.2000: added support for >=4 port phys * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __TOPOLOGYTREE_H__ #define __TOPOLOGYTREE_H__ #include "raw1394support.h" #include "rominfo.h" #include "decodeselfid.h" #include "fatal.h" #include "debug.h" #include #include #include #include #define TEST_SELFID 0x80000000 #define MAX_CHILDS (3+3*8) typedef struct TopologyTree_t { SelfIdPacket_t selfid[4]; Rom_info rom_info; char label[256]; struct TopologyTree_t *parent; struct TopologyTree_t *child[MAX_CHILDS]; } TopologyTree; RAW1394topologyMap *generateTestTopologyMap(int nnodes); /* * in: topologyTree: topology Tree from lowest node on * nodeid: number of root node of current subtree * parent: parent node of subtree * out: number of next lower unprocessed child node */ int spawnTopologySubTree(TopologyTree *topologyTree, int nodeid, TopologyTree *parent); TopologyTree *spawnTopologyTree(raw1394handle_t handle, RAW1394topologyMap *topologyMap); void freeTopologyTree(TopologyTree *topologyTree); TopologyTree *topologyTreeRoot(TopologyTree *topologyTree); int topologySubTreeDepth(TopologyTree *node, int level); int topologyTreeDepth(TopologyTree *topologyTree); int numberOfChilds(TopologyTree *node); TopologyTree *getNthChild(TopologyTree *node, int n); void generateTopologySubTreeString(char *topologyTreeString, TopologyTree *node, int left, int width, int level, int localid); char *generateTopologyTreeString(TopologyTree *topologyTree, int localid); #endif