pulling in most recent code
This commit is contained in:
commit
53ea178541
10
AUTHORS
Normal file
10
AUTHORS
Normal file
@ -0,0 +1,10 @@
|
||||
AUTHORS:
|
||||
gwave was written by Steve Tell <tell@cs.unc.edu> or <steve@telltronics.org>
|
||||
gaw is written by hervé Quillévéré <www.rvq.fr>
|
||||
|
||||
CONTRIBUTORS:
|
||||
Franck Paugnat franck.paugnat at imag.fr
|
||||
Torsten Maehne torsten.maehne at epfl.ch
|
||||
|
||||
TRANSLATORS:
|
||||
French: Franck Paugnat franck.paugnat at imag.fr
|
340
COPYING
Normal file
340
COPYING
Normal file
@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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.
|
||||
|
||||
<signature of Ty Coon>, 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.
|
254
ChangeLog
Normal file
254
ChangeLog
Normal file
@ -0,0 +1,254 @@
|
||||
Tue Mar 15 10:34:54 CET 2022
|
||||
- corrected crash when pressing the reload all button.
|
||||
- corrected crash when pressing the zoom/zoom-Y-full after deleting panel.
|
||||
Global commands need a selected panel.
|
||||
|
||||
Sun Oct 4 10:11:25 CEST 2020
|
||||
- validate option -p on command line.
|
||||
|
||||
Tue Sep 22 09:29:01 CEST 2020
|
||||
- patch from stephan adding a 'reload_all' ttg comand.
|
||||
- update wds used by gawio when issuing the global reload all command from
|
||||
menu.
|
||||
|
||||
Sun Jun 21 11:38:49 CEST 2020
|
||||
- patch from Stephan adding color to a visible wave when gaw is driven by
|
||||
external commands (ttg). Stephan use xschem.
|
||||
|
||||
Sun Jan 26 09:33:00 CET 2020
|
||||
- suppress empty lines when reading spice3 format in ss_spice3.c.
|
||||
|
||||
Tue Jul 16 12:52:33 CEST 2019
|
||||
- added gaw3.spec in contrib for rpm build.
|
||||
|
||||
Sun Jul 16 10:38:01 CEST 2017
|
||||
- removed some deprecated from gawda.h
|
||||
- added X axix conversion to status bar
|
||||
|
||||
Thu Jul 13 10:42:59 CEST 2017
|
||||
- added an X axix conversion function. Time_t independant variable is
|
||||
usefull to record some data like electricity counter for example.
|
||||
A conversion to date time makes result more meaningfull for users.
|
||||
|
||||
Mon Jul 10 11:43:02 CEST 2017
|
||||
- let users to change colors from inside the application for buttons
|
||||
when the destop theme make then unreadable.
|
||||
|
||||
Mon Jun 5 14:28:49 CEST 2017
|
||||
- 'GAWMISCL_H' is used as a header guard
|
||||
|
||||
Sat Mar 25 19:18:50 CET 2017
|
||||
- modified gaw-gtkrc.css to get clear labels in gaw window.
|
||||
- corrected bug on algo selection
|
||||
- corrected bug on drag and drop Add panel button
|
||||
- corrected bug in gawpanel : clicking in a zoomed windows remved the zoom.
|
||||
|
||||
Sat Jan 21 10:23:57 CET 2017
|
||||
- modified gaw-gtkrc.css to remove 'Theme parsing error' with gtk+-3.20.
|
||||
|
||||
Mon Jul 4 08:17:55 CEST 2016
|
||||
- replaced prelight with hover in gaw-gtkrc.css
|
||||
|
||||
Sat Mar 5 13:47:15 CET 2016
|
||||
- gtk only generate deprecated. Depending on your gtk version don't be
|
||||
in hurry to take the last gaw version. It may mot compile...
|
||||
|
||||
Sat Jul 11 13:54:09 CEST 2015
|
||||
- corected some Gtk-Critical messages appearing on Centos 7.
|
||||
|
||||
Sat Feb 28 16:33:18 CET 2015
|
||||
- Patch from Glenn Ramalho. ss_spice3.c : adaptation of Spice3 format to
|
||||
the output of Cadence Spectre tools.
|
||||
|
||||
Sun Jan 4 09:39:12 CET 2015
|
||||
- Patch from Sergey Bashkiro. Adding more tests on NaNs values.
|
||||
|
||||
Mon Oct 27 13:38:24 CET 2014
|
||||
- deprecated from gtk looks to be stabilized ?...
|
||||
|
||||
Sat Apr 5 16:28:32 CEST 2014
|
||||
- Replaced memcpy by memmove for memory areas that do overlap.
|
||||
Some strings were not displayed correctly.
|
||||
|
||||
Sun Mar 9 16:23:38 CEST 2014
|
||||
- Corrected about 200 deprecated produced by the GTK-- team.
|
||||
Warning new bugs in prevision.
|
||||
|
||||
Thu Aug 1 08:00:06 CEST 2013
|
||||
- patch contribued by Thomas Russo for compilation on FreeBSD.
|
||||
|
||||
Sun May 12 09:33:16 CEST 2013
|
||||
- added selection of drawing algo and line clip algo
|
||||
|
||||
Sun May 5 17:38:46 CEST 2013
|
||||
- corrected ss_hspice.c : ss_hspice binary was only reading one block of
|
||||
data.
|
||||
- segmentation fault in gawfile.c
|
||||
- a lot of modifications to track gtk3 deprecated Gdkcolor => GdkRGBA.
|
||||
|
||||
Fri Jan 11 19:21:10 CET 2013
|
||||
- changed message "May-be remove the file '%s' and run %s again")
|
||||
in userprefs.h userprefs.c
|
||||
|
||||
Thu Sep 27 09:22:07 CEST 2012
|
||||
- project renamed gaw3 as GTK-3: there are too many differences in the
|
||||
GTK2, GTK3 interface that it seems necessary to separate the code
|
||||
instead of putting an ifdef at each line.
|
||||
- removed all ifdef HAVE_GTK300 and GTK2 specific code
|
||||
- changed gtk_table_* -> gtk_grid_*
|
||||
- changed gtk_hbox_new, gtk_vbox_new -> gtk_box_new
|
||||
- changed gtk_hscrollbar_new, gtk_vscrollbar_new -> gtk_scrollbar_new
|
||||
|
||||
Fri Oct 14 16:15:32 CEST 2011
|
||||
- test ! $gtk30 no longer works in fedora16
|
||||
changed to test $gtk30 = false || test ! $gtk30
|
||||
Tue Oct 11 11:22:32 CEST 2011
|
||||
- added installation of gaw.desktop gaw.png.
|
||||
|
||||
Thu Sep 29 17:26:34 CEST 2011
|
||||
- corrected an incomplete change :OSX do not recognize the type
|
||||
__compar_fn_t. Changed with a local typedef.
|
||||
Tue Sep 6 11:01:39 CEST 2011
|
||||
- Display problem with a bad format input file. Discard bad data and
|
||||
show a warning.
|
||||
|
||||
Thu Sep 1 08:51:58 CEST 2011
|
||||
- OSX do not recognize the type __compar_fn_t. Changed with a local
|
||||
typedef.
|
||||
- Ubuntu do not like the test "if test $gtk30 = false ;". Changed to
|
||||
"if test ! $gtk30 ;".
|
||||
- Running gaw on Ubuntu provides a lot of complains about missing
|
||||
libraries. Install these packages. There is still a
|
||||
Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget
|
||||
with width 18 and height -5
|
||||
There is nothing I can do in gaw. Just wait a fixed gtk library.
|
||||
|
||||
Thu Aug 11 19:02:14 CEST 2011
|
||||
- compiled and run with gtk3 after a lot of modifications consisting of
|
||||
specific code switched with #ifdef HAVE_GTK300.
|
||||
- replaced (for gtk3 only) gaw-gtkrc with gaw-gtkrc.css
|
||||
- fixed a segmentation fault when gaw exit after try to load an inexistent
|
||||
file.
|
||||
|
||||
Tue Aug 9 08:28:03 CEST 2011
|
||||
- removed reference to GdkColormap if HAVE_GTK300 is defined. Ubuntu have
|
||||
not this symbol defined, it is deprecated.
|
||||
Wed Aug 3 11:37:29 CEST 2011
|
||||
- Modified configure.ac to compile with gtk3.0.
|
||||
- Modified userprefs to create a new complete gawrc at startup.
|
||||
- Added filters to file selection.
|
||||
- Added a text tool to draw comments in panel.
|
||||
Tue Jul 26 18:36:40 CEST 2011
|
||||
- migration to gtk3 step 2. Replaced Gdk drawing with Cairo. Removed
|
||||
GdkGC stuff.
|
||||
Thu Jul 7 19:07:42 CEST 2011
|
||||
- a lot of modifications with the same functionnalities for preparing the
|
||||
migration to gtk3. See Migrating from GTK+ 2.x to GTK+ 3 in
|
||||
GTK+ Reference Manual.
|
||||
Fri May 20 17:43:48 CEST 2011
|
||||
- corrected, Segmentation fault in gawdnd.c after reloading a file and
|
||||
deleting waves with Dnd. wavevars were not correctly updated in all
|
||||
places.
|
||||
Mon Apr 25 11:27:39 CEST 2011
|
||||
- added gaw.desktop gaw.png for gnome desktop menu
|
||||
Thu Mar 17 09:49:59 CET 2011
|
||||
- Suppress Gtk-Warning when destroying gaw. Gtkbegin to kill the gdk window
|
||||
that is not longer valid for drawing. (gawda.c)
|
||||
Fri Feb 18 13:09:20 CET 2011
|
||||
- corrected duplicated variables in configuration file
|
||||
- On macosx, detection of screen size does not work; to correct, a default
|
||||
value is set when this fails. This value can be hand modified later in
|
||||
the configuration file
|
||||
- corrected, in gawlabel.c, a bad list element producing crash.
|
||||
- corrected, Segmentation fault when allocating segments for grid, gawda.c.
|
||||
|
||||
Mon Jan 17 16:25:09 CET 2011
|
||||
- remove puntuation characters at beginning of line 1 of ascii data file,
|
||||
these characters confuse field detection.
|
||||
- changed drawing algorithm to make display more realistic when more
|
||||
than 2 datas points to 1 pixel on the screen.
|
||||
- reworked French language file.
|
||||
Added separated action entries for the toolbar for labelling purpose.
|
||||
|
||||
Mon Jan 10 10:29:59 CET 2011
|
||||
- web site change herveq.fr become rvq.fr (same french spelling !)
|
||||
|
||||
Sat Sep 18 17:32:43 CEST 2010
|
||||
- replaced rcfile.c with userprefs.c
|
||||
- Corrected segmentation fault in function reload
|
||||
|
||||
2010-09-07 gettextize <bug-gnu-gettext@gnu.org>
|
||||
- m4/iconv.m4: Upgrade to gettext-0.18.1.
|
||||
- Makefile.am (ACLOCAL_AMFLAGS): New variable.
|
||||
- configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.18.1.
|
||||
|
||||
Thu Sep 2 14:52:27 CEST 2010
|
||||
- modifications to compile on CentOS 5.5 with gtk 2.10.4
|
||||
|
||||
Fri Aug 27 10:40:54 CEST 2010
|
||||
- always place stdlib.h before glib.h for compiling on CentOS 5.5
|
||||
- added some hack for compiling with older version of gtk
|
||||
|
||||
Fri Aug 6 14:57:08 CEST 2010
|
||||
- top level table reorganization to insert a scrolled window for panels
|
||||
- lmtable reorganization to simplify ylabels and more ylabels management.
|
||||
- consolidate grid, xLabels and xlabels display.
|
||||
- corrected some bugs in sound card interface.
|
||||
- corrected some bugs with toggle buttons.
|
||||
- internationalization is now functionnal.
|
||||
- added some code to hanle the display of some narrow pics.
|
||||
|
||||
Thu Jul 22 16:15:44 CEST 2010
|
||||
- corrected some GTK-WARNING when deleting panels
|
||||
- corrected display change when trying to delete the last panel
|
||||
- icon GTK_STOCK_DELETE has changed in GTK : I changed it to
|
||||
GTK_STOCK_CUT in gaw.
|
||||
|
||||
Wed Jul 21 07:33:48 CEST 2010
|
||||
- toolbar style do not work fine with gtk+ 2.20.1. Added toolBarStyle in
|
||||
rc file to save the state of the tyle.
|
||||
|
||||
Fri May 28 08:53:34 CEST 2010
|
||||
- added -lXext -lm to src/Makefile.am for compiler gcc version 4.4.4
|
||||
|
||||
Fri May 14 14:24:23 CEST 2010
|
||||
- Patch from Torsten MAEHNE for compiling on MACOSX :
|
||||
- there is no libasound on OSX (The API is CoreAudio). Gaw sound is
|
||||
disabled.
|
||||
- Solve problems with byte swap declarations.
|
||||
|
||||
Tue May 4 11:07:56 CEST 2010
|
||||
- corrected segmentation fault when reloading bad loaded files.
|
||||
- removed some useless lines of code.
|
||||
|
||||
Wed Mar 10 09:36:12 CET 2010
|
||||
- corrected bug in dnd.
|
||||
|
||||
Thu Jan 21 16:55:31 CET 2010
|
||||
- added linear and logarith grid and labels.
|
||||
- corrected zoom problems.
|
||||
- added feature to allow the user to change the set of color in panels.
|
||||
- added internal resize between panels and left side.
|
||||
- added cursors menu.
|
||||
|
||||
Thu Nov 19 14:37:29 CET 2009
|
||||
- added talk to gaw
|
||||
- added export all panels to image file.
|
||||
- added multifile load.
|
||||
- added export displayed data.
|
||||
- added possibility to export data in a format known by the library.
|
||||
- added a capture data from the sound card.
|
||||
- addded a .wav format.
|
||||
- removed some layers of complexity in the library and may be added some
|
||||
ones.
|
||||
|
||||
Mon Jun 29 18:19:26 CEST 2009
|
||||
- After a locale problem on MAC OSX, changed all 'atof' to 'g_ascii_strtod'.
|
||||
People have to set locale in environnemnt, if needed.
|
||||
|
||||
Fri Jun 26 11:42:36 CEST 2009
|
||||
- spicestream.c : modified to accept line with CRLF
|
||||
|
||||
2009/01/17 : minor changes in common files ( common to other of my projects)
|
||||
rcfile.c msglog.c to make silent the gcc compiler 4.3.2
|
||||
warnings under X86_64 architecture.
|
370
INSTALL
Normal file
370
INSTALL
Normal file
@ -0,0 +1,370 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2013 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 command `./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.
|
||||
|
||||
HP-UX `make' updates targets which have the same time stamps as
|
||||
their prerequisites, which makes it generally unusable when shipped
|
||||
generated files such as `configure' are involved. Use GNU `make'
|
||||
instead.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its `<wchar.h>' 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 limitation. Until the limitation is lifted, you can use
|
||||
this workaround:
|
||||
|
||||
CONFIG_SHELL=/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.
|
22
Makefile.am
Normal file
22
Makefile.am
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
SUBDIRS = lib src po
|
||||
|
||||
MOSTLYCLEANFILES = *.log core FILE *~
|
||||
CLEANFILES = *.log core FILE *~
|
||||
DISTCLEANFILES = *.log core FILE *~ prototype.bak
|
||||
MAINTAINERCLEANFILES = *.log core FILE *~ Makefile.in configure config.h.in \
|
||||
config.status aclocal.m4 config.guess config.rpath \
|
||||
config.sub depcomp install-sh missing mkinstalldirs
|
||||
|
||||
EXTRA_DIST = doc/* \
|
||||
examples/* \
|
||||
ttg/* \
|
||||
contrib/* \
|
||||
gaw.desktop gaw.png
|
||||
|
||||
appsdir = $(datadir)/applications
|
||||
icondir = $(datadir)/pixmaps
|
||||
apps_DATA = gaw.desktop
|
||||
icon_DATA = gaw.png
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
921
Makefile.in
Normal file
921
Makefile.in
Normal file
@ -0,0 +1,921 @@
|
||||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 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@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
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 = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
||||
$(am__configure_deps) $(am__DIST_COMMON)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
|
||||
ctags-recursive dvi-recursive html-recursive info-recursive \
|
||||
install-data-recursive install-dvi-recursive \
|
||||
install-exec-recursive install-html-recursive \
|
||||
install-info-recursive install-pdf-recursive \
|
||||
install-ps-recursive install-recursive installcheck-recursive \
|
||||
installdirs-recursive pdf-recursive ps-recursive \
|
||||
tags-recursive uninstall-recursive
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
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'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(appsdir)" "$(DESTDIR)$(icondir)"
|
||||
DATA = $(apps_DATA) $(icon_DATA)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
am__recursive_targets = \
|
||||
$(RECURSIVE_TARGETS) \
|
||||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
cscope distdir distdir-am dist dist-all distcheck
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
|
||||
config.h.in
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README \
|
||||
compile config.guess config.rpath config.sub depcomp \
|
||||
install-sh missing
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
if test -d "$(distdir)"; then \
|
||||
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -rf "$(distdir)" \
|
||||
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
||||
else :; fi
|
||||
am__post_remove_distdir = $(am__remove_distdir)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-gzip
|
||||
# Exists only to be overridden by the user if desired.
|
||||
AM_DISTCHECK_DVI_TARGET = dvi
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALSA_CFLAGS = @ALSA_CFLAGS@
|
||||
ALSA_LIBS = @ALSA_LIBS@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
GAWRCDIR = @GAWRCDIR@
|
||||
GAW_CFLAGS = @GAW_CFLAGS@
|
||||
GAW_LDFLAGS = @GAW_LDFLAGS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GLIB228_CFLAGS = @GLIB228_CFLAGS@
|
||||
GLIB228_LIBS = @GLIB228_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK300_CFLAGS = @GTK300_CFLAGS@
|
||||
GTK300_LIBS = @GTK300_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
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@
|
||||
POSUB = @POSUB@
|
||||
POW_LIB = @POW_LIB@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
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 = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
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@
|
||||
SUBDIRS = lib src po
|
||||
MOSTLYCLEANFILES = *.log core FILE *~
|
||||
CLEANFILES = *.log core FILE *~
|
||||
DISTCLEANFILES = *.log core FILE *~ prototype.bak
|
||||
MAINTAINERCLEANFILES = *.log core FILE *~ Makefile.in configure config.h.in \
|
||||
config.status aclocal.m4 config.guess config.rpath \
|
||||
config.sub depcomp install-sh missing mkinstalldirs
|
||||
|
||||
EXTRA_DIST = doc/* \
|
||||
examples/* \
|
||||
ttg/* \
|
||||
contrib/* \
|
||||
gaw.desktop gaw.png
|
||||
|
||||
appsdir = $(datadir)/applications
|
||||
icondir = $(datadir)/pixmaps
|
||||
apps_DATA = gaw.desktop
|
||||
icon_DATA = gaw.png
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh: Makefile
|
||||
@:
|
||||
$(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
|
||||
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__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
|
||||
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):
|
||||
|
||||
config.h: stamp-h1
|
||||
@test -f $@ || rm -f stamp-h1
|
||||
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
install-appsDATA: $(apps_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(apps_DATA)'; test -n "$(appsdir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(appsdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(appsdir)" || exit 1; \
|
||||
fi; \
|
||||
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)$(appsdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(appsdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-appsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(apps_DATA)'; test -n "$(appsdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(appsdir)'; $(am__uninstall_files_from_dir)
|
||||
install-iconDATA: $(icon_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
|
||||
fi; \
|
||||
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)$(icondir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-iconDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run 'make' without going through this Makefile.
|
||||
# To change the values of 'make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in 'config.status', edit 'config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run 'make');
|
||||
# (2) otherwise, pass the desired values on the 'make' command line.
|
||||
$(am__recursive_targets):
|
||||
@fail=; \
|
||||
if $(am__make_keepgoing); then \
|
||||
failcom='fail=yes'; \
|
||||
else \
|
||||
failcom='exit 1'; \
|
||||
fi; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-recursive
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
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-recursive
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
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"
|
||||
cscope: cscope.files
|
||||
test ! -s cscope.files \
|
||||
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
||||
clean-cscope:
|
||||
-rm -f cscope.files
|
||||
cscope.files: clean-cscope cscopelist
|
||||
cscopelist: cscopelist-recursive
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(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
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
$(am__make_dryrun) \
|
||||
|| test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| 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) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-lzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zstd: distdir
|
||||
tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist dist-all:
|
||||
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
|
||||
$(am__post_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*) \
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
*.tar.zst*) \
|
||||
zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir)
|
||||
chmod u+w $(distdir)
|
||||
mkdir $(distdir)/_build $(distdir)/_build/sub $(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/sub \
|
||||
&& ../../configure \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
--srcdir=../.. --prefix="$$dc_install_base" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
|
||||
&& $(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__post_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:
|
||||
@test -n '$(distuninstallcheck_dir)' || { \
|
||||
echo 'ERROR: trying to run $@ with an empty' \
|
||||
'$$(distuninstallcheck_dir)' >&2; \
|
||||
exit 1; \
|
||||
}; \
|
||||
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
||||
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
||||
exit 1; \
|
||||
}; \
|
||||
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { 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-recursive
|
||||
all-am: Makefile $(DATA) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(appsdir)" "$(DESTDIR)$(icondir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
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)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-appsDATA install-iconDATA
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-appsDATA uninstall-iconDATA
|
||||
|
||||
.MAKE: $(am__recursive_targets) all install-am install-strip
|
||||
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||
am--refresh check check-am clean clean-cscope clean-generic \
|
||||
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
|
||||
dist-zstd distcheck distclean distclean-generic distclean-hdr \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-appsDATA install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-iconDATA install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags tags-am uninstall uninstall-am \
|
||||
uninstall-appsDATA uninstall-iconDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# 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:
|
209
README
Normal file
209
README
Normal file
@ -0,0 +1,209 @@
|
||||
Where you can gaw :
|
||||
|
||||
You can find gaw on these websites :
|
||||
http://www.rvq.fr
|
||||
http://www.herveq.tk
|
||||
http://gaw.tuxfamily.org
|
||||
|
||||
Please discard http://www.herveq.fr
|
||||
|
||||
|
||||
You can find a short description page on this web page:
|
||||
http://www.rvq.fr/linux/gaw.php
|
||||
|
||||
Note : Fedora 13 : If you don't have icon in menu, run the command :
|
||||
gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true
|
||||
|
||||
|
||||
See directory examples for example of different data file format.
|
||||
|
||||
Compiling:
|
||||
We need :
|
||||
- Gtk+ libs and headers installed.
|
||||
- Alsa libasound and headers alsa/asoundlib.h installed.
|
||||
|
||||
tar zxvf gaw-yyyymmdd.tar.gz
|
||||
cd gaw-yyyymmdd
|
||||
./configure
|
||||
make
|
||||
|
||||
If you do not want to embed libasound, try :
|
||||
./configure --enable-gawsound=no
|
||||
|
||||
If you want to disable nls support :
|
||||
./configure --disable-nls
|
||||
|
||||
Putting gaw in gnome menu (on Fedora)
|
||||
cp gaw.desktop /usr/local/share/applications
|
||||
cp gaw.png /usr/local/share/pixmaps/
|
||||
|
||||
Runnning gaw :
|
||||
On command line : gaw
|
||||
: gaw <file to load> ...
|
||||
: gaw -h for some options
|
||||
|
||||
You can get help : leaving the mouse on a button will generate a tooltips.
|
||||
As it is not possible to get a tooltips on a menu item, messages are
|
||||
generated in the statusBar. The statusBar is at bottom left corner, and
|
||||
displays "Welcome to gaw" when you enter gaw. So you should keep one eye on
|
||||
the statusBar and the other on the menu item. This is difficult for some
|
||||
people !!!
|
||||
|
||||
Sensible areas for Drag and Drop :
|
||||
Sources for Drag and Drop :
|
||||
Any data file icon on desktop or filemanager
|
||||
menu buttons on list windows
|
||||
buttons on left side of panels
|
||||
|
||||
Destinations for Drag and Drop :
|
||||
Add Panel button on menu Bar
|
||||
Delete wave button on menu Bar
|
||||
Drawing Areas
|
||||
Area where X labels are displayed
|
||||
|
||||
Loading file when gaw is running :
|
||||
file/open + select your file
|
||||
Drag&Drop : from your desktop or your Nautilus to a DrawingArea
|
||||
|
||||
Display wave when not already displayed :
|
||||
Drag&Drop : from buttom in list window to a DrawingArea
|
||||
or left click in a DrawingArea to select it and double left click on the
|
||||
button in list window.
|
||||
or Drag&Drop to area where X labels are displayed. This add a penel.
|
||||
or Drag&Drop to Add Panel Button on MenuBar. This add a penel.
|
||||
|
||||
Display wave when already displayed : move
|
||||
Drag&Drop : from wave buttom at left of DrawingAreas to a DrawingArea
|
||||
|
||||
Display wave when already displayed : copy
|
||||
shift+Drag&Drop : from wave buttom at left of DrawingAreas to a DrawingArea
|
||||
|
||||
Remove displayed wave
|
||||
select wave with left click on wave button and click delete wave.
|
||||
or select wave with left click on wave button and right click in
|
||||
DrawingArea and select delete wave.
|
||||
or right click on wave button and select delete this wave.
|
||||
or drag the wave button to the trash button (Delete wavein menuBar)
|
||||
|
||||
Set cursors in DrawingArea
|
||||
left click set the first cursor
|
||||
Middle click set the second cursor
|
||||
|
||||
Zoom in
|
||||
left click Zoom in button in menu bar.
|
||||
or zoom menu and select Zoom in.
|
||||
or right click in DrawingArea and select Zoom in.
|
||||
or Keyboard : "Z"
|
||||
|
||||
Zoom out
|
||||
left click Zoom out button in menu bar.
|
||||
or zoom menu and select Zoom out.
|
||||
or right click in DrawingArea and select Zoom out.
|
||||
or Keyboard : "<shift>Z"
|
||||
|
||||
Zoom a selected X area
|
||||
set the 2 cursors and click Zoom Cursors in menu bar.
|
||||
or right click in DrawingArea and select Zoom X... and
|
||||
drag the left button on the area to zoom.
|
||||
|
||||
Zoom X undo
|
||||
zoom menu and select Zoom X full.
|
||||
or right click in DrawingArea and select Zoom X full.
|
||||
or Keyboard : "<control>Z"
|
||||
|
||||
Zoom Y
|
||||
right click in DrawingArea and select Zoom Y... and
|
||||
drag the left button on the area to zoom.
|
||||
|
||||
Zoom Y undo
|
||||
right click in DrawingArea and select Zoom Y full.
|
||||
|
||||
Zoom X+Y
|
||||
Select Zoom X+Y... and
|
||||
drag the left button on the area to zoom in DrawingArea.
|
||||
|
||||
Export to image file in one of the format available in Gtk
|
||||
right click in DrawingArea and select Export to image.
|
||||
|
||||
Export data in some available formats
|
||||
click File/Export Data in variable list window, enter the format and
|
||||
filename.
|
||||
usefull for users ? let me know. Anyway it is usefull for testing !!!
|
||||
|
||||
Save conf
|
||||
save configuration in $HOME/.gaw/gawrc with the last used input filename
|
||||
which becomes the default input file name.
|
||||
next running gaw will reload this default file.
|
||||
Clear def
|
||||
save configuration in $HOME/.gaw/gawrc with clearing the default
|
||||
input file name.
|
||||
|
||||
Multisweep :
|
||||
Multisweep means generate a set of data for a different value of a
|
||||
component. Only Hspice format supports multiweep. You can find an
|
||||
example in the file examples/invsweep.tr0. So load the file and try
|
||||
Right click on a button in the list window : y @... and select
|
||||
Add all similar to selected. This will show al the waves for each
|
||||
value of the component.
|
||||
|
||||
About data Formats
|
||||
=================
|
||||
|
||||
In principle Gaw is able to recognize the implemented formats, but due to
|
||||
the lack of definition in some format, it should be very easy to confuse Gaw.
|
||||
So it is suggested to provide a format.
|
||||
|
||||
There are 2 ways to provide a format :
|
||||
- setting the format in the menu for loading a file.
|
||||
- giving an extension to your file.
|
||||
|
||||
The recognized extensions are :
|
||||
.tr[0-9], .sw[0-9], .ac[0-9] for hspice
|
||||
.B, .N, .W for cazm
|
||||
.raw for spice3raw
|
||||
.rawspice for spice2raw
|
||||
.out for nsout
|
||||
.wav for wav
|
||||
.acd, .acs, .dat, .ascii for ascii
|
||||
|
||||
|
||||
Requirements for Gaw
|
||||
====================
|
||||
Dependancies :
|
||||
Alsa lib >= 1.0.16
|
||||
gtk+-2.0 >= 2.10.0
|
||||
|
||||
Gaw is developped under Fedora But this does not mean, it should not work on
|
||||
others distributions. Instead it means that if there are mistakes due to
|
||||
distributions differences, I cannot see them, and you need to report them.
|
||||
|
||||
|
||||
Compiled gaw 20100823:
|
||||
========
|
||||
Fedora 13
|
||||
Linux olix 2.6.33.6-147.fc13.x86_64 #1 SMP Tue Jul 6 22:32:17 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
|
||||
|
||||
GLIB library version: 2.24.1
|
||||
GTK+ library version: 2.20.1
|
||||
Alsa version: 1.0.23
|
||||
data directory: /usr/local/share/gaw
|
||||
locale directory: /usr/local/share/locale
|
||||
|
||||
Fedora 11
|
||||
Linux rvix 2.6.29.6-217.2.8.fc11.i586 #1 SMP Sat Aug 15 00:44:39 EDT 2009 i686 athlon i386 GNU/Linux
|
||||
|
||||
GLIB library version: 2.20.5
|
||||
GTK+ library version: 2.16.6
|
||||
Alsa version: 1.0.21
|
||||
data directory: /usr/local/share/gaw
|
||||
locale directory: /usr/local/share/locale
|
||||
|
||||
|
||||
Frugalware (ppc) :
|
||||
Linux imac 2.6.32-fw3 #1 PREEMPT Fri May 7 10:52:40 CEST 2010 ppc GNU/Linux
|
||||
|
||||
GLIB library version: 2.22.4
|
||||
GTK+ library version: 2.18.7
|
||||
Alsa version: 1.0.22
|
||||
data directory: /usr/local/share/gaw
|
||||
locale directory: /usr/local/share/locale
|
141
acinclude.m4
Normal file
141
acinclude.m4
Normal file
@ -0,0 +1,141 @@
|
||||
dnl Configure Paths for Alsa
|
||||
dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org>
|
||||
dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
|
||||
dnl Jaroslav Kysela <perex@perex.cz>
|
||||
dnl Last modification: $Id: alsa.m4,v 1.24 2004/09/15 18:48:07 tiwai Exp $
|
||||
dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate.
|
||||
dnl enables arguments --with-alsa-prefix=
|
||||
dnl --with-alsa-enc-prefix=
|
||||
dnl --disable-alsatest
|
||||
dnl
|
||||
dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified,
|
||||
dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result.
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_ALSA],
|
||||
[dnl Save the original CFLAGS, LDFLAGS, and LIBS
|
||||
alsa_save_CFLAGS="$CFLAGS"
|
||||
alsa_save_LDFLAGS="$LDFLAGS"
|
||||
alsa_save_LIBS="$LIBS"
|
||||
alsa_found=yes
|
||||
|
||||
dnl
|
||||
dnl Get the cflags and libraries for alsa
|
||||
dnl
|
||||
AC_ARG_WITH(alsa-prefix,
|
||||
[ --with-alsa-prefix=PFX Prefix where Alsa library is installed(optional)],
|
||||
[alsa_prefix="$withval"], [alsa_prefix=""])
|
||||
|
||||
AC_ARG_WITH(alsa-inc-prefix,
|
||||
[ --with-alsa-inc-prefix=PFX Prefix where include libraries are (optional)],
|
||||
[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
|
||||
|
||||
dnl FIXME: this is not yet implemented
|
||||
AC_ARG_ENABLE(alsatest,
|
||||
[ --disable-alsatest Do not try to compile and run a test Alsa program],
|
||||
[enable_alsatest="$enableval"],
|
||||
[enable_alsatest=yes])
|
||||
|
||||
dnl Add any special include directories
|
||||
AC_MSG_CHECKING(for ALSA CFLAGS)
|
||||
if test "$alsa_inc_prefix" != "" ; then
|
||||
ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
|
||||
CFLAGS="$CFLAGS -I$alsa_inc_prefix"
|
||||
fi
|
||||
AC_MSG_RESULT($ALSA_CFLAGS)
|
||||
|
||||
dnl add any special lib dirs
|
||||
AC_MSG_CHECKING(for ALSA LDFLAGS)
|
||||
if test "$alsa_prefix" != "" ; then
|
||||
ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
|
||||
LDFLAGS="$LDFLAGS $ALSA_LIBS"
|
||||
fi
|
||||
|
||||
dnl add the alsa library
|
||||
ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread"
|
||||
LIBS="$ALSA_LIBS $LIBS"
|
||||
AC_MSG_RESULT($ALSA_LIBS)
|
||||
|
||||
dnl Check for a working version of libasound that is of the right version.
|
||||
min_alsa_version=ifelse([$1], ,0.1.1,$1)
|
||||
AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
|
||||
no_alsa=""
|
||||
alsa_min_major_version=`echo $min_alsa_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
alsa_min_minor_version=`echo $min_alsa_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
alsa_min_micro_version=`echo $min_alsa_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_C
|
||||
AC_TRY_COMPILE([
|
||||
#include <alsa/asoundlib.h>
|
||||
], [
|
||||
/* ensure backward compatibility */
|
||||
#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
|
||||
#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
|
||||
#endif
|
||||
#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
|
||||
#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
|
||||
#endif
|
||||
#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
|
||||
#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
|
||||
#endif
|
||||
|
||||
# if(SND_LIB_MAJOR > $alsa_min_major_version)
|
||||
exit(0);
|
||||
# else
|
||||
# if(SND_LIB_MAJOR < $alsa_min_major_version)
|
||||
# error not present
|
||||
# endif
|
||||
|
||||
# if(SND_LIB_MINOR > $alsa_min_minor_version)
|
||||
exit(0);
|
||||
# else
|
||||
# if(SND_LIB_MINOR < $alsa_min_minor_version)
|
||||
# error not present
|
||||
# endif
|
||||
|
||||
# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
|
||||
# error not present
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
exit(0);
|
||||
],
|
||||
[AC_MSG_RESULT(found.)],
|
||||
[AC_MSG_RESULT(not present.)
|
||||
ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
|
||||
alsa_found=no]
|
||||
)
|
||||
AC_LANG_RESTORE
|
||||
|
||||
dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
|
||||
if test "x$enable_alsatest" = "xyes"; then
|
||||
AC_CHECK_LIB([asound], [snd_ctl_open],,
|
||||
[ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
|
||||
alsa_found=no]
|
||||
)
|
||||
fi
|
||||
|
||||
if test "x$alsa_found" = "xyes" ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
LIBS=`echo $LIBS | sed 's/-lasound//g'`
|
||||
LIBS=`echo $LIBS | sed 's/ //'`
|
||||
LIBS="-lasound $LIBS"
|
||||
fi
|
||||
if test "x$alsa_found" = "xno" ; then
|
||||
ifelse([$3], , :, [$3])
|
||||
CFLAGS="$alsa_save_CFLAGS"
|
||||
LDFLAGS="$alsa_save_LDFLAGS"
|
||||
LIBS="$alsa_save_LIBS"
|
||||
ALSA_CFLAGS=""
|
||||
ALSA_LIBS=""
|
||||
fi
|
||||
|
||||
dnl That should be it. Now just export out symbols:
|
||||
AC_SUBST(ALSA_CFLAGS)
|
||||
AC_SUBST(ALSA_LIBS)
|
||||
])
|
||||
|
1468
aclocal.m4
vendored
Normal file
1468
aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
347
compile
Executable file
347
compile
Executable file
@ -0,0 +1,347 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2012-10-14.11; # UTC
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/lib$lib.a"; then
|
||||
found=yes
|
||||
lib=$dir/lib$lib.a
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# 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:
|
1420
config.guess
vendored
Executable file
1420
config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
209
config.h.in
Normal file
209
config.h.in
Normal file
@ -0,0 +1,209 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if translation of program messages to the user's native
|
||||
language is requested. */
|
||||
#undef ENABLE_NLS
|
||||
|
||||
/* gaw data directory */
|
||||
#undef GAWDATADIR
|
||||
|
||||
/* gaw's rc directory */
|
||||
#undef GAWRCDIR
|
||||
|
||||
/* Package name for gettext */
|
||||
#undef GETTEXT_PACKAGE
|
||||
|
||||
/* Define to 1 if you have the <alsa/mixer.h> header file. */
|
||||
#undef HAVE_ALSA_MIXER_H
|
||||
|
||||
/* Define to 1 if you have the <alsa/pcm.h> header file. */
|
||||
#undef HAVE_ALSA_PCM_H
|
||||
|
||||
/* Define to 1 if you have the <byteswap.h> header file. */
|
||||
#undef HAVE_BYTESWAP_H
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
#undef HAVE_CFLOCALECOPYCURRENT
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#undef HAVE_DCGETTEXT
|
||||
|
||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||
#undef HAVE_DOPRNT
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
#undef HAVE_ENDIAN_H
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the <float.h> header file. */
|
||||
#undef HAVE_FLOAT_H
|
||||
|
||||
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
|
||||
#undef HAVE_FSEEKO
|
||||
|
||||
/* Define if the GNU gettext() function is already present or preinstalled. */
|
||||
#undef HAVE_GETTEXT
|
||||
|
||||
/* If glib 2.28.x has been installed, define this */
|
||||
#undef HAVE_GLIB
|
||||
|
||||
/* If gtk+ 3.00.x has been installed, define this */
|
||||
#undef HAVE_GTK300
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
#undef HAVE_ICONV
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `asound' library (-lasound). */
|
||||
#undef HAVE_LIBASOUND
|
||||
|
||||
/* Define to 1 if you have the <libkern/OSByteOrder.h> header file. */
|
||||
#undef HAVE_LIBKERN_OSBYTEORDER_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `mkdir' function. */
|
||||
#undef HAVE_MKDIR
|
||||
|
||||
/* Define to 1 if you have the `pow' function. */
|
||||
#undef HAVE_POW
|
||||
|
||||
/* Define to 1 if you have the `regcomp' function. */
|
||||
#undef HAVE_REGCOMP
|
||||
|
||||
/* Define to 1 if `stat' has the bug that it succeeds when given the
|
||||
zero-length file name argument. */
|
||||
#undef HAVE_STAT_EMPTY_STRING_BUG
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#undef HAVE_STRCASECMP
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#undef HAVE_STRCHR
|
||||
|
||||
/* Define to 1 if you have the `strcspn' function. */
|
||||
#undef HAVE_STRCSPN
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#undef HAVE_STRDUP
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strrchr' function. */
|
||||
#undef HAVE_STRRCHR
|
||||
|
||||
/* Define to 1 if you have the `strspn' function. */
|
||||
#undef HAVE_STRSPN
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#undef HAVE_STRSTR
|
||||
|
||||
/* Define to 1 if you have the <sys/endian.h> header file. */
|
||||
#undef HAVE_SYS_ENDIAN_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `vprintf' function. */
|
||||
#undef HAVE_VPRINTF
|
||||
|
||||
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
|
||||
slash. */
|
||||
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||||
|
||||
/* Gtk analog waveform viewer - tool for viewing analog data, such as the
|
||||
output of Spice simulations */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Location of package locale files */
|
||||
#undef PACKAGE_LOCALE_DIR
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Currently running version of gaw */
|
||||
#undef VERSION
|
||||
|
||||
/* Enable large inode numbers on Mac OS X 10.5. */
|
||||
#ifndef _DARWIN_USE_64_BIT_INODE
|
||||
# define _DARWIN_USE_64_BIT_INODE 1
|
||||
#endif
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
#undef _FILE_OFFSET_BITS
|
||||
|
||||
/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
|
||||
#undef _LARGEFILE_SOURCE
|
||||
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
#undef _LARGE_FILES
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
672
config.rpath
Executable file
672
config.rpath
Executable file
@ -0,0 +1,672 @@
|
||||
#! /bin/sh
|
||||
# Output a system dependent set of variables, describing how to set the
|
||||
# run time search path of shared libraries in an executable.
|
||||
#
|
||||
# Copyright 1996-2010 Free Software Foundation, Inc.
|
||||
# Taken from GNU libtool, 2001
|
||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# The first argument passed to this file is the canonical host specification,
|
||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
||||
# or
|
||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
|
||||
# should be set by the caller.
|
||||
#
|
||||
# The set of defined variables is at the end of this script.
|
||||
|
||||
# Known limitations:
|
||||
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
|
||||
# than 256 bytes, otherwise the compiler driver will dump core. The only
|
||||
# known workaround is to choose shorter directory names for the build
|
||||
# directory and/or the installation directory.
|
||||
|
||||
# All known linkers require a `.a' archive for static linking (except MSVC,
|
||||
# which needs '.lib').
|
||||
libext=a
|
||||
shrext=.so
|
||||
|
||||
host="$1"
|
||||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
||||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
||||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||
|
||||
# Code taken from libtool.m4's _LT_CC_BASENAME.
|
||||
|
||||
for cc_temp in $CC""; do
|
||||
case $cc_temp in
|
||||
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
|
||||
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
|
||||
\-*) ;;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
|
||||
|
||||
# Code taken from libtool.m4's _LT_COMPILER_PIC.
|
||||
|
||||
wl=
|
||||
if test "$GCC" = yes; then
|
||||
wl='-Wl,'
|
||||
else
|
||||
case "$host_os" in
|
||||
aix*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
darwin*)
|
||||
case $cc_basename in
|
||||
xlc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
mingw* | cygwin* | pw32* | os2* | cegcc*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
newsos6)
|
||||
;;
|
||||
linux* | k*bsd*-gnu)
|
||||
case $cc_basename in
|
||||
ecc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
icc* | ifort*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
lf95*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
pgcc | pgf77 | pgf90)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
ccc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
como)
|
||||
wl='-lopt='
|
||||
;;
|
||||
*)
|
||||
case `$CC -V 2>&1 | sed 5q` in
|
||||
*Sun\ C*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
rdos*)
|
||||
;;
|
||||
solaris*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sunos4*)
|
||||
wl='-Qoption ld '
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
;;
|
||||
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
unicos*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
uts4*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
|
||||
|
||||
hardcode_libdir_flag_spec=
|
||||
hardcode_libdir_separator=
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
|
||||
case "$host_os" in
|
||||
cygwin* | mingw* | pw32* | cegcc*)
|
||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
if test "$GCC" != yes; then
|
||||
with_gnu_ld=no
|
||||
fi
|
||||
;;
|
||||
interix*)
|
||||
# we just hope/assume this is gcc and not c89 (= MSVC++)
|
||||
with_gnu_ld=yes
|
||||
;;
|
||||
openbsd*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
esac
|
||||
|
||||
ld_shlibs=yes
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
# Set some defaults for GNU ld with shared library support. These
|
||||
# are reset later if shared libraries are not supported. Putting them
|
||||
# here allows them to be overridden if necessary.
|
||||
# Unlike libtool, we use -rpath here, not --rpath, since the documented
|
||||
# option of GNU ld is called -rpath, not --rpath.
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
case "$host_os" in
|
||||
aix[3-9]*)
|
||||
# On AIX/PPC, the GNU linker is very broken
|
||||
if test "$host_cpu" != ia64; then
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
|
||||
# that the semantics of dynamic libraries on AmigaOS, at least up
|
||||
# to version 4, is to share data among multiple programs linked
|
||||
# with the same dynamic library. Since this doesn't match the
|
||||
# behavior of shared libraries on other platforms, we cannot use
|
||||
# them.
|
||||
ld_shlibs=no
|
||||
;;
|
||||
beos*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
cygwin* | mingw* | pw32* | cegcc*)
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
interix[3-9]*)
|
||||
hardcode_direct=no
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
gnu* | linux* | k*bsd*-gnu)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
netbsd*)
|
||||
;;
|
||||
solaris*)
|
||||
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
|
||||
ld_shlibs=no
|
||||
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
|
||||
case `$LD -v 2>&1` in
|
||||
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "$ld_shlibs" = no; then
|
||||
hardcode_libdir_flag_spec=
|
||||
fi
|
||||
else
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
||||
# are no directories specified by -L.
|
||||
hardcode_minus_L=yes
|
||||
if test "$GCC" = yes; then
|
||||
# Neither direct hardcoding nor static linking is supported with a
|
||||
# broken collect2.
|
||||
hardcode_direct=unsupported
|
||||
fi
|
||||
;;
|
||||
aix[4-9]*)
|
||||
if test "$host_cpu" = ia64; then
|
||||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
else
|
||||
aix_use_runtimelinking=no
|
||||
# Test if we are trying to use run time linking or normal
|
||||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
|
||||
# need to do runtime linking.
|
||||
case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
|
||||
for ld_flag in $LDFLAGS; do
|
||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
|
||||
aix_use_runtimelinking=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_separator=':'
|
||||
if test "$GCC" = yes; then
|
||||
case $host_os in aix4.[012]|aix4.[012].*)
|
||||
collect2name=`${CC} -print-prog-name=collect2`
|
||||
if test -f "$collect2name" && \
|
||||
strings "$collect2name" | grep resolve_lib_name >/dev/null
|
||||
then
|
||||
# We have reworked collect2
|
||||
:
|
||||
else
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
hardcode_minus_L=yes
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_libdir_separator=
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Begin _LT_AC_SYS_LIBPATH_AIX.
|
||||
echo 'int main () { return 0; }' > conftest.c
|
||||
${CC} ${LDFLAGS} conftest.c -o conftest
|
||||
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
fi
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath="/usr/lib:/lib"
|
||||
fi
|
||||
rm -f conftest.c conftest
|
||||
# End _LT_AC_SYS_LIBPATH_AIX.
|
||||
if test "$aix_use_runtimelinking" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
else
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# see comment about different semantics on the GNU ld section
|
||||
ld_shlibs=no
|
||||
;;
|
||||
bsdi[45]*)
|
||||
;;
|
||||
cygwin* | mingw* | pw32* | cegcc*)
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec=' '
|
||||
libext=lib
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
hardcode_direct=no
|
||||
if test "$GCC" = yes ; then
|
||||
:
|
||||
else
|
||||
case $cc_basename in
|
||||
xlc*)
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
dgux*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
freebsd2.2*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
freebsd2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
freebsd* | dragonfly*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
hpux9*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
hpux10*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
fi
|
||||
;;
|
||||
hpux11*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
case $host_cpu in
|
||||
hppa*64*|ia64*)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
*)
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
netbsd*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
newsos6)
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
openbsd*)
|
||||
if test -f /usr/libexec/ld.so; then
|
||||
hardcode_direct=yes
|
||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
else
|
||||
case "$host_os" in
|
||||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
os2*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
osf3*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
osf4* | osf5*)
|
||||
if test "$GCC" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
else
|
||||
# Both cc and cxx compiler support -rpath directly
|
||||
hardcode_libdir_flag_spec='-rpath $libdir'
|
||||
fi
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
solaris*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
sysv4)
|
||||
case $host_vendor in
|
||||
sni)
|
||||
hardcode_direct=yes # is this really true???
|
||||
;;
|
||||
siemens)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
motorola)
|
||||
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sysv4.3*)
|
||||
;;
|
||||
sysv4*MP*)
|
||||
if test -d /usr/nec; then
|
||||
ld_shlibs=yes
|
||||
fi
|
||||
;;
|
||||
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6*)
|
||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
|
||||
hardcode_libdir_separator=':'
|
||||
;;
|
||||
uts4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Check dynamic linker characteristics
|
||||
# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
|
||||
# Unlike libtool.m4, here we don't care about _all_ names of the library, but
|
||||
# only about the one the linker finds when passed -lNAME. This is the last
|
||||
# element of library_names_spec in libtool.m4, or possibly two of them if the
|
||||
# linker has special search rules.
|
||||
library_names_spec= # the last element of library_names_spec in libtool.m4
|
||||
libname_spec='lib$name'
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
library_names_spec='$libname.a'
|
||||
;;
|
||||
aix[4-9]*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
amigaos*)
|
||||
library_names_spec='$libname.a'
|
||||
;;
|
||||
beos*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
bsdi[45]*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
cygwin* | mingw* | pw32* | cegcc*)
|
||||
shrext=.dll
|
||||
library_names_spec='$libname.dll.a $libname.lib'
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
shrext=.dylib
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
dgux*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
freebsd1*)
|
||||
;;
|
||||
freebsd* | dragonfly*)
|
||||
case "$host_os" in
|
||||
freebsd[123]*)
|
||||
library_names_spec='$libname$shrext$versuffix' ;;
|
||||
*)
|
||||
library_names_spec='$libname$shrext' ;;
|
||||
esac
|
||||
;;
|
||||
gnu*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
case $host_cpu in
|
||||
ia64*)
|
||||
shrext=.so
|
||||
;;
|
||||
hppa*64*)
|
||||
shrext=.sl
|
||||
;;
|
||||
*)
|
||||
shrext=.sl
|
||||
;;
|
||||
esac
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
interix[3-9]*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
library_names_spec='$libname$shrext'
|
||||
case "$host_os" in
|
||||
irix5* | nonstopux*)
|
||||
libsuff= shlibsuff=
|
||||
;;
|
||||
*)
|
||||
case $LD in
|
||||
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
|
||||
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
|
||||
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
|
||||
*) libsuff= shlibsuff= ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
linux*oldld* | linux*aout* | linux*coff*)
|
||||
;;
|
||||
linux* | k*bsd*-gnu)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
knetbsd*-gnu)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
netbsd*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
newsos6)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
nto-qnx*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
openbsd*)
|
||||
library_names_spec='$libname$shrext$versuffix'
|
||||
;;
|
||||
os2*)
|
||||
libname_spec='$name'
|
||||
shrext=.dll
|
||||
library_names_spec='$libname.a'
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
rdos*)
|
||||
;;
|
||||
solaris*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
sunos4*)
|
||||
library_names_spec='$libname$shrext$versuffix'
|
||||
;;
|
||||
sysv4 | sysv4.3*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
uts4*)
|
||||
library_names_spec='$libname$shrext'
|
||||
;;
|
||||
esac
|
||||
|
||||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
|
||||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
|
||||
escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
|
||||
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
|
||||
|
||||
# How to pass a linker flag through the compiler.
|
||||
wl="$escaped_wl"
|
||||
|
||||
# Static library suffix (normally "a").
|
||||
libext="$libext"
|
||||
|
||||
# Shared library suffix (normally "so").
|
||||
shlibext="$shlibext"
|
||||
|
||||
# Format of library name prefix.
|
||||
libname_spec="$escaped_libname_spec"
|
||||
|
||||
# Library names that the linker finds when passed -lNAME.
|
||||
library_names_spec="$escaped_library_names_spec"
|
||||
|
||||
# Flag to hardcode \$libdir into a binary during linking.
|
||||
# This must work even if \$libdir does not exist.
|
||||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
|
||||
|
||||
# Whether we need a single -rpath flag with a separated argument.
|
||||
hardcode_libdir_separator="$hardcode_libdir_separator"
|
||||
|
||||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_direct="$hardcode_direct"
|
||||
|
||||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_minus_L="$hardcode_minus_L"
|
||||
|
||||
EOF
|
1798
config.sub
vendored
Executable file
1798
config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
197
configure.ac
Normal file
197
configure.ac
Normal file
@ -0,0 +1,197 @@
|
||||
dnl **** Process this file with autoconf to produce a configure script.
|
||||
dnl *** Remember [] is the quoting mechanism of m4
|
||||
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT([gaw3], [1.0], [www.rvq.fr])
|
||||
AC_CONFIG_SRCDIR([src/gawmain.c])
|
||||
AM_INIT_AUTOMAKE
|
||||
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
|
||||
AC_PREFIX_DEFAULT("/usr/local")
|
||||
|
||||
AC_DEFINE([PACKAGE], [gaw], [Gtk analog waveform viewer - tool for viewing analog data, such as the output of Spice simulations])
|
||||
PACKAGE=gaw3
|
||||
VERSION=20220315
|
||||
echo Configuring $PACKAGE version $VERSION
|
||||
|
||||
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
|
||||
AC_SUBST(PACKAGE)
|
||||
AC_SUBST(VERSION)
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AM_CONDITIONAL(CCISGCC, test "$GCC" = "yes")
|
||||
AC_PROG_RANLIB
|
||||
AC_PROG_MKDIR_P
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([fcntl.h float.h stdlib.h string.h unistd.h])
|
||||
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_TYPE_SIZE_T
|
||||
AC_STRUCT_TM
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_MEMCMP
|
||||
AC_FUNC_STAT
|
||||
AC_FUNC_STRTOD
|
||||
AC_FUNC_VPRINTF
|
||||
AC_FUNC_FSEEKO
|
||||
AC_CHECK_FUNCS([mkdir pow regcomp strcasecmp strchr strcspn strdup strerror strrchr strspn strstr])
|
||||
|
||||
############################################################################
|
||||
# Check for pkg-config
|
||||
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
if test $PKG_CONFIG = no; then
|
||||
AC_MSG_ERROR([Cannot find pkg-config, make sure it is installed and in your PATH])
|
||||
fi
|
||||
|
||||
############################################################################
|
||||
# Check for byteswap.h
|
||||
AC_CHECK_HEADERS([byteswap.h])
|
||||
AC_CHECK_HEADERS([endian.h])
|
||||
AC_CHECK_HEADERS([libkern/OSByteOrder.h])
|
||||
AC_CHECK_HEADERS([sys/endian.h])
|
||||
|
||||
|
||||
############################################################################
|
||||
dnl ****** INTERNATIONALIZATION **********************
|
||||
|
||||
GETTEXT_PACKAGE=$PACKAGE
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([0.18.1])
|
||||
|
||||
dnl Set PACKAGE_LOCALE_DIR in config.h.
|
||||
if test "x${prefix}" = "xNONE"; then
|
||||
prefix=${ac_default_prefix}
|
||||
fi
|
||||
DATADIRNAME=share
|
||||
AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale", [Location of package locale files])
|
||||
|
||||
|
||||
############################################################################
|
||||
# Check for alsa libs
|
||||
#
|
||||
AC_CHECK_HEADERS([alsa/pcm.h], [have_pcm="yes"], [have_pcm="no"],
|
||||
[#include <alsa/asoundlib.h>])
|
||||
AC_CHECK_HEADERS([alsa/mixer.h], [have_mixer="yes"], [have_mixer="no"],
|
||||
[#include <alsa/asoundlib.h>])
|
||||
|
||||
AC_ARG_ENABLE(gawsound,
|
||||
[ --enable-gawsound=[yes/no] Turn on or off compilation of alsa libs interface [default=yes]],
|
||||
[case "${enableval}" in
|
||||
yes) gawsound=true ;;
|
||||
no) gawsound=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-gawsound) ;;
|
||||
esac],[gawsound=true])
|
||||
|
||||
if test "$have_pcm" = "yes" -a "$have_mixer" = "yes" ; then
|
||||
if test "$gawsound" = "true" ; then
|
||||
AM_PATH_ALSA(1.0.16)
|
||||
dnl Check components
|
||||
ALSA_VERSION=`$PKG_CONFIG alsa --modversion`
|
||||
else
|
||||
echo "Alsa libs interface compilation is disabled."
|
||||
fi
|
||||
else
|
||||
if test "$gawsound" = "true" ; then
|
||||
echo "Alsa libs interface compilation is disabled."
|
||||
fi
|
||||
fi
|
||||
|
||||
############################################################################
|
||||
# Check for gtk+ 3.0 start
|
||||
#
|
||||
|
||||
PKG_CHECK_MODULES(GTK300, gtk+-3.0 >= 3.0.0, GTK300="yes", no_GTK300="yes")
|
||||
|
||||
# This next bit of code figures out what gtk we need to use.
|
||||
if test "$GTK300" = "yes"
|
||||
then
|
||||
|
||||
AC_DEFINE(HAVE_GTK300, 1, [If gtk+ 3.00.x has been installed, define this])
|
||||
GTK_CFLAGS=$GTK300_CFLAGS
|
||||
GTK_LIBS=$GTK300_LIBS
|
||||
GTK_VERSION=`$PKG_CONFIG gtk+-3.0 --modversion`
|
||||
|
||||
# Search for glib
|
||||
PKG_CHECK_MODULES(GLIB228, glib-2.0 >= 2.28.0, GLIB228="yes", no_GLIB228="yes")
|
||||
if test "$GLIB228" != "yes"
|
||||
then
|
||||
AC_MSG_ERROR([Cannot find glib 2.28.x, install it and rerun ./configure.])
|
||||
fi
|
||||
AC_DEFINE(HAVE_GLIB, 1, [If glib 2.28.x has been installed, define this])
|
||||
GLIB_CFLAGS=$GLIB228_CFLAGS
|
||||
GLIB_LIBS=$GLIB228_LIBS
|
||||
GLIB_VERSION=`$PKG_CONFIG glib-2.0 --modversion`
|
||||
|
||||
else
|
||||
GTK_VERSION=""
|
||||
fi
|
||||
|
||||
if test "$GTK_VERSION" = ""
|
||||
then
|
||||
AC_MSG_ERROR([Cannot find gtk+ 3.x or later, please install gtk+.])
|
||||
fi
|
||||
|
||||
#
|
||||
# Check for gtk+ 3.0 end
|
||||
############################################################################
|
||||
|
||||
|
||||
# Finally create the final CFLAGS and LDFLAGS for use in the makefiles
|
||||
GAW_CFLAGS="$GTK_CFLAGS"
|
||||
GAW_LDFLAGS="$GTK_LIBS"
|
||||
|
||||
# Expand the prefix variable
|
||||
if eval "test x$prefix = xNONE"; then
|
||||
dprefix=$ac_default_prefix
|
||||
else
|
||||
dprefix=$prefix
|
||||
fi
|
||||
|
||||
DATADIR=gaw
|
||||
gawtopdir=$dprefix/share/$DATADIR
|
||||
GAWRCDIR=$gawtopdir
|
||||
|
||||
# this has to be expanded ( no ${prefix} ) --
|
||||
AC_DEFINE_UNQUOTED(GAWDATADIR, "$gawtopdir", [gaw data directory])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Currently running version of gaw])
|
||||
AC_DEFINE_UNQUOTED(GAWRCDIR, "$gawtopdir", [gaw's rc directory])
|
||||
|
||||
|
||||
# Makefile.in variable substitution
|
||||
AC_SUBST(GAW_CFLAGS)
|
||||
AC_SUBST(GAW_LDFLAGS)
|
||||
AC_SUBST(GAWRCDIR)
|
||||
|
||||
# Create all the necessary derived files
|
||||
AC_CONFIG_FILES([Makefile src/Makefile lib/Makefile po/Makefile.in])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
expandedGAWDATADIR=`eval "echo $gawtopdir"`
|
||||
expandedGAWRCDIR=`eval "echo $gawtopdir"`
|
||||
expandedGAWLOCALE=`eval "echo ${prefix}/${DATADIRNAME}/locale"`
|
||||
|
||||
AC_MSG_RESULT([
|
||||
** Configuration summary for $PACKAGE $VERSION:
|
||||
|
||||
GLIB library version: $GLIB_VERSION
|
||||
GTK+ library version: $GTK_VERSION
|
||||
Alsa version: $ALSA_VERSION
|
||||
data directory: $expandedGAWDATADIR
|
||||
locale directory: $expandedGAWLOCALE
|
||||
])
|
37
contrib/gaw3.spec
Normal file
37
contrib/gaw3.spec
Normal file
@ -0,0 +1,37 @@
|
||||
Name: gaw3
|
||||
Version: 20170716
|
||||
Release: 1%{?dist}
|
||||
Summary: Gtk Analog Wave viewer
|
||||
|
||||
License: GPL
|
||||
URL: http://www.rvq.fr/linux/gaw.php
|
||||
Source0: gaw3-20170716.tar.gz
|
||||
|
||||
#BuildRequires:
|
||||
#Requires:
|
||||
|
||||
%description
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
|
||||
%build
|
||||
%configure
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
%make_install
|
||||
|
||||
|
||||
%files
|
||||
%doc
|
||||
%{_bindir}/*
|
||||
/usr/share
|
||||
|
||||
|
||||
|
||||
%changelog
|
BIN
contrib/mkcf-20170712.tar.xz
Normal file
BIN
contrib/mkcf-20170712.tar.xz
Normal file
Binary file not shown.
10
contrib/voidlinux/Readme
Normal file
10
contrib/voidlinux/Readme
Normal file
@ -0,0 +1,10 @@
|
||||
Void Linux package generation with xbps-src
|
||||
|
||||
1 - download void-packages with git
|
||||
2 - read Manual.md
|
||||
3 - copy the directoy srcpkgs to void-packages
|
||||
4 - modify the checksum= in the void-packages/srcpkgs/gaw3/template
|
||||
you get the checksum with sha256sum gaw3-20220315.tar.gz or
|
||||
from the file gaw3-20220315.tar.gz.sum
|
||||
5 compile the package with:
|
||||
./xbps-src pkg gaw3
|
14
contrib/voidlinux/srcpkgs/gaw3/template
Normal file
14
contrib/voidlinux/srcpkgs/gaw3/template
Normal file
@ -0,0 +1,14 @@
|
||||
# Template file for 'gaw3'
|
||||
pkgname=gaw3
|
||||
version=20220315
|
||||
revision=2
|
||||
build_style=gnu-configure
|
||||
# configure_args=""
|
||||
makedepends="gtk+3-devel alsa-lib-devel"
|
||||
hostmakedepends="pkg-config"
|
||||
short_desc="Gtk analog waveform viewer - tool for viewing analog data"
|
||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||
license="GPL-2"
|
||||
homepage="http://www.rvq.fr/linux/gaw.php"
|
||||
distfiles="http://download.tuxfamily.org/gaw/download/gaw3-${version}.tar.gz"
|
||||
checksum="d27e82a2a62e5e40dcff0da51b7cf3105232ee7b9a9e852b99310e4f7a469b01"
|
791
depcomp
Executable file
791
depcomp
Executable file
@ -0,0 +1,791 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2013-05-30.07; # UTC
|
||||
|
||||
# Copyright (C) 1999-2013 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
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 outputting dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
# Get the directory component of the given path, and save it in the
|
||||
# global variables '$dir'. Note that this directory component will
|
||||
# be either empty or ending with a '/' character. This is deliberate.
|
||||
set_dir_from ()
|
||||
{
|
||||
case $1 in
|
||||
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||
*) dir=;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Get the suffix-stripped basename of the given path, and save it the
|
||||
# global variable '$base'.
|
||||
set_base_from ()
|
||||
{
|
||||
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||
}
|
||||
|
||||
# If no dependency file was actually created by the compiler invocation,
|
||||
# we still have to create a dummy depfile, to avoid errors with the
|
||||
# Makefile "include basename.Plo" scheme.
|
||||
make_dummy_depfile ()
|
||||
{
|
||||
echo "#dummy" > "$depfile"
|
||||
}
|
||||
|
||||
# Factor out some common post-processing of the generated depfile.
|
||||
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||
aix_post_process_depfile ()
|
||||
{
|
||||
# If the compiler actually managed to produce a dependency file,
|
||||
# post-process it.
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form 'foo.o: dependency.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# $object: dependency.h
|
||||
# and one to simply output
|
||||
# dependency.h:
|
||||
# which is needed to avoid the deleted-header problem.
|
||||
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||
} > "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
}
|
||||
|
||||
# A tabulation character.
|
||||
tab=' '
|
||||
# A newline character.
|
||||
nl='
|
||||
'
|
||||
# Character ranges might be problematic outside the C locale.
|
||||
# These definitions help.
|
||||
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
lower=abcdefghijklmnopqrstuvwxyz
|
||||
digits=0123456789
|
||||
alpha=${upper}${lower}
|
||||
|
||||
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"
|
||||
|
||||
# Avoid interferences from the environment.
|
||||
gccflag= dashmflag=
|
||||
|
||||
# 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
|
||||
|
||||
if test "$depmode" = msvc7msys; then
|
||||
# This is just like msvc7 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=msvc7
|
||||
fi
|
||||
|
||||
if test "$depmode" = xlc; then
|
||||
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||
gccflag=-qmakedep=gcc,-MF
|
||||
depmode=gcc
|
||||
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 -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||
## (see the conditional assignment to $gccflag above).
|
||||
## 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). Also, it might not be
|
||||
## supported by the other compilers which use the 'gcc' depmode.
|
||||
## - 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 -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# 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.
|
||||
## 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. hp depmode also adds that space, but also prefixes the VPATH
|
||||
## to the object. Take care to not repeat it in the output.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -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 -ne 0; then
|
||||
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 ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||
| tr "$nl" ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
xlc)
|
||||
# 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
|
||||
;;
|
||||
|
||||
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.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
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 -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
aix_post_process_depfile
|
||||
;;
|
||||
|
||||
tcc)
|
||||
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||
# FIXME: That version still under development at the moment of writing.
|
||||
# Make that this statement remains true also for stable, released
|
||||
# versions.
|
||||
# It will wrap lines (doesn't matter whether long or short) with a
|
||||
# trailing '\', as in:
|
||||
#
|
||||
# foo.o : \
|
||||
# foo.c \
|
||||
# foo.h \
|
||||
#
|
||||
# It will put a trailing '\' even on the last line, and will use leading
|
||||
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||
# "Emit spaces for -MD").
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||
# We have to change lines of the first kind to '$object: \'.
|
||||
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||
# dummy dependency, to avoid the deleted-header problem.
|
||||
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
## The order of this option in the case statement is important, since the
|
||||
## shell code in configure will try each of these formats in the order
|
||||
## listed in this file. A plain '-MD' option would be understood by many
|
||||
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||
pgcc)
|
||||
# Portland's C compiler understands '-MD'.
|
||||
# Will always output deps to 'file.d' where file is the root name of the
|
||||
# source file under compilation, even if file resides in a subdirectory.
|
||||
# The object file name does not affect the name of the '.d' file.
|
||||
# pgcc 10.2 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using '\' :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
set_dir_from "$object"
|
||||
# Use the source, not the object, to determine the base name, since
|
||||
# that's sadly what pgcc will do too.
|
||||
set_base_from "$source"
|
||||
tmpdepfile=$base.d
|
||||
|
||||
# For projects that build the same source file twice into different object
|
||||
# files, the pgcc approach of using the *source* file root name can cause
|
||||
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||
# the same $tmpdepfile.
|
||||
lockdir=$base.d-lock
|
||||
trap "
|
||||
echo '$0: caught signal, cleaning up...' >&2
|
||||
rmdir '$lockdir'
|
||||
exit 1
|
||||
" 1 2 13 15
|
||||
numtries=100
|
||||
i=$numtries
|
||||
while test $i -gt 0; do
|
||||
# mkdir is a portable test-and-set.
|
||||
if mkdir "$lockdir" 2>/dev/null; then
|
||||
# This process acquired the lock.
|
||||
"$@" -MD
|
||||
stat=$?
|
||||
# Release the lock.
|
||||
rmdir "$lockdir"
|
||||
break
|
||||
else
|
||||
# If the lock is being held by a different process, wait
|
||||
# until the winning process is done or we timeout.
|
||||
while test -d "$lockdir" && test $i -gt 0; do
|
||||
sleep 1
|
||||
i=`expr $i - 1`
|
||||
done
|
||||
fi
|
||||
i=`expr $i - 1`
|
||||
done
|
||||
trap - 1 2 13 15
|
||||
if test $i -le 0; then
|
||||
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||
echo "$0: check lockdir '$lockdir'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test $stat -ne 0; then
|
||||
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.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
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 -ne 0; then
|
||||
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,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add 'dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
make_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.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# Libtool 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$base.o.d # libtool 1.5
|
||||
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
# Same post-processing that is required for AIX mode.
|
||||
aix_post_process_depfile
|
||||
;;
|
||||
|
||||
msvc7)
|
||||
if test "$libtool" = yes; then
|
||||
showIncludes=-Wc,-showIncludes
|
||||
else
|
||||
showIncludes=-showIncludes
|
||||
fi
|
||||
"$@" $showIncludes > "$tmpdepfile"
|
||||
stat=$?
|
||||
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# The first sed program below extracts the file names and escapes
|
||||
# backslashes for cygpath. The second sed program outputs the file
|
||||
# name when reading, but also accumulates all include files in the
|
||||
# hold buffer in order to output them again at the end. This only
|
||||
# works with sed implementations that can handle large buffers.
|
||||
sed < "$tmpdepfile" -n '
|
||||
/^Note: including file: *\(.*\)/ {
|
||||
s//\1/
|
||||
s/\\/\\\\/g
|
||||
p
|
||||
}' | $cygpath_u | sort -u | sed -n '
|
||||
s/ /\\ /g
|
||||
s/\(.*\)/'"$tab"'\1 \\/p
|
||||
s/.\(.*\) \\/\1:/
|
||||
H
|
||||
$ {
|
||||
s/.*/'"$tab"'/
|
||||
G
|
||||
p
|
||||
}' >> "$depfile"
|
||||
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvc7msys)
|
||||
# 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
|
||||
;;
|
||||
|
||||
#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|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| 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"
|
||||
# makedepend may prepend the VPATH from the source file name to the object.
|
||||
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed '1,2d' "$tmpdepfile" \
|
||||
| tr ' ' "$nl" \
|
||||
| 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::'"$tab"'\1 \\:p' >> "$depfile"
|
||||
echo "$tab" >> "$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:
|
30
doc/Compiled
Normal file
30
doc/Compiled
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
Compiled gaw 20100823:
|
||||
========
|
||||
Fedora 13
|
||||
Linux olix 2.6.33.6-147.fc13.x86_64 #1 SMP Tue Jul 6 22:32:17 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
|
||||
|
||||
GLIB library version: 2.24.1
|
||||
GTK+ library version: 2.20.1
|
||||
Alsa version: 1.0.23
|
||||
data directory: /usr/local/share/gaw
|
||||
locale directory: /usr/local/share/locale
|
||||
|
||||
Fedora 11
|
||||
Linux rvix 2.6.29.6-217.2.8.fc11.i586 #1 SMP Sat Aug 15 00:44:39 EDT 2009 i686 athlon i386 GNU/Linux
|
||||
|
||||
GLIB library version: 2.20.5
|
||||
GTK+ library version: 2.16.6
|
||||
Alsa version: 1.0.21
|
||||
data directory: /usr/local/share/gaw
|
||||
locale directory: /usr/local/share/locale
|
||||
|
||||
|
||||
Frugalware (ppc) :
|
||||
Linux imac 2.6.32-fw3 #1 PREEMPT Fri May 7 10:52:40 CEST 2010 ppc GNU/Linux
|
||||
|
||||
GLIB library version: 2.22.4
|
||||
GTK+ library version: 2.18.7
|
||||
Alsa version: 1.0.22
|
||||
data directory: /usr/local/share/gaw
|
||||
locale directory: /usr/local/share/locale
|
18
doc/Readme.stest
Normal file
18
doc/Readme.stest
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
Stest is a simple tool to test the functions is this directory, but
|
||||
can be used to convert between formats.
|
||||
|
||||
To compile :
|
||||
cd lib
|
||||
make -f stest.mak
|
||||
|
||||
For command line options:
|
||||
stest -h
|
||||
|
||||
Running example to convert spice3 format to ascii
|
||||
stest -rf spice3raw -wf ascii -o myfile ../examples/Spice3a
|
||||
|
||||
Listing available formats:
|
||||
stest -rl
|
||||
stest -wl
|
||||
|
37
doc/Sizing
Normal file
37
doc/Sizing
Normal file
@ -0,0 +1,37 @@
|
||||
Some notes about sizing the panels of gaw.
|
||||
|
||||
First of all and ony once, gaw needs to determine the value of the variable
|
||||
max_ps_y in the configuration file $HOME/.gaw/gawrc, if this value is 0. And
|
||||
this value is 0 after a reset to factory settings and after a first install.
|
||||
This variable is used to determine the size of view port of the panel scrolled
|
||||
window.
|
||||
|
||||
The panel scrolled window can be considered as 2 port: the view port which
|
||||
stands on the screen and the virtual port that contains panels. When the
|
||||
the virtual port is larger than the view port the scroll bar is shown.
|
||||
|
||||
Gaw, in function of the number of panels and the panel height, i.e. value of
|
||||
panelHeight variable in $HOME/.gaw/gawrc, calculate the width and height value
|
||||
of the main window and the height of the virtual port and then set these
|
||||
values. In the case of the virtual port, the size is to be considered as a
|
||||
minimal size.
|
||||
|
||||
In normal running, a user may chang the size of the main window by dragging
|
||||
one of the corners of the main window. As a result, the size of the view
|
||||
port is changed, it takes the size allocated by the main window.
|
||||
The virtual port expands if you give more room and do not
|
||||
change if you try to shrink because you have reached the minimal value. In
|
||||
the first case the panel size expands, but not in the second case.
|
||||
|
||||
A growed panel size is stable. If you add or remove a panel, the size is
|
||||
recalculated with the value of panelHeight variable as explained before.
|
||||
But if growing is what you want, you can save the configuration file and this
|
||||
change value of panelHeight. But this do not giwe a way to lower the
|
||||
panelHeight.
|
||||
|
||||
To day, the only way is to edit the configuration file once and do not change
|
||||
it. Another way could be to create a menu entry to set panelHeight to the
|
||||
minimal value. Then the user can then grow it. Another way could be to let
|
||||
the user enter his prefered size in a specific window... The subject is open.
|
||||
|
||||
|
23
doc/config
Normal file
23
doc/config
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
Gaw configuration files
|
||||
======================
|
||||
|
||||
Gaw uses 2 configuration files.
|
||||
|
||||
The first one is specific to Gtk objects and is mandatory. A copy of it can
|
||||
be found in the directory GAWRCDIR (/usr/local/share/gaw) after installation.
|
||||
The contents of this file can be overriden by an instance of the file
|
||||
$HOME/.gaw/gaw-gtkrc where users are invited to put their preferences.
|
||||
Info on the content an syntax of this file can be found
|
||||
in GTK+ Reference Manual : Resource Files.
|
||||
|
||||
This file define colors for cursors, wave buttons, waves, DrawingAreas in
|
||||
wavePanel, statusBar. Keep in mind that changing a color may imply others
|
||||
changes. For example changing the DrawingArea background to white, will imply
|
||||
changing the hightlight and srange color and may be the cursor color to make
|
||||
then visible.
|
||||
|
||||
The second deals with application itself and is automaticaly created in the
|
||||
file $HOME/.gaw/gawrc at first startup. Some variables can be changed from
|
||||
inside the application, but others require that you use your favorite
|
||||
text editor.
|
42
doc/dataModel
Normal file
42
doc/dataModel
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
GAW data model
|
||||
|
||||
DATASET
|
||||
|
||||
Central object for data storage is dataset.c dataset.h.
|
||||
User datas come, in general, as a form of a set of n variables, each variable
|
||||
carryng m rows of datas. The first one should be the independant variable
|
||||
and the other the dependant varaibles.
|
||||
A variable may have more than one column.
|
||||
A variable is stored in a structure WaveVar. Each pointer to WaveVar is stored
|
||||
in a GPtrArray hold by dataset itself.
|
||||
Gaw stores each column in a auto growing Glib GArray. The size of each entry
|
||||
in Garray is size of double.
|
||||
Each pointer to GArray is stored in a GPtrArray hold by dataset itself.
|
||||
|
||||
GArray and and GPtrArray are Glib objects. They are auto growing, so rhe
|
||||
developper don't need to take care of the size of data. The only constraint is
|
||||
variable and data must feed in from column 0 to column n and so from row 0 to
|
||||
row m.
|
||||
|
||||
Accessing the data in done with the function dataset_val_get()
|
||||
double dataset_val_get(WDataSet *wds, int row, int col )
|
||||
{
|
||||
GArray *ary = g_ptr_array_index( wds->datas, col );
|
||||
|
||||
double *val = &g_array_index (ary, double, row );
|
||||
return *val;
|
||||
}
|
||||
|
||||
|
||||
WAVETABLE
|
||||
User data can have more than one dataset . so these datasets are stored in a
|
||||
GPtrArray hold by WaveTable.
|
||||
|
||||
SPICESTREAM
|
||||
spicestream and its helper functions is an object to read data from file
|
||||
and store them in dataset. The input file may have different formats.
|
||||
|
||||
SNDSTREAM
|
||||
sndstream is analog to spicestream but handle the sound card.
|
||||
|
BIN
doc/globaltable.png
Normal file
BIN
doc/globaltable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
33
doc/globaltable.sch
Normal file
33
doc/globaltable.sch
Normal file
@ -0,0 +1,33 @@
|
||||
v 20201216 2
|
||||
B 43200 48500 8200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 43200 45100 8200 3400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 46800 44000 9 10 1 0 0 0 1
|
||||
global table
|
||||
B 43200 44700 8200 400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 43200 44300 4100 400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 47300 44300 4100 400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 44700 44400 9 10 1 0 0 0 1
|
||||
statusbar
|
||||
T 43600 44800 9 10 1 0 0 0 1
|
||||
xlabel_ev_box
|
||||
T 48900 44400 9 10 1 0 0 0 1
|
||||
xscrollbar
|
||||
T 45600 46900 9 10 1 0 0 0 1
|
||||
panel_scrolled (paneltable)
|
||||
T 46200 48700 9 10 1 0 0 0 1
|
||||
meas_hbox (meas_buttons)
|
||||
B 43200 49000 8200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 43200 49500 8200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 46500 49700 9 10 1 0 0 0 1
|
||||
menuBar
|
||||
T 46500 49200 9 10 1 0 0 0 1
|
||||
toolBar
|
||||
B 51000 45100 400 3400 3 0 0 2 100 100 0 -1 -1 -1 -1 -1
|
||||
T 51300 46200 9 10 1 0 90 0 1
|
||||
vscrollbar
|
||||
T 44900 44800 9 10 1 0 0 0 1
|
||||
( logx_box [xlabel_log][grip])
|
||||
T 48500 44800 9 10 1 0 0 0 1
|
||||
( layout [xlabels])
|
||||
T 46100 50200 9 14 1 0 0 0 1
|
||||
gaw global table
|
BIN
doc/lmswtable.png
Normal file
BIN
doc/lmswtable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
33
doc/lmswtable.sch
Normal file
33
doc/lmswtable.sch
Normal file
@ -0,0 +1,33 @@
|
||||
v 20201216 2
|
||||
B 43200 46000 8000 3500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 43200 45000 8000 4500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 46300 49200 9 10 1 0 0 0 1
|
||||
lmtopbox (ylabel_log)
|
||||
T 46500 44700 9 10 1 0 0 0 1
|
||||
lmswtable
|
||||
B 43200 45000 3200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 46400 45000 1600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 48000 45000 1600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 49600 45000 1600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 44300 45100 9 10 1 0 0 0 1
|
||||
vw_button
|
||||
T 46700 45100 9 10 1 0 0 0 1
|
||||
c0_button
|
||||
T 48400 45100 9 10 1 0 0 0 1
|
||||
c1_button
|
||||
T 49900 45100 9 10 1 0 0 0 1
|
||||
diff_button
|
||||
B 43200 45500 3200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 46400 45500 1600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 48000 45500 1600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 49600 45500 1600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 44300 45600 9 10 1 0 0 0 1
|
||||
vw_button
|
||||
T 46700 45600 9 10 1 0 0 0 1
|
||||
c0_button
|
||||
T 48400 45600 9 10 1 0 0 0 1
|
||||
c1_button
|
||||
T 49900 45600 9 10 1 0 0 0 1
|
||||
diff_button
|
||||
T 46200 49700 9 14 1 0 0 0 1
|
||||
gaw lmswtable
|
BIN
doc/lmtable.png
Normal file
BIN
doc/lmtable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.8 KiB |
19
doc/lmtable.sch
Normal file
19
doc/lmtable.sch
Normal file
@ -0,0 +1,19 @@
|
||||
v 20201216 2
|
||||
B 43200 49500 6700 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 49900 44500 1400 5500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 43200 44500 6700 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 43200 45000 6700 4500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 45200 49700 9 10 1 0 0 0 1
|
||||
logy_hbox (logY ylabel_max)
|
||||
T 50000 49300 9 10 1 0 0 0 1
|
||||
label_layout
|
||||
T 45400 48300 9 10 1 0 0 0 1
|
||||
lmscroll_win (lmswtable)
|
||||
T 45200 44700 9 10 1 0 0 0 1
|
||||
ylabel_min_box (ylabel_min)
|
||||
T 50200 49000 9 10 1 0 0 0 1
|
||||
(ylabels)
|
||||
T 46500 44200 9 10 1 0 0 0 1
|
||||
lmtable
|
||||
T 46000 50200 9 14 1 0 0 0 1
|
||||
gaw lmtable
|
95
doc/objects
Normal file
95
doc/objects
Normal file
@ -0,0 +1,95 @@
|
||||
Gaw object hierarchy
|
||||
|
||||
|
||||
userData
|
||||
top level window
|
||||
globalTable
|
||||
toolBar
|
||||
ui manager
|
||||
hbox for X measure buttons
|
||||
measure_button + label
|
||||
measure_button + label
|
||||
measure_button + label
|
||||
scrolled_window for panel table
|
||||
table container for panels
|
||||
lmbox container for the left part = (lmhbox | lmvbox)
|
||||
lmhbox
|
||||
lmscroll_win
|
||||
lmtable
|
||||
lmtopbox
|
||||
|
||||
vw_button c0_button c1_button diff_button
|
||||
... repeated for each visble wave
|
||||
|
||||
ylabel_box
|
||||
label_layout
|
||||
ylabels
|
||||
|
||||
lmvbox
|
||||
logy_hbox
|
||||
ylabel_log
|
||||
ylabel_max
|
||||
lmscroll_win
|
||||
lmtable
|
||||
lmtopbox
|
||||
|
||||
vw_button c0_button c1_button diff_button
|
||||
... repeated for each visble wave
|
||||
|
||||
ylabel_box
|
||||
ylabel_min
|
||||
|
||||
|
||||
panel DrawingArea
|
||||
|
||||
... repeated for each panel
|
||||
|
||||
event_box
|
||||
allline_hbox
|
||||
logx_ box
|
||||
logx_label
|
||||
grip_drawing_area
|
||||
xlabel_box
|
||||
layout
|
||||
xlabels
|
||||
statusbar
|
||||
xscrollbar
|
||||
|
||||
|
||||
DataFile
|
||||
WaveTable
|
||||
wlist_win list window
|
||||
vbox
|
||||
wlist_menubar
|
||||
label file name
|
||||
scrolled_window
|
||||
vbox
|
||||
button wave list button
|
||||
...
|
||||
|
||||
|
||||
|
||||
|
||||
WaveTable : wt
|
||||
DataSet
|
||||
GPtrArray *datas
|
||||
GArray col0
|
||||
...
|
||||
GArray coln
|
||||
GPtrArray *vars
|
||||
WaveVar iv
|
||||
WaveVar dv(0)
|
||||
...
|
||||
WaveVar dv(n-1)
|
||||
|
||||
|
||||
Growing Politic :
|
||||
- the main window size is computed from its components :
|
||||
* panels are given the minimal size request
|
||||
* panelTable is given a size request height of n panels user defined
|
||||
panelHeight.
|
||||
* main scrolled window is given a size request height of n panels user
|
||||
defined panelHeight as long as it stand on the screen.
|
||||
* when adding or removing a panel
|
||||
* when showing the xlabel box
|
||||
* when showing the xmeas_button box
|
BIN
doc/paneltable.png
Normal file
BIN
doc/paneltable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
22
doc/paneltable.sch
Normal file
22
doc/paneltable.sch
Normal file
@ -0,0 +1,22 @@
|
||||
v 20201216 2
|
||||
B 42500 47500 4000 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 46500 47500 7000 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 44000 49000 9 10 1 0 0 0 1
|
||||
lmtable
|
||||
T 49800 49000 9 10 1 0 0 0 1
|
||||
drawing
|
||||
B 42500 44900 4000 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 46500 44900 7000 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 44000 46400 9 10 1 0 0 0 1
|
||||
lmtable
|
||||
T 49800 46400 9 10 1 0 0 0 1
|
||||
drawing
|
||||
B 42500 42300 4000 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
B 46500 42300 7000 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 44000 43800 9 10 1 0 0 0 1
|
||||
lmtable
|
||||
T 49800 43800 9 10 1 0 0 0 1
|
||||
drawing
|
||||
B 42500 42300 11000 7700 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
|
||||
T 46200 41900 9 14 1 0 0 0 1
|
||||
panel table with n panels
|
8
doc/sound
Normal file
8
doc/sound
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
Sound capture is a direct replacement for:
|
||||
arecord -d 10 -t wav foobar.wav
|
||||
+ gaw load file foobar.wav
|
||||
from the sound card.
|
||||
|
||||
Samples come directly in a datafile and can be viewed as a loaded file. You
|
||||
have just to connect your real time signals to the sound card input.
|
60
doc/ttg
Normal file
60
doc/ttg
Normal file
@ -0,0 +1,60 @@
|
||||
ttg "Talk to gaw" is intended to let your application controls gaw with
|
||||
command lines send over a socket. To enable this you need to run gaw with a
|
||||
port number, and use the same port in your application :
|
||||
gaw -p 1946.
|
||||
|
||||
For each line sent, gaw echo back a line feed or an error message and can be
|
||||
used for synchronization, if needed.
|
||||
|
||||
In directory ttg, you can find an example C program and an example Perl program
|
||||
talking to gaw.
|
||||
|
||||
Using this method, it is possible to add a column of data to a previosly
|
||||
loaded array of data.
|
||||
|
||||
Here are the keywords used to send commands.
|
||||
|
||||
table_new tblname # add a new wavetable = set of dataset
|
||||
variables v0 v1 v2 ... vn # define variable names
|
||||
vartype t0 t1 t2 ... tn # define type for variable
|
||||
|
||||
rowdatas
|
||||
d0 d1 d2 ... dn # implicit row 0
|
||||
. . .
|
||||
d0 d1 d2 ... dn # implicit row n
|
||||
enddata
|
||||
|
||||
coladd varname vartype # add a new col
|
||||
coldatas varName # new data for variable varName
|
||||
d0
|
||||
.
|
||||
dn
|
||||
enddata
|
||||
|
||||
dataset name1 # add a new dataset
|
||||
|
||||
enddata # finishing enter datas
|
||||
|
||||
tabledel tblname # delete the table
|
||||
|
||||
table_set table0 # set table as curent
|
||||
table_new table1
|
||||
|
||||
panel 4 # set gaw to display 4 panels
|
||||
panel +2 # set gaw to display 2 more panels
|
||||
|
||||
copyvar v1 p0 # display var <varname> in panel 0, automatic color selection
|
||||
copyvar v1 p0 #rrggbb # display var <varname> in panel 0 with color (rr, gg, bb are 2-digit hex numbers)
|
||||
copyvar v1 p0 #rrggbbaa # display var <varname> in panel 0 with color and alpha transparency
|
||||
# (rr, gg, bb, aa are 2-digit hex numbers)
|
||||
|
||||
delvar v1 p0 # undisplay this wave form
|
||||
coladd varname vartype # add a variable column to the current set
|
||||
coldatas varName # new data for variable varName
|
||||
|
||||
load file format # load an existing file
|
||||
export_img file format # export displayed panels to image file
|
||||
export_data file format # export displayed data to data file
|
||||
color_bg #color # set background color in drawing areas
|
||||
grid on/off # turn grid on or off
|
||||
logx on/off # set logx scale
|
13722
examples/Ascii.dat
Normal file
13722
examples/Ascii.dat
Normal file
File diff suppressed because it is too large
Load Diff
4150
examples/Cazm.B
Normal file
4150
examples/Cazm.B
Normal file
File diff suppressed because it is too large
Load Diff
147
examples/Hspicea.tr0
Normal file
147
examples/Hspicea.tr0
Normal file
@ -0,0 +1,147 @@
|
||||
00010002000000009007 *
|
||||
98/08/3114:57:35 Copyright (C) 1985-1997 by Avant!,Inc.
|
||||
0
|
||||
3 1 15 VOLTS v(a
|
||||
i1(m0 $&%# 3 1 15 VOLTS v(a
|
||||
.00000E+00 .00000E+00 .10000E-37 .10000E-01 .10000E-01 .41945E-12 .20000E-01
|
||||
.20000E-01 .86644E-12 .30000E-01 .30000E-01 .13494E-11 .40000E-01 .40000E-01
|
||||
.18788E-11 .50000E-01 .50000E-01 .24681E-11 .60000E-01 .60000E-01 .31341E-11
|
||||
.70000E-01 .70000E-01 .38980E-11 .80000E-01 .80000E-01 .47868E-11 .90000E-01
|
||||
.90000E-01 .58345E-11 .10000E+00 .10000E+00 .70843E-11 .11000E+00 .11000E+00
|
||||
.85908E-11 .12000E+00 .12000E+00 .10423E-10 .13000E+00 .13000E+00 .12670E-10
|
||||
.14000E+00 .14000E+00 .15442E-10 .15000E+00 .15000E+00 .18880E-10 .16000E+00
|
||||
.16000E+00 .23163E-10 .17000E+00 .17000E+00 .28518E-10 .18000E+00 .18000E+00
|
||||
.35233E-10 .19000E+00 .19000E+00 .43672E-10 .20000E+00 .20000E+00 .54298E-10
|
||||
.21000E+00 .21000E+00 .67697E-10 .22000E+00 .22000E+00 .84612E-10 .23000E+00
|
||||
.23000E+00 .10599E-09 .24000E+00 .24000E+00 .13302E-09 .25000E+00 .25000E+00
|
||||
.16721E-09 .26000E+00 .26000E+00 .21050E-09 .27000E+00 .27000E+00 .26532E-09
|
||||
.28000E+00 .28000E+00 .33476E-09 .29000E+00 .29000E+00 .42273E-09 .30000E+00
|
||||
.30000E+00 .53421E-09 .31000E+00 .31000E+00 .67549E-09 .32000E+00 .32000E+00
|
||||
.85457E-09 .33000E+00 .33000E+00 .10816E-08 .34000E+00 .34000E+00 .13693E-08
|
||||
.35000E+00 .35000E+00 .17341E-08 .36000E+00 .36000E+00 .21966E-08 .37000E+00
|
||||
.37000E+00 .27830E-08 .38000E+00 .38000E+00 .35265E-08 .39000E+00 .39000E+00
|
||||
.44692E-08 .40000E+00 .40000E+00 .56644E-08 .41000E+00 .41000E+00 .71799E-08
|
||||
.42000E+00 .42000E+00 .91014E-08 .43000E+00 .43000E+00 .11538E-07 .44000E+00
|
||||
.44000E+00 .14627E-07 .45000E+00 .45000E+00 .18544E-07 .46000E+00 .46000E+00
|
||||
.23511E-07 .47000E+00 .47000E+00 .29809E-07 .48000E+00 .48000E+00 .37794E-07
|
||||
.49000E+00 .49000E+00 .47918E-07 .50000E+00 .50000E+00 .60754E-07 .51000E+00
|
||||
.51000E+00 .77029E-07 .52000E+00 .52000E+00 .97664E-07 .53000E+00 .53000E+00
|
||||
.12382E-06 .54000E+00 .54000E+00 .15699E-06 .55000E+00 .55000E+00 .19903E-06
|
||||
.56000E+00 .56000E+00 .25232E-06 .57000E+00 .57000E+00 .31986E-06 .58000E+00
|
||||
.58000E+00 .40545E-06 .59000E+00 .59000E+00 .51391E-06 .60000E+00 .60000E+00
|
||||
.65131E-06 .61000E+00 .61000E+00 .82534E-06 .62000E+00 .62000E+00 .93514E-06
|
||||
.63000E+00 .63000E+00 .11470E-05 .64000E+00 .64000E+00 .13889E-05 .65000E+00
|
||||
.65000E+00 .16627E-05 .66000E+00 .66000E+00 .19702E-05 .67000E+00 .67000E+00
|
||||
.23132E-05 .68000E+00 .68000E+00 .26935E-05 .69000E+00 .69000E+00 .31126E-05
|
||||
.70000E+00 .70000E+00 .35721E-05 .71000E+00 .71000E+00 .40734E-05 .72000E+00
|
||||
.72000E+00 .46179E-05 .73000E+00 .73000E+00 .52070E-05 .74000E+00 .74000E+00
|
||||
.58419E-05 .75000E+00 .75000E+00 .65236E-05 .76000E+00 .76000E+00 .72534E-05
|
||||
.77000E+00 .77000E+00 .80321E-05 .78000E+00 .78000E+00 .88607E-05 .79000E+00
|
||||
.79000E+00 .97400E-05 .80000E+00 .80000E+00 .10671E-04 .81000E+00 .81000E+00
|
||||
.11654E-04 .82000E+00 .82000E+00 .12689E-04 .83000E+00 .83000E+00 .13779E-04
|
||||
.84000E+00 .84000E+00 .14921E-04 .85000E+00 .85000E+00 .16119E-04 .86000E+00
|
||||
.86000E+00 .17371E-04 .87000E+00 .87000E+00 .18678E-04 .88000E+00 .88000E+00
|
||||
.20040E-04 .89000E+00 .89000E+00 .21458E-04 .90000E+00 .90000E+00 .22931E-04
|
||||
.91000E+00 .91000E+00 .24460E-04 .92000E+00 .92000E+00 .26046E-04 .93000E+00
|
||||
.93000E+00 .27687E-04 .94000E+00 .94000E+00 .29384E-04 .95000E+00 .95000E+00
|
||||
.31137E-04 .96000E+00 .96000E+00 .32946E-04 .97000E+00 .97000E+00 .34811E-04
|
||||
.98000E+00 .98000E+00 .36731E-04 .99000E+00 .99000E+00 .38707E-04 .10000E+01
|
||||
.10000E+01 .40739E-04 .10100E+01 .10100E+01 .42825E-04 .10200E+01 .10200E+01
|
||||
.44967E-04 .10300E+01 .10300E+01 .47163E-04 .10400E+01 .10400E+01 .49414E-04
|
||||
.10500E+01 .10500E+01 .51719E-04 .10600E+01 .10600E+01 .54077E-04 .10700E+01
|
||||
.10700E+01 .56490E-04 .10800E+01 .10800E+01 .58955E-04 .10900E+01 .10900E+01
|
||||
.61473E-04 .11000E+01 .11000E+01 .64044E-04 .11100E+01 .11100E+01 .66666E-04
|
||||
.11200E+01 .11200E+01 .69341E-04 .11300E+01 .11300E+01 .72066E-04 .11400E+01
|
||||
.11400E+01 .74843E-04 .11500E+01 .11500E+01 .77670E-04 .11600E+01 .11600E+01
|
||||
.80546E-04 .11700E+01 .11700E+01 .83472E-04 .11800E+01 .11800E+01 .86448E-04
|
||||
.11900E+01 .11900E+01 .89472E-04 .12000E+01 .12000E+01 .92544E-04 .12100E+01
|
||||
.12100E+01 .95663E-04 .12200E+01 .12200E+01 .98830E-04 .12300E+01 .12300E+01
|
||||
.10204E-03 .12400E+01 .12400E+01 .10530E-03 .12500E+01 .12500E+01 .10861E-03
|
||||
.12600E+01 .12600E+01 .11196E-03 .12700E+01 .12700E+01 .11535E-03 .12800E+01
|
||||
.12800E+01 .11879E-03 .12900E+01 .12900E+01 .12228E-03 .13000E+01 .13000E+01
|
||||
.12580E-03 .13100E+01 .13100E+01 .12937E-03 .13200E+01 .13200E+01 .13298E-03
|
||||
.13300E+01 .13300E+01 .13663E-03 .13400E+01 .13400E+01 .14032E-03 .13500E+01
|
||||
.13500E+01 .14406E-03 .13600E+01 .13600E+01 .14783E-03 .13700E+01 .13700E+01
|
||||
.15164E-03 .13800E+01 .13800E+01 .15549E-03 .13900E+01 .13900E+01 .15938E-03
|
||||
.14000E+01 .14000E+01 .16331E-03 .14100E+01 .14100E+01 .16727E-03 .14200E+01
|
||||
.14200E+01 .17128E-03 .14300E+01 .14300E+01 .17531E-03 .14400E+01 .14400E+01
|
||||
.17939E-03 .14500E+01 .14500E+01 .18349E-03 .14600E+01 .14600E+01 .18764E-03
|
||||
.14700E+01 .14700E+01 .19181E-03 .14800E+01 .14800E+01 .19602E-03 .14900E+01
|
||||
.14900E+01 .20026E-03 .15000E+01 .15000E+01 .20454E-03 .15100E+01 .15100E+01
|
||||
.20884E-03 .15200E+01 .15200E+01 .21318E-03 .15300E+01 .15300E+01 .21755E-03
|
||||
.15400E+01 .15400E+01 .22195E-03 .15500E+01 .15500E+01 .22638E-03 .15600E+01
|
||||
.15600E+01 .23083E-03 .15700E+01 .15700E+01 .23532E-03 .15800E+01 .15800E+01
|
||||
.23983E-03 .15900E+01 .15900E+01 .24437E-03 .16000E+01 .16000E+01 .24894E-03
|
||||
.16100E+01 .16100E+01 .25353E-03 .16200E+01 .16200E+01 .25815E-03 .16300E+01
|
||||
.16300E+01 .26280E-03 .16400E+01 .16400E+01 .26747E-03 .16500E+01 .16500E+01
|
||||
.27216E-03 .16600E+01 .16600E+01 .27688E-03 .16700E+01 .16700E+01 .28162E-03
|
||||
.16800E+01 .16800E+01 .28638E-03 .16900E+01 .16900E+01 .29115E-03 .17000E+01
|
||||
.17000E+01 .29594E-03 .17100E+01 .17100E+01 .30074E-03 .17200E+01 .17200E+01
|
||||
.30554E-03 .17300E+01 .17300E+01 .31036E-03 .17400E+01 .17400E+01 .31519E-03
|
||||
.17500E+01 .17500E+01 .32003E-03 .17600E+01 .17600E+01 .32488E-03 .17700E+01
|
||||
.17700E+01 .32974E-03 .17800E+01 .17800E+01 .33461E-03 .17900E+01 .17900E+01
|
||||
.33949E-03 .18000E+01 .18000E+01 .34438E-03 .18100E+01 .18100E+01 .34928E-03
|
||||
.18200E+01 .18200E+01 .35419E-03 .18300E+01 .18300E+01 .35911E-03 .18400E+01
|
||||
.18400E+01 .36404E-03 .18500E+01 .18500E+01 .36897E-03 .18600E+01 .18600E+01
|
||||
.37392E-03 .18700E+01 .18700E+01 .37887E-03 .18800E+01 .18800E+01 .38383E-03
|
||||
.18900E+01 .18900E+01 .38880E-03 .19000E+01 .19000E+01 .39377E-03 .19100E+01
|
||||
.19100E+01 .39876E-03 .19200E+01 .19200E+01 .40375E-03 .19300E+01 .19300E+01
|
||||
.40875E-03 .19400E+01 .19400E+01 .41376E-03 .19500E+01 .19500E+01 .41877E-03
|
||||
.19600E+01 .19600E+01 .42380E-03 .19700E+01 .19700E+01 .42882E-03 .19800E+01
|
||||
.19800E+01 .43386E-03 .19900E+01 .19900E+01 .43890E-03 .20000E+01 .20000E+01
|
||||
.44395E-03 .20100E+01 .20100E+01 .44901E-03 .20200E+01 .20200E+01 .45407E-03
|
||||
.20300E+01 .20300E+01 .45914E-03 .20400E+01 .20400E+01 .46422E-03 .20500E+01
|
||||
.20500E+01 .46930E-03 .20600E+01 .20600E+01 .47439E-03 .20700E+01 .20700E+01
|
||||
.47949E-03 .20800E+01 .20800E+01 .48459E-03 .20900E+01 .20900E+01 .48969E-03
|
||||
.21000E+01 .21000E+01 .49481E-03 .21100E+01 .21100E+01 .49992E-03 .21200E+01
|
||||
.21200E+01 .50505E-03 .21300E+01 .21300E+01 .51018E-03 .21400E+01 .21400E+01
|
||||
.51531E-03 .21500E+01 .21500E+01 .52045E-03 .21600E+01 .21600E+01 .52559E-03
|
||||
.21700E+01 .21700E+01 .53075E-03 .21800E+01 .21800E+01 .53590E-03 .21900E+01
|
||||
.21900E+01 .54106E-03 .22000E+01 .22000E+01 .54623E-03 .22100E+01 .22100E+01
|
||||
.55140E-03 .22200E+01 .22200E+01 .55657E-03 .22300E+01 .22300E+01 .56175E-03
|
||||
.22400E+01 .22400E+01 .56693E-03 .22500E+01 .22500E+01 .57212E-03 .22600E+01
|
||||
.22600E+01 .57732E-03 .22700E+01 .22700E+01 .58251E-03 .22800E+01 .22800E+01
|
||||
.58772E-03 .22900E+01 .22900E+01 .59292E-03 .23000E+01 .23000E+01 .59813E-03
|
||||
.23100E+01 .23100E+01 .60335E-03 .23200E+01 .23200E+01 .60857E-03 .23300E+01
|
||||
.23300E+01 .61379E-03 .23400E+01 .23400E+01 .61902E-03 .23500E+01 .23500E+01
|
||||
.62425E-03 .23600E+01 .23600E+01 .62948E-03 .23700E+01 .23700E+01 .63472E-03
|
||||
.23800E+01 .23800E+01 .63996E-03 .23900E+01 .23900E+01 .64521E-03 .24000E+01
|
||||
.24000E+01 .65046E-03 .24100E+01 .24100E+01 .65571E-03 .24200E+01 .24200E+01
|
||||
.66096E-03 .24300E+01 .24300E+01 .66622E-03 .24400E+01 .24400E+01 .67149E-03
|
||||
.24500E+01 .24500E+01 .67675E-03 .24600E+01 .24600E+01 .68202E-03 .24700E+01
|
||||
.24700E+01 .68729E-03 .24800E+01 .24800E+01 .69257E-03 .24900E+01 .24900E+01
|
||||
.69785E-03 .25000E+01 .25000E+01 .70313E-03 .25100E+01 .25100E+01 .70842E-03
|
||||
.25200E+01 .25200E+01 .71371E-03 .25300E+01 .25300E+01 .71900E-03 .25400E+01
|
||||
.25400E+01 .72429E-03 .25500E+01 .25500E+01 .72959E-03 .25600E+01 .25600E+01
|
||||
.73489E-03 .25700E+01 .25700E+01 .74019E-03 .25800E+01 .25800E+01 .74549E-03
|
||||
.25900E+01 .25900E+01 .75080E-03 .26000E+01 .26000E+01 .75611E-03 .26100E+01
|
||||
.26100E+01 .76142E-03 .26200E+01 .26200E+01 .76674E-03 .26300E+01 .26300E+01
|
||||
.77206E-03 .26400E+01 .26400E+01 .77738E-03 .26500E+01 .26500E+01 .78270E-03
|
||||
.26600E+01 .26600E+01 .78802E-03 .26700E+01 .26700E+01 .79335E-03 .26800E+01
|
||||
.26800E+01 .79868E-03 .26900E+01 .26900E+01 .80401E-03 .27000E+01 .27000E+01
|
||||
.80935E-03 .27100E+01 .27100E+01 .81468E-03 .27200E+01 .27200E+01 .82002E-03
|
||||
.27300E+01 .27300E+01 .82536E-03 .27400E+01 .27400E+01 .83070E-03 .27500E+01
|
||||
.27500E+01 .83605E-03 .27600E+01 .27600E+01 .84139E-03 .27700E+01 .27700E+01
|
||||
.84674E-03 .27800E+01 .27800E+01 .85209E-03 .27900E+01 .27900E+01 .85744E-03
|
||||
.28000E+01 .28000E+01 .86279E-03 .28100E+01 .28100E+01 .86815E-03 .28200E+01
|
||||
.28200E+01 .87351E-03 .28300E+01 .28300E+01 .87887E-03 .28400E+01 .28400E+01
|
||||
.88423E-03 .28500E+01 .28500E+01 .88959E-03 .28600E+01 .28600E+01 .89495E-03
|
||||
.28700E+01 .28700E+01 .90032E-03 .28800E+01 .28800E+01 .90569E-03 .28900E+01
|
||||
.28900E+01 .91105E-03 .29000E+01 .29000E+01 .91642E-03 .29100E+01 .29100E+01
|
||||
.92179E-03 .29200E+01 .29200E+01 .92717E-03 .29300E+01 .29300E+01 .93254E-03
|
||||
.29400E+01 .29400E+01 .93792E-03 .29500E+01 .29500E+01 .94329E-03 .29600E+01
|
||||
.29600E+01 .94867E-03 .29700E+01 .29700E+01 .95405E-03 .29800E+01 .29800E+01
|
||||
.95943E-03 .29900E+01 .29900E+01 .96482E-03 .30000E+01 .30000E+01 .97020E-03
|
||||
.30100E+01 .30100E+01 .97558E-03 .30200E+01 .30200E+01 .98097E-03 .30300E+01
|
||||
.30300E+01 .98636E-03 .30400E+01 .30400E+01 .99174E-03 .30500E+01 .30500E+01
|
||||
.99713E-03 .30600E+01 .30600E+01 .10025E-02 .30700E+01 .30700E+01 .10079E-02
|
||||
.30800E+01 .30800E+01 .10133E-02 .30900E+01 .30900E+01 .10187E-02 .31000E+01
|
||||
.31000E+01 .10241E-02 .31100E+01 .31100E+01 .10295E-02 .31200E+01 .31200E+01
|
||||
.10349E-02 .31300E+01 .31300E+01 .10403E-02 .31400E+01 .31400E+01 .10457E-02
|
||||
.31500E+01 .31500E+01 .10511E-02 .31600E+01 .31600E+01 .10565E-02 .31700E+01
|
||||
.31700E+01 .10619E-02 .31800E+01 .31800E+01 .10673E-02 .31900E+01 .31900E+01
|
||||
.10727E-02 .32000E+01 .32000E+01 .10781E-02 .32100E+01 .32100E+01 .10835E-02
|
||||
.32200E+01 .32200E+01 .10889E-02 .32300E+01 .32300E+01 .10943E-02 .32400E+01
|
||||
.32400E+01 .10997E-02 .32500E+01 .32500E+01 .11051E-02 .32600E+01 .32600E+01
|
||||
.11105E-02 .32700E+01 .32700E+01 .11159E-02 .32800E+01 .32800E+01 .11213E-02
|
||||
.32900E+01 .32900E+01 .11267E-02 .33000E+01 .33000E+01 .11321E-02 .10000E+31
|
BIN
examples/Hspiceb.tr0
Normal file
BIN
examples/Hspiceb.tr0
Normal file
Binary file not shown.
BIN
examples/Hspiceb1.tr0
Normal file
BIN
examples/Hspiceb1.tr0
Normal file
Binary file not shown.
123510
examples/Nsout.out
Normal file
123510
examples/Nsout.out
Normal file
File diff suppressed because it is too large
Load Diff
BIN
examples/S2raw.rawspice
Normal file
BIN
examples/S2raw.rawspice
Normal file
Binary file not shown.
201
examples/SineVar.dat
Normal file
201
examples/SineVar.dat
Normal file
@ -0,0 +1,201 @@
|
||||
%time NodeGeneRch GeneSinus Rch
|
||||
0 0 0 0
|
||||
0.001 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.002 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.003 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.004 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.005 1.22460635382e-16 -1.22460635382e-17 1.22460635382e-17
|
||||
0.006 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.007 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.008 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.009 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.01 -2.44921270764e-16 2.44921270764e-17 -2.44921270764e-17
|
||||
0.011 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.012 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.013 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.014 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.015 3.67381906147e-16 -3.67381906147e-17 3.67381906147e-17
|
||||
0.016 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.017 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.018 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.019 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.02 -4.89842541529e-16 4.89842541529e-17 -4.89842541529e-17
|
||||
0.021 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.022 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.023 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.024 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.025 6.12303176911e-16 -6.12303176911e-17 6.12303176911e-17
|
||||
0.026 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.027 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.028 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.029 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.03 -7.34763812293e-16 7.34763812293e-17 -7.34763812293e-17
|
||||
0.031 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.032 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.033 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.034 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.035 -2.69548923112e-15 2.69548923112e-16 -2.69548923112e-16
|
||||
0.036 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.037 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.038 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.039 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.04 -9.79685083058e-16 9.79685083058e-17 -9.79685083058e-17
|
||||
0.041 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.042 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.043 0.951056516295 -0.0951056516295 0.0951056516295
|
||||
0.044 0.587785252292 -0.0587785252292 0.0587785252292
|
||||
0.045 -2.45056796036e-15 2.45056796036e-16 -2.45056796036e-16
|
||||
0.046 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.047 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.048 -0.951056516295 0.0951056516295 -0.0951056516295
|
||||
0.049 -0.587785252292 0.0587785252292 -0.0587785252292
|
||||
0.05 -2.44921270764e-15 2.44921270764e-16 -2.44921270764e-16
|
||||
0.051 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.052 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.053 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.054 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.055 -4.41129337919e-15 4.41129337919e-16 -4.41129337919e-16
|
||||
0.056 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.057 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.058 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.059 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.06 -2.93905524917e-15 2.93905524917e-16 -2.93905524917e-16
|
||||
0.061 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.062 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.063 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.064 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.065 -3.92145083766e-15 3.92145083766e-16 -3.92145083766e-16
|
||||
0.066 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.067 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.068 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.069 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.07 1.07819569245e-14 -1.07819569245e-15 1.07819569245e-15
|
||||
0.071 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.072 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.073 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.074 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.075 -3.43160829613e-15 3.43160829613e-16 -3.43160829613e-16
|
||||
0.076 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.077 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.078 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.079 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.08 -3.91874033223e-15 3.91874033223e-16 -3.91874033223e-16
|
||||
0.081 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.082 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.083 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.084 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.085 -2.9417657546e-15 2.9417657546e-16 -2.9417657546e-16
|
||||
0.086 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.087 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.088 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.089 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.09 9.80227184144e-15 -9.80227184144e-16 9.80227184144e-16
|
||||
0.091 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.092 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.093 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.094 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.095 -2.45192321308e-15 2.45192321308e-16 -2.45192321308e-16
|
||||
0.096 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.097 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.098 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.099 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.1 -1.22460635382e-14 1.22460635382e-15 -1.22460635382e-15
|
||||
0.101 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.102 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.103 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.104 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.105 -4.90520167887e-15 4.90520167887e-16 -4.90520167887e-16
|
||||
0.106 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.107 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.108 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.109 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.11 2.2056466896e-14 -2.2056466896e-15 2.2056466896e-15
|
||||
0.111 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.112 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.113 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.114 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.115 3.1846541463e-14 -3.1846541463e-15 3.1846541463e-15
|
||||
0.116 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.117 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.118 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.119 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.12 -1.46952762459e-14 1.46952762459e-15 -1.46952762459e-15
|
||||
0.121 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.122 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.123 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.124 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.125 -2.45598897122e-15 2.45598897122e-16 -2.45598897122e-16
|
||||
0.126 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.127 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.128 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.129 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.13 1.96072541883e-14 -1.96072541883e-15 1.96072541883e-15
|
||||
0.131 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.132 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.133 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.134 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.135 -3.67585194054e-14 3.67585194054e-15 -3.67585194054e-15
|
||||
0.136 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.137 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.138 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.139 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.14 5.39097846225e-14 -5.39097846225e-15 5.39097846225e-15
|
||||
0.141 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.142 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.143 4.75528258148 -0.475528258148 0.475528258148
|
||||
0.144 2.93892626146 -0.293892626146 0.293892626146
|
||||
0.145 -7.10610498396e-14 7.10610498396e-15 -7.10610498396e-15
|
||||
0.146 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.147 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.148 -4.75528258148 0.475528258148 -0.475528258148
|
||||
0.149 -2.93892626146 0.293892626146 -0.293892626146
|
||||
0.15 6.86321659227e-15 -6.86321659227e-16 6.86321659227e-16
|
||||
0.151 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.152 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.153 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.154 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.155 1.46979867513e-14 -1.46979867513e-15 1.46979867513e-15
|
||||
0.156 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.157 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.158 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.159 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.16 -7.83748066446e-15 7.83748066446e-16 -7.83748066446e-16
|
||||
0.161 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.162 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.163 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.164 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.165 9.76974577627e-16 -9.76974577627e-17 9.76974577627e-17
|
||||
0.166 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.167 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.168 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.169 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.17 5.88353150921e-15 -5.88353150921e-16 5.88353150921e-16
|
||||
0.171 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.172 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.173 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.174 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.175 -1.2744037596e-14 1.2744037596e-15 -1.2744037596e-15
|
||||
0.176 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.177 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.178 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.179 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.18 1.96045436829e-14 -1.96045436829e-15 1.96045436829e-15
|
||||
0.181 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.182 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.183 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.184 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.185 -2.64650497697e-14 2.64650497697e-15 -2.64650497697e-15
|
||||
0.186 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.187 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.188 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.189 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.19 4.90384642615e-15 -4.90384642615e-16 4.90384642615e-16
|
||||
0.191 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.192 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.193 1.90211303259 -0.190211303259 0.190211303259
|
||||
0.194 1.17557050458 -0.117557050458 0.117557050458
|
||||
0.195 -1.1764352513e-14 1.1764352513e-15 -1.1764352513e-15
|
||||
0.196 -1.17557050458 0.117557050458 -0.117557050458
|
||||
0.197 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.198 -1.90211303259 0.190211303259 -0.190211303259
|
||||
0.199 -1.17557050458 0.117557050458 -0.117557050458
|
525
examples/Spice3a.raw
Normal file
525
examples/Spice3a.raw
Normal file
@ -0,0 +1,525 @@
|
||||
Title: * RC circuit driven by square wave
|
||||
Date: Sun Oct 8 22:29:16 2000
|
||||
Plotname: Transient Analysis
|
||||
Flags: real
|
||||
No. Variables: 6
|
||||
No. Points: 85
|
||||
Command: version 12
|
||||
Variables:
|
||||
0 time time
|
||||
1 gnd voltage
|
||||
2 a voltage
|
||||
3 b voltage
|
||||
4 va#branch current
|
||||
5 vgnd#branch current
|
||||
Values:
|
||||
0 0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1 5.000000000000002e-12
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
2 1.000000000000000e-11
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
3 2.000000000000001e-11
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4 4.000000000000002e-11
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
5 8.000000000000003e-11
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
6 1.600000000000001e-10
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
7 3.200000000000001e-10
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
8 6.400000000000003e-10
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
9 1.280000000000001e-09
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
10 2.560000000000001e-09
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
11 5.120000000000002e-09
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
12 9.120000000000005e-09
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
13 1.312000000000001e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
14 1.712000000000001e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
15 2.112000000000001e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
16 2.512000000000002e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
17 2.912000000000002e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
18 3.312000000000002e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
19 3.712000000000002e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
20 4.112000000000003e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
21 4.512000000000003e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
22 4.912000000000003e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
23 5.000000000000002e-08
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
24 5.001372000139946e-08
|
||||
0.000000000000000e+00
|
||||
6.860000699718387e-02
|
||||
1.877233255427589e-04
|
||||
-1.368245673432822e-03
|
||||
-5.124549330888517e-20
|
||||
25 5.004116000419834e-08
|
||||
0.000000000000000e+00
|
||||
2.058000209915847e-01
|
||||
9.375892212019797e-04
|
||||
-4.097248635407655e-03
|
||||
-4.061522982084370e-19
|
||||
26 5.009604000979610e-08
|
||||
0.000000000000000e+00
|
||||
4.802000489803864e-01
|
||||
4.671574893413615e-03
|
||||
-9.510569481739456e-03
|
||||
-4.845028458294598e-19
|
||||
27 5.016463932075743e-08
|
||||
0.000000000000000e+00
|
||||
8.231966037870162e-01
|
||||
1.348821124072676e-02
|
||||
-1.619416785092579e-02
|
||||
-2.046431600566390e-18
|
||||
28 5.030183794268007e-08
|
||||
0.000000000000000e+00
|
||||
1.509189713400243e+00
|
||||
4.469003260352831e-02
|
||||
-2.928999361593429e-02
|
||||
3.435565634063442e-18
|
||||
29 5.057623518652536e-08
|
||||
0.000000000000000e+00
|
||||
2.881175932626696e+00
|
||||
1.595560010088557e-01
|
||||
-5.443239863235680e-02
|
||||
-2.175180608549043e-18
|
||||
30 5.100000000000003e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.669820287810404e-01
|
||||
-9.066035942437919e-02
|
||||
-9.893344823930228e-19
|
||||
31 5.105487944876909e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
5.161957696905909e-01
|
||||
-8.967608460618819e-02
|
||||
-4.531965080989409e-17
|
||||
32 5.116463834630720e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
6.135546511601278e-01
|
||||
-8.772890697679744e-02
|
||||
-9.128982292327947e-17
|
||||
33 5.138415614138343e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
8.019985348164886e-01
|
||||
-8.396002930367023e-02
|
||||
9.925870889104793e-17
|
||||
34 5.182319173153590e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
1.155110090919698e+00
|
||||
-7.689779818160604e-02
|
||||
3.686287386450715e-18
|
||||
35 5.270126291184084e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
1.775824363633995e+00
|
||||
-6.448351272732010e-02
|
||||
2.439454888092385e-17
|
||||
36 5.445740527245070e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
2.739084460252097e+00
|
||||
-4.521831079495806e-02
|
||||
-8.700722434196173e-18
|
||||
37 5.796968999367044e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
3.914456245269961e+00
|
||||
-2.171087509460078e-02
|
||||
4.725766219321192e-17
|
||||
38 6.196968999367043e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.534766962258554e+00
|
||||
-9.304660754828919e-03
|
||||
-7.386127300057499e-18
|
||||
39 6.596968999367043e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.800614412396523e+00
|
||||
-3.987711752069547e-03
|
||||
4.426255369172072e-17
|
||||
40 6.996968999367042e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.914549033884223e+00
|
||||
-1.709019322315530e-03
|
||||
3.081844675290046e-17
|
||||
41 7.396968999367042e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.963378157378952e+00
|
||||
-7.324368524209568e-04
|
||||
5.060513640076092e-17
|
||||
42 7.796968999367042e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.984304924590980e+00
|
||||
-3.139015081804075e-04
|
||||
-1.493488492598782e-17
|
||||
43 8.196968999367041e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.993273539110421e+00
|
||||
-1.345292177915880e-04
|
||||
1.168227840853131e-17
|
||||
44 8.596968999367041e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.997117231047323e+00
|
||||
-5.765537905354279e-05
|
||||
2.276824562219559e-17
|
||||
45 8.996968999367041e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.998764527591710e+00
|
||||
-2.470944816579390e-05
|
||||
1.387778780781446e-17
|
||||
46 9.396968999367040e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.999470511825018e+00
|
||||
-1.058976349963103e-05
|
||||
3.889575293791747e-18
|
||||
47 9.796968999367040e-08
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.999773076496437e+00
|
||||
-4.538470071260294e-06
|
||||
-6.098637220230962e-18
|
||||
48 1.000000000000000e-07
|
||||
0.000000000000000e+00
|
||||
5.000000000000000e+00
|
||||
4.999849670542595e+00
|
||||
-3.006589148100149e-06
|
||||
-5.618877758906127e-17
|
||||
49 1.001000000000000e-07
|
||||
0.000000000000000e+00
|
||||
4.500000000000027e+00
|
||||
4.990048696610389e+00
|
||||
9.800973932207243e-03
|
||||
-2.831936074532138e-16
|
||||
50 1.003000000000000e-07
|
||||
0.000000000000000e+00
|
||||
3.500000000000013e+00
|
||||
4.951223257527631e+00
|
||||
2.902446515055235e-02
|
||||
1.127570259384925e-16
|
||||
51 1.007000000000000e-07
|
||||
0.000000000000000e+00
|
||||
1.499999999999987e+00
|
||||
4.762667622333200e+00
|
||||
6.525335244666426e-02
|
||||
-1.821459649775647e-16
|
||||
52 1.010000000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.528919993847773e+00
|
||||
9.057839987695547e-02
|
||||
4.362829542081670e-16
|
||||
53 1.010800000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.457598419141509e+00
|
||||
8.915196838283018e-02
|
||||
6.331740687315346e-16
|
||||
54 1.012400000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.317201618538626e+00
|
||||
8.634403237077252e-02
|
||||
3.473783760643556e-16
|
||||
55 1.015600000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.049468184830806e+00
|
||||
8.098936369661612e-02
|
||||
9.302454639925628e-17
|
||||
56 1.022000000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
3.562314117482742e+00
|
||||
7.124628234965484e-02
|
||||
-4.835541689285350e-17
|
||||
57 1.034800000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
2.753845665288082e+00
|
||||
5.507691330576164e-02
|
||||
-9.703609443745265e-18
|
||||
58 1.060400000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.631258897272561e+00
|
||||
3.262517794545123e-02
|
||||
8.145068820797352e-18
|
||||
59 1.100400000000000e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
6.991109559739550e-01
|
||||
1.398221911947910e-02
|
||||
1.528047436846758e-18
|
||||
60 1.133858977201869e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
3.485682195025457e-01
|
||||
6.971364390050914e-03
|
||||
1.035074261544755e-18
|
||||
61 1.164282441841334e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.859494310844993e-01
|
||||
3.718988621689985e-03
|
||||
1.416239087809190e-18
|
||||
62 1.196845929931872e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
9.459453130354480e-02
|
||||
1.891890626070896e-03
|
||||
-3.214490034830070e-19
|
||||
63 1.230850975933692e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.658601991578762e-02
|
||||
9.317203983157524e-04
|
||||
-4.252105395216588e-19
|
||||
64 1.265042731109810e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
2.284599526971512e-02
|
||||
4.569199053943023e-04
|
||||
1.248314806016025e-19
|
||||
65 1.298318782801816e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.143772634369389e-02
|
||||
2.287545268738777e-04
|
||||
-2.890499932505300e-20
|
||||
66 1.331512717055513e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
5.736819040494918e-03
|
||||
1.147363808098984e-04
|
||||
-4.094874904382508e-20
|
||||
67 1.364760822836329e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
2.873913557732933e-03
|
||||
5.747827115465866e-05
|
||||
1.402898318889935e-20
|
||||
68 1.398297329194433e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.430397879060197e-03
|
||||
2.860795758120394e-05
|
||||
1.240770918829542e-20
|
||||
69 1.431724290546777e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
7.136933369316130e-04
|
||||
1.427386673863226e-05
|
||||
5.595049663308679e-21
|
||||
70 1.465159079284737e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
3.560326973084803e-04
|
||||
7.120653946169606e-06
|
||||
4.810882442608409e-21
|
||||
71 1.498503209981507e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.779731047438250e-04
|
||||
3.559462094876501e-06
|
||||
1.833859418030062e-21
|
||||
72 1.531924800227155e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
8.880996149927905e-05
|
||||
1.776199229985581e-06
|
||||
-6.158359660457291e-22
|
||||
73 1.565315886053205e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.434730451937012e-05
|
||||
8.869460903874024e-07
|
||||
1.218023451984333e-22
|
||||
74 1.600788283551087e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
2.112330844451934e-05
|
||||
4.224661688903868e-07
|
||||
8.271806125530277e-24
|
||||
75 1.640788283551087e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
9.052846476222577e-06
|
||||
1.810569295244516e-07
|
||||
-4.629626490882727e-23
|
||||
76 1.680788283551087e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
3.879791346952535e-06
|
||||
7.759582693905070e-08
|
||||
-1.809457589959748e-25
|
||||
77 1.720788283551087e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.662767720122515e-06
|
||||
3.325535440245030e-08
|
||||
-1.971016303349011e-24
|
||||
78 1.760788283551088e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
7.126147371953638e-07
|
||||
1.425229474390728e-08
|
||||
3.647995748329563e-24
|
||||
79 1.800788283551088e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
3.054063159408702e-07
|
||||
6.108126318817403e-09
|
||||
2.295749317261430e-24
|
||||
80 1.840788283551088e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.308884211175158e-07
|
||||
2.617768422350316e-09
|
||||
2.984797229866638e-25
|
||||
81 1.880788283551088e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
5.609503762179250e-08
|
||||
1.121900752435850e-09
|
||||
1.750892556356140e-25
|
||||
82 1.920788283551088e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
2.404073040933965e-08
|
||||
4.808146081867930e-10
|
||||
5.735334325318844e-26
|
||||
83 1.960788283551088e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
1.030317017543128e-08
|
||||
2.060634035086256e-10
|
||||
-2.726303288443817e-27
|
||||
84 2.000000000000001e-07
|
||||
0.000000000000000e+00
|
||||
0.000000000000000e+00
|
||||
4.498989352875767e-09
|
||||
8.997978705751535e-11
|
||||
-3.237485155027032e-26
|
BIN
examples/Spice3b.raw
Normal file
BIN
examples/Spice3b.raw
Normal file
Binary file not shown.
10001
examples/filter2k.asc
Normal file
10001
examples/filter2k.asc
Normal file
File diff suppressed because it is too large
Load Diff
7518
examples/hp1.dat
Normal file
7518
examples/hp1.dat
Normal file
File diff suppressed because it is too large
Load Diff
826
examples/invsweep.tr0
Normal file
826
examples/invsweep.tr0
Normal file
@ -0,0 +1,826 @@
|
||||
00070001000100009007 * sweep loading
|
||||
95/02/0316:29:46 Copyright 1993 (C) by Meta-Software,Inc.
|
||||
21
|
||||
1 1 1 1 1 1 8
|
||||
1 TIME 0 a vdd vss
|
||||
y I(va v(y cload $&%#
|
||||
.10000E-12 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .42461E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01-.68681E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .85825E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.33451E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .12242E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.11205E-17
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.15657E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49445E+01-.25359E-03 .49445E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .47611E+01-.30285E-03 .47611E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .39339E+01-.37135E-03 .39339E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .13278E+01-.25515E-03 .13278E+01 .17989E-08
|
||||
.00000E+00 .39944E+01 .50000E+01 .00000E+00 .22020E+00-.48668E-03 .22020E+00
|
||||
.10000E+31
|
||||
.50000E-12 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .40834E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .30259E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .51932E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01 .19412E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .46517E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.95782E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.25420E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49685E+01-.25109E-03 .49685E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .48811E+01-.28319E-03 .48811E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .45403E+01-.31215E-03 .45403E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .36913E+01-.24536E-03 .36913E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .22579E+01-.23116E-03 .22579E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .14945E+01-.31505E-03
|
||||
.14945E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .99082E+00
|
||||
-.60832E-04 .99082E+00 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.31289E+00-.21507E-04 .31289E+00 .10000E+31
|
||||
.90000E-12 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35955E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .37033E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .62776E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01 .34325E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .50577E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .99420E-19
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.14701E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49779E+01-.25010E-03 .49779E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49201E+01-.27711E-03 .49201E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .46968E+01-.29562E-03 .46968E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .41958E+01-.26763E-03 .41958E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .33349E+01-.13678E-03 .33349E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .27898E+01-.31856E-03
|
||||
.27898E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .22651E+01
|
||||
-.56314E-04 .22651E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.13680E+01-.46301E-04 .13680E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .71583E+00-.23995E-04 .71583E+00 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .35431E+00-.15546E-04 .35431E+00 .10000E+31
|
||||
.13000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .36498E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01-.61898E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .15494E-17 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.18117E-17 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .24168E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.28959E-17
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.41683E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49830E+01-.24957E-03 .49830E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49397E+01-.27410E-03 .49397E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .47729E+01-.28741E-03 .47729E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .44137E+01-.27983E-03 .44137E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .38089E+01-.10720E-03 .38089E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .34188E+01-.28828E-03
|
||||
.34188E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .30083E+01
|
||||
-.37839E-04 .30083E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.22343E+01-.42559E-04 .22343E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .15177E+01-.30949E-04 .15177E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .98459E+00-.25919E-04 .98459E+00 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .61888E+00-.13827E-04 .61888E+00 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .38115E+00-.12171E-04 .38115E+00
|
||||
.10000E+31
|
||||
.17000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .18066E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .68203E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .84469E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.55128E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .12242E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.11205E-17
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.69882E-18 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49862E+01-.24923E-03 .49862E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49516E+01-.27231E-03 .49516E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .48182E+01-.28247E-03 .48182E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .45378E+01-.28542E-03 .45378E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .40718E+01-.97130E-04 .40718E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .37705E+01-.26926E-03
|
||||
.37705E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .34490E+01
|
||||
-.25731E-04 .34490E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.28180E+01-.32737E-04 .28180E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .21690E+01-.29315E-04 .21690E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .16127E+01-.27662E-04 .16127E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .11663E+01-.19660E-04 .11663E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .82614E+00-.17015E-04 .82614E+00
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .57647E+00-.10183E-04
|
||||
.57647E+00 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .39803E+00
|
||||
-.93346E-05 .39803E+00 .10000E+31
|
||||
.21000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .40834E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .30259E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .74971E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.52407E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .10208E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.88998E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.11320E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49884E+01-.24901E-03 .49884E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49595E+01-.27111E-03 .49595E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .48484E+01-.27915E-03 .48484E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .46178E+01-.28507E-03 .46178E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .42387E+01-.99021E-04 .42387E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .39935E+01-.25381E-03
|
||||
.39935E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .37310E+01
|
||||
-.18518E-04 .37310E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.32094E+01-.24707E-04 .32094E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .26484E+01-.24713E-04 .26484E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .21303E+01-.25589E-04 .21303E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .16752E+01-.20975E-04 .16752E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .12934E+01-.19272E-04 .12934E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .98397E+00-.13920E-04
|
||||
.98397E+00 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .74008E+00
|
||||
-.12492E-04 .74008E+00 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.55163E+00-.80344E-05 .55163E+00 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .40856E+00-.76005E-05 .40856E+00 .10000E+31
|
||||
.25000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .40292E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .45068E-19 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .47868E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.49706E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .13461E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.93074E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.24328E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49900E+01-.24884E-03 .49900E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49652E+01-.27026E-03 .49652E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .48700E+01-.27677E-03 .48700E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .46739E+01-.28353E-03 .46739E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .43542E+01-.10319E-03 .43542E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .41475E+01-.24296E-03
|
||||
.41475E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .39259E+01
|
||||
-.13923E-04 .39259E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.34846E+01-.19111E-04 .34846E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .30011E+01-.19969E-04 .30011E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .25363E+01-.22446E-04 .25363E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .21057E+01-.19758E-04 .21057E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .17210E+01-.19578E-04 .17210E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .13878E+01-.15399E-04
|
||||
.13878E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .11068E+01
|
||||
-.14563E-04 .11068E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.87480E+00-.10446E-04 .87480E+00 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .68657E+00-.99709E-05 .68657E+00 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .53586E+00-.64707E-05 .53586E+00 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .41642E+00-.65848E-05 .41642E+00 .10000E+31
|
||||
.29000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .40834E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .30259E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .74971E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.30723E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .91234E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .31595E-19
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.21749E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49912E+01-.24871E-03 .49912E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49695E+01-.26962E-03 .49695E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .48861E+01-.27498E-03 .48861E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .47154E+01-.28187E-03 .47154E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .44389E+01-.10743E-03 .44389E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .42604E+01-.23541E-03
|
||||
.42604E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .40687E+01
|
||||
-.10826E-04 .40687E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.36866E+01-.15157E-04 .36866E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .32653E+01-.16241E-04 .32653E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .28520E+01-.19041E-04 .28520E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .24564E+01-.17859E-04 .24564E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .20885E+01-.18420E-04 .20885E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .17551E+01-.15654E-04
|
||||
.17551E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .14602E+01
|
||||
-.15197E-04 .14602E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.12044E+01-.11985E-04 .12044E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .98637E+00-.11421E-04 .98637E+00 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .80305E+00-.84115E-05 .80305E+00 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .65067E+00-.81468E-05 .65067E+00 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .52515E+00-.55533E-05 .52515E+00
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .42253E+00-.56679E-05
|
||||
.42253E+00 .10000E+31
|
||||
.33000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .40292E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .24836E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .79046E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.72743E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .16578E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.83585E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.16854E-18 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49921E+01-.24862E-03 .49921E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49729E+01-.26912E-03 .49729E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .48987E+01-.27357E-03 .48987E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .47475E+01-.28034E-03 .47475E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .45039E+01-.11126E-03 .45039E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .43467E+01-.22946E-03
|
||||
.43467E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .41779E+01
|
||||
-.89428E-05 .41779E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.38411E+01-.11965E-04 .38411E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .34690E+01-.13747E-04 .34690E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .31006E+01-.15649E-04 .31006E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .27409E+01-.16149E-04 .27409E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .23973E+01-.16374E-04 .23973E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .20762E+01-.15432E-04
|
||||
.20762E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .17821E+01
|
||||
-.14613E-04 .17821E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.15176E+01-.12979E-04 .15176E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .12836E+01-.11804E-04 .12836E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .10793E+01-.10051E-04 .10793E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .90306E+00-.89496E-05 .90306E+00 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .75246E+00-.73716E-05 .75246E+00
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .62481E+00-.65208E-05
|
||||
.62481E+00 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .51733E+00
|
||||
-.52094E-05 .51733E+00 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.42732E+00-.46386E-05 .42732E+00 .10000E+31
|
||||
.37000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35955E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .37033E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .47868E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.40219E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .91243E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.28031E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.10357E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49929E+01-.24854E-03 .49929E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49756E+01-.26872E-03 .49756E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49088E+01-.27245E-03 .49088E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .47730E+01-.27900E-03 .47730E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .45553E+01-.11461E-03 .45553E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .44149E+01-.22444E-03
|
||||
.44149E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .42641E+01
|
||||
-.79052E-05 .42641E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.39631E+01-.92419E-05 .39631E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .36301E+01-.12157E-04 .36301E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .32992E+01-.12631E-04 .32992E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .29726E+01-.14665E-04 .29726E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .26550E+01-.14100E-04 .26550E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .23516E+01-.14904E-04
|
||||
.23516E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .20667E+01
|
||||
-.13411E-04 .20667E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.18036E+01-.13447E-04 .18036E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .15640E+01-.11504E-04 .15640E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .13487E+01-.11218E-04 .13487E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .11574E+01-.91984E-05 .11574E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .98905E+00-.88850E-05 .98905E+00
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .84214E+00-.70018E-05
|
||||
.84214E+00 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .71486E+00
|
||||
-.68053E-05 .71486E+00 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.60524E+00-.51420E-05 .60524E+00 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .51129E+00-.51060E-05 .51129E+00 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .43113E+00-.36721E-05 .43113E+00 .10000E+31
|
||||
.41000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35955E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .62783E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .12633E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.63347E-19 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.91538E-20 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .12242E-17
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.35301E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49935E+01-.24847E-03 .49935E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49778E+01-.26839E-03 .49778E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49170E+01-.27153E-03 .49170E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .47938E+01-.27782E-03 .47938E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .45970E+01-.11752E-03 .45970E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .44702E+01-.22019E-03
|
||||
.44702E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .43340E+01
|
||||
-.71728E-05 .43340E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.40618E+01-.73182E-05 .40618E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .37606E+01-.10737E-04 .37606E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .34609E+01-.10430E-04 .34609E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .31634E+01-.13082E-04 .31634E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .28708E+01-.12219E-04 .28708E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .25868E+01-.13909E-04
|
||||
.25868E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .23154E+01
|
||||
-.12262E-04 .23154E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.20595E+01-.13215E-04 .20595E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .18214E+01-.11099E-04 .18214E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .16025E+01-.11636E-04 .16025E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .14033E+01-.93475E-05 .14033E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .12239E+01-.97254E-05 .12239E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .10635E+01-.74710E-05
|
||||
.10635E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .92127E+00
|
||||
-.78496E-05 .92127E+00 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.79588E+00-.57400E-05 .79588E+00 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .68593E+00-.61952E-05 .68593E+00 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .58997E+00-.42721E-05 .58997E+00 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .50655E+00-.48262E-05 .50655E+00 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .43428E+00-.30913E-05 .43428E+00
|
||||
.10000E+31
|
||||
.45000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35413E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .24834E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .84469E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.55128E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .21322E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.76945E-19
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.17953E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49940E+01-.24841E-03 .49940E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49796E+01-.26812E-03 .49796E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49239E+01-.27076E-03 .49239E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48111E+01-.27679E-03 .48111E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .46316E+01-.12007E-03 .46316E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45160E+01-.21654E-03
|
||||
.45160E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .43918E+01
|
||||
-.65696E-05 .43918E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.41435E+01-.60892E-05 .41435E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .38685E+01-.93209E-05 .38685E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .35947E+01-.89382E-05 .35947E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .33223E+01-.11503E-04 .33223E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .30526E+01-.10730E-04 .30526E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .27879E+01-.12672E-04
|
||||
.27879E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .25315E+01
|
||||
-.11251E-04 .25315E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.22860E+01-.12532E-04 .22860E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .20538E+01-.10665E-04 .20538E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .18363E+01-.11505E-04 .18363E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .16348E+01-.94137E-05 .16348E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .14497E+01-.10021E-04 .14497E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .12810E+01-.78850E-05
|
||||
.12810E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .11284E+01
|
||||
-.84119E-05 .11284E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.99129E+00-.63476E-05 .99129E+00 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .86869E+00-.68843E-05 .86869E+00 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .75963E+00-.49525E-05 .75963E+00 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .66302E+00-.55417E-05 .66302E+00 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .57776E+00-.37638E-05 .57776E+00
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .50275E+00-.44176E-05
|
||||
.50275E+00 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .43694E+00
|
||||
-.27923E-05 .43694E+00 .10000E+31
|
||||
.49000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35955E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .62783E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .46514E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01 .99403E-19 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .68195E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.14457E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.47696E-19 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49945E+01-.24837E-03 .49945E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49812E+01-.26789E-03 .49812E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49297E+01-.27011E-03 .49297E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48258E+01-.27590E-03 .48258E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .46606E+01-.12229E-03 .46606E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45544E+01-.21341E-03
|
||||
.45544E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .44402E+01
|
||||
-.60642E-05 .44402E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.42120E+01-.53298E-05 .42120E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .39591E+01-.79560E-05 .39591E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .37071E+01-.79366E-05 .37071E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .34562E+01-.99962E-05 .34562E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .32068E+01-.96108E-05 .32068E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .29603E+01-.11306E-04
|
||||
.29603E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .27192E+01
|
||||
-.10429E-04 .27192E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.24856E+01-.11556E-04 .24856E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .22616E+01-.10269E-04 .22616E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .20490E+01-.10976E-04 .20490E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .18489E+01-.94386E-05 .18489E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .16623E+01-.98862E-05 .16623E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .14894E+01-.82444E-05
|
||||
.14894E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .13305E+01
|
||||
-.85651E-05 .13305E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.11853E+01-.69289E-05 .11853E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .10534E+01-.72145E-05 .10534E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .93410E+00-.56526E-05 .93410E+00 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .82672E+00-.59566E-05 .82672E+00 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .73043E+00-.45035E-05 .73043E+00
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .64438E+00-.48508E-05
|
||||
.64438E+00 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .56771E+00
|
||||
-.35181E-05 .56771E+00 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.49958E+00-.39154E-05 .49958E+00 .10000E+31
|
||||
.53000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .40292E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .45068E-19 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .62776E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.45635E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .45158E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .72178E-19
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.14701E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49949E+01-.24833E-03 .49949E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49825E+01-.26769E-03 .49825E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49347E+01-.26955E-03 .49347E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48383E+01-.27510E-03 .48383E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .46854E+01-.12424E-03 .46854E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45871E+01-.21068E-03
|
||||
.45871E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .44815E+01
|
||||
-.56346E-05 .44815E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.42703E+01-.48737E-05 .42703E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .40362E+01-.66954E-05 .40362E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .38028E+01-.72454E-05 .38028E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .35703E+01-.86022E-05 .35703E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .33389E+01-.88149E-05 .33389E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .31092E+01-.98870E-05
|
||||
.31092E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .28826E+01
|
||||
-.98032E-05 .28826E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.26613E+01-.10406E-04 .26613E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .24469E+01-.99460E-05 .24469E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .22411E+01-.10177E-04 .22411E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .20451E+01-.94528E-05 .20451E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .18598E+01-.94312E-05 .18598E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .16860E+01-.85573E-05
|
||||
.16860E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .15239E+01
|
||||
-.83927E-05 .15239E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.13739E+01-.74660E-05 .13739E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .12356E+01-.72435E-05 .12356E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .11088E+01-.63328E-05 .11088E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .99304E+00-.61091E-05 .99304E+00 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .88784E+00-.52563E-05 .88784E+00
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .79253E+00-.50637E-05
|
||||
.79253E+00 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .70646E+00
|
||||
-.42899E-05 .70646E+00 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.62896E+00-.41433E-05 .62896E+00 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .55933E+00-.34551E-05 .55933E+00 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .49693E+00-.33578E-05 .49693E+00 .10000E+31
|
||||
.57000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35413E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .24834E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .91245E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.49710E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .13461E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.71395E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.69900E-18 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49952E+01-.24829E-03 .49952E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49836E+01-.26752E-03 .49836E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49391E+01-.26906E-03 .49391E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48491E+01-.27440E-03 .48491E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47068E+01-.12596E-03 .47068E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46154E+01-.20829E-03
|
||||
.46154E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45171E+01
|
||||
-.52650E-05 .45171E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.43206E+01-.45095E-05 .43206E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .41027E+01-.57614E-05 .41027E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .38854E+01-.65532E-05 .38854E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .36688E+01-.75404E-05 .36688E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .34531E+01-.80337E-05 .34531E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .32384E+01-.87493E-05
|
||||
.32384E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .30257E+01
|
||||
-.90764E-05 .30257E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.28163E+01-.94406E-05 .28163E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .26120E+01-.94352E-05 .26120E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .24140E+01-.94731E-05 .24140E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .22236E+01-.92114E-05 .22236E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .20417E+01-.90091E-05 .20417E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .18692E+01-.85787E-05
|
||||
.18692E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .17066E+01
|
||||
-.82239E-05 .17066E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.15542E+01-.77059E-05 .15542E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .14120E+01-.72733E-05 .14120E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .12802E+01-.67317E-05 .12802E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .11584E+01-.62766E-05 .11584E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .10463E+01-.57555E-05 .10463E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .94356E+00-.53139E-05
|
||||
.94356E+00 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .84969E+00
|
||||
-.48398E-05 .84969E+00 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.76417E+00-.44321E-05 .76417E+00 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .68645E+00-.40182E-05 .68645E+00 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .61598E+00-.36532E-05 .61598E+00 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .55224E+00-.33036E-05 .55224E+00 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .49467E+00-.29831E-05 .49467E+00
|
||||
.10000E+31
|
||||
.61000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35955E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .26191E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .84460E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.41570E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .79037E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.68672E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.69882E-18 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49955E+01-.24826E-03 .49955E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49847E+01-.26737E-03 .49847E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49429E+01-.26863E-03 .49429E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48586E+01-.27378E-03 .48586E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47255E+01-.12749E-03 .47255E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46400E+01-.20618E-03
|
||||
.46400E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45481E+01
|
||||
-.49435E-05 .45481E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.43644E+01-.41930E-05 .43644E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .41606E+01-.51129E-05 .41606E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .39573E+01-.58329E-05 .39573E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .37546E+01-.67712E-05 .37546E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .35526E+01-.72304E-05 .35526E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .33514E+01-.79189E-05
|
||||
.33514E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .31514E+01
|
||||
-.82310E-05 .31514E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.29536E+01-.87108E-05 .29536E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .27592E+01-.87430E-05 .27592E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .25695E+01-.89299E-05 .25695E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .23856E+01-.87321E-05 .23856E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .22085E+01-.86882E-05 .22085E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .20389E+01-.83252E-05
|
||||
.20389E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .18775E+01
|
||||
-.81193E-05 .18775E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.17247E+01-.76566E-05 .17247E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .15808E+01-.73522E-05 .15808E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .14459E+01-.68460E-05 .14459E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .13200E+01-.64943E-05 .13200E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .12030E+01-.59873E-05 .12030E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .10946E+01-.56253E-05
|
||||
.10946E+01 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .99449E+00
|
||||
-.51462E-05 .99449E+00 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.90234E+00-.47975E-05 .90234E+00 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .81775E+00-.43632E-05 .81775E+00 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .74028E+00-.40413E-05 .74028E+00 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .66949E+00-.36601E-05 .66949E+00 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .60493E+00-.33709E-05 .60493E+00
|
||||
.80778E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .54616E+00-.30448E-05
|
||||
.54616E+00 .83000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .49273E+00
|
||||
-.27893E-05 .49273E+00 .10000E+31
|
||||
.65000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .18066E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .45163E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01-.30730E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01 .99374E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.90458E-19 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .66848E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.26466E-18 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49958E+01-.24823E-03 .49958E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49856E+01-.26724E-03 .49856E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49462E+01-.26826E-03 .49462E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48669E+01-.27322E-03 .48669E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47419E+01-.12886E-03 .47419E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46617E+01-.20429E-03
|
||||
.46617E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45754E+01
|
||||
-.46614E-05 .45754E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.44029E+01-.39154E-05 .44029E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .42115E+01-.46769E-05 .42115E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .40206E+01-.51065E-05 .40206E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .38301E+01-.62223E-05 .38301E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .36402E+01-.64268E-05 .36402E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .34509E+01-.73137E-05
|
||||
.34509E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .32625E+01
|
||||
-.73721E-05 .32625E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.30754E+01-.81252E-05 .30754E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .28907E+01-.79879E-05 .28907E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .27094E+01-.84762E-05 .27094E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .25325E+01-.81402E-05 .25325E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .23609E+01-.84079E-05 .23609E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .21953E+01-.79209E-05
|
||||
.21953E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .20365E+01
|
||||
-.80207E-05 .20365E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.18848E+01-.74342E-05 .18848E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .17408E+01-.74187E-05 .17408E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .16045E+01-.67806E-05 .16045E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .14762E+01-.66956E-05 .14762E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .13559E+01-.60449E-05 .13559E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .12433E+01-.59258E-05
|
||||
.12433E+01 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .11385E+01
|
||||
-.52912E-05 .11385E+01 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.10411E+01-.51635E-05 .10411E+01 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .95087E+00-.45638E-05 .95087E+00 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .86750E+00-.44438E-05 .86750E+00 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .79063E+00-.38900E-05 .79063E+00 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .71990E+00-.37869E-05 .71990E+00
|
||||
.80778E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .65495E+00-.32840E-05
|
||||
.65495E+00 .83000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .59540E+00
|
||||
-.32019E-05 .59540E+00 .85222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.54088E+00-.27507E-05 .54088E+00 .87444E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .49105E+00-.26905E-05 .49105E+00 .10000E+31
|
||||
.69000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .18066E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01-.22599E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .11699E-17 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.90353E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .12376E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.71382E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.60905E-19 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49960E+01-.24821E-03 .49960E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49864E+01-.26712E-03 .49864E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49492E+01-.26792E-03 .49492E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48743E+01-.27272E-03 .48743E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47564E+01-.13010E-03 .47564E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46809E+01-.20261E-03
|
||||
.46809E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .45995E+01
|
||||
-.44119E-05 .45995E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.44370E+01-.36699E-05 .44370E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .42566E+01-.43972E-05 .42566E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .40766E+01-.43938E-05 .40766E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .38969E+01-.58352E-05 .38969E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .37178E+01-.56425E-05 .37178E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .35392E+01-.68700E-05
|
||||
.35392E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .33612E+01
|
||||
-.65512E-05 .33612E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.31842E+01-.76360E-05 .31842E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .30086E+01-.72306E-05 .30086E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .28355E+01-.80784E-05 .28355E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .26657E+01-.75052E-05 .26657E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .25000E+01-.81439E-05 .25000E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .23391E+01-.74378E-05
|
||||
.23391E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .21838E+01
|
||||
-.79071E-05 .21838E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.20344E+01-.71085E-05 .20344E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .18914E+01-.74506E-05 .18914E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .17551E+01-.65992E-05 .17551E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .16258E+01-.68538E-05 .16258E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .15035E+01-.59842E-05 .15035E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .13882E+01-.61842E-05
|
||||
.13882E+01 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .12799E+01
|
||||
-.53236E-05 .12799E+01 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.11786E+01-.54944E-05 .11786E+01 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .10839E+01-.46622E-05 .10839E+01 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .99569E+00-.48215E-05 .99569E+00 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .91372E+00-.40303E-05 .91372E+00 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .83770E+00-.41897E-05 .83770E+00
|
||||
.80778E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .76734E+00-.34465E-05
|
||||
.76734E+00 .83000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .70232E+00
|
||||
-.36127E-05 .70232E+00 .85222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.64234E+00-.29204E-05 .64234E+00 .87444E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .58710E+00-.30966E-05 .58710E+00 .89667E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .53627E+00-.24552E-05 .53627E+00 .91889E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .48958E+00-.26422E-05 .48958E+00 .10000E+31
|
||||
.73000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35955E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .26191E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .95302E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.30728E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .69550E-18 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.45634E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
-.60319E-18 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49962E+01-.24819E-03 .49962E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49871E+01-.26701E-03 .49871E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49519E+01-.26762E-03 .49519E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48809E+01-.27227E-03 .48809E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47694E+01-.13121E-03 .47694E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46980E+01-.20110E-03
|
||||
.46980E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46211E+01
|
||||
-.41896E-05 .46211E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.44674E+01-.34513E-05 .44674E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .42968E+01-.41751E-05 .42968E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .41265E+01-.38228E-05 .41265E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .39565E+01-.54523E-05 .39565E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .37870E+01-.50033E-05 .37870E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .36179E+01-.64340E-05
|
||||
.36179E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .34494E+01
|
||||
-.58776E-05 .34494E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.32815E+01-.71554E-05 .32815E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .31146E+01-.65630E-05 .31146E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .29494E+01-.76595E-05 .29494E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .27866E+01-.69268E-05 .27866E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .26270E+01-.78273E-05 .26270E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .24712E+01-.69796E-05
|
||||
.24712E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .23199E+01
|
||||
-.77139E-05 .23199E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.21735E+01-.67824E-05 .21735E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .20325E+01-.73841E-05 .20325E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .18972E+01-.64012E-05 .18972E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .17679E+01-.69038E-05 .17679E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .16448E+01-.58992E-05 .16448E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .15280E+01-.63324E-05
|
||||
.15280E+01 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .14175E+01
|
||||
-.53310E-05 .14175E+01 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.13133E+01-.57189E-05 .13133E+01 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .12152E+01-.47397E-05 .12152E+01 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .11232E+01-.51007E-05 .11232E+01 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .10371E+01-.41570E-05 .10371E+01 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .95667E+00-.45040E-05 .95667E+00
|
||||
.80778E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .88169E+00-.36042E-05
|
||||
.88169E+00 .83000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .81192E+00
|
||||
-.39457E-05 .81192E+00 .85222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.74710E+00-.30942E-05 .74710E+00 .87444E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .68698E+00-.34352E-05 .68698E+00 .89667E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .63130E+00-.26335E-05 .63130E+00 .91889E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .57979E+00-.29766E-05 .57979E+00 .94111E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .53219E+00-.22242E-05 .53219E+00
|
||||
.96333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .48826E+00-.25702E-05
|
||||
.48826E+00 .10000E+31
|
||||
.77000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .35413E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01-.40218E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .21051E-17 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.16897E-17 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .23219E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.17981E-17
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.15664E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49964E+01-.24817E-03 .49964E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49877E+01-.26692E-03 .49877E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49543E+01-.26735E-03 .49543E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48869E+01-.27185E-03 .48869E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47811E+01-.13222E-03 .47811E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .47133E+01-.19972E-03
|
||||
.47133E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46404E+01
|
||||
-.39903E-05 .46404E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.44946E+01-.32553E-05 .44946E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .43329E+01-.39759E-05 .43329E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .41713E+01-.34097E-05 .41713E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .40101E+01-.50330E-05 .40101E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .38492E+01-.45250E-05 .38492E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .36887E+01-.59658E-05
|
||||
.36887E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .35286E+01
|
||||
-.53633E-05 .35286E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.33691E+01-.66596E-05 .33691E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .32103E+01-.60108E-05 .32103E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .30526E+01-.71997E-05 .30526E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .28966E+01-.64374E-05 .28966E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .27431E+01-.74453E-05 .27431E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .25925E+01-.65835E-05
|
||||
.25925E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .24456E+01
|
||||
-.74327E-05 .24456E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.23027E+01-.64950E-05 .23027E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .21643E+01-.72121E-05 .21643E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .20308E+01-.62244E-05 .20308E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .19025E+01-.68374E-05 .19025E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .17795E+01-.58249E-05 .17795E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .16621E+01-.63599E-05
|
||||
.16621E+01 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .15503E+01
|
||||
-.53446E-05 .15503E+01 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.14442E+01-.58239E-05 .14442E+01 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .13438E+01-.48238E-05 .13438E+01 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .12489E+01-.52655E-05 .12489E+01 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .11595E+01-.42939E-05 .11595E+01 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .10755E+01-.47115E-05 .10755E+01
|
||||
.80778E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .99669E+00-.37775E-05
|
||||
.99669E+00 .83000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .92287E+00
|
||||
-.41807E-05 .92287E+00 .85222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.85386E+00-.32899E-05 .85386E+00 .87444E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .78944E+00-.36850E-05 .78944E+00 .89667E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .72940E+00-.28401E-05 .72940E+00 .91889E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .67352E+00-.32311E-05 .67352E+00 .94111E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .62157E+00-.24328E-05 .62157E+00
|
||||
.96333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .57333E+00-.28217E-05
|
||||
.57333E+00 .98556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .52858E+00
|
||||
-.20692E-05 .52858E+00 .10078E-07 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.48711E+00-.24568E-05 .48711E+00 .10000E+31
|
||||
.81000E-11 .00000E+00 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .25000E-10 .00000E+00 .00000E+00 .50000E+01 .00000E+00
|
||||
.50000E+01 .18066E-17 .50000E+01 .12500E-09 .00000E+00 .00000E+00 .50000E+01
|
||||
.00000E+00 .50000E+01 .68203E-18 .50000E+01 .32500E-09 .00000E+00 .00000E+00
|
||||
.50000E+01 .00000E+00 .50000E+01 .58719E-18 .50000E+01 .52500E-09 .00000E+00
|
||||
.00000E+00 .50000E+01 .00000E+00 .50000E+01-.38868E-18 .50000E+01 .72500E-09
|
||||
.00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01 .10209E-17 .50000E+01
|
||||
.92500E-09 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01-.82237E-18
|
||||
.50000E+01 .10000E-08 .00000E+00 .00000E+00 .50000E+01 .00000E+00 .50000E+01
|
||||
.15664E-17 .50000E+01 .12000E-08 .00000E+00 .10000E+01 .50000E+01 .00000E+00
|
||||
.49966E+01-.24815E-03 .49966E+01 .13000E-08 .00000E+00 .15000E+01 .50000E+01
|
||||
.00000E+00 .49883E+01-.26683E-03 .49883E+01 .15000E-08 .00000E+00 .25000E+01
|
||||
.50000E+01 .00000E+00 .49564E+01-.26711E-03 .49564E+01 .17000E-08 .00000E+00
|
||||
.35000E+01 .50000E+01 .00000E+00 .48923E+01-.27148E-03 .48923E+01 .19000E-08
|
||||
.00000E+00 .45000E+01 .50000E+01 .00000E+00 .47917E+01-.13315E-03 .47917E+01
|
||||
.20000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .47272E+01-.19847E-03
|
||||
.47272E+01 .21000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .46579E+01
|
||||
-.38106E-05 .46579E+01 .23000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.45193E+01-.30787E-05 .45193E+01 .25222E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .43654E+01-.37963E-05 .43654E+01 .27444E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .42118E+01-.31211E-05 .42118E+01 .29667E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .40584E+01-.45910E-05 .40584E+01 .31889E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .39053E+01-.41746E-05 .39053E+01
|
||||
.34111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .37525E+01-.54787E-05
|
||||
.37525E+01 .36333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .36002E+01
|
||||
-.49764E-05 .36002E+01 .38556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.34483E+01-.61485E-05 .34483E+01 .40778E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .32969E+01-.55909E-05 .32969E+01 .43000E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .31462E+01-.66843E-05 .31462E+01 .45222E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .29969E+01-.60582E-05 .29969E+01 .47444E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .28493E+01-.69898E-05 .28493E+01
|
||||
.49667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .27040E+01-.62738E-05
|
||||
.27040E+01 .51889E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .25617E+01
|
||||
-.70600E-05 .25617E+01 .54111E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.24226E+01-.62721E-05 .24226E+01 .56333E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .22873E+01-.69338E-05 .22873E+01 .58556E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .21561E+01-.60944E-05 .21561E+01 .60778E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .20294E+01-.66545E-05 .20294E+01 .63000E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .19073E+01-.57847E-05 .19073E+01
|
||||
.65222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .17900E+01-.62656E-05
|
||||
.17900E+01 .67444E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .16778E+01
|
||||
-.53849E-05 .16778E+01 .69667E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.15707E+01-.58067E-05 .15707E+01 .71889E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .14686E+01-.49315E-05 .14686E+01 .74111E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .13717E+01-.53113E-05 .13717E+01 .76333E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .12799E+01-.44546E-05 .12799E+01 .78556E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .11931E+01-.48058E-05 .11931E+01
|
||||
.80778E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .11112E+01-.39771E-05
|
||||
.11112E+01 .83000E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .10340E+01
|
||||
-.43098E-05 .10340E+01 .85222E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.96142E+00-.35157E-05 .96142E+00 .87444E-08 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .89329E+00-.38370E-05 .89329E+00 .89667E-08 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .82943E+00-.30812E-05 .82943E+00 .91889E-08 .00000E+00
|
||||
.50000E+01 .50000E+01 .00000E+00 .76966E+00-.33959E-05 .76966E+00 .94111E-08
|
||||
.00000E+00 .50000E+01 .50000E+01 .00000E+00 .71378E+00-.26803E-05 .71378E+00
|
||||
.96333E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .66160E+00-.29913E-05
|
||||
.66160E+00 .98556E-08 .00000E+00 .50000E+01 .50000E+01 .00000E+00 .61292E+00
|
||||
-.23161E-05 .61292E+00 .10078E-07 .00000E+00 .50000E+01 .50000E+01 .00000E+00
|
||||
.56757E+00-.26251E-05 .56757E+00 .10300E-07 .00000E+00 .50000E+01 .50000E+01
|
||||
.00000E+00 .52534E+00-.19896E-05 .52534E+00 .10522E-07 .00000E+00 .50000E+01
|
||||
.50000E+01 .00000E+00 .48607E+00-.22972E-05 .48607E+00 .10000E+31
|
725
examples/myfile
Normal file
725
examples/myfile
Normal file
@ -0,0 +1,725 @@
|
||||
TIME 0 a vdd vss y I(va v(y
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.2461e-18 5
|
||||
1.25e-10 0 0 5 0 5 -6.8681e-19 5
|
||||
3.25e-10 0 0 5 0 5 8.5825e-19 5
|
||||
5.25e-10 0 0 5 0 5 -3.3451e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.2242e-18 5
|
||||
9.25e-10 0 0 5 0 5 -1.1205e-18 5
|
||||
1e-09 0 0 5 0 5 1.5657e-18 5
|
||||
1.2e-09 0 1 5 0 4.9445 -0.00025359 4.9445
|
||||
1.3e-09 0 1.5 5 0 4.7611 -0.00030285 4.7611
|
||||
1.5e-09 0 2.5 5 0 3.9339 -0.00037135 3.9339
|
||||
1.7e-09 0 3.5 5 0 1.3278 -0.00025515 1.3278
|
||||
1.7989e-09 0 3.9944 5 0 0.2202 -0.00048668 0.2202
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.0834e-18 5
|
||||
1.25e-10 0 0 5 0 5 3.0259e-19 5
|
||||
3.25e-10 0 0 5 0 5 5.1932e-19 5
|
||||
5.25e-10 0 0 5 0 5 1.9412e-19 5
|
||||
7.25e-10 0 0 5 0 5 4.6517e-19 5
|
||||
9.25e-10 0 0 5 0 5 -9.5782e-19 5
|
||||
1e-09 0 0 5 0 5 2.542e-18 5
|
||||
1.2e-09 0 1 5 0 4.9685 -0.00025109 4.9685
|
||||
1.3e-09 0 1.5 5 0 4.8811 -0.00028319 4.8811
|
||||
1.5e-09 0 2.5 5 0 4.5403 -0.00031215 4.5403
|
||||
1.7e-09 0 3.5 5 0 3.6913 -0.00024536 3.6913
|
||||
1.9e-09 0 4.5 5 0 2.2579 -0.00023116 2.2579
|
||||
2e-09 0 5 5 0 1.4945 -0.00031505 1.4945
|
||||
2.1e-09 0 5 5 0 0.99082 -6.0832e-05 0.99082
|
||||
2.3e-09 0 5 5 0 0.31289 -2.1507e-05 0.31289
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5955e-18 5
|
||||
1.25e-10 0 0 5 0 5 3.7033e-19 5
|
||||
3.25e-10 0 0 5 0 5 6.2776e-19 5
|
||||
5.25e-10 0 0 5 0 5 3.4325e-19 5
|
||||
7.25e-10 0 0 5 0 5 5.0577e-19 5
|
||||
9.25e-10 0 0 5 0 5 9.942e-20 5
|
||||
1e-09 0 0 5 0 5 -1.4701e-18 5
|
||||
1.2e-09 0 1 5 0 4.9779 -0.0002501 4.9779
|
||||
1.3e-09 0 1.5 5 0 4.9201 -0.00027711 4.9201
|
||||
1.5e-09 0 2.5 5 0 4.6968 -0.00029562 4.6968
|
||||
1.7e-09 0 3.5 5 0 4.1958 -0.00026763 4.1958
|
||||
1.9e-09 0 4.5 5 0 3.3349 -0.00013678 3.3349
|
||||
2e-09 0 5 5 0 2.7898 -0.00031856 2.7898
|
||||
2.1e-09 0 5 5 0 2.2651 -5.6314e-05 2.2651
|
||||
2.3e-09 0 5 5 0 1.368 -4.6301e-05 1.368
|
||||
2.5222e-09 0 5 5 0 0.71583 -2.3995e-05 0.71583
|
||||
2.7444e-09 0 5 5 0 0.35431 -1.5546e-05 0.35431
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.6498e-18 5
|
||||
1.25e-10 0 0 5 0 5 -6.1898e-19 5
|
||||
3.25e-10 0 0 5 0 5 1.5494e-18 5
|
||||
5.25e-10 0 0 5 0 5 -1.8117e-18 5
|
||||
7.25e-10 0 0 5 0 5 2.4168e-18 5
|
||||
9.25e-10 0 0 5 0 5 -2.8959e-18 5
|
||||
1e-09 0 0 5 0 5 4.1683e-18 5
|
||||
1.2e-09 0 1 5 0 4.983 -0.00024957 4.983
|
||||
1.3e-09 0 1.5 5 0 4.9397 -0.0002741 4.9397
|
||||
1.5e-09 0 2.5 5 0 4.7729 -0.00028741 4.7729
|
||||
1.7e-09 0 3.5 5 0 4.4137 -0.00027983 4.4137
|
||||
1.9e-09 0 4.5 5 0 3.8089 -0.0001072 3.8089
|
||||
2e-09 0 5 5 0 3.4188 -0.00028828 3.4188
|
||||
2.1e-09 0 5 5 0 3.0083 -3.7839e-05 3.0083
|
||||
2.3e-09 0 5 5 0 2.2343 -4.2559e-05 2.2343
|
||||
2.5222e-09 0 5 5 0 1.5177 -3.0949e-05 1.5177
|
||||
2.7444e-09 0 5 5 0 0.98459 -2.5919e-05 0.98459
|
||||
2.9667e-09 0 5 5 0 0.61888 -1.3827e-05 0.61888
|
||||
3.1889e-09 0 5 5 0 0.38115 -1.2171e-05 0.38115
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 1.8066e-18 5
|
||||
1.25e-10 0 0 5 0 5 6.8203e-19 5
|
||||
3.25e-10 0 0 5 0 5 8.4469e-19 5
|
||||
5.25e-10 0 0 5 0 5 -5.5128e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.2242e-18 5
|
||||
9.25e-10 0 0 5 0 5 -1.1205e-18 5
|
||||
1e-09 0 0 5 0 5 6.9882e-19 5
|
||||
1.2e-09 0 1 5 0 4.9862 -0.00024923 4.9862
|
||||
1.3e-09 0 1.5 5 0 4.9516 -0.00027231 4.9516
|
||||
1.5e-09 0 2.5 5 0 4.8182 -0.00028247 4.8182
|
||||
1.7e-09 0 3.5 5 0 4.5378 -0.00028542 4.5378
|
||||
1.9e-09 0 4.5 5 0 4.0718 -9.713e-05 4.0718
|
||||
2e-09 0 5 5 0 3.7705 -0.00026926 3.7705
|
||||
2.1e-09 0 5 5 0 3.449 -2.5731e-05 3.449
|
||||
2.3e-09 0 5 5 0 2.818 -3.2737e-05 2.818
|
||||
2.5222e-09 0 5 5 0 2.169 -2.9315e-05 2.169
|
||||
2.7444e-09 0 5 5 0 1.6127 -2.7662e-05 1.6127
|
||||
2.9667e-09 0 5 5 0 1.1663 -1.966e-05 1.1663
|
||||
3.1889e-09 0 5 5 0 0.82614 -1.7015e-05 0.82614
|
||||
3.4111e-09 0 5 5 0 0.57647 -1.0183e-05 0.57647
|
||||
3.6333e-09 0 5 5 0 0.39803 -9.3346e-06 0.39803
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.0834e-18 5
|
||||
1.25e-10 0 0 5 0 5 3.0259e-19 5
|
||||
3.25e-10 0 0 5 0 5 7.4971e-19 5
|
||||
5.25e-10 0 0 5 0 5 -5.2407e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.0208e-18 5
|
||||
9.25e-10 0 0 5 0 5 -8.8998e-19 5
|
||||
1e-09 0 0 5 0 5 1.132e-18 5
|
||||
1.2e-09 0 1 5 0 4.9884 -0.00024901 4.9884
|
||||
1.3e-09 0 1.5 5 0 4.9595 -0.00027111 4.9595
|
||||
1.5e-09 0 2.5 5 0 4.8484 -0.00027915 4.8484
|
||||
1.7e-09 0 3.5 5 0 4.6178 -0.00028507 4.6178
|
||||
1.9e-09 0 4.5 5 0 4.2387 -9.9021e-05 4.2387
|
||||
2e-09 0 5 5 0 3.9935 -0.00025381 3.9935
|
||||
2.1e-09 0 5 5 0 3.731 -1.8518e-05 3.731
|
||||
2.3e-09 0 5 5 0 3.2094 -2.4707e-05 3.2094
|
||||
2.5222e-09 0 5 5 0 2.6484 -2.4713e-05 2.6484
|
||||
2.7444e-09 0 5 5 0 2.1303 -2.5589e-05 2.1303
|
||||
2.9667e-09 0 5 5 0 1.6752 -2.0975e-05 1.6752
|
||||
3.1889e-09 0 5 5 0 1.2934 -1.9272e-05 1.2934
|
||||
3.4111e-09 0 5 5 0 0.98397 -1.392e-05 0.98397
|
||||
3.6333e-09 0 5 5 0 0.74008 -1.2492e-05 0.74008
|
||||
3.8556e-09 0 5 5 0 0.55163 -8.0344e-06 0.55163
|
||||
4.0778e-09 0 5 5 0 0.40856 -7.6005e-06 0.40856
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.0292e-18 5
|
||||
1.25e-10 0 0 5 0 5 4.5068e-20 5
|
||||
3.25e-10 0 0 5 0 5 4.7868e-19 5
|
||||
5.25e-10 0 0 5 0 5 -4.9706e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.3461e-18 5
|
||||
9.25e-10 0 0 5 0 5 -9.3074e-19 5
|
||||
1e-09 0 0 5 0 5 2.4328e-18 5
|
||||
1.2e-09 0 1 5 0 4.99 -0.00024884 4.99
|
||||
1.3e-09 0 1.5 5 0 4.9652 -0.00027026 4.9652
|
||||
1.5e-09 0 2.5 5 0 4.87 -0.00027677 4.87
|
||||
1.7e-09 0 3.5 5 0 4.6739 -0.00028353 4.6739
|
||||
1.9e-09 0 4.5 5 0 4.3542 -0.00010319 4.3542
|
||||
2e-09 0 5 5 0 4.1475 -0.00024296 4.1475
|
||||
2.1e-09 0 5 5 0 3.9259 -1.3923e-05 3.9259
|
||||
2.3e-09 0 5 5 0 3.4846 -1.9111e-05 3.4846
|
||||
2.5222e-09 0 5 5 0 3.0011 -1.9969e-05 3.0011
|
||||
2.7444e-09 0 5 5 0 2.5363 -2.2446e-05 2.5363
|
||||
2.9667e-09 0 5 5 0 2.1057 -1.9758e-05 2.1057
|
||||
3.1889e-09 0 5 5 0 1.721 -1.9578e-05 1.721
|
||||
3.4111e-09 0 5 5 0 1.3878 -1.5399e-05 1.3878
|
||||
3.6333e-09 0 5 5 0 1.1068 -1.4563e-05 1.1068
|
||||
3.8556e-09 0 5 5 0 0.8748 -1.0446e-05 0.8748
|
||||
4.0778e-09 0 5 5 0 0.68657 -9.9709e-06 0.68657
|
||||
4.3e-09 0 5 5 0 0.53586 -6.4707e-06 0.53586
|
||||
4.5222e-09 0 5 5 0 0.41642 -6.5848e-06 0.41642
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.0834e-18 5
|
||||
1.25e-10 0 0 5 0 5 3.0259e-19 5
|
||||
3.25e-10 0 0 5 0 5 7.4971e-19 5
|
||||
5.25e-10 0 0 5 0 5 -3.0723e-19 5
|
||||
7.25e-10 0 0 5 0 5 9.1234e-19 5
|
||||
9.25e-10 0 0 5 0 5 3.1595e-20 5
|
||||
1e-09 0 0 5 0 5 -2.1749e-18 5
|
||||
1.2e-09 0 1 5 0 4.9912 -0.00024871 4.9912
|
||||
1.3e-09 0 1.5 5 0 4.9695 -0.00026962 4.9695
|
||||
1.5e-09 0 2.5 5 0 4.8861 -0.00027498 4.8861
|
||||
1.7e-09 0 3.5 5 0 4.7154 -0.00028187 4.7154
|
||||
1.9e-09 0 4.5 5 0 4.4389 -0.00010743 4.4389
|
||||
2e-09 0 5 5 0 4.2604 -0.00023541 4.2604
|
||||
2.1e-09 0 5 5 0 4.0687 -1.0826e-05 4.0687
|
||||
2.3e-09 0 5 5 0 3.6866 -1.5157e-05 3.6866
|
||||
2.5222e-09 0 5 5 0 3.2653 -1.6241e-05 3.2653
|
||||
2.7444e-09 0 5 5 0 2.852 -1.9041e-05 2.852
|
||||
2.9667e-09 0 5 5 0 2.4564 -1.7859e-05 2.4564
|
||||
3.1889e-09 0 5 5 0 2.0885 -1.842e-05 2.0885
|
||||
3.4111e-09 0 5 5 0 1.7551 -1.5654e-05 1.7551
|
||||
3.6333e-09 0 5 5 0 1.4602 -1.5197e-05 1.4602
|
||||
3.8556e-09 0 5 5 0 1.2044 -1.1985e-05 1.2044
|
||||
4.0778e-09 0 5 5 0 0.98637 -1.1421e-05 0.98637
|
||||
4.3e-09 0 5 5 0 0.80305 -8.4115e-06 0.80305
|
||||
4.5222e-09 0 5 5 0 0.65067 -8.1468e-06 0.65067
|
||||
4.7444e-09 0 5 5 0 0.52515 -5.5533e-06 0.52515
|
||||
4.9667e-09 0 5 5 0 0.42253 -5.6679e-06 0.42253
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.0292e-18 5
|
||||
1.25e-10 0 0 5 0 5 2.4836e-19 5
|
||||
3.25e-10 0 0 5 0 5 7.9046e-19 5
|
||||
5.25e-10 0 0 5 0 5 -7.2743e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.6578e-18 5
|
||||
9.25e-10 0 0 5 0 5 -8.3585e-19 5
|
||||
1e-09 0 0 5 0 5 -1.6854e-19 5
|
||||
1.2e-09 0 1 5 0 4.9921 -0.00024862 4.9921
|
||||
1.3e-09 0 1.5 5 0 4.9729 -0.00026912 4.9729
|
||||
1.5e-09 0 2.5 5 0 4.8987 -0.00027357 4.8987
|
||||
1.7e-09 0 3.5 5 0 4.7475 -0.00028034 4.7475
|
||||
1.9e-09 0 4.5 5 0 4.5039 -0.00011126 4.5039
|
||||
2e-09 0 5 5 0 4.3467 -0.00022946 4.3467
|
||||
2.1e-09 0 5 5 0 4.1779 -8.9428e-06 4.1779
|
||||
2.3e-09 0 5 5 0 3.8411 -1.1965e-05 3.8411
|
||||
2.5222e-09 0 5 5 0 3.469 -1.3747e-05 3.469
|
||||
2.7444e-09 0 5 5 0 3.1006 -1.5649e-05 3.1006
|
||||
2.9667e-09 0 5 5 0 2.7409 -1.6149e-05 2.7409
|
||||
3.1889e-09 0 5 5 0 2.3973 -1.6374e-05 2.3973
|
||||
3.4111e-09 0 5 5 0 2.0762 -1.5432e-05 2.0762
|
||||
3.6333e-09 0 5 5 0 1.7821 -1.4613e-05 1.7821
|
||||
3.8556e-09 0 5 5 0 1.5176 -1.2979e-05 1.5176
|
||||
4.0778e-09 0 5 5 0 1.2836 -1.1804e-05 1.2836
|
||||
4.3e-09 0 5 5 0 1.0793 -1.0051e-05 1.0793
|
||||
4.5222e-09 0 5 5 0 0.90306 -8.9496e-06 0.90306
|
||||
4.7444e-09 0 5 5 0 0.75246 -7.3716e-06 0.75246
|
||||
4.9667e-09 0 5 5 0 0.62481 -6.5208e-06 0.62481
|
||||
5.1889e-09 0 5 5 0 0.51733 -5.2094e-06 0.51733
|
||||
5.4111e-09 0 5 5 0 0.42732 -4.6386e-06 0.42732
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5955e-18 5
|
||||
1.25e-10 0 0 5 0 5 3.7033e-19 5
|
||||
3.25e-10 0 0 5 0 5 4.7868e-19 5
|
||||
5.25e-10 0 0 5 0 5 -4.0219e-19 5
|
||||
7.25e-10 0 0 5 0 5 9.1243e-19 5
|
||||
9.25e-10 0 0 5 0 5 -2.8031e-19 5
|
||||
1e-09 0 0 5 0 5 -1.0357e-18 5
|
||||
1.2e-09 0 1 5 0 4.9929 -0.00024854 4.9929
|
||||
1.3e-09 0 1.5 5 0 4.9756 -0.00026872 4.9756
|
||||
1.5e-09 0 2.5 5 0 4.9088 -0.00027245 4.9088
|
||||
1.7e-09 0 3.5 5 0 4.773 -0.000279 4.773
|
||||
1.9e-09 0 4.5 5 0 4.5553 -0.00011461 4.5553
|
||||
2e-09 0 5 5 0 4.4149 -0.00022444 4.4149
|
||||
2.1e-09 0 5 5 0 4.2641 -7.9052e-06 4.2641
|
||||
2.3e-09 0 5 5 0 3.9631 -9.2419e-06 3.9631
|
||||
2.5222e-09 0 5 5 0 3.6301 -1.2157e-05 3.6301
|
||||
2.7444e-09 0 5 5 0 3.2992 -1.2631e-05 3.2992
|
||||
2.9667e-09 0 5 5 0 2.9726 -1.4665e-05 2.9726
|
||||
3.1889e-09 0 5 5 0 2.655 -1.41e-05 2.655
|
||||
3.4111e-09 0 5 5 0 2.3516 -1.4904e-05 2.3516
|
||||
3.6333e-09 0 5 5 0 2.0667 -1.3411e-05 2.0667
|
||||
3.8556e-09 0 5 5 0 1.8036 -1.3447e-05 1.8036
|
||||
4.0778e-09 0 5 5 0 1.564 -1.1504e-05 1.564
|
||||
4.3e-09 0 5 5 0 1.3487 -1.1218e-05 1.3487
|
||||
4.5222e-09 0 5 5 0 1.1574 -9.1984e-06 1.1574
|
||||
4.7444e-09 0 5 5 0 0.98905 -8.885e-06 0.98905
|
||||
4.9667e-09 0 5 5 0 0.84214 -7.0018e-06 0.84214
|
||||
5.1889e-09 0 5 5 0 0.71486 -6.8053e-06 0.71486
|
||||
5.4111e-09 0 5 5 0 0.60524 -5.142e-06 0.60524
|
||||
5.6333e-09 0 5 5 0 0.51129 -5.106e-06 0.51129
|
||||
5.8556e-09 0 5 5 0 0.43113 -3.6721e-06 0.43113
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5955e-18 5
|
||||
1.25e-10 0 0 5 0 5 6.2783e-19 5
|
||||
3.25e-10 0 0 5 0 5 1.2633e-19 5
|
||||
5.25e-10 0 0 5 0 5 -6.3347e-20 5
|
||||
7.25e-10 0 0 5 0 5 -9.1538e-21 5
|
||||
9.25e-10 0 0 5 0 5 1.2242e-18 5
|
||||
1e-09 0 0 5 0 5 -3.5301e-18 5
|
||||
1.2e-09 0 1 5 0 4.9935 -0.00024847 4.9935
|
||||
1.3e-09 0 1.5 5 0 4.9778 -0.00026839 4.9778
|
||||
1.5e-09 0 2.5 5 0 4.917 -0.00027153 4.917
|
||||
1.7e-09 0 3.5 5 0 4.7938 -0.00027782 4.7938
|
||||
1.9e-09 0 4.5 5 0 4.597 -0.00011752 4.597
|
||||
2e-09 0 5 5 0 4.4702 -0.00022019 4.4702
|
||||
2.1e-09 0 5 5 0 4.334 -7.1728e-06 4.334
|
||||
2.3e-09 0 5 5 0 4.0618 -7.3182e-06 4.0618
|
||||
2.5222e-09 0 5 5 0 3.7606 -1.0737e-05 3.7606
|
||||
2.7444e-09 0 5 5 0 3.4609 -1.043e-05 3.4609
|
||||
2.9667e-09 0 5 5 0 3.1634 -1.3082e-05 3.1634
|
||||
3.1889e-09 0 5 5 0 2.8708 -1.2219e-05 2.8708
|
||||
3.4111e-09 0 5 5 0 2.5868 -1.3909e-05 2.5868
|
||||
3.6333e-09 0 5 5 0 2.3154 -1.2262e-05 2.3154
|
||||
3.8556e-09 0 5 5 0 2.0595 -1.3215e-05 2.0595
|
||||
4.0778e-09 0 5 5 0 1.8214 -1.1099e-05 1.8214
|
||||
4.3e-09 0 5 5 0 1.6025 -1.1636e-05 1.6025
|
||||
4.5222e-09 0 5 5 0 1.4033 -9.3475e-06 1.4033
|
||||
4.7444e-09 0 5 5 0 1.2239 -9.7254e-06 1.2239
|
||||
4.9667e-09 0 5 5 0 1.0635 -7.471e-06 1.0635
|
||||
5.1889e-09 0 5 5 0 0.92127 -7.8496e-06 0.92127
|
||||
5.4111e-09 0 5 5 0 0.79588 -5.74e-06 0.79588
|
||||
5.6333e-09 0 5 5 0 0.68593 -6.1952e-06 0.68593
|
||||
5.8556e-09 0 5 5 0 0.58997 -4.2721e-06 0.58997
|
||||
6.0778e-09 0 5 5 0 0.50655 -4.8262e-06 0.50655
|
||||
6.3e-09 0 5 5 0 0.43428 -3.0913e-06 0.43428
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5413e-18 5
|
||||
1.25e-10 0 0 5 0 5 2.4834e-19 5
|
||||
3.25e-10 0 0 5 0 5 8.4469e-19 5
|
||||
5.25e-10 0 0 5 0 5 -5.5128e-19 5
|
||||
7.25e-10 0 0 5 0 5 2.1322e-18 5
|
||||
9.25e-10 0 0 5 0 5 -7.6945e-20 5
|
||||
1e-09 0 0 5 0 5 -1.7953e-18 5
|
||||
1.2e-09 0 1 5 0 4.994 -0.00024841 4.994
|
||||
1.3e-09 0 1.5 5 0 4.9796 -0.00026812 4.9796
|
||||
1.5e-09 0 2.5 5 0 4.9239 -0.00027076 4.9239
|
||||
1.7e-09 0 3.5 5 0 4.8111 -0.00027679 4.8111
|
||||
1.9e-09 0 4.5 5 0 4.6316 -0.00012007 4.6316
|
||||
2e-09 0 5 5 0 4.516 -0.00021654 4.516
|
||||
2.1e-09 0 5 5 0 4.3918 -6.5696e-06 4.3918
|
||||
2.3e-09 0 5 5 0 4.1435 -6.0892e-06 4.1435
|
||||
2.5222e-09 0 5 5 0 3.8685 -9.3209e-06 3.8685
|
||||
2.7444e-09 0 5 5 0 3.5947 -8.9382e-06 3.5947
|
||||
2.9667e-09 0 5 5 0 3.3223 -1.1503e-05 3.3223
|
||||
3.1889e-09 0 5 5 0 3.0526 -1.073e-05 3.0526
|
||||
3.4111e-09 0 5 5 0 2.7879 -1.2672e-05 2.7879
|
||||
3.6333e-09 0 5 5 0 2.5315 -1.1251e-05 2.5315
|
||||
3.8556e-09 0 5 5 0 2.286 -1.2532e-05 2.286
|
||||
4.0778e-09 0 5 5 0 2.0538 -1.0665e-05 2.0538
|
||||
4.3e-09 0 5 5 0 1.8363 -1.1505e-05 1.8363
|
||||
4.5222e-09 0 5 5 0 1.6348 -9.4137e-06 1.6348
|
||||
4.7444e-09 0 5 5 0 1.4497 -1.0021e-05 1.4497
|
||||
4.9667e-09 0 5 5 0 1.281 -7.885e-06 1.281
|
||||
5.1889e-09 0 5 5 0 1.1284 -8.4119e-06 1.1284
|
||||
5.4111e-09 0 5 5 0 0.99129 -6.3476e-06 0.99129
|
||||
5.6333e-09 0 5 5 0 0.86869 -6.8843e-06 0.86869
|
||||
5.8556e-09 0 5 5 0 0.75963 -4.9525e-06 0.75963
|
||||
6.0778e-09 0 5 5 0 0.66302 -5.5417e-06 0.66302
|
||||
6.3e-09 0 5 5 0 0.57776 -3.7638e-06 0.57776
|
||||
6.5222e-09 0 5 5 0 0.50275 -4.4176e-06 0.50275
|
||||
6.7444e-09 0 5 5 0 0.43694 -2.7923e-06 0.43694
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5955e-18 5
|
||||
1.25e-10 0 0 5 0 5 6.2783e-19 5
|
||||
3.25e-10 0 0 5 0 5 4.6514e-19 5
|
||||
5.25e-10 0 0 5 0 5 9.9403e-20 5
|
||||
7.25e-10 0 0 5 0 5 6.8195e-19 5
|
||||
9.25e-10 0 0 5 0 5 -1.4457e-19 5
|
||||
1e-09 0 0 5 0 5 4.7696e-20 5
|
||||
1.2e-09 0 1 5 0 4.9945 -0.00024837 4.9945
|
||||
1.3e-09 0 1.5 5 0 4.9812 -0.00026789 4.9812
|
||||
1.5e-09 0 2.5 5 0 4.9297 -0.00027011 4.9297
|
||||
1.7e-09 0 3.5 5 0 4.8258 -0.0002759 4.8258
|
||||
1.9e-09 0 4.5 5 0 4.6606 -0.00012229 4.6606
|
||||
2e-09 0 5 5 0 4.5544 -0.00021341 4.5544
|
||||
2.1e-09 0 5 5 0 4.4402 -6.0642e-06 4.4402
|
||||
2.3e-09 0 5 5 0 4.212 -5.3298e-06 4.212
|
||||
2.5222e-09 0 5 5 0 3.9591 -7.956e-06 3.9591
|
||||
2.7444e-09 0 5 5 0 3.7071 -7.9366e-06 3.7071
|
||||
2.9667e-09 0 5 5 0 3.4562 -9.9962e-06 3.4562
|
||||
3.1889e-09 0 5 5 0 3.2068 -9.6108e-06 3.2068
|
||||
3.4111e-09 0 5 5 0 2.9603 -1.1306e-05 2.9603
|
||||
3.6333e-09 0 5 5 0 2.7192 -1.0429e-05 2.7192
|
||||
3.8556e-09 0 5 5 0 2.4856 -1.1556e-05 2.4856
|
||||
4.0778e-09 0 5 5 0 2.2616 -1.0269e-05 2.2616
|
||||
4.3e-09 0 5 5 0 2.049 -1.0976e-05 2.049
|
||||
4.5222e-09 0 5 5 0 1.8489 -9.4386e-06 1.8489
|
||||
4.7444e-09 0 5 5 0 1.6623 -9.8862e-06 1.6623
|
||||
4.9667e-09 0 5 5 0 1.4894 -8.2444e-06 1.4894
|
||||
5.1889e-09 0 5 5 0 1.3305 -8.5651e-06 1.3305
|
||||
5.4111e-09 0 5 5 0 1.1853 -6.9289e-06 1.1853
|
||||
5.6333e-09 0 5 5 0 1.0534 -7.2145e-06 1.0534
|
||||
5.8556e-09 0 5 5 0 0.9341 -5.6526e-06 0.9341
|
||||
6.0778e-09 0 5 5 0 0.82672 -5.9566e-06 0.82672
|
||||
6.3e-09 0 5 5 0 0.73043 -4.5035e-06 0.73043
|
||||
6.5222e-09 0 5 5 0 0.64438 -4.8508e-06 0.64438
|
||||
6.7444e-09 0 5 5 0 0.56771 -3.5181e-06 0.56771
|
||||
6.9667e-09 0 5 5 0 0.49958 -3.9154e-06 0.49958
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 4.0292e-18 5
|
||||
1.25e-10 0 0 5 0 5 4.5068e-20 5
|
||||
3.25e-10 0 0 5 0 5 6.2776e-19 5
|
||||
5.25e-10 0 0 5 0 5 -4.5635e-19 5
|
||||
7.25e-10 0 0 5 0 5 4.5158e-19 5
|
||||
9.25e-10 0 0 5 0 5 7.2178e-20 5
|
||||
1e-09 0 0 5 0 5 -1.4701e-18 5
|
||||
1.2e-09 0 1 5 0 4.9949 -0.00024833 4.9949
|
||||
1.3e-09 0 1.5 5 0 4.9825 -0.00026769 4.9825
|
||||
1.5e-09 0 2.5 5 0 4.9347 -0.00026955 4.9347
|
||||
1.7e-09 0 3.5 5 0 4.8383 -0.0002751 4.8383
|
||||
1.9e-09 0 4.5 5 0 4.6854 -0.00012424 4.6854
|
||||
2e-09 0 5 5 0 4.5871 -0.00021068 4.5871
|
||||
2.1e-09 0 5 5 0 4.4815 -5.6346e-06 4.4815
|
||||
2.3e-09 0 5 5 0 4.2703 -4.8737e-06 4.2703
|
||||
2.5222e-09 0 5 5 0 4.0362 -6.6954e-06 4.0362
|
||||
2.7444e-09 0 5 5 0 3.8028 -7.2454e-06 3.8028
|
||||
2.9667e-09 0 5 5 0 3.5703 -8.6022e-06 3.5703
|
||||
3.1889e-09 0 5 5 0 3.3389 -8.8149e-06 3.3389
|
||||
3.4111e-09 0 5 5 0 3.1092 -9.887e-06 3.1092
|
||||
3.6333e-09 0 5 5 0 2.8826 -9.8032e-06 2.8826
|
||||
3.8556e-09 0 5 5 0 2.6613 -1.0406e-05 2.6613
|
||||
4.0778e-09 0 5 5 0 2.4469 -9.946e-06 2.4469
|
||||
4.3e-09 0 5 5 0 2.2411 -1.0177e-05 2.2411
|
||||
4.5222e-09 0 5 5 0 2.0451 -9.4528e-06 2.0451
|
||||
4.7444e-09 0 5 5 0 1.8598 -9.4312e-06 1.8598
|
||||
4.9667e-09 0 5 5 0 1.686 -8.5573e-06 1.686
|
||||
5.1889e-09 0 5 5 0 1.5239 -8.3927e-06 1.5239
|
||||
5.4111e-09 0 5 5 0 1.3739 -7.466e-06 1.3739
|
||||
5.6333e-09 0 5 5 0 1.2356 -7.2435e-06 1.2356
|
||||
5.8556e-09 0 5 5 0 1.1088 -6.3328e-06 1.1088
|
||||
6.0778e-09 0 5 5 0 0.99304 -6.1091e-06 0.99304
|
||||
6.3e-09 0 5 5 0 0.88784 -5.2563e-06 0.88784
|
||||
6.5222e-09 0 5 5 0 0.79253 -5.0637e-06 0.79253
|
||||
6.7444e-09 0 5 5 0 0.70646 -4.2899e-06 0.70646
|
||||
6.9667e-09 0 5 5 0 0.62896 -4.1433e-06 0.62896
|
||||
7.1889e-09 0 5 5 0 0.55933 -3.4551e-06 0.55933
|
||||
7.4111e-09 0 5 5 0 0.49693 -3.3578e-06 0.49693
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5413e-18 5
|
||||
1.25e-10 0 0 5 0 5 2.4834e-19 5
|
||||
3.25e-10 0 0 5 0 5 9.1245e-19 5
|
||||
5.25e-10 0 0 5 0 5 -4.971e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.3461e-18 5
|
||||
9.25e-10 0 0 5 0 5 -7.1395e-19 5
|
||||
1e-09 0 0 5 0 5 6.99e-19 5
|
||||
1.2e-09 0 1 5 0 4.9952 -0.00024829 4.9952
|
||||
1.3e-09 0 1.5 5 0 4.9836 -0.00026752 4.9836
|
||||
1.5e-09 0 2.5 5 0 4.9391 -0.00026906 4.9391
|
||||
1.7e-09 0 3.5 5 0 4.8491 -0.0002744 4.8491
|
||||
1.9e-09 0 4.5 5 0 4.7068 -0.00012596 4.7068
|
||||
2e-09 0 5 5 0 4.6154 -0.00020829 4.6154
|
||||
2.1e-09 0 5 5 0 4.5171 -5.265e-06 4.5171
|
||||
2.3e-09 0 5 5 0 4.3206 -4.5095e-06 4.3206
|
||||
2.5222e-09 0 5 5 0 4.1027 -5.7614e-06 4.1027
|
||||
2.7444e-09 0 5 5 0 3.8854 -6.5532e-06 3.8854
|
||||
2.9667e-09 0 5 5 0 3.6688 -7.5404e-06 3.6688
|
||||
3.1889e-09 0 5 5 0 3.4531 -8.0337e-06 3.4531
|
||||
3.4111e-09 0 5 5 0 3.2384 -8.7493e-06 3.2384
|
||||
3.6333e-09 0 5 5 0 3.0257 -9.0764e-06 3.0257
|
||||
3.8556e-09 0 5 5 0 2.8163 -9.4406e-06 2.8163
|
||||
4.0778e-09 0 5 5 0 2.612 -9.4352e-06 2.612
|
||||
4.3e-09 0 5 5 0 2.414 -9.4731e-06 2.414
|
||||
4.5222e-09 0 5 5 0 2.2236 -9.2114e-06 2.2236
|
||||
4.7444e-09 0 5 5 0 2.0417 -9.0091e-06 2.0417
|
||||
4.9667e-09 0 5 5 0 1.8692 -8.5787e-06 1.8692
|
||||
5.1889e-09 0 5 5 0 1.7066 -8.2239e-06 1.7066
|
||||
5.4111e-09 0 5 5 0 1.5542 -7.7059e-06 1.5542
|
||||
5.6333e-09 0 5 5 0 1.412 -7.2733e-06 1.412
|
||||
5.8556e-09 0 5 5 0 1.2802 -6.7317e-06 1.2802
|
||||
6.0778e-09 0 5 5 0 1.1584 -6.2766e-06 1.1584
|
||||
6.3e-09 0 5 5 0 1.0463 -5.7555e-06 1.0463
|
||||
6.5222e-09 0 5 5 0 0.94356 -5.3139e-06 0.94356
|
||||
6.7444e-09 0 5 5 0 0.84969 -4.8398e-06 0.84969
|
||||
6.9667e-09 0 5 5 0 0.76417 -4.4321e-06 0.76417
|
||||
7.1889e-09 0 5 5 0 0.68645 -4.0182e-06 0.68645
|
||||
7.4111e-09 0 5 5 0 0.61598 -3.6532e-06 0.61598
|
||||
7.6333e-09 0 5 5 0 0.55224 -3.3036e-06 0.55224
|
||||
7.8556e-09 0 5 5 0 0.49467 -2.9831e-06 0.49467
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5955e-18 5
|
||||
1.25e-10 0 0 5 0 5 2.6191e-19 5
|
||||
3.25e-10 0 0 5 0 5 8.446e-19 5
|
||||
5.25e-10 0 0 5 0 5 -4.157e-19 5
|
||||
7.25e-10 0 0 5 0 5 7.9037e-19 5
|
||||
9.25e-10 0 0 5 0 5 -6.8672e-19 5
|
||||
1e-09 0 0 5 0 5 6.9882e-19 5
|
||||
1.2e-09 0 1 5 0 4.9955 -0.00024826 4.9955
|
||||
1.3e-09 0 1.5 5 0 4.9847 -0.00026737 4.9847
|
||||
1.5e-09 0 2.5 5 0 4.9429 -0.00026863 4.9429
|
||||
1.7e-09 0 3.5 5 0 4.8586 -0.00027378 4.8586
|
||||
1.9e-09 0 4.5 5 0 4.7255 -0.00012749 4.7255
|
||||
2e-09 0 5 5 0 4.64 -0.00020618 4.64
|
||||
2.1e-09 0 5 5 0 4.5481 -4.9435e-06 4.5481
|
||||
2.3e-09 0 5 5 0 4.3644 -4.193e-06 4.3644
|
||||
2.5222e-09 0 5 5 0 4.1606 -5.1129e-06 4.1606
|
||||
2.7444e-09 0 5 5 0 3.9573 -5.8329e-06 3.9573
|
||||
2.9667e-09 0 5 5 0 3.7546 -6.7712e-06 3.7546
|
||||
3.1889e-09 0 5 5 0 3.5526 -7.2304e-06 3.5526
|
||||
3.4111e-09 0 5 5 0 3.3514 -7.9189e-06 3.3514
|
||||
3.6333e-09 0 5 5 0 3.1514 -8.231e-06 3.1514
|
||||
3.8556e-09 0 5 5 0 2.9536 -8.7108e-06 2.9536
|
||||
4.0778e-09 0 5 5 0 2.7592 -8.743e-06 2.7592
|
||||
4.3e-09 0 5 5 0 2.5695 -8.9299e-06 2.5695
|
||||
4.5222e-09 0 5 5 0 2.3856 -8.7321e-06 2.3856
|
||||
4.7444e-09 0 5 5 0 2.2085 -8.6882e-06 2.2085
|
||||
4.9667e-09 0 5 5 0 2.0389 -8.3252e-06 2.0389
|
||||
5.1889e-09 0 5 5 0 1.8775 -8.1193e-06 1.8775
|
||||
5.4111e-09 0 5 5 0 1.7247 -7.6566e-06 1.7247
|
||||
5.6333e-09 0 5 5 0 1.5808 -7.3522e-06 1.5808
|
||||
5.8556e-09 0 5 5 0 1.4459 -6.846e-06 1.4459
|
||||
6.0778e-09 0 5 5 0 1.32 -6.4943e-06 1.32
|
||||
6.3e-09 0 5 5 0 1.203 -5.9873e-06 1.203
|
||||
6.5222e-09 0 5 5 0 1.0946 -5.6253e-06 1.0946
|
||||
6.7444e-09 0 5 5 0 0.99449 -5.1462e-06 0.99449
|
||||
6.9667e-09 0 5 5 0 0.90234 -4.7975e-06 0.90234
|
||||
7.1889e-09 0 5 5 0 0.81775 -4.3632e-06 0.81775
|
||||
7.4111e-09 0 5 5 0 0.74028 -4.0413e-06 0.74028
|
||||
7.6333e-09 0 5 5 0 0.66949 -3.6601e-06 0.66949
|
||||
7.8556e-09 0 5 5 0 0.60493 -3.3709e-06 0.60493
|
||||
8.0778e-09 0 5 5 0 0.54616 -3.0448e-06 0.54616
|
||||
8.3e-09 0 5 5 0 0.49273 -2.7893e-06 0.49273
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 1.8066e-18 5
|
||||
1.25e-10 0 0 5 0 5 4.5163e-19 5
|
||||
3.25e-10 0 0 5 0 5 -3.073e-19 5
|
||||
5.25e-10 0 0 5 0 5 9.9374e-19 5
|
||||
7.25e-10 0 0 5 0 5 -9.0458e-20 5
|
||||
9.25e-10 0 0 5 0 5 6.6848e-19 5
|
||||
1e-09 0 0 5 0 5 2.6466e-19 5
|
||||
1.2e-09 0 1 5 0 4.9958 -0.00024823 4.9958
|
||||
1.3e-09 0 1.5 5 0 4.9856 -0.00026724 4.9856
|
||||
1.5e-09 0 2.5 5 0 4.9462 -0.00026826 4.9462
|
||||
1.7e-09 0 3.5 5 0 4.8669 -0.00027322 4.8669
|
||||
1.9e-09 0 4.5 5 0 4.7419 -0.00012886 4.7419
|
||||
2e-09 0 5 5 0 4.6617 -0.00020429 4.6617
|
||||
2.1e-09 0 5 5 0 4.5754 -4.6614e-06 4.5754
|
||||
2.3e-09 0 5 5 0 4.4029 -3.9154e-06 4.4029
|
||||
2.5222e-09 0 5 5 0 4.2115 -4.6769e-06 4.2115
|
||||
2.7444e-09 0 5 5 0 4.0206 -5.1065e-06 4.0206
|
||||
2.9667e-09 0 5 5 0 3.8301 -6.2223e-06 3.8301
|
||||
3.1889e-09 0 5 5 0 3.6402 -6.4268e-06 3.6402
|
||||
3.4111e-09 0 5 5 0 3.4509 -7.3137e-06 3.4509
|
||||
3.6333e-09 0 5 5 0 3.2625 -7.3721e-06 3.2625
|
||||
3.8556e-09 0 5 5 0 3.0754 -8.1252e-06 3.0754
|
||||
4.0778e-09 0 5 5 0 2.8907 -7.9879e-06 2.8907
|
||||
4.3e-09 0 5 5 0 2.7094 -8.4762e-06 2.7094
|
||||
4.5222e-09 0 5 5 0 2.5325 -8.1402e-06 2.5325
|
||||
4.7444e-09 0 5 5 0 2.3609 -8.4079e-06 2.3609
|
||||
4.9667e-09 0 5 5 0 2.1953 -7.9209e-06 2.1953
|
||||
5.1889e-09 0 5 5 0 2.0365 -8.0207e-06 2.0365
|
||||
5.4111e-09 0 5 5 0 1.8848 -7.4342e-06 1.8848
|
||||
5.6333e-09 0 5 5 0 1.7408 -7.4187e-06 1.7408
|
||||
5.8556e-09 0 5 5 0 1.6045 -6.7806e-06 1.6045
|
||||
6.0778e-09 0 5 5 0 1.4762 -6.6956e-06 1.4762
|
||||
6.3e-09 0 5 5 0 1.3559 -6.0449e-06 1.3559
|
||||
6.5222e-09 0 5 5 0 1.2433 -5.9258e-06 1.2433
|
||||
6.7444e-09 0 5 5 0 1.1385 -5.2912e-06 1.1385
|
||||
6.9667e-09 0 5 5 0 1.0411 -5.1635e-06 1.0411
|
||||
7.1889e-09 0 5 5 0 0.95087 -4.5638e-06 0.95087
|
||||
7.4111e-09 0 5 5 0 0.8675 -4.4438e-06 0.8675
|
||||
7.6333e-09 0 5 5 0 0.79063 -3.89e-06 0.79063
|
||||
7.8556e-09 0 5 5 0 0.7199 -3.7869e-06 0.7199
|
||||
8.0778e-09 0 5 5 0 0.65495 -3.284e-06 0.65495
|
||||
8.3e-09 0 5 5 0 0.5954 -3.2019e-06 0.5954
|
||||
8.5222e-09 0 5 5 0 0.54088 -2.7507e-06 0.54088
|
||||
8.7444e-09 0 5 5 0 0.49105 -2.6905e-06 0.49105
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 1.8066e-18 5
|
||||
1.25e-10 0 0 5 0 5 -2.2599e-19 5
|
||||
3.25e-10 0 0 5 0 5 1.1699e-18 5
|
||||
5.25e-10 0 0 5 0 5 -9.0353e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.2376e-18 5
|
||||
9.25e-10 0 0 5 0 5 -7.1382e-19 5
|
||||
1e-09 0 0 5 0 5 -6.0905e-20 5
|
||||
1.2e-09 0 1 5 0 4.996 -0.00024821 4.996
|
||||
1.3e-09 0 1.5 5 0 4.9864 -0.00026712 4.9864
|
||||
1.5e-09 0 2.5 5 0 4.9492 -0.00026792 4.9492
|
||||
1.7e-09 0 3.5 5 0 4.8743 -0.00027272 4.8743
|
||||
1.9e-09 0 4.5 5 0 4.7564 -0.0001301 4.7564
|
||||
2e-09 0 5 5 0 4.6809 -0.00020261 4.6809
|
||||
2.1e-09 0 5 5 0 4.5995 -4.4119e-06 4.5995
|
||||
2.3e-09 0 5 5 0 4.437 -3.6699e-06 4.437
|
||||
2.5222e-09 0 5 5 0 4.2566 -4.3972e-06 4.2566
|
||||
2.7444e-09 0 5 5 0 4.0766 -4.3938e-06 4.0766
|
||||
2.9667e-09 0 5 5 0 3.8969 -5.8352e-06 3.8969
|
||||
3.1889e-09 0 5 5 0 3.7178 -5.6425e-06 3.7178
|
||||
3.4111e-09 0 5 5 0 3.5392 -6.87e-06 3.5392
|
||||
3.6333e-09 0 5 5 0 3.3612 -6.5512e-06 3.3612
|
||||
3.8556e-09 0 5 5 0 3.1842 -7.636e-06 3.1842
|
||||
4.0778e-09 0 5 5 0 3.0086 -7.2306e-06 3.0086
|
||||
4.3e-09 0 5 5 0 2.8355 -8.0784e-06 2.8355
|
||||
4.5222e-09 0 5 5 0 2.6657 -7.5052e-06 2.6657
|
||||
4.7444e-09 0 5 5 0 2.5 -8.1439e-06 2.5
|
||||
4.9667e-09 0 5 5 0 2.3391 -7.4378e-06 2.3391
|
||||
5.1889e-09 0 5 5 0 2.1838 -7.9071e-06 2.1838
|
||||
5.4111e-09 0 5 5 0 2.0344 -7.1085e-06 2.0344
|
||||
5.6333e-09 0 5 5 0 1.8914 -7.4506e-06 1.8914
|
||||
5.8556e-09 0 5 5 0 1.7551 -6.5992e-06 1.7551
|
||||
6.0778e-09 0 5 5 0 1.6258 -6.8538e-06 1.6258
|
||||
6.3e-09 0 5 5 0 1.5035 -5.9842e-06 1.5035
|
||||
6.5222e-09 0 5 5 0 1.3882 -6.1842e-06 1.3882
|
||||
6.7444e-09 0 5 5 0 1.2799 -5.3236e-06 1.2799
|
||||
6.9667e-09 0 5 5 0 1.1786 -5.4944e-06 1.1786
|
||||
7.1889e-09 0 5 5 0 1.0839 -4.6622e-06 1.0839
|
||||
7.4111e-09 0 5 5 0 0.99569 -4.8215e-06 0.99569
|
||||
7.6333e-09 0 5 5 0 0.91372 -4.0303e-06 0.91372
|
||||
7.8556e-09 0 5 5 0 0.8377 -4.1897e-06 0.8377
|
||||
8.0778e-09 0 5 5 0 0.76734 -3.4465e-06 0.76734
|
||||
8.3e-09 0 5 5 0 0.70232 -3.6127e-06 0.70232
|
||||
8.5222e-09 0 5 5 0 0.64234 -2.9204e-06 0.64234
|
||||
8.7444e-09 0 5 5 0 0.5871 -3.0966e-06 0.5871
|
||||
8.9667e-09 0 5 5 0 0.53627 -2.4552e-06 0.53627
|
||||
9.1889e-09 0 5 5 0 0.48958 -2.6422e-06 0.48958
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5955e-18 5
|
||||
1.25e-10 0 0 5 0 5 2.6191e-19 5
|
||||
3.25e-10 0 0 5 0 5 9.5302e-19 5
|
||||
5.25e-10 0 0 5 0 5 -3.0728e-19 5
|
||||
7.25e-10 0 0 5 0 5 6.955e-19 5
|
||||
9.25e-10 0 0 5 0 5 -4.5634e-19 5
|
||||
1e-09 0 0 5 0 5 -6.0319e-19 5
|
||||
1.2e-09 0 1 5 0 4.9962 -0.00024819 4.9962
|
||||
1.3e-09 0 1.5 5 0 4.9871 -0.00026701 4.9871
|
||||
1.5e-09 0 2.5 5 0 4.9519 -0.00026762 4.9519
|
||||
1.7e-09 0 3.5 5 0 4.8809 -0.00027227 4.8809
|
||||
1.9e-09 0 4.5 5 0 4.7694 -0.00013121 4.7694
|
||||
2e-09 0 5 5 0 4.698 -0.0002011 4.698
|
||||
2.1e-09 0 5 5 0 4.6211 -4.1896e-06 4.6211
|
||||
2.3e-09 0 5 5 0 4.4674 -3.4513e-06 4.4674
|
||||
2.5222e-09 0 5 5 0 4.2968 -4.1751e-06 4.2968
|
||||
2.7444e-09 0 5 5 0 4.1265 -3.8228e-06 4.1265
|
||||
2.9667e-09 0 5 5 0 3.9565 -5.4523e-06 3.9565
|
||||
3.1889e-09 0 5 5 0 3.787 -5.0033e-06 3.787
|
||||
3.4111e-09 0 5 5 0 3.6179 -6.434e-06 3.6179
|
||||
3.6333e-09 0 5 5 0 3.4494 -5.8776e-06 3.4494
|
||||
3.8556e-09 0 5 5 0 3.2815 -7.1554e-06 3.2815
|
||||
4.0778e-09 0 5 5 0 3.1146 -6.563e-06 3.1146
|
||||
4.3e-09 0 5 5 0 2.9494 -7.6595e-06 2.9494
|
||||
4.5222e-09 0 5 5 0 2.7866 -6.9268e-06 2.7866
|
||||
4.7444e-09 0 5 5 0 2.627 -7.8273e-06 2.627
|
||||
4.9667e-09 0 5 5 0 2.4712 -6.9796e-06 2.4712
|
||||
5.1889e-09 0 5 5 0 2.3199 -7.7139e-06 2.3199
|
||||
5.4111e-09 0 5 5 0 2.1735 -6.7824e-06 2.1735
|
||||
5.6333e-09 0 5 5 0 2.0325 -7.3841e-06 2.0325
|
||||
5.8556e-09 0 5 5 0 1.8972 -6.4012e-06 1.8972
|
||||
6.0778e-09 0 5 5 0 1.7679 -6.9038e-06 1.7679
|
||||
6.3e-09 0 5 5 0 1.6448 -5.8992e-06 1.6448
|
||||
6.5222e-09 0 5 5 0 1.528 -6.3324e-06 1.528
|
||||
6.7444e-09 0 5 5 0 1.4175 -5.331e-06 1.4175
|
||||
6.9667e-09 0 5 5 0 1.3133 -5.7189e-06 1.3133
|
||||
7.1889e-09 0 5 5 0 1.2152 -4.7397e-06 1.2152
|
||||
7.4111e-09 0 5 5 0 1.1232 -5.1007e-06 1.1232
|
||||
7.6333e-09 0 5 5 0 1.0371 -4.157e-06 1.0371
|
||||
7.8556e-09 0 5 5 0 0.95667 -4.504e-06 0.95667
|
||||
8.0778e-09 0 5 5 0 0.88169 -3.6042e-06 0.88169
|
||||
8.3e-09 0 5 5 0 0.81192 -3.9457e-06 0.81192
|
||||
8.5222e-09 0 5 5 0 0.7471 -3.0942e-06 0.7471
|
||||
8.7444e-09 0 5 5 0 0.68698 -3.4352e-06 0.68698
|
||||
8.9667e-09 0 5 5 0 0.6313 -2.6335e-06 0.6313
|
||||
9.1889e-09 0 5 5 0 0.57979 -2.9766e-06 0.57979
|
||||
9.4111e-09 0 5 5 0 0.53219 -2.2242e-06 0.53219
|
||||
9.6333e-09 0 5 5 0 0.48826 -2.5702e-06 0.48826
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 3.5413e-18 5
|
||||
1.25e-10 0 0 5 0 5 -4.0218e-19 5
|
||||
3.25e-10 0 0 5 0 5 2.1051e-18 5
|
||||
5.25e-10 0 0 5 0 5 -1.6897e-18 5
|
||||
7.25e-10 0 0 5 0 5 2.3219e-18 5
|
||||
9.25e-10 0 0 5 0 5 -1.7981e-18 5
|
||||
1e-09 0 0 5 0 5 1.5664e-18 5
|
||||
1.2e-09 0 1 5 0 4.9964 -0.00024817 4.9964
|
||||
1.3e-09 0 1.5 5 0 4.9877 -0.00026692 4.9877
|
||||
1.5e-09 0 2.5 5 0 4.9543 -0.00026735 4.9543
|
||||
1.7e-09 0 3.5 5 0 4.8869 -0.00027185 4.8869
|
||||
1.9e-09 0 4.5 5 0 4.7811 -0.00013222 4.7811
|
||||
2e-09 0 5 5 0 4.7133 -0.00019972 4.7133
|
||||
2.1e-09 0 5 5 0 4.6404 -3.9903e-06 4.6404
|
||||
2.3e-09 0 5 5 0 4.4946 -3.2553e-06 4.4946
|
||||
2.5222e-09 0 5 5 0 4.3329 -3.9759e-06 4.3329
|
||||
2.7444e-09 0 5 5 0 4.1713 -3.4097e-06 4.1713
|
||||
2.9667e-09 0 5 5 0 4.0101 -5.033e-06 4.0101
|
||||
3.1889e-09 0 5 5 0 3.8492 -4.525e-06 3.8492
|
||||
3.4111e-09 0 5 5 0 3.6887 -5.9658e-06 3.6887
|
||||
3.6333e-09 0 5 5 0 3.5286 -5.3633e-06 3.5286
|
||||
3.8556e-09 0 5 5 0 3.3691 -6.6596e-06 3.3691
|
||||
4.0778e-09 0 5 5 0 3.2103 -6.0108e-06 3.2103
|
||||
4.3e-09 0 5 5 0 3.0526 -7.1997e-06 3.0526
|
||||
4.5222e-09 0 5 5 0 2.8966 -6.4374e-06 2.8966
|
||||
4.7444e-09 0 5 5 0 2.7431 -7.4453e-06 2.7431
|
||||
4.9667e-09 0 5 5 0 2.5925 -6.5835e-06 2.5925
|
||||
5.1889e-09 0 5 5 0 2.4456 -7.4327e-06 2.4456
|
||||
5.4111e-09 0 5 5 0 2.3027 -6.495e-06 2.3027
|
||||
5.6333e-09 0 5 5 0 2.1643 -7.2121e-06 2.1643
|
||||
5.8556e-09 0 5 5 0 2.0308 -6.2244e-06 2.0308
|
||||
6.0778e-09 0 5 5 0 1.9025 -6.8374e-06 1.9025
|
||||
6.3e-09 0 5 5 0 1.7795 -5.8249e-06 1.7795
|
||||
6.5222e-09 0 5 5 0 1.6621 -6.3599e-06 1.6621
|
||||
6.7444e-09 0 5 5 0 1.5503 -5.3446e-06 1.5503
|
||||
6.9667e-09 0 5 5 0 1.4442 -5.8239e-06 1.4442
|
||||
7.1889e-09 0 5 5 0 1.3438 -4.8238e-06 1.3438
|
||||
7.4111e-09 0 5 5 0 1.2489 -5.2655e-06 1.2489
|
||||
7.6333e-09 0 5 5 0 1.1595 -4.2939e-06 1.1595
|
||||
7.8556e-09 0 5 5 0 1.0755 -4.7115e-06 1.0755
|
||||
8.0778e-09 0 5 5 0 0.99669 -3.7775e-06 0.99669
|
||||
8.3e-09 0 5 5 0 0.92287 -4.1807e-06 0.92287
|
||||
8.5222e-09 0 5 5 0 0.85386 -3.2899e-06 0.85386
|
||||
8.7444e-09 0 5 5 0 0.78944 -3.685e-06 0.78944
|
||||
8.9667e-09 0 5 5 0 0.7294 -2.8401e-06 0.7294
|
||||
9.1889e-09 0 5 5 0 0.67352 -3.2311e-06 0.67352
|
||||
9.4111e-09 0 5 5 0 0.62157 -2.4328e-06 0.62157
|
||||
9.6333e-09 0 5 5 0 0.57333 -2.8217e-06 0.57333
|
||||
9.8556e-09 0 5 5 0 0.52858 -2.0692e-06 0.52858
|
||||
1.0078e-08 0 5 5 0 0.48711 -2.4568e-06 0.48711
|
||||
|
||||
0 0 0 5 0 5 0 5
|
||||
2.5e-11 0 0 5 0 5 1.8066e-18 5
|
||||
1.25e-10 0 0 5 0 5 6.8203e-19 5
|
||||
3.25e-10 0 0 5 0 5 5.8719e-19 5
|
||||
5.25e-10 0 0 5 0 5 -3.8868e-19 5
|
||||
7.25e-10 0 0 5 0 5 1.0209e-18 5
|
||||
9.25e-10 0 0 5 0 5 -8.2237e-19 5
|
||||
1e-09 0 0 5 0 5 1.5664e-18 5
|
||||
1.2e-09 0 1 5 0 4.9966 -0.00024815 4.9966
|
||||
1.3e-09 0 1.5 5 0 4.9883 -0.00026683 4.9883
|
||||
1.5e-09 0 2.5 5 0 4.9564 -0.00026711 4.9564
|
||||
1.7e-09 0 3.5 5 0 4.8923 -0.00027148 4.8923
|
||||
1.9e-09 0 4.5 5 0 4.7917 -0.00013315 4.7917
|
||||
2e-09 0 5 5 0 4.7272 -0.00019847 4.7272
|
||||
2.1e-09 0 5 5 0 4.6579 -3.8106e-06 4.6579
|
||||
2.3e-09 0 5 5 0 4.5193 -3.0787e-06 4.5193
|
||||
2.5222e-09 0 5 5 0 4.3654 -3.7963e-06 4.3654
|
||||
2.7444e-09 0 5 5 0 4.2118 -3.1211e-06 4.2118
|
||||
2.9667e-09 0 5 5 0 4.0584 -4.591e-06 4.0584
|
||||
3.1889e-09 0 5 5 0 3.9053 -4.1746e-06 3.9053
|
||||
3.4111e-09 0 5 5 0 3.7525 -5.4787e-06 3.7525
|
||||
3.6333e-09 0 5 5 0 3.6002 -4.9764e-06 3.6002
|
||||
3.8556e-09 0 5 5 0 3.4483 -6.1485e-06 3.4483
|
||||
4.0778e-09 0 5 5 0 3.2969 -5.5909e-06 3.2969
|
||||
4.3e-09 0 5 5 0 3.1462 -6.6843e-06 3.1462
|
||||
4.5222e-09 0 5 5 0 2.9969 -6.0582e-06 2.9969
|
||||
4.7444e-09 0 5 5 0 2.8493 -6.9898e-06 2.8493
|
||||
4.9667e-09 0 5 5 0 2.704 -6.2738e-06 2.704
|
||||
5.1889e-09 0 5 5 0 2.5617 -7.06e-06 2.5617
|
||||
5.4111e-09 0 5 5 0 2.4226 -6.2721e-06 2.4226
|
||||
5.6333e-09 0 5 5 0 2.2873 -6.9338e-06 2.2873
|
||||
5.8556e-09 0 5 5 0 2.1561 -6.0944e-06 2.1561
|
||||
6.0778e-09 0 5 5 0 2.0294 -6.6545e-06 2.0294
|
||||
6.3e-09 0 5 5 0 1.9073 -5.7847e-06 1.9073
|
||||
6.5222e-09 0 5 5 0 1.79 -6.2656e-06 1.79
|
||||
6.7444e-09 0 5 5 0 1.6778 -5.3849e-06 1.6778
|
||||
6.9667e-09 0 5 5 0 1.5707 -5.8067e-06 1.5707
|
||||
7.1889e-09 0 5 5 0 1.4686 -4.9315e-06 1.4686
|
||||
7.4111e-09 0 5 5 0 1.3717 -5.3113e-06 1.3717
|
||||
7.6333e-09 0 5 5 0 1.2799 -4.4546e-06 1.2799
|
||||
7.8556e-09 0 5 5 0 1.1931 -4.8058e-06 1.1931
|
||||
8.0778e-09 0 5 5 0 1.1112 -3.9771e-06 1.1112
|
||||
8.3e-09 0 5 5 0 1.034 -4.3098e-06 1.034
|
||||
8.5222e-09 0 5 5 0 0.96142 -3.5157e-06 0.96142
|
||||
8.7444e-09 0 5 5 0 0.89329 -3.837e-06 0.89329
|
||||
8.9667e-09 0 5 5 0 0.82943 -3.0812e-06 0.82943
|
||||
9.1889e-09 0 5 5 0 0.76966 -3.3959e-06 0.76966
|
||||
9.4111e-09 0 5 5 0 0.71378 -2.6803e-06 0.71378
|
||||
9.6333e-09 0 5 5 0 0.6616 -2.9913e-06 0.6616
|
||||
9.8556e-09 0 5 5 0 0.61292 -2.3161e-06 0.61292
|
||||
1.0078e-08 0 5 5 0 0.56757 -2.6251e-06 0.56757
|
||||
1.03e-08 0 5 5 0 0.52534 -1.9896e-06 0.52534
|
||||
1.0522e-08 0 5 5 0 0.48607 -2.2972e-06 0.48607
|
10001
examples/rlc_lpf_trans.dat
Normal file
10001
examples/rlc_lpf_trans.dat
Normal file
File diff suppressed because it is too large
Load Diff
BIN
examples/tm.tr0
Normal file
BIN
examples/tm.tr0
Normal file
Binary file not shown.
BIN
examples/tran.tr0
Normal file
BIN
examples/tran.tr0
Normal file
Binary file not shown.
BIN
examples/tran_sweep.tr0
Normal file
BIN
examples/tran_sweep.tr0
Normal file
Binary file not shown.
BIN
examples/xbuf646.raw
Normal file
BIN
examples/xbuf646.raw
Normal file
Binary file not shown.
9
gaw.desktop
Normal file
9
gaw.desktop
Normal file
@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=Gaw Gtk Analog Wave viewer
|
||||
Comment=Gtk Analog Wave viewer
|
||||
Exec=gaw
|
||||
Icon=gaw.png
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=text/plain;
|
||||
Categories=GTK;Graphics;
|
527
install-sh
Executable file
527
install-sh
Executable file
@ -0,0 +1,527 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2011-11-20.07; # 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
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
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
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
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
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
trap "ret=130; $do_exit" 2
|
||||
trap "ret=141; $do_exit" 13
|
||||
trap "ret=143; $do_exit" 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 problematic for 'test' and other utilities.
|
||||
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
|
||||
|
||||
# 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-writable 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 X"$d" = X && 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:
|
29
lib/Makefile.am
Normal file
29
lib/Makefile.am
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
if CCISGCC
|
||||
AM_CFLAGS = -Wall
|
||||
endif
|
||||
|
||||
noinst_LIBRARIES = libload.a
|
||||
libload_a_SOURCES = spicestream.c ss_cazm.c ss_nsout.c ss_spice3.c \
|
||||
ss_hspice.c ss_spice2.c ss_wav.c fileformat.c util.c \
|
||||
fdbuf.c dbuf.c msglog.c appmem.c appclass.c dataset.c \
|
||||
wavevar.c wavetable.c sndstream.c sndparams.c sockcon.c fdsel.c \
|
||||
fdbuf.h dbuf.h msglog.h appmem.h appclass.h dataset.h \
|
||||
wavevar.h wavetable.h sndstream.h sndparams.h ss_wav.h \
|
||||
spicestream.h fileformat.h util.h sockcon.h fdsel.h bswap.h \
|
||||
stutil.c stutil.h fsutil.c fsutil.h strcatdup.c strcatdup.h \
|
||||
incvar.c incvar.h strobj.c strobj.h duprintf.c duprintf.h \
|
||||
dlist.c dlist.h dliststr.c dliststr.h array.c array.h \
|
||||
strmem.c strmem.h arraystruct.c arraystruct.h \
|
||||
fileutil.c fileutil.h arraystr.c arraystr.h \
|
||||
datestrconv.c datestrconv.h
|
||||
|
||||
AM_CPPFLAGS = -I../src @GAW_CFLAGS@
|
||||
|
||||
OSTLYCLEANFILES = *.log core FILE *~ prototype.bak
|
||||
CLEANFILES = *.log core FILE *~ prototype.bak
|
||||
DISTCLEANFILES = *.log core FILE *~ prototype.bak
|
||||
MAINTAINERCLEANFILES = *.log core FILE *~ prototype.bak prototype.h \
|
||||
Makefile.in configure
|
||||
|
||||
EXTRA_DIST = stest.c stest.mak
|
736
lib/Makefile.in
Normal file
736
lib/Makefile.in
Normal file
@ -0,0 +1,736 @@
|
||||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 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@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
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 = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = lib
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
AR = ar
|
||||
ARFLAGS = cru
|
||||
AM_V_AR = $(am__v_AR_@AM_V@)
|
||||
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
|
||||
am__v_AR_0 = @echo " AR " $@;
|
||||
am__v_AR_1 =
|
||||
libload_a_AR = $(AR) $(ARFLAGS)
|
||||
libload_a_LIBADD =
|
||||
am_libload_a_OBJECTS = spicestream.$(OBJEXT) ss_cazm.$(OBJEXT) \
|
||||
ss_nsout.$(OBJEXT) ss_spice3.$(OBJEXT) ss_hspice.$(OBJEXT) \
|
||||
ss_spice2.$(OBJEXT) ss_wav.$(OBJEXT) fileformat.$(OBJEXT) \
|
||||
util.$(OBJEXT) fdbuf.$(OBJEXT) dbuf.$(OBJEXT) msglog.$(OBJEXT) \
|
||||
appmem.$(OBJEXT) appclass.$(OBJEXT) dataset.$(OBJEXT) \
|
||||
wavevar.$(OBJEXT) wavetable.$(OBJEXT) sndstream.$(OBJEXT) \
|
||||
sndparams.$(OBJEXT) sockcon.$(OBJEXT) fdsel.$(OBJEXT) \
|
||||
stutil.$(OBJEXT) fsutil.$(OBJEXT) strcatdup.$(OBJEXT) \
|
||||
incvar.$(OBJEXT) strobj.$(OBJEXT) duprintf.$(OBJEXT) \
|
||||
dlist.$(OBJEXT) dliststr.$(OBJEXT) array.$(OBJEXT) \
|
||||
strmem.$(OBJEXT) arraystruct.$(OBJEXT) fileutil.$(OBJEXT) \
|
||||
arraystr.$(OBJEXT) datestrconv.$(OBJEXT)
|
||||
libload_a_OBJECTS = $(am_libload_a_OBJECTS)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/appclass.Po ./$(DEPDIR)/appmem.Po \
|
||||
./$(DEPDIR)/array.Po ./$(DEPDIR)/arraystr.Po \
|
||||
./$(DEPDIR)/arraystruct.Po ./$(DEPDIR)/dataset.Po \
|
||||
./$(DEPDIR)/datestrconv.Po ./$(DEPDIR)/dbuf.Po \
|
||||
./$(DEPDIR)/dlist.Po ./$(DEPDIR)/dliststr.Po \
|
||||
./$(DEPDIR)/duprintf.Po ./$(DEPDIR)/fdbuf.Po \
|
||||
./$(DEPDIR)/fdsel.Po ./$(DEPDIR)/fileformat.Po \
|
||||
./$(DEPDIR)/fileutil.Po ./$(DEPDIR)/fsutil.Po \
|
||||
./$(DEPDIR)/incvar.Po ./$(DEPDIR)/msglog.Po \
|
||||
./$(DEPDIR)/sndparams.Po ./$(DEPDIR)/sndstream.Po \
|
||||
./$(DEPDIR)/sockcon.Po ./$(DEPDIR)/spicestream.Po \
|
||||
./$(DEPDIR)/ss_cazm.Po ./$(DEPDIR)/ss_hspice.Po \
|
||||
./$(DEPDIR)/ss_nsout.Po ./$(DEPDIR)/ss_spice2.Po \
|
||||
./$(DEPDIR)/ss_spice3.Po ./$(DEPDIR)/ss_wav.Po \
|
||||
./$(DEPDIR)/strcatdup.Po ./$(DEPDIR)/strmem.Po \
|
||||
./$(DEPDIR)/strobj.Po ./$(DEPDIR)/stutil.Po \
|
||||
./$(DEPDIR)/util.Po ./$(DEPDIR)/wavetable.Po \
|
||||
./$(DEPDIR)/wavevar.Po
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
AM_V_CC = $(am__v_CC_@AM_V@)
|
||||
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
|
||||
am__v_CC_0 = @echo " CC " $@;
|
||||
am__v_CC_1 =
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
am__v_CCLD_1 =
|
||||
SOURCES = $(libload_a_SOURCES)
|
||||
DIST_SOURCES = $(libload_a_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALSA_CFLAGS = @ALSA_CFLAGS@
|
||||
ALSA_LIBS = @ALSA_LIBS@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
GAWRCDIR = @GAWRCDIR@
|
||||
GAW_CFLAGS = @GAW_CFLAGS@
|
||||
GAW_LDFLAGS = @GAW_LDFLAGS@
|
||||
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GLIB228_CFLAGS = @GLIB228_CFLAGS@
|
||||
GLIB228_LIBS = @GLIB228_LIBS@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
GTK300_CFLAGS = @GTK300_CFLAGS@
|
||||
GTK300_LIBS = @GTK300_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
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@
|
||||
POSUB = @POSUB@
|
||||
POW_LIB = @POW_LIB@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
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 = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
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@
|
||||
@CCISGCC_TRUE@AM_CFLAGS = -Wall
|
||||
noinst_LIBRARIES = libload.a
|
||||
libload_a_SOURCES = spicestream.c ss_cazm.c ss_nsout.c ss_spice3.c \
|
||||
ss_hspice.c ss_spice2.c ss_wav.c fileformat.c util.c \
|
||||
fdbuf.c dbuf.c msglog.c appmem.c appclass.c dataset.c \
|
||||
wavevar.c wavetable.c sndstream.c sndparams.c sockcon.c fdsel.c \
|
||||
fdbuf.h dbuf.h msglog.h appmem.h appclass.h dataset.h \
|
||||
wavevar.h wavetable.h sndstream.h sndparams.h ss_wav.h \
|
||||
spicestream.h fileformat.h util.h sockcon.h fdsel.h bswap.h \
|
||||
stutil.c stutil.h fsutil.c fsutil.h strcatdup.c strcatdup.h \
|
||||
incvar.c incvar.h strobj.c strobj.h duprintf.c duprintf.h \
|
||||
dlist.c dlist.h dliststr.c dliststr.h array.c array.h \
|
||||
strmem.c strmem.h arraystruct.c arraystruct.h \
|
||||
fileutil.c fileutil.h arraystr.c arraystr.h \
|
||||
datestrconv.c datestrconv.h
|
||||
|
||||
AM_CPPFLAGS = -I../src @GAW_CFLAGS@
|
||||
OSTLYCLEANFILES = *.log core FILE *~ prototype.bak
|
||||
CLEANFILES = *.log core FILE *~ prototype.bak
|
||||
DISTCLEANFILES = *.log core FILE *~ prototype.bak
|
||||
MAINTAINERCLEANFILES = *.log core FILE *~ prototype.bak prototype.h \
|
||||
Makefile.in configure
|
||||
|
||||
EXTRA_DIST = stest.c stest.mak
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-noinstLIBRARIES:
|
||||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||
|
||||
libload.a: $(libload_a_OBJECTS) $(libload_a_DEPENDENCIES) $(EXTRA_libload_a_DEPENDENCIES)
|
||||
$(AM_V_at)-rm -f libload.a
|
||||
$(AM_V_AR)$(libload_a_AR) libload.a $(libload_a_OBJECTS) $(libload_a_LIBADD)
|
||||
$(AM_V_at)$(RANLIB) libload.a
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appclass.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appmem.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arraystr.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arraystruct.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dataset.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datestrconv.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbuf.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlist.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dliststr.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/duprintf.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdbuf.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdsel.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileformat.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileutil.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsutil.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/incvar.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msglog.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndparams.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndstream.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockcon.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spicestream.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ss_cazm.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ss_hspice.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ss_nsout.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ss_spice2.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ss_spice3.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ss_wav.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcatdup.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strmem.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strobj.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stutil.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavetable.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavevar.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-am
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
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-am
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
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"
|
||||
cscopelist: cscopelist-am
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@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
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LIBRARIES)
|
||||
installdirs:
|
||||
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:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
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)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/appclass.Po
|
||||
-rm -f ./$(DEPDIR)/appmem.Po
|
||||
-rm -f ./$(DEPDIR)/array.Po
|
||||
-rm -f ./$(DEPDIR)/arraystr.Po
|
||||
-rm -f ./$(DEPDIR)/arraystruct.Po
|
||||
-rm -f ./$(DEPDIR)/dataset.Po
|
||||
-rm -f ./$(DEPDIR)/datestrconv.Po
|
||||
-rm -f ./$(DEPDIR)/dbuf.Po
|
||||
-rm -f ./$(DEPDIR)/dlist.Po
|
||||
-rm -f ./$(DEPDIR)/dliststr.Po
|
||||
-rm -f ./$(DEPDIR)/duprintf.Po
|
||||
-rm -f ./$(DEPDIR)/fdbuf.Po
|
||||
-rm -f ./$(DEPDIR)/fdsel.Po
|
||||
-rm -f ./$(DEPDIR)/fileformat.Po
|
||||
-rm -f ./$(DEPDIR)/fileutil.Po
|
||||
-rm -f ./$(DEPDIR)/fsutil.Po
|
||||
-rm -f ./$(DEPDIR)/incvar.Po
|
||||
-rm -f ./$(DEPDIR)/msglog.Po
|
||||
-rm -f ./$(DEPDIR)/sndparams.Po
|
||||
-rm -f ./$(DEPDIR)/sndstream.Po
|
||||
-rm -f ./$(DEPDIR)/sockcon.Po
|
||||
-rm -f ./$(DEPDIR)/spicestream.Po
|
||||
-rm -f ./$(DEPDIR)/ss_cazm.Po
|
||||
-rm -f ./$(DEPDIR)/ss_hspice.Po
|
||||
-rm -f ./$(DEPDIR)/ss_nsout.Po
|
||||
-rm -f ./$(DEPDIR)/ss_spice2.Po
|
||||
-rm -f ./$(DEPDIR)/ss_spice3.Po
|
||||
-rm -f ./$(DEPDIR)/ss_wav.Po
|
||||
-rm -f ./$(DEPDIR)/strcatdup.Po
|
||||
-rm -f ./$(DEPDIR)/strmem.Po
|
||||
-rm -f ./$(DEPDIR)/strobj.Po
|
||||
-rm -f ./$(DEPDIR)/stutil.Po
|
||||
-rm -f ./$(DEPDIR)/util.Po
|
||||
-rm -f ./$(DEPDIR)/wavetable.Po
|
||||
-rm -f ./$(DEPDIR)/wavevar.Po
|
||||
-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-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 ./$(DEPDIR)/appclass.Po
|
||||
-rm -f ./$(DEPDIR)/appmem.Po
|
||||
-rm -f ./$(DEPDIR)/array.Po
|
||||
-rm -f ./$(DEPDIR)/arraystr.Po
|
||||
-rm -f ./$(DEPDIR)/arraystruct.Po
|
||||
-rm -f ./$(DEPDIR)/dataset.Po
|
||||
-rm -f ./$(DEPDIR)/datestrconv.Po
|
||||
-rm -f ./$(DEPDIR)/dbuf.Po
|
||||
-rm -f ./$(DEPDIR)/dlist.Po
|
||||
-rm -f ./$(DEPDIR)/dliststr.Po
|
||||
-rm -f ./$(DEPDIR)/duprintf.Po
|
||||
-rm -f ./$(DEPDIR)/fdbuf.Po
|
||||
-rm -f ./$(DEPDIR)/fdsel.Po
|
||||
-rm -f ./$(DEPDIR)/fileformat.Po
|
||||
-rm -f ./$(DEPDIR)/fileutil.Po
|
||||
-rm -f ./$(DEPDIR)/fsutil.Po
|
||||
-rm -f ./$(DEPDIR)/incvar.Po
|
||||
-rm -f ./$(DEPDIR)/msglog.Po
|
||||
-rm -f ./$(DEPDIR)/sndparams.Po
|
||||
-rm -f ./$(DEPDIR)/sndstream.Po
|
||||
-rm -f ./$(DEPDIR)/sockcon.Po
|
||||
-rm -f ./$(DEPDIR)/spicestream.Po
|
||||
-rm -f ./$(DEPDIR)/ss_cazm.Po
|
||||
-rm -f ./$(DEPDIR)/ss_hspice.Po
|
||||
-rm -f ./$(DEPDIR)/ss_nsout.Po
|
||||
-rm -f ./$(DEPDIR)/ss_spice2.Po
|
||||
-rm -f ./$(DEPDIR)/ss_spice3.Po
|
||||
-rm -f ./$(DEPDIR)/ss_wav.Po
|
||||
-rm -f ./$(DEPDIR)/strcatdup.Po
|
||||
-rm -f ./$(DEPDIR)/strmem.Po
|
||||
-rm -f ./$(DEPDIR)/strobj.Po
|
||||
-rm -f ./$(DEPDIR)/stutil.Po
|
||||
-rm -f ./$(DEPDIR)/util.Po
|
||||
-rm -f ./$(DEPDIR)/wavetable.Po
|
||||
-rm -f ./$(DEPDIR)/wavevar.Po
|
||||
-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:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
|
||||
ctags-am distclean distclean-compile distclean-generic \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am 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 installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# 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:
|
141
lib/appclass.c
Normal file
141
lib/appclass.c
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* appclass.c - Methods to provide user interfaces to the AppClass structure.
|
||||
*
|
||||
* include LICENSE
|
||||
*
|
||||
* Originaly written Theodore A. Roth for the simulavr project,
|
||||
* it is now used as a common file that can be used in every project.
|
||||
* stolen from simulavr.
|
||||
*/
|
||||
|
||||
#include <appclass.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
/** \brief This function should never be used.
|
||||
*
|
||||
* The only potential use for it as a template for derived classes.
|
||||
* Do Not Use This Function!
|
||||
*/
|
||||
|
||||
AppClass *app_class_new(void)
|
||||
{
|
||||
AppClass *klass = app_new(AppClass, 1);
|
||||
|
||||
app_class_construct(klass);
|
||||
return klass;
|
||||
}
|
||||
|
||||
/** \brief Initializes the AppClass data structure.
|
||||
*
|
||||
* A derived class should call this function from their own
|
||||
* <klass>_construct() function. All classes should
|
||||
* have their constructor function call their parent's constructor
|
||||
* function.
|
||||
*/
|
||||
|
||||
void app_class_construct(AppClass * klass)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
msg_fatal(_("passed null ptr"));
|
||||
}
|
||||
klass->ref_count = 1;
|
||||
app_class_overload_destroy(klass, app_class_destroy);
|
||||
}
|
||||
|
||||
/** \brief Releases resources allocated by class's <klass>_new() function.
|
||||
*
|
||||
* This function should never be called except as the last statement
|
||||
* of a directly derived class's destroy method.
|
||||
* All classes should have their destroy method call their parent's
|
||||
* destroy method.
|
||||
*/
|
||||
|
||||
void app_class_destroy(void *klass)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
return;
|
||||
}
|
||||
app_free(klass);
|
||||
}
|
||||
|
||||
/** \brief Overload the default destroy method.
|
||||
*
|
||||
* Derived classes will call this to replace app_class_destroy() with their own
|
||||
* destroy method.
|
||||
*/
|
||||
|
||||
void app_class_overload_destroy(AppClass * klass,
|
||||
AppClassFP_Destroy destroy)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
msg_fatal(_("passed null ptr"));
|
||||
}
|
||||
|
||||
klass->destroy = destroy;
|
||||
}
|
||||
|
||||
/** \brief Increments the reference count for the klass object.
|
||||
*
|
||||
* The programmer must call this whenever a reference to an object
|
||||
* is stored in more than one place.
|
||||
*/
|
||||
|
||||
void app_class_ref(AppClass * klass)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
msg_fatal(_("passed null ptr"));
|
||||
}
|
||||
klass->ref_count++;
|
||||
}
|
||||
|
||||
/** \brief Decrements the reference count for the klass object.
|
||||
*
|
||||
* When the reference count reaches zero, the class's destroy method
|
||||
* is called on the object.
|
||||
*/
|
||||
|
||||
void app_class_unref(AppClass * klass)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
msg_fatal(_("passed null ptr"));
|
||||
}
|
||||
|
||||
klass->ref_count--;
|
||||
if (klass->ref_count == 0) {
|
||||
klass->destroy(klass);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_CLASS_TYPE
|
||||
/** \brief Use the field type of the klass object.
|
||||
*
|
||||
* Set the the value of the class type that may be useful for some
|
||||
* applications.
|
||||
*/
|
||||
|
||||
void app_class_set_type(AppClass * klass, int type)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
msg_fatal(_("passed null ptr"));
|
||||
}
|
||||
klass->type = type;
|
||||
}
|
||||
|
||||
/** \brief Use the field type of the klass object.
|
||||
*
|
||||
* Get the the value of the class type that may be useful for some
|
||||
* applications.
|
||||
*/
|
||||
int app_class_get_type(AppClass * klass)
|
||||
{
|
||||
if (klass == NULL) {
|
||||
msg_fatal(_("passed null ptr"));
|
||||
}
|
||||
return klass->type;
|
||||
}
|
||||
|
||||
#endif /* USE_CLASS_TYPE */
|
36
lib/appclass.h
Normal file
36
lib/appclass.h
Normal file
@ -0,0 +1,36 @@
|
||||
#ifndef APP_CLASS_H
|
||||
#define APP_CLASS_H
|
||||
/*
|
||||
* appclass.h - OOP Implementaion built up from AppClass structure.
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <appmem.h>
|
||||
|
||||
typedef struct _AppClass AppClass;
|
||||
typedef void (*AppClassFP_Destroy) (void *klass);
|
||||
|
||||
/* a generic function callback */
|
||||
typedef int (*App_Run_FP)( AppClass *app, void *user_data );
|
||||
|
||||
struct _AppClass {
|
||||
int type; /* application may use this field to store a type */
|
||||
int ref_count; /* Object reference count */
|
||||
AppClassFP_Destroy destroy; /* pointer to destroy function, can be overridden */
|
||||
};
|
||||
|
||||
extern AppClass *app_class_new(void);
|
||||
extern void app_class_construct(AppClass * klass);
|
||||
extern void app_class_destroy(void *klass);
|
||||
extern void app_class_overload_destroy(AppClass * klass,
|
||||
AppClassFP_Destroy destroy);
|
||||
extern void app_class_ref(AppClass * klass);
|
||||
extern void app_class_unref(AppClass * klass);
|
||||
|
||||
#ifdef USE_CLASS_TYPE
|
||||
void app_class_set_type(AppClass * klass, int type);
|
||||
int app_class_get_type(AppClass * klass);
|
||||
#endif /* USE_CLASS_TYPE */
|
||||
|
||||
#endif /* APP_CLASS_H */
|
153
lib/appmem.c
Normal file
153
lib/appmem.c
Normal file
@ -0,0 +1,153 @@
|
||||
/**
|
||||
* \file appmem.c
|
||||
* \brief Methods to provide memory interfaces to the AppClass structure.
|
||||
*
|
||||
* interface to memory allocation
|
||||
*
|
||||
* stolen from simulavr
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <appmem.h>
|
||||
|
||||
|
||||
/**
|
||||
* \brief Memory Management Functions.
|
||||
*
|
||||
* This module provides facilities for managing memory.
|
||||
*
|
||||
*
|
||||
* There is no need to check the returned values from any of these
|
||||
* functions. Any memory allocation failure is considered fatal and the
|
||||
* program is terminated.
|
||||
*
|
||||
* We want to wrap all functions that allocate memory. This way we can
|
||||
* add secret code to track memory usage and debug memory leaks if we
|
||||
* want. Right now, I don't want to ;).
|
||||
*/
|
||||
|
||||
|
||||
/* These macros are only here for documentation purposes. */
|
||||
|
||||
#ifdef MACRO_DOCUMENTATION
|
||||
|
||||
/** \brief Macro for allocating memory.
|
||||
* \param type The C type of the memory to allocate.
|
||||
* \param count Allocate enough memory hold count types.
|
||||
*
|
||||
* This macro is just a wrapper for app_malloc() and should be used to avoid
|
||||
* the repetitive task of casting the returned pointer.
|
||||
*/
|
||||
|
||||
#define app_new(type, count) \
|
||||
((type *) app_malloc ((unsigned) sizeof (type) * (count)))
|
||||
|
||||
/** \brief Macro for allocating memory and initializing it to zero.
|
||||
* \param type The C type of the memory to allocate.
|
||||
* \param count Allocate enough memory hold count types.
|
||||
*
|
||||
* This macro is just a wrapper for app_malloc0() and should be used to avoid
|
||||
* the repetitive task of casting the returned pointer.
|
||||
*/
|
||||
|
||||
#define app_new0(type, count) \
|
||||
((type *) app_malloc0 ((unsigned) sizeof (type) * (count)))
|
||||
|
||||
/** \brief Macro for allocating memory.
|
||||
* \param type The C type of the memory to allocate.
|
||||
* \param mem Pointer to existing memory.
|
||||
* \param count Allocate enough memory hold count types.
|
||||
*
|
||||
* This macro is just a wrapper for app_malloc() and should be used to avoid
|
||||
* the repetitive task of casting the returned pointer.
|
||||
*/
|
||||
|
||||
#define app_renew(type, mem, count) \
|
||||
((type *) app_realloc (mem, (unsigned) sizeof (type) * (count)))
|
||||
|
||||
#endif /* MACRO_DOCUMENTATION */
|
||||
|
||||
/** \brief Allocate memory and initialize to zero.
|
||||
*
|
||||
* Use the app_new() macro instead of this function.
|
||||
*
|
||||
* There is no need to check the returned value, since this function will
|
||||
* terminate the program if the memory allocation fails.
|
||||
*
|
||||
* No memory is allocated if passed a size of zero.
|
||||
*/
|
||||
|
||||
void *app_malloc(size_t size)
|
||||
{
|
||||
if (size) {
|
||||
void *ptr;
|
||||
|
||||
ptr = malloc(size);
|
||||
if (ptr) {
|
||||
return ptr;
|
||||
}
|
||||
msg_fatal(_("malloc failed"));
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/** \brief Allocate memory and initialize to zero.
|
||||
*
|
||||
* Use the app_new0() macro instead of this function.
|
||||
*
|
||||
* There is no need to check the returned value, since this function will
|
||||
* terminate the program if the memory allocation fails.
|
||||
*
|
||||
* No memory is allocated if passed a size of zero.
|
||||
*/
|
||||
|
||||
void *app_malloc0(size_t size)
|
||||
{
|
||||
if (size) {
|
||||
void *ptr;
|
||||
|
||||
ptr = calloc(1, size);
|
||||
if (ptr) {
|
||||
return ptr;
|
||||
}
|
||||
msg_fatal(_("malloc0 failed"));
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/** \brief Wrapper for realloc().
|
||||
*
|
||||
* Resizes and possibly allocates more memory for an existing memory block.
|
||||
*
|
||||
* Use the app_renew() macro instead of this function.
|
||||
*
|
||||
* There is no need to check the returned value, since this function will
|
||||
* terminate the program if the memory allocation fails.
|
||||
*
|
||||
* No memory is allocated if passed a size of zero.
|
||||
*/
|
||||
|
||||
void *app_realloc(void *ptr, size_t size)
|
||||
{
|
||||
if (size) {
|
||||
ptr = realloc(ptr, size);
|
||||
if (ptr) {
|
||||
return ptr;
|
||||
}
|
||||
msg_fatal(_("realloc failed"));
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/** \brief Free malloc'd memory.
|
||||
*
|
||||
* It is safe to pass a null pointer to this function.
|
||||
*/
|
||||
|
||||
void app_free(void *ptr)
|
||||
{
|
||||
if (ptr) {
|
||||
free(ptr);
|
||||
}
|
||||
}
|
92
lib/appmem.h
Normal file
92
lib/appmem.h
Normal file
@ -0,0 +1,92 @@
|
||||
#ifndef APP_MEM_H
|
||||
#define APP_MEM_H
|
||||
/*
|
||||
* appmem.h - interface to memory allocation
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
/*
|
||||
* msglog.h is needed for msg_fatal, ...
|
||||
* CENTOS : msglog include stdlib.h that need to be included before glib.h
|
||||
*/
|
||||
#include <msglog.h>
|
||||
|
||||
#ifndef ARRAY_SIZE
|
||||
#define ARRAY_SIZE(a) ( sizeof(a) / sizeof((a)[0]) )
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GLIB
|
||||
#include <glib.h>
|
||||
#undef malloc
|
||||
#undef calloc
|
||||
#undef realloc
|
||||
#undef free
|
||||
#define malloc g_malloc
|
||||
#define calloc(x,y) g_malloc0(x*y)
|
||||
#define realloc g_realloc
|
||||
#define free g_free
|
||||
/* this is for CENTOS */
|
||||
// #define __need_malloc_and_calloc
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_GLIB
|
||||
# define GUINT_TO_POINTER(u) ((void *) (unsigned long) (u))
|
||||
# define GINT_TO_POINTER(i) ((void *) (long) (i))
|
||||
# define GPOINTER_TO_UINT(p) ((unsigned int) (unsigned long) (p))
|
||||
# define GPOINTER_TO_INT(p) ((int) (unsigned long) (p))
|
||||
#endif
|
||||
|
||||
/* disable some trace_mem functions remaining in the code */
|
||||
#ifndef TRACE_MEM
|
||||
#define tmem_init( file )
|
||||
#define tmem_destroy(tm)
|
||||
#define tmem_alloced(p,size)
|
||||
#define tmem_freed(p)
|
||||
#define app_memcheck()
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Macros for allocating new memory. Automatically performs type cast.
|
||||
*/
|
||||
|
||||
/** \brief Macro for allocating memory.
|
||||
* \param type The C type of the memory to allocate.
|
||||
* \param count Allocate enough memory hold count types.
|
||||
*
|
||||
* This macro is just a wrapper for app_malloc() and should be used to avoid
|
||||
* the repetitive task of casting the returned pointer.
|
||||
*/
|
||||
|
||||
|
||||
#define app_new(type, count) \
|
||||
((type *) app_malloc ((unsigned) sizeof (type) * (count)))
|
||||
|
||||
#define app_new0(type, count) \
|
||||
((type *) app_malloc0 ((unsigned) sizeof (type) * (count)))
|
||||
|
||||
#define app_renew(type, mem, count) \
|
||||
((type *) app_realloc (mem, (unsigned) sizeof (type) * (count)))
|
||||
|
||||
/*
|
||||
* Malloc and free wrappers. Perform sanity checks for you.
|
||||
*/
|
||||
|
||||
extern void *app_malloc(size_t size);
|
||||
extern void *app_malloc0(size_t size);
|
||||
extern void *app_realloc(void *ptr, size_t size);
|
||||
|
||||
extern void app_free(void *ptr);
|
||||
|
||||
#endif /* APP_MEM_H */
|
334
lib/array.c
Normal file
334
lib/array.c
Normal file
@ -0,0 +1,334 @@
|
||||
/*
|
||||
* array.c - array interface functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <strmem.h>
|
||||
#include <array.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
*** \brief Allocates memory for a new Array object.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
Array *array_new( int elSize, int count )
|
||||
{
|
||||
Array *ary;
|
||||
|
||||
ary = app_new0(Array, 1);
|
||||
array_construct( ary, elSize, count );
|
||||
app_class_overload_destroy( (AppClass *) ary, array_destroy );
|
||||
return ary;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the Array object. */
|
||||
|
||||
void array_construct( Array *ary, int elSize, int count )
|
||||
{
|
||||
app_class_construct( (AppClass *) ary );
|
||||
|
||||
if (count == 0 ){
|
||||
count = DEF_ELEM_COUNT;
|
||||
} else if ( count < 0 ){
|
||||
count = app_power_of_2(count);
|
||||
}
|
||||
if (elSize == 0 ){
|
||||
elSize = sizeof(char *); /* sizeof pointer */
|
||||
}
|
||||
|
||||
ary->nAlloc = count;
|
||||
ary->elSize = elSize;
|
||||
/*
|
||||
* always keep a null element at the end of array
|
||||
* actual allocated = nAlloc + 1, but usable is nAlloc
|
||||
*/
|
||||
ary->ptr = app_malloc0 ( elSize * (count + 1) );
|
||||
/*
|
||||
* default function to destroy an element
|
||||
* Must be overloaded for non AppClass element : char *, dlist *
|
||||
*/
|
||||
ary->destroyFunc = (ElmDestroyFP_func) app_class_unref ;
|
||||
}
|
||||
|
||||
/** \brief Destructor for the Array object. */
|
||||
|
||||
void array_destroy(void *ary)
|
||||
{
|
||||
Array *this = (Array *) ary;
|
||||
|
||||
if (ary == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
array_tbl_delete_all(this);
|
||||
|
||||
app_free(this->ptr);
|
||||
app_class_destroy( ary );
|
||||
}
|
||||
|
||||
void array_tbl_delete_all(Array *ary)
|
||||
{
|
||||
int i;
|
||||
void **pptr;
|
||||
ElmDestroyFP_func func = ary->destroyFunc;
|
||||
|
||||
if ( func ) {
|
||||
for ( i = 0 ; i < ary->nelem ; i++ ){
|
||||
/* pointer of type void used in arithmetic wpointer arith */
|
||||
pptr = (void *)((char *) ary->ptr + (i * ary->elSize));
|
||||
if ( *pptr ){
|
||||
func ( *pptr );
|
||||
}
|
||||
}
|
||||
}
|
||||
ary->nelem = 0;
|
||||
}
|
||||
|
||||
void array_set_elem_destroyFunc(Array *ary, ElmDestroyFP_func func)
|
||||
{
|
||||
ary->destroyFunc = (ElmDestroyFP_func) func;
|
||||
}
|
||||
|
||||
|
||||
void *array_table_get(Array *ary)
|
||||
{
|
||||
return ary->ptr ;
|
||||
}
|
||||
|
||||
void *array_tbl_get(Array *ary, int index)
|
||||
{
|
||||
if ( index >= ary->nelem) {
|
||||
msg_error ( "Index %d >= Nb elem %d", index, ary->nelem);
|
||||
return NULL;
|
||||
}
|
||||
void **pptr = (void **) ary->ptr;
|
||||
return pptr[index] ;
|
||||
}
|
||||
|
||||
/*
|
||||
* suppress the element in array and destroy it
|
||||
*/
|
||||
void array_tbl_delete(Array *ary, int index)
|
||||
{
|
||||
if ( index >= ary->nelem) {
|
||||
msg_error ( "Index %d > Nb elem %d", index, ary->nelem);
|
||||
return;
|
||||
}
|
||||
void **pptr = (void **) ary->ptr;
|
||||
if ( pptr[index] ){
|
||||
ary->destroyFunc ( pptr[index] );
|
||||
}
|
||||
memmove ( &pptr[index], &pptr[index + 1], ary->elSize * (ary->nelem - index));
|
||||
ary->nelem--;
|
||||
}
|
||||
|
||||
/*
|
||||
* get the element and remove it from array without destroying the element
|
||||
*/
|
||||
void *array_tbl_remove(Array *ary, int index)
|
||||
{
|
||||
if ( index >= ary->nelem) {
|
||||
msg_error ( "Index %d > Nb elem %d", index, ary->nelem);
|
||||
return NULL;
|
||||
}
|
||||
void **pptr = (void **) ary->ptr;
|
||||
void *ptr = pptr[index] ;
|
||||
memmove ( &pptr[index], &pptr[index + 1], ary->elSize * (ary->nelem - index));
|
||||
ary->nelem--;
|
||||
return ptr ;
|
||||
}
|
||||
|
||||
/*
|
||||
* allocate 1 more to always get a free element set to null
|
||||
*/
|
||||
void array_tbl_expand(Array *ary, int n)
|
||||
{
|
||||
if ( n > ary->nAlloc ) {
|
||||
ary->nAlloc <<= 1;
|
||||
ary->ptr = app_realloc(ary->ptr, ary->elSize * (ary->nAlloc + 1));
|
||||
memset((char *) ary->ptr + (ary->nelem * ary->elSize), 0,
|
||||
ary->elSize * ( ary->nAlloc + 1 - ary->nelem) );
|
||||
}
|
||||
}
|
||||
|
||||
void array_tbl_add(Array *ary, void *elPtr)
|
||||
{
|
||||
array_tbl_expand(ary, ary->nelem + 1);
|
||||
void **pptr = (void **) ary->ptr;
|
||||
pptr[ary->nelem++] = elPtr;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* insert before index
|
||||
*/
|
||||
void array_tbl_insert(Array *ary, void *elPtr, int index)
|
||||
{
|
||||
if ( index > ary->nelem) {
|
||||
msg_error ( "Index %d > Nb elem %d", index, ary->nelem);
|
||||
return;
|
||||
}
|
||||
|
||||
array_tbl_expand(ary, ary->nelem + 1);
|
||||
void **pptr = (void **) ary->ptr;
|
||||
memmove ( &pptr[index + 1], &pptr[index], ary->elSize * (ary->nelem - index));
|
||||
pptr[index] = elPtr;
|
||||
ary->nelem++;
|
||||
}
|
||||
|
||||
/*
|
||||
* replace element at index
|
||||
* return the old element
|
||||
*/
|
||||
void *array_tbl_replace(Array *ary, void *elPtr, int index)
|
||||
{
|
||||
if ( index >= ary->nelem) {
|
||||
/* just add it */
|
||||
array_tbl_add(ary, elPtr);
|
||||
// msg_error ( "Index %d > Nb elem %d", index, ary->nelem);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void **pptr = (void **) ary->ptr;
|
||||
void *ptr = pptr[index] ;
|
||||
pptr[index] = elPtr;
|
||||
return ptr ;
|
||||
}
|
||||
|
||||
/*
|
||||
* replace the element with the new one
|
||||
* and kill the old one
|
||||
*/
|
||||
void array_tbl_replace_kill(Array *ary, void *elPtr, int index)
|
||||
{
|
||||
void *ptr = array_tbl_replace(ary, elPtr, index) ;
|
||||
if ( ptr ) {
|
||||
ary->destroyFunc ( ptr ) ;
|
||||
}
|
||||
}
|
||||
|
||||
int array_tbl_index(Array *ary, void *elPtr)
|
||||
{
|
||||
int i;
|
||||
void **pptr = (void **) ary->ptr;
|
||||
|
||||
for ( i = 0 ; i < ary->nelem ; i++ ){
|
||||
if ( pptr[i] == elPtr ) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void array_set_nelem (Array *ary, int nelem)
|
||||
{
|
||||
ary->nelem = nelem;
|
||||
return ;
|
||||
}
|
||||
|
||||
int array_get_nelem (Array *ary)
|
||||
{
|
||||
return ary->nelem ;
|
||||
}
|
||||
|
||||
|
||||
/** \brief Lookup an item in the array.
|
||||
*
|
||||
* Walk the array pointed to by ary and return a pointer to the data if
|
||||
* found. If not found, return NULL.
|
||||
*
|
||||
* \param ary The array to be iterated.
|
||||
* \param data The data to be passed to the func when it is applied.
|
||||
* \param cmp A function to be used for comparing the items.
|
||||
*
|
||||
* \return A pointer to the data found, or NULL if not found.
|
||||
*
|
||||
* Warning: element list Must be sorted before creating the table
|
||||
*/
|
||||
AppClass *array_lookup_sorted( Array *ary, AppClass *data, ArrayFP_Cmp cmp, int *index )
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
int lo ;
|
||||
int hi ;
|
||||
AppClass *entry ;
|
||||
|
||||
if (cmp == NULL) {
|
||||
msg_fatal( "compare function not specified" );
|
||||
}
|
||||
lo = 0;
|
||||
hi = ary->nelem;
|
||||
|
||||
while (lo != hi) {
|
||||
i = (hi + lo) / 2 ;
|
||||
|
||||
entry = (AppClass *) array_tbl_get( ary, i );
|
||||
ret = (*cmp)(entry, data);
|
||||
if ( ret > 0 ) { /* entry->symbol > symbol */
|
||||
hi = i;
|
||||
} else if ( ret < 0 ) { /* entry->symbol < symbol */
|
||||
lo = i + 1;
|
||||
} else { /* entry->symbol == symbol */
|
||||
/* symbol found */
|
||||
if ( index ){
|
||||
*index = i;
|
||||
}
|
||||
return entry;
|
||||
}
|
||||
}
|
||||
if ( index ){
|
||||
*index = lo;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* lookup an unsorted list
|
||||
*/
|
||||
AppClass *array_lookup( Array *ary, AppClass *data, ArrayFP_Cmp cmp, int *index )
|
||||
{
|
||||
int i;
|
||||
AppClass *entry ;
|
||||
|
||||
if (cmp == NULL) {
|
||||
msg_fatal( "compare function not specified" );
|
||||
}
|
||||
|
||||
for ( i = 0; i < ary->nelem ; i++) {
|
||||
entry = (AppClass *) array_tbl_get( ary, i );
|
||||
if ( entry && (*cmp)(entry, data) == 0 ) { /* entry->symbol == symbol */
|
||||
/* symbol found */
|
||||
if ( index ){
|
||||
*index = i;
|
||||
}
|
||||
return entry;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void array_sort(Array *ary, ArraySortFP_Cmp cmp_func )
|
||||
{
|
||||
qsort( ary->ptr, ary->nelem, ary->elSize, cmp_func);
|
||||
}
|
||||
|
||||
void array_iterator(Array *ary, ArrayFP_Iter iter_func, void *user_data)
|
||||
{
|
||||
int i;
|
||||
AppClass *entry ;
|
||||
|
||||
for ( i = 0; i < ary->nelem ; i++) {
|
||||
entry = (AppClass *) array_tbl_get( ary, i );
|
||||
if ( entry ){
|
||||
(*iter_func)(entry, user_data);
|
||||
}
|
||||
}
|
||||
}
|
63
lib/array.h
Normal file
63
lib/array.h
Normal file
@ -0,0 +1,63 @@
|
||||
#ifndef ARRAY_H
|
||||
#define ARRAY_H
|
||||
|
||||
/*
|
||||
* array.h - array of pointers
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
/*
|
||||
array_new( MimeObj, 8)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <appclass.h>
|
||||
|
||||
typedef void (*ElmDestroyFP_func) ( void *ptr);
|
||||
typedef int (*ArrayFP_Cmp) ( AppClass *d1, AppClass *d2 );
|
||||
typedef int (*ArraySortFP_Cmp) ( const void *, const void * );
|
||||
typedef int (*ArrayFP_Iter) ( AppClass *data, void *user_data );
|
||||
|
||||
#define DEF_ELEM_COUNT 8
|
||||
|
||||
typedef struct _Array Array;
|
||||
|
||||
struct _Array {
|
||||
AppClass parent;
|
||||
void *ptr; /* the array */
|
||||
int nAlloc; /* usable number element allocated */
|
||||
int nelem; /* number element actually added */
|
||||
int elSize; /* size of one table entry */
|
||||
ElmDestroyFP_func destroyFunc;
|
||||
};
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
|
||||
Array *array_new( int elSize, int count );
|
||||
void array_construct( Array *ary, int elSize, int count );
|
||||
void array_destroy(void *ary);
|
||||
void array_set_elem_destroyFunc(Array *ary, ElmDestroyFP_func func);
|
||||
|
||||
void array_tbl_expand(Array *ary, int n);
|
||||
void *array_table_get(Array *ary);
|
||||
void array_tbl_delete_all(Array *ary);
|
||||
void array_tbl_delete(Array *ary, int index);
|
||||
void *array_tbl_get(Array *ary, int index);
|
||||
void *array_tbl_remove(Array *ary, int index);
|
||||
void array_tbl_add(Array *ary, void *elPtr);
|
||||
void array_tbl_insert(Array *ary, void *elPtr, int index);
|
||||
void *array_tbl_replace(Array *ary, void *elPtr, int index);
|
||||
void array_tbl_replace_kill(Array *ary, void *elPtr, int index);
|
||||
|
||||
void array_set_nelem (Array *ary, int nelem);
|
||||
int array_get_nelem (Array *ary);
|
||||
int array_tbl_index(Array *ary, void *elPtr);
|
||||
AppClass *array_lookup( Array *ary, AppClass *data, ArrayFP_Cmp cmp, int *index );
|
||||
AppClass *array_lookup_sorted( Array *ary, AppClass *data, ArrayFP_Cmp cmp, int *index );
|
||||
|
||||
void array_sort(Array *ary, ArraySortFP_Cmp cmp_func );
|
||||
void array_iterator(Array *ary, ArrayFP_Iter iter_func, void *user_data );
|
||||
|
||||
#endif /* ARRAY_H */
|
107
lib/arraystr.c
Normal file
107
lib/arraystr.c
Normal file
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* arraystr.c - array of string pointers
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <strmem.h>
|
||||
#include <arraystr.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
*** \brief Allocates memory for a new Array object.
|
||||
*/
|
||||
|
||||
|
||||
ArrayStr *array_strPtr_new( int count )
|
||||
{
|
||||
ArrayStr *ary;
|
||||
|
||||
ary = app_new0(ArrayStr, 1);
|
||||
array_strPtr_construct( ary, count );
|
||||
app_class_overload_destroy( (AppClass *) ary, array_strPtr_destroy );
|
||||
return ary;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the ArrayStr object. */
|
||||
|
||||
void array_strPtr_construct( ArrayStr *ary, int count )
|
||||
{
|
||||
array_construct( (Array *) ary, 0, count );
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
((Array *) ary)->destroyFunc = str_free_func;
|
||||
#else
|
||||
((Array *) ary)->destroyFunc = app_free;
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \brief Destructor for the ArrayStr object. */
|
||||
|
||||
void array_strPtr_destroy(void *ary)
|
||||
{
|
||||
// ArrayStr *this = (ArrayStr *) ary;
|
||||
|
||||
if (ary == NULL) {
|
||||
return;
|
||||
}
|
||||
array_destroy( ary );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* strdup a string and add it
|
||||
*/
|
||||
void array_strPtr_nadd(ArrayStr *ary, char *str, int len )
|
||||
{
|
||||
char *newstr = app_strndup(str, len);
|
||||
array_tbl_add((Array *) ary, newstr);
|
||||
}
|
||||
|
||||
/*
|
||||
* strdup a string and add it
|
||||
*/
|
||||
void array_strPtr_add(ArrayStr *ary, char *str )
|
||||
{
|
||||
char *newstr = app_strdup(str);
|
||||
array_tbl_add((Array *) ary, newstr);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* strdup a string and insert it
|
||||
*/
|
||||
void array_strPtr_insert(ArrayStr *ary, char *str, int index )
|
||||
{
|
||||
char *newstr = app_strdup(str);
|
||||
array_tbl_insert((Array *) ary, newstr, index);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* strdup a string and replace it at index
|
||||
*/
|
||||
char *array_strPtr_replace(ArrayStr *ary, char *str, int index )
|
||||
{
|
||||
char *newstr = app_strdup(str);
|
||||
return (char *) array_tbl_replace((Array *) ary, newstr, index);
|
||||
}
|
||||
|
||||
void array_strPtr_replace_kill(ArrayStr *ary, char *str, int index )
|
||||
{
|
||||
char *oldstr = array_strPtr_replace( ary, str, index );
|
||||
if ( oldstr ) {
|
||||
((Array *) ary)->destroyFunc ( oldstr ) ;
|
||||
}
|
||||
}
|
||||
|
||||
int array_strPtr_cmp( AppClass *d1, AppClass *d2 )
|
||||
{
|
||||
return (app_strcmp( ((char *) d1), ((char *) d2) ) );
|
||||
}
|
||||
|
41
lib/arraystr.h
Normal file
41
lib/arraystr.h
Normal file
@ -0,0 +1,41 @@
|
||||
#ifndef ARRAYSTR_H
|
||||
#define ARRAYSTR_H
|
||||
|
||||
/*
|
||||
* arraystr.h - array of string pointers
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <array.h>
|
||||
|
||||
#define array_strPtr_get(ary, index) \
|
||||
(char *) array_tbl_get((Array *) ary, index)
|
||||
#define array_strPtr_nelem(ary) \
|
||||
array_get_nelem((Array *) ary)
|
||||
#define array_strPtr_lookup(ary, str, pindex) \
|
||||
(char *) array_lookup((Array *) ary, (AppClass *) str, array_strPtr_cmp, pindex)
|
||||
|
||||
typedef struct _ArrayStr ArrayStr;
|
||||
|
||||
struct _ArrayStr {
|
||||
Array parent; /* the Array Stucture */
|
||||
};
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
|
||||
ArrayStr *array_strPtr_new( int count );
|
||||
void array_strPtr_construct( ArrayStr *ary, int count );
|
||||
void array_strPtr_destroy(void *ary);
|
||||
|
||||
void array_strPtr_nadd(ArrayStr *ary, char *str, int len );
|
||||
void array_strPtr_add(ArrayStr *ary, char *str );
|
||||
void array_strPtr_insert(ArrayStr *ary, char *str, int index );
|
||||
char *array_strPtr_replace(ArrayStr *ary, char *str, int index );
|
||||
void array_strPtr_replace_kill(ArrayStr *ary, char *str, int index );
|
||||
|
||||
int array_strPtr_cmp( AppClass *d1, AppClass *d2 );
|
||||
|
||||
#endif /* ARRAYSTR_H */
|
90
lib/arraystruct.c
Normal file
90
lib/arraystruct.c
Normal file
@ -0,0 +1,90 @@
|
||||
/*
|
||||
*
|
||||
* arraystruct.h - array of structures
|
||||
* same thing as array but with structure instead of pointer
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <arraystruct.h>
|
||||
|
||||
|
||||
/*
|
||||
*** \brief Allocates memory for a new ArrayStruct object.
|
||||
*/
|
||||
|
||||
ArrayStruct *array_struct_new( int elSize, int count, ElmDestroyFP_func func )
|
||||
{
|
||||
ArrayStruct *aryst;
|
||||
|
||||
aryst = app_new0(ArrayStruct, 1);
|
||||
array_struct_construct( aryst, elSize, count, func );
|
||||
app_class_overload_destroy( (AppClass *) aryst, array_struct_destroy );
|
||||
return aryst;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the ArrayStruct object. */
|
||||
|
||||
void array_struct_construct( ArrayStruct *aryst, int elSize, int count,
|
||||
ElmDestroyFP_func func )
|
||||
{
|
||||
array_construct( (Array *) aryst, elSize, count );
|
||||
array_set_elem_destroyFunc( (Array *) aryst, NULL);
|
||||
aryst->func = func;
|
||||
}
|
||||
|
||||
/** \brief Destructor for the ArrayStruct object. */
|
||||
|
||||
void array_struct_destroy(void *aryst)
|
||||
{
|
||||
ArrayStruct *this = (ArrayStruct *) aryst;
|
||||
|
||||
if (aryst == NULL) {
|
||||
return;
|
||||
}
|
||||
array_struct_delete_all(this);
|
||||
|
||||
array_destroy(aryst);
|
||||
}
|
||||
|
||||
void array_struct_delete_all(ArrayStruct *aryst)
|
||||
{
|
||||
int i;
|
||||
void **pptr = (void **) ((Array *) aryst)->ptr;
|
||||
ElmDestroyFP_func func = aryst->func;
|
||||
|
||||
if ( func ) {
|
||||
for ( i = 0 ; i < ((Array *) aryst)->nelem ; i++ ){
|
||||
pptr = ((Array *) aryst)->ptr + (i * ((Array *) aryst)->elSize);
|
||||
func ( pptr );
|
||||
}
|
||||
}
|
||||
((Array *) aryst)->nelem = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* get a pointer to the structure at index
|
||||
*/
|
||||
void *array_struct_get( ArrayStruct *aryst, int index)
|
||||
{
|
||||
Array *ary = (Array *) aryst;
|
||||
if ( index >= ary->nelem) {
|
||||
msg_error ( "Index %d > Nb elem %d", index, ary->nelem);
|
||||
return NULL;
|
||||
}
|
||||
return (void *) ary->ptr + (ary->elSize * index);
|
||||
}
|
||||
|
||||
/*
|
||||
* add a new element in array
|
||||
* return a pointer to the next elem
|
||||
* to let the user fill it
|
||||
*/
|
||||
void *array_struct_next(ArrayStruct *aryst )
|
||||
{
|
||||
Array *ary = (Array *) aryst;
|
||||
array_tbl_expand( ary, ary->nelem + 1);
|
||||
return (void *) ary->ptr + ( ary->elSize * ary->nelem++);
|
||||
}
|
36
lib/arraystruct.h
Normal file
36
lib/arraystruct.h
Normal file
@ -0,0 +1,36 @@
|
||||
#ifndef ARRAYSTRUCT_H
|
||||
#define ARRAYSTRUCT_H
|
||||
|
||||
/*
|
||||
* arraystruct.h - array of structures
|
||||
* same thing as array but with structure instead of pointer
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <array.h>
|
||||
|
||||
typedef struct _ArrayStruct ArrayStruct;
|
||||
|
||||
struct _ArrayStruct {
|
||||
Array parent;
|
||||
ElmDestroyFP_func func; /* function to destroy the element */
|
||||
};
|
||||
|
||||
#define array_struct_table_get(ary) array_table_get((Array *) ary)
|
||||
#define array_struct_get_nelem(ary) array_get_nelem((Array *) ary)
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
ArrayStruct *array_struct_new( int elSize, int count, ElmDestroyFP_func func );
|
||||
void array_struct_construct( ArrayStruct *aryst, int elSize,
|
||||
int count, ElmDestroyFP_func func );
|
||||
void array_struct_destroy(void *aryst);
|
||||
|
||||
void array_struct_delete_all(ArrayStruct *aryst);
|
||||
|
||||
void *array_struct_get(ArrayStruct *aryst, int index);
|
||||
void *array_struct_next(ArrayStruct *aryst );
|
||||
|
||||
|
||||
#endif /* ARRAYSTRUCT_H */
|
102
lib/bswap.h
Normal file
102
lib/bswap.h
Normal file
@ -0,0 +1,102 @@
|
||||
#ifndef B_SWAP_H
|
||||
#define B_SWAP_H
|
||||
|
||||
/*
|
||||
* bswap.h - interface to byte swap macros
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
/*
|
||||
* File to be suppressed when all dists will define le16toh, ...
|
||||
*/
|
||||
#if defined(HAVE_ENDIAN_H) && defined(HAVE_BYTESWAP_H)
|
||||
|
||||
#include <endian.h>
|
||||
#include <byteswap.h>
|
||||
|
||||
/* Definitions for Microsoft WAVE format */
|
||||
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
|
||||
# define cpu_to_be16(x) __bswap_16 (x)
|
||||
# define cpu_to_le16(x) (x)
|
||||
# define be16_to_cpu(x) __bswap_16 (x)
|
||||
# define le16_to_cpu(x) (x)
|
||||
|
||||
# define cpu_to_be32(x) __bswap_32 (x)
|
||||
# define cpu_to_le32(x) (x)
|
||||
# define be32_to_cpu(x) __bswap_32 (x)
|
||||
# define le32_to_cpu(x) (x)
|
||||
|
||||
# define cpu_to_be64(x) __bswap_64 (x)
|
||||
# define cpu_to_le64(x) (x)
|
||||
# define be64_to_cpu(x) __bswap_64 (x)
|
||||
# define le64_to_cpu(x) (x)
|
||||
|
||||
# elif __BYTE_ORDER == __BIG_ENDIAN
|
||||
|
||||
# define cpu_to_be16(x) (x)
|
||||
# define cpu_to_le16(x) __bswap_16 (x)
|
||||
# define be16_to_cpu(x) (x)
|
||||
# define le16_to_cpu(x) __bswap_16 (x)
|
||||
|
||||
# define cpu_to_be32(x) (x)
|
||||
# define cpu_to_le32(x) __bswap_32 (x)
|
||||
# define be32_to_cpu(x) (x)
|
||||
# define le32_to_cpu(x) __bswap_32 (x)
|
||||
|
||||
# define cpu_to_be64(x) (x)
|
||||
# define cpu_to_le64(x) __bswap_64 (x)
|
||||
# define be64_to_cpu(x) (x)
|
||||
# define le64_to_cpu(x) __bswap_64 (x)
|
||||
|
||||
#else /* __BYTE_ORDER == __LITTLE_ENDIAN */
|
||||
#error "Wrong endian"
|
||||
#endif /* __BYTE_ORDER == __LITTLE_ENDIAN */
|
||||
|
||||
#elif defined(HAVE_LIBKERN_OSBYTEORDER_H)
|
||||
|
||||
#include <libkern/OSByteOrder.h>
|
||||
|
||||
/* Definitions for Microsoft WAVE format */
|
||||
# define cpu_to_be16(x) OSSwapHostToBigInt16 (x)
|
||||
# define cpu_to_le16(x) OSSwapHostToLittleInt16 (x)
|
||||
# define be16_to_cpu(x) OSSwapBigToHostInt16 (x)
|
||||
# define le16_to_cpu(x) OSSwapLittleToHostInt16 (x)
|
||||
|
||||
# define cpu_to_be32(x) OSSwapHostToBigInt32 (x)
|
||||
# define cpu_to_le32(x) OSSwapHostToLittleInt32 (x)
|
||||
# define be32_to_cpu(x) OSSwapBigToHostInt32 (x)
|
||||
# define le32_to_cpu(x) OSSwapLittleToHostInt32 (x)
|
||||
|
||||
# define cpu_to_be64(x) OSSwapHostToBigInt64 (x)
|
||||
# define cpu_to_le64(x) OSSwapHostToLittleInt64 (x)
|
||||
# define be64_to_cpu(x) OSSwapBigToHostInt64 (x)
|
||||
# define le64_to_cpu(x) OSSwapLittleToHostInt64 (x)
|
||||
|
||||
#elif defined(HAVE_SYS_ENDIAN_H)
|
||||
#include <sys/endian.h>
|
||||
|
||||
/* Definitions for Microsoft WAVE format */
|
||||
# define cpu_to_be16(x) htobe16(x)
|
||||
# define cpu_to_le16(x) htole16 (x)
|
||||
# define be16_to_cpu(x) be16toh (x)
|
||||
# define le16_to_cpu(x) le16toh (x)
|
||||
|
||||
# define cpu_to_be32(x) htobe32 (x)
|
||||
# define cpu_to_le32(x) htole32 (x)
|
||||
# define be32_to_cpu(x) be32toh (x)
|
||||
# define le32_to_cpu(x) le32toh (x)
|
||||
|
||||
# define cpu_to_be64(x) htobe64 (x)
|
||||
# define cpu_to_le64(x) htole64 (x)
|
||||
# define be64_to_cpu(x) be64toh (x)
|
||||
# define le64_to_cpu(x) le64toh (x)
|
||||
|
||||
#else /* defined(HAVE_ENDIAN_H) && defined(HAVE_BYTESWAP_H) */
|
||||
#error "Failed to define byte swapping macros"
|
||||
/* TODO: Implement fallback functions to detect endianness and implement byte swapping.*/
|
||||
#endif /* defined(HAVE_ENDIAN_H) && defined(HAVE_BYTESWAP_H) */
|
||||
|
||||
#endif /* B_SWAP_H */
|
347
lib/dataset.c
Normal file
347
lib/dataset.c
Normal file
@ -0,0 +1,347 @@
|
||||
/*
|
||||
* dataset.c - dataset interface functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <strmem.h>
|
||||
#include <dataset.h>
|
||||
#include <wavevar.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
*** \brief Allocates memory for a new WDataSet object.
|
||||
*/
|
||||
|
||||
WDataSet *dataset_new( int ncols, AppClass *wt, int tblno )
|
||||
{
|
||||
WDataSet *wds;
|
||||
|
||||
wds = app_new0(WDataSet, 1);
|
||||
dataset_construct( wds, ncols, wt, tblno );
|
||||
app_class_overload_destroy( (AppClass *) wds, dataset_destroy );
|
||||
return wds;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the WDataSet object. */
|
||||
|
||||
void dataset_construct( WDataSet *wds, int ncols, AppClass *wt, int tblno )
|
||||
{
|
||||
app_class_construct( (AppClass *) wds );
|
||||
|
||||
wds->ncols = ncols;
|
||||
wds->datas = g_ptr_array_new ();
|
||||
wds->vars = g_ptr_array_new ();
|
||||
wds->colMin = g_array_new (FALSE, FALSE, sizeof (double) );
|
||||
wds->colMax = g_array_new (FALSE, FALSE, sizeof (double) );
|
||||
wds->swvals = g_array_new (FALSE, FALSE, sizeof (double) );
|
||||
wds->wvtable = wt;
|
||||
wds->tblno = tblno;
|
||||
wds->varmap = g_array_new (FALSE, FALSE, sizeof (int) );
|
||||
wds->mapshift = 1;
|
||||
}
|
||||
|
||||
/** \brief Destructor for the WDataSet object. */
|
||||
|
||||
void dataset_destroy(void *wds)
|
||||
{
|
||||
WDataSet *this = (WDataSet *) wds;
|
||||
|
||||
if (wds == NULL) {
|
||||
return;
|
||||
}
|
||||
app_free(this->setname);
|
||||
dataset_remove_all_vars( this);
|
||||
g_ptr_array_free (this->vars, FALSE);
|
||||
g_ptr_array_free (this->datas, TRUE);
|
||||
g_array_free (this->colMin, TRUE);
|
||||
g_array_free (this->colMax, TRUE);
|
||||
g_array_free (this->swvals, TRUE);
|
||||
g_array_free (this->varmap, TRUE);
|
||||
|
||||
app_class_destroy( wds );
|
||||
}
|
||||
|
||||
/*
|
||||
* given a col num, return the corresponding var index
|
||||
*/
|
||||
|
||||
int dataset_map_col_to_var( WDataSet *wds, int icol )
|
||||
{
|
||||
int map = g_array_index (wds->varmap, int, icol );
|
||||
return (map >> wds->mapshift);
|
||||
}
|
||||
|
||||
void dataset_varmap_remap(WDataSet *wds, int ncols)
|
||||
{
|
||||
int shift = wds->mapshift;
|
||||
int oldmap;
|
||||
int i;
|
||||
|
||||
while ( (1 << shift) < ncols ) {
|
||||
shift <<= 1;
|
||||
}
|
||||
for ( i = 0 ; i < wds->ncols ; i++ ) {
|
||||
oldmap = g_array_index (wds->varmap, int, i );
|
||||
int col = oldmap & ((1 << wds->mapshift) - 1);
|
||||
int varno = oldmap >> wds->mapshift;
|
||||
g_array_index (wds->varmap, int, i ) = ( varno << shift) + col;
|
||||
}
|
||||
wds->mapshift = shift;
|
||||
}
|
||||
|
||||
void dataset_col_add(WDataSet *wds, int ncols)
|
||||
{
|
||||
int i ;
|
||||
int map;
|
||||
double val;
|
||||
|
||||
if ( (1 << wds->mapshift) < ncols ) {
|
||||
dataset_varmap_remap(wds, ncols);
|
||||
}
|
||||
|
||||
for ( i = 0 ; i < ncols ; i++ ) {
|
||||
map = (wds->numVars << wds->mapshift) + i ;
|
||||
g_array_append_val(wds->varmap, map ); /* at curcol */
|
||||
|
||||
GArray *ary = g_array_new (FALSE, FALSE, sizeof (double) );
|
||||
g_ptr_array_add (wds->datas, (gpointer) ary);
|
||||
|
||||
val = G_MAXDOUBLE;
|
||||
g_array_append_val(wds->colMin, val);
|
||||
val = -G_MAXDOUBLE;
|
||||
g_array_append_val(wds->colMax, val );
|
||||
|
||||
wds->ncols++;
|
||||
}
|
||||
}
|
||||
|
||||
void dataset_var_add(WDataSet *wds, char *varName, int type, int ncols)
|
||||
{
|
||||
WaveVar *var = wavevar_new(wds, varName, type, wds->ncols, ncols);
|
||||
|
||||
dataset_col_add(wds, ncols);
|
||||
wavevar_set_wavetable(var, wds->wvtable, wds->tblno );
|
||||
|
||||
g_ptr_array_add (wds->vars, (gpointer) var);
|
||||
wds->numVars++;
|
||||
}
|
||||
|
||||
void dataset_col_remove(WDataSet *wds, int colno, int ncols)
|
||||
{
|
||||
for ( ; ncols > 0 ; ncols-- ) {
|
||||
GArray *ary = g_ptr_array_index( wds->datas, colno + ncols - 1 );
|
||||
g_array_remove_index ( wds->varmap, colno + ncols - 1 );
|
||||
g_ptr_array_remove (wds->datas, (gpointer) ary);
|
||||
g_array_free (ary, TRUE);
|
||||
wds->ncols--;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* if ivar != numVars - 1 we should renumber
|
||||
* all the vars beeteen ivar and numVars - 1 !!!
|
||||
*/
|
||||
void dataset_var_remove(WDataSet *wds, int ivar)
|
||||
{
|
||||
WaveVar *var = g_ptr_array_index( wds->vars, ivar );
|
||||
|
||||
dataset_col_remove(wds, var->colno, var->ncols);
|
||||
g_ptr_array_remove (wds->vars, (gpointer) var);
|
||||
wavevar_destroy( var);
|
||||
|
||||
wds->numVars--;
|
||||
}
|
||||
|
||||
void dataset_remove_all_vars(WDataSet *wds)
|
||||
{
|
||||
int nvars = wds->numVars ;
|
||||
|
||||
for ( ; nvars ; nvars-- ) {
|
||||
dataset_var_remove(wds, nvars - 1);
|
||||
}
|
||||
}
|
||||
|
||||
void dataset_min_max_init( WDataSet *wds, int col )
|
||||
{
|
||||
g_array_index (wds->colMin, double, col ) = G_MAXDOUBLE;
|
||||
g_array_index (wds->colMax, double, col ) = -G_MAXDOUBLE;
|
||||
}
|
||||
|
||||
void dataset_val_set_min_max( WDataSet *wds, int col, double val )
|
||||
{
|
||||
double *prev = &g_array_index (wds->colMin, double, col );
|
||||
if ( val < *prev ) {
|
||||
g_array_index (wds->colMin, double, col ) = val;
|
||||
}
|
||||
prev = &g_array_index (wds->colMax, double, col );
|
||||
if ( *prev < val ) {
|
||||
g_array_index (wds->colMax, double, col ) = val;
|
||||
}
|
||||
}
|
||||
|
||||
double dataset_val_get_min(WDataSet *wds, int col )
|
||||
{
|
||||
double *min = &g_array_index (wds->colMin, double, col );
|
||||
return *min;
|
||||
}
|
||||
|
||||
double dataset_val_get_max(WDataSet *wds, int col )
|
||||
{
|
||||
double *max = &g_array_index (wds->colMax, double, col );
|
||||
return *max;
|
||||
}
|
||||
|
||||
/*
|
||||
* add or replace val in an array
|
||||
*/
|
||||
|
||||
void dataset_col_val_add (WDataSet *wds, int row, int col, double val)
|
||||
{
|
||||
GArray *ary = g_ptr_array_index( wds->datas, col );
|
||||
|
||||
if ( row < 0 || row >= ary->len ){
|
||||
g_array_append_val(ary, val );
|
||||
} else {
|
||||
g_array_index (ary, double, row ) = val;
|
||||
}
|
||||
|
||||
dataset_val_set_min_max( wds, col, val );
|
||||
}
|
||||
|
||||
/*
|
||||
* add a cell to array and set a value in a cell
|
||||
* supposing ncols is set previously and
|
||||
* val comes sequentially
|
||||
*/
|
||||
void dataset_val_add (WDataSet *wds, double val)
|
||||
{
|
||||
dataset_col_val_add( wds, -1, wds->curcol, val );
|
||||
if ( ++wds->curcol >= wds->ncols ) {
|
||||
wds->currow++; /* currow is not used */
|
||||
wds->curcol = 0;
|
||||
wds->nrows++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* add a sweep val to the dataset
|
||||
*/
|
||||
void dataset_swval_add (WDataSet *wds, double val)
|
||||
{
|
||||
g_array_append_val(wds->swvals, val );
|
||||
wds->nswvals++;
|
||||
}
|
||||
|
||||
double dataset_val_get(WDataSet *wds, int row, int col )
|
||||
{
|
||||
GArray *ary = g_ptr_array_index( wds->datas, col );
|
||||
|
||||
double *val = &g_array_index (ary, double, row );
|
||||
return *val;
|
||||
}
|
||||
|
||||
double dataset_swval_get(WDataSet *wds, int index )
|
||||
{
|
||||
double *val = &g_array_index (wds->swvals, double, index );
|
||||
return *val;
|
||||
}
|
||||
|
||||
void dataset_dup_var_name(WDataSet *wds, char *varName, int idx)
|
||||
{
|
||||
WaveVar *var = g_ptr_array_index( wds->vars, idx );
|
||||
wavevar_dup_name(var, varName);
|
||||
}
|
||||
|
||||
void dataset_dup_setname(WDataSet *wds, char *setname)
|
||||
{
|
||||
wds->setname = app_strdup(setname);
|
||||
}
|
||||
|
||||
char *dataset_get_setname(WDataSet *wds)
|
||||
{
|
||||
return wds->setname;
|
||||
}
|
||||
|
||||
int dataset_get_nrows(WDataSet *wds )
|
||||
{
|
||||
return wds->nrows;
|
||||
}
|
||||
|
||||
int dataset_get_ncols(WDataSet *wds )
|
||||
{
|
||||
return wds->ncols;
|
||||
}
|
||||
|
||||
AppClass *dataset_get_wavevar(WDataSet *wds, int ivar )
|
||||
{
|
||||
WaveVar *var = g_ptr_array_index( wds->vars, ivar );
|
||||
return (AppClass *) var;
|
||||
}
|
||||
|
||||
AppClass *dataset_get_var_for_name(WDataSet *wds, char *varName )
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0 ; i < wds->numVars ; i++ ) {
|
||||
WaveVar *var = (WaveVar *) dataset_get_wavevar( wds, i );
|
||||
if ( app_strcmp( varName, var->varName ) == 0 ){
|
||||
return (AppClass *) var;
|
||||
}
|
||||
}
|
||||
return (AppClass *) NULL;
|
||||
}
|
||||
|
||||
int dataset_get_wavevar_type(WDataSet *wds, int ivar )
|
||||
{
|
||||
WaveVar *var = (WaveVar *) dataset_get_wavevar( wds, ivar );
|
||||
return wavevar_get_type( var );
|
||||
}
|
||||
|
||||
void dataset_set_wavevar_type(WDataSet *wds, int ivar, int type )
|
||||
{
|
||||
WaveVar *var = (WaveVar *) dataset_get_wavevar( wds, ivar );
|
||||
wavevar_set_type( var, type );
|
||||
}
|
||||
|
||||
/*
|
||||
* Use a binary search to return the index of the point
|
||||
* whose value is the largest not greater than ival.
|
||||
* if ival is equal or greater than the max value of the
|
||||
* independent variable, return the index of the last point.
|
||||
*
|
||||
* Only works on independent-variables, which we require to
|
||||
* be nondecreasing and have only a single column.
|
||||
*
|
||||
* Further, if there are duplicate values, returns the highest index
|
||||
* that has the same value.
|
||||
*/
|
||||
int dataset_find_row_index( WDataSet *wds, double ival)
|
||||
{
|
||||
double cval;
|
||||
int a = 0;
|
||||
int b;
|
||||
|
||||
b = wds->nrows - 1;
|
||||
double colMax = dataset_val_get_max( wds, 0 );
|
||||
if (ival >= colMax) {
|
||||
return b;
|
||||
}
|
||||
while ( a + 1 < b) {
|
||||
cval = dataset_val_get( wds, (a + b) / 2, 0 ); /* row, col */
|
||||
// printf(" a=%d b=%d ival=%g cval=%g\n", a, b, ival, cval);
|
||||
if (ival < cval){
|
||||
b = ( a + b) / 2;
|
||||
} else {
|
||||
a = (a + b) / 2;
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
75
lib/dataset.h
Normal file
75
lib/dataset.h
Normal file
@ -0,0 +1,75 @@
|
||||
#ifndef DATASET_H
|
||||
#define DATASET_H
|
||||
|
||||
/*
|
||||
* dataset.h - dataset interface
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
/*
|
||||
* Array Storage
|
||||
* array for each column hold in a GPtrArray
|
||||
*
|
||||
*/
|
||||
|
||||
#include <appclass.h>
|
||||
|
||||
typedef struct _WDataSet WDataSet;
|
||||
|
||||
struct _WDataSet {
|
||||
AppClass parent;
|
||||
AppClass *wvtable; /* back pointer to the holding table */
|
||||
GPtrArray *datas; /* array of pointer to array containing double data */
|
||||
int ncols; /* number of column in array */
|
||||
int nrows; /* number of rows in array */
|
||||
GPtrArray *vars; /* array of WaveVar ; 0 = iv */
|
||||
int numVars; /* number of var in array vars */
|
||||
GArray *colMin; /* array of min value - the col min value */
|
||||
GArray *colMax; /* array of max value - the col max value */
|
||||
GArray *swvals; /* array of value at which the sweep was taken */
|
||||
int nswvals; /* number of vals in swvals */
|
||||
int currow;
|
||||
int curcol;
|
||||
int curvar;
|
||||
int tblno; /* number of the table */
|
||||
char *setname; /* name of the sweep, if any, else NULL */
|
||||
GArray *varmap; /* array of int map col num to var num */
|
||||
int mapshift; /* number of bit to shift for the index */
|
||||
};
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
WDataSet *dataset_new( int ncols, AppClass *wt, int tblno );
|
||||
void dataset_construct( WDataSet *wds, int ncols, AppClass *wt, int tblno );
|
||||
void dataset_destroy(void *wds);
|
||||
|
||||
void dataset_col_add(WDataSet *wds, int ncols);
|
||||
void dataset_col_remove(WDataSet *wds, int colno, int ncols);
|
||||
void dataset_var_add(WDataSet *wds, char *varName, int type, int ncols);
|
||||
void dataset_var_remove(WDataSet *wds, int ivar);
|
||||
void dataset_remove_all_vars(WDataSet *wds);
|
||||
void dataset_col_val_add (WDataSet *wds, int row, int col, double val);
|
||||
void dataset_val_add (WDataSet *wds, double val);
|
||||
double dataset_val_get(WDataSet *wds, int row, int col );
|
||||
int dataset_get_nrows(WDataSet *wds );
|
||||
int dataset_get_ncols(WDataSet *wds );
|
||||
int dataset_find_row_index( WDataSet *wds, double ival);
|
||||
void dataset_dup_var_name(WDataSet *wds, char *varName, int ivar);
|
||||
int dataset_get_wavevar_type(WDataSet *wds, int ivar );
|
||||
void dataset_set_wavevar_type(WDataSet *wds, int ivar, int type );
|
||||
void dataset_dup_setname(WDataSet *wds, char *setname);
|
||||
char *dataset_get_setname(WDataSet *wds);
|
||||
void dataset_dup_label(WDataSet *wds, char *label);
|
||||
void dataset_swval_add (WDataSet *wds, double val);
|
||||
double dataset_swval_get(WDataSet *wds, int index );
|
||||
void dataset_min_max_init( WDataSet *wds, int col );
|
||||
void dataset_val_set_min_max( WDataSet *wds, int col, double val );
|
||||
double dataset_val_get_min(WDataSet *wds, int col );
|
||||
double dataset_val_get_max(WDataSet *wds, int col );
|
||||
|
||||
AppClass *dataset_get_wavevar(WDataSet *wds, int ivar );
|
||||
AppClass *dataset_get_var_for_name(WDataSet *wds, char *varName );
|
||||
|
||||
#endif /* DATASET_H */
|
105
lib/datestrconv.c
Normal file
105
lib/datestrconv.c
Normal file
@ -0,0 +1,105 @@
|
||||
/*
|
||||
* datestrconv.c - convert string to time and time to string
|
||||
*
|
||||
* include LICENSE
|
||||
*
|
||||
*/
|
||||
#define _XOPEN_SOURCE
|
||||
#include <datestrconv.h>
|
||||
#include <duprintf.h>
|
||||
|
||||
char *deffmt = "%d-%m-%Y %H:%M:%S";
|
||||
|
||||
/*
|
||||
* convert a data time string to time_t
|
||||
* ex: "27 1 2016 0:02:24" -> 1401197380
|
||||
* *str_time must freed by caller if used.
|
||||
*/
|
||||
void
|
||||
convert_datestr(char *datestr, char *fmt, time_t *int_time, char **str_time )
|
||||
{
|
||||
struct tm tm;
|
||||
time_t mytime;
|
||||
char *format = deffmt;
|
||||
|
||||
if ( fmt ){
|
||||
format = fmt;
|
||||
}
|
||||
|
||||
memset(&tm, 0, sizeof(struct tm));
|
||||
if ( strptime( datestr, format, &tm) == NULL ){
|
||||
fprintf(stderr, "Bad format: \"%s\" expected \"%s\"\n", datestr, format );
|
||||
}
|
||||
|
||||
tm.tm_isdst = -1;
|
||||
mytime = mktime(&tm);
|
||||
if ( int_time ){
|
||||
*int_time = mytime;
|
||||
}
|
||||
if ( str_time ){
|
||||
*str_time = app_strdup_printf("%lu", (unsigned long) mytime );
|
||||
}
|
||||
#ifdef HQDEBUG
|
||||
if ( prog_debug ){
|
||||
char buf[255];
|
||||
strftime(buf, sizeof(buf), format, &tm);
|
||||
fprintf(stderr, "\"%s\" converted to \"%s\"\n", datestr, buf );
|
||||
|
||||
struct tm *ptm;
|
||||
ptm = localtime(&mytime);
|
||||
strftime(buf, sizeof(buf), format, ptm);
|
||||
fprintf(stderr, "Result for %lu is \"%s\"\n", (unsigned long) mytime, buf );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* time_t to date
|
||||
* -cd 1418979685
|
||||
* -cd 0x547BA1A2
|
||||
*/
|
||||
void convert_time_t_to_date( time_t mytime, char *fmt, char *buf, int buflen )
|
||||
{
|
||||
struct tm *ptm;
|
||||
|
||||
char *format = deffmt;
|
||||
if ( fmt ){
|
||||
format = fmt;
|
||||
}
|
||||
|
||||
ptm = localtime(&mytime);
|
||||
strftime(buf, buflen, format, ptm);
|
||||
|
||||
#ifdef HQDEBUG
|
||||
if ( prog_debug ){
|
||||
fprintf(stderr, "%lu -> 0x%lX -> \"%s\"\n",
|
||||
(unsigned long) mytime, (unsigned long) mytime, buf );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void convert_string_to_date( char *arg, char *fmt, char *buf, int buflen )
|
||||
{
|
||||
time_t mytime;
|
||||
|
||||
mytime = strtoul(arg, NULL, 0);
|
||||
|
||||
convert_time_t_to_date( mytime, fmt, buf, buflen );
|
||||
}
|
||||
|
||||
/*
|
||||
* convert a time_t representing a diff between 2 dates
|
||||
* to a string
|
||||
*/
|
||||
|
||||
void convert_difftime_str( time_t mytime, char *fmt, char *buf, int buflen )
|
||||
{
|
||||
int days = mytime / (24 * 3600);
|
||||
mytime = mytime % (24 * 3600);
|
||||
int hours = mytime / 3600;
|
||||
mytime = mytime % 3600;
|
||||
int mins = mytime / 60;
|
||||
int secs = mytime % 60;
|
||||
snprintf( buf, buflen, fmt, days, hours, mins, secs );
|
||||
}
|
||||
|
25
lib/datestrconv.h
Normal file
25
lib/datestrconv.h
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef DATESTRCONV_H
|
||||
#define DATESTRCONV_H
|
||||
|
||||
/*
|
||||
* datestrconv.h - convert string to time and time to string
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifndef _XOPEN_SOURCE
|
||||
#define _XOPEN_SOURCE /* for strptime */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
void convert_datestr(char *datestr, char *fmt, time_t *int_time, char **str_time );
|
||||
void convert_time_t_to_date( time_t mytime, char *fmt, char *buf, int buflen );
|
||||
void convert_string_to_date( char *arg, char *fmt, char *buf, int buflen );
|
||||
void convert_difftime_str( time_t mytime, char *fmt, char *buf, int buflen );
|
||||
|
||||
#endif /* DATESTRCONV_H */
|
407
lib/dbuf.c
Normal file
407
lib/dbuf.c
Normal file
@ -0,0 +1,407 @@
|
||||
/*
|
||||
* dbuf.c - dynamic buffer functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE /* for vasprintf */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <dbuf.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* \brief Allocates memory for a new DBuf object.
|
||||
* size : the initial size of the buffer
|
||||
* buffer : if not null, an external buffer that can be worked as a dbuf
|
||||
* except reallocation. (Use for read only, for example)
|
||||
*/
|
||||
|
||||
DBuf *
|
||||
dbuf_new( int size, char *ext_buf )
|
||||
{
|
||||
DBuf *dbuf;
|
||||
|
||||
dbuf = app_new0(DBuf, 1 );
|
||||
dbuf_construct( dbuf, size, ext_buf );
|
||||
app_class_overload_destroy( (AppClass *) dbuf, dbuf_destroy );
|
||||
|
||||
return dbuf;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the DBuf object. */
|
||||
|
||||
void dbuf_construct( DBuf *dbuf, int size, char *ext_buf )
|
||||
{
|
||||
app_class_construct( (AppClass *) dbuf );
|
||||
|
||||
if (size == 0 ){
|
||||
size = BUFSIZ;
|
||||
}
|
||||
if ( ext_buf ) {
|
||||
dbuf->ext_buf = dbuf->s = ext_buf;
|
||||
dbuf->len = size;
|
||||
} else {
|
||||
size = app_power_of_2(size);
|
||||
dbuf->s = app_new(char, size );
|
||||
*(dbuf->s) = 0;
|
||||
}
|
||||
dbuf->size = size ;
|
||||
}
|
||||
|
||||
/** \brief Destructor for the DBuf object. */
|
||||
|
||||
void dbuf_destroy( void *dbuf)
|
||||
{
|
||||
DBuf *this = (DBuf *) dbuf;
|
||||
|
||||
if ( dbuf == NULL ) {
|
||||
return;
|
||||
}
|
||||
if ( ! this->ext_buf ){
|
||||
app_free(this->s);
|
||||
}
|
||||
app_class_destroy( dbuf );
|
||||
}
|
||||
|
||||
void dbuf_set_fill_cb( DBuf *dbuf, Dbuf_Fill_FP fill_func, AppClass *caller)
|
||||
{
|
||||
dbuf->fill_func = fill_func;
|
||||
dbuf->caller = caller;
|
||||
}
|
||||
|
||||
void dbuf_renew( DBuf *dbuf, int newsize)
|
||||
{
|
||||
if ( dbuf->ext_buf ){
|
||||
msg_fatal("external buffer to allowed to reallocate");
|
||||
}
|
||||
dbuf->size = app_power_of_2(newsize + 1);
|
||||
dbuf->nRenew++;
|
||||
dbuf->s = app_renew( char, dbuf->s , dbuf->size);
|
||||
}
|
||||
|
||||
void dbuf_set_flags( DBuf *dest, int flags)
|
||||
{
|
||||
dest->flags = flags ;
|
||||
}
|
||||
|
||||
int dbuf_is_empty( DBuf *dest)
|
||||
{
|
||||
if ( dest->pos < dest->len ){
|
||||
return 0 ;
|
||||
}
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
int dbuf_get_available( DBuf *dest)
|
||||
{
|
||||
return dest->len - dest->pos;
|
||||
}
|
||||
|
||||
void dbuf_set_pos( DBuf *dest, int pos)
|
||||
{
|
||||
dest->pos = pos ;
|
||||
}
|
||||
|
||||
int dbuf_get_size( DBuf *dest)
|
||||
{
|
||||
return dest->size ;
|
||||
}
|
||||
|
||||
int dbuf_get_pos( DBuf *dest)
|
||||
{
|
||||
return dest->pos ;
|
||||
}
|
||||
|
||||
void dbuf_set_len( DBuf *dest, int len)
|
||||
{
|
||||
dest->len = len ;
|
||||
if ( dest->len > dest->size - 1) {
|
||||
dbuf_renew( dest, dest->len );
|
||||
}
|
||||
char *p = dest->s + dest->len ;
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
int dbuf_get_len( DBuf *dest)
|
||||
{
|
||||
return dest->len ;
|
||||
}
|
||||
|
||||
void dbuf_inc_len( DBuf *dest)
|
||||
{
|
||||
dbuf_set_len( dest, dest->len + 1);
|
||||
}
|
||||
|
||||
void dbuf_clear( DBuf *dest)
|
||||
{
|
||||
dest->pos = 0 ;
|
||||
dest->len = 0 ;
|
||||
dest->lineno = 0;
|
||||
*(dest->s) = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* concatenate n bytes from (src->s + pos) to dest
|
||||
*/
|
||||
void dbuf_ncat( DBuf *dest, DBuf *src, int slen)
|
||||
{
|
||||
int len = dest->len ;
|
||||
|
||||
dest->len += slen ;
|
||||
if ( dest->len >= dest->size - 1) {
|
||||
dbuf_renew( dest, dest->len );
|
||||
}
|
||||
memmove(dest->s + len, src->s + src->pos, slen );
|
||||
*(dest->s + dest->len) = 0;
|
||||
src->pos += slen;
|
||||
}
|
||||
/*
|
||||
* Warning : src start at src->s + src->pos and not at start of buffer
|
||||
*/
|
||||
|
||||
void dbuf_cat( DBuf *dest, DBuf *src)
|
||||
{
|
||||
int slen = src->len - src->pos;
|
||||
|
||||
dbuf_ncat( dest, src, slen);
|
||||
}
|
||||
|
||||
void dbuf_ncopy( DBuf *dest, DBuf *src, int slen)
|
||||
{
|
||||
dest->pos = 0 ;
|
||||
dest->len = 0 ;
|
||||
dbuf_ncat( dest, src, slen);
|
||||
}
|
||||
|
||||
void dbuf_copy( DBuf *dest, DBuf *src)
|
||||
{
|
||||
dbuf_ncopy( dest, src, src->len);
|
||||
}
|
||||
|
||||
void dbuf_strncpy( DBuf *dest, char *src, int slen)
|
||||
{
|
||||
dest->pos = 0 ;
|
||||
dest->len = slen ;
|
||||
if ( dest->len >= dest->size - 1) {
|
||||
dbuf_renew( dest, dest->len );
|
||||
}
|
||||
memmove(dest->s, src, slen);
|
||||
*(dest->s + dest->len) = 0;
|
||||
}
|
||||
|
||||
void dbuf_strcpy( DBuf *dest, char *src)
|
||||
{
|
||||
dbuf_strncpy( dest, src, app_strlen(src));
|
||||
}
|
||||
|
||||
void dbuf_strncat( DBuf *dest, char *src, int slen)
|
||||
{
|
||||
int dlen = dest->len ;
|
||||
|
||||
dest->len += slen ;
|
||||
if ( dest->len >= dest->size - 1) {
|
||||
dbuf_renew( dest, dest->len );
|
||||
}
|
||||
memmove(dest->s + dlen, src, slen );
|
||||
*(dest->s + dest->len) = 0;
|
||||
}
|
||||
|
||||
void dbuf_strcat( DBuf *dest, char *src)
|
||||
{
|
||||
dbuf_strncat( dest, src, app_strlen(src));
|
||||
}
|
||||
|
||||
/*
|
||||
* concatanate all arguments of a NULL terminated list
|
||||
*/
|
||||
|
||||
void dbuf_concat( DBuf *dest, ...)
|
||||
{
|
||||
va_list args;
|
||||
const char *p;
|
||||
|
||||
if ((p = ( const char *) dest) == NULL) {
|
||||
return ;
|
||||
}
|
||||
|
||||
va_start (args, dest);
|
||||
p = va_arg (args, const char *);
|
||||
while (p != NULL) {
|
||||
dbuf_strcat( dest, (char *) p);
|
||||
p = va_arg (args, const char *);
|
||||
}
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* return a pointer on the next char in buffer
|
||||
* instead of the char itself
|
||||
*/
|
||||
char *dbuf_next_char(DBuf *sbuf)
|
||||
{
|
||||
|
||||
if (sbuf->pos >= sbuf->len) {
|
||||
if ( sbuf->fill_func == NULL) {
|
||||
return NULL;
|
||||
} else {
|
||||
int lineno = sbuf->lineno;
|
||||
dbuf_clear(sbuf);
|
||||
if ( sbuf->fill_func(sbuf->caller, (AppClass *) sbuf) == NULL ) {
|
||||
return NULL;
|
||||
}
|
||||
sbuf->lineno = lineno;
|
||||
}
|
||||
}
|
||||
char *p = sbuf->s + sbuf->pos++;
|
||||
if (*p == '\n') {
|
||||
sbuf->lineno++;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* return a single char from buffer
|
||||
* or -1 if no more chars.
|
||||
*/
|
||||
int dbuf_get_char(DBuf *sbuf)
|
||||
{
|
||||
char *p = dbuf_next_char(sbuf);
|
||||
if ( ! p ){
|
||||
return -1;
|
||||
}
|
||||
return (unsigned char) *p;
|
||||
}
|
||||
|
||||
/*
|
||||
* return a duped binary string from dbuf of len chars
|
||||
* string may countain 0.
|
||||
* Caller must free the returned ptr.
|
||||
*/
|
||||
char *dbuf_get_dupchars(DBuf *sbuf, int len)
|
||||
{
|
||||
if (sbuf->pos + len >= sbuf->len) {
|
||||
return NULL;
|
||||
}
|
||||
char *ptr = app_new0( char, len + 1) ;
|
||||
memmove(ptr, sbuf->s + sbuf->pos, len);
|
||||
sbuf->pos += len;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
char *dbuf_get_line(DBuf *dest, DBuf *src)
|
||||
{
|
||||
char *p;
|
||||
int c = 0; /* compiler warning */
|
||||
int lastc = 0;
|
||||
|
||||
dbuf_clear(dest);
|
||||
while ( (p = dbuf_next_char(src)) ) {
|
||||
c = *p;
|
||||
if ( c == '\n' && lastc == '\\' && (dest->flags & DB_JOIN_LINES) ) {
|
||||
dbuf_unput_char( dest ); /* remove lastc */
|
||||
c = ' ';
|
||||
}
|
||||
if (c == '\n' || c == 0 ) {
|
||||
break;
|
||||
}
|
||||
if ( c == '\r' && (dest->flags & DB_STRIP_CR) ) {
|
||||
continue;
|
||||
}
|
||||
dbuf_put_char( dest, c);
|
||||
lastc = c;
|
||||
}
|
||||
if ( p == NULL && dest->len == 0) {
|
||||
return NULL;
|
||||
}
|
||||
if ( dest->flags & DB_KEEP_LF) {
|
||||
dbuf_put_char( dest, c);
|
||||
}
|
||||
return dest->s;
|
||||
}
|
||||
/*
|
||||
* undo a get_char
|
||||
*/
|
||||
int dbuf_unget_char(DBuf *sbuf)
|
||||
{
|
||||
if (--sbuf->pos < 0) {
|
||||
return -1;
|
||||
}
|
||||
char c = sbuf->s[sbuf->pos];
|
||||
return (unsigned char) c;
|
||||
}
|
||||
|
||||
/*
|
||||
* undo a put_char
|
||||
*/
|
||||
int dbuf_unput_char(DBuf *sbuf)
|
||||
{
|
||||
if (--sbuf->len < 0) {
|
||||
return -1;
|
||||
}
|
||||
char c = sbuf->s[sbuf->len];
|
||||
sbuf->s[sbuf->len] = 0;
|
||||
return (unsigned char) c;
|
||||
}
|
||||
|
||||
void dbuf_put_char( DBuf *dest, char c)
|
||||
{
|
||||
if ( dest->len >= dest->size - 2) {
|
||||
dbuf_renew( dest, dest->len + 1 );
|
||||
}
|
||||
char *p = dest->s + dest->len++ ;
|
||||
*p++ = c;
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* dbuf_printf is like sprintf but to dbuf ; concatatenate the result
|
||||
*/
|
||||
void dbuf_vprintf( DBuf *dest, const char *format, va_list args )
|
||||
{
|
||||
char *buffer = NULL;
|
||||
|
||||
/* vasprintf returns malloc-allocated memory */
|
||||
int len = vasprintf(&buffer, format, args);
|
||||
|
||||
if ( len < 0 ){
|
||||
msg_error("vasprintf returned -1.");
|
||||
return;
|
||||
}
|
||||
dbuf_strncat(dest, buffer, len);
|
||||
app_free (buffer);
|
||||
}
|
||||
|
||||
void dbuf_printf( DBuf *dest, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
dbuf_vprintf( dest, format, args );
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
/*
|
||||
* move remaining data at beginning of buffer
|
||||
*/
|
||||
void dbuf_move_beg( DBuf *dbuf)
|
||||
{
|
||||
if ( dbuf->pos && dbuf->pos != dbuf->len ){
|
||||
dbuf->len -= dbuf->pos;
|
||||
memmove(dbuf->s, dbuf->s + dbuf->pos, dbuf->len );
|
||||
dbuf->pos = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int dbuf_get_lineno( DBuf *dbuf)
|
||||
{
|
||||
return dbuf->lineno;
|
||||
}
|
82
lib/dbuf.h
Normal file
82
lib/dbuf.h
Normal file
@ -0,0 +1,82 @@
|
||||
#ifndef DBUF_H
|
||||
#define DBUF_H
|
||||
|
||||
/*
|
||||
* dbuf.c - dynamic buffer interface
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <strmem.h>
|
||||
#include <appclass.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
/*
|
||||
* a function called to refill the buffer
|
||||
*/
|
||||
typedef char * (*Dbuf_Fill_FP)( AppClass *caller, AppClass *app );
|
||||
|
||||
/* merged with fdbuf flags */
|
||||
enum _DbufFlagsInfo {
|
||||
DB_STRIP_CR = ( 1 << 0 ), /* if set remove crlf - \r\n -> \n */
|
||||
DB_JOIN_LINES = ( 1 << 1 ), /* if set join lines - \\n -> ' ' */
|
||||
DB_KEEP_LF = ( 1 << 2 ), /* if set join lines - \\n -> ' ' */
|
||||
};
|
||||
|
||||
#define dbuf_check_size(x, y) if ( (y) >= (x)->size - 1) dbuf_renew( (x), (y) );
|
||||
|
||||
typedef struct _DBuf DBuf;
|
||||
|
||||
struct _DBuf {
|
||||
AppClass parent;
|
||||
char *s; /* pointer to string */
|
||||
char *ext_buf; /* pointer to external buffer */
|
||||
Dbuf_Fill_FP fill_func; /* application call function to fill the buffer */
|
||||
AppClass *caller; /* parameter to fill_func */
|
||||
int pos; /* use pos to get - position on string */
|
||||
int len; /* use len to fill - string len */
|
||||
int size; /* allocated size */
|
||||
int nRenew; /* count re-new */
|
||||
int flags; /* flags for get_line */
|
||||
int lineno; /* keep track of line number for get_line */
|
||||
};
|
||||
|
||||
DBuf *dbuf_new( int size, char *ext_buf );
|
||||
void dbuf_construct( DBuf *dbuf, int size, char *ext_buf);
|
||||
void dbuf_destroy(void *dbuf);
|
||||
|
||||
void dbuf_set_fill_cb( DBuf *dbuf, Dbuf_Fill_FP fill_func, AppClass *caller);
|
||||
void dbuf_renew( DBuf *dbuf, int newsize);
|
||||
|
||||
void dbuf_clear( DBuf *dest);
|
||||
void dbuf_set_flags( DBuf *dest, int flags);
|
||||
void dbuf_set_pos( DBuf *dest, int pos);
|
||||
int dbuf_is_empty( DBuf *dest);
|
||||
int dbuf_get_lineno( DBuf *dest);
|
||||
int dbuf_get_available( DBuf *dest);
|
||||
int dbuf_get_pos( DBuf *dest);
|
||||
int dbuf_get_size( DBuf *dest);
|
||||
void dbuf_set_len( DBuf *dest, int len);
|
||||
int dbuf_get_len( DBuf *dest);
|
||||
void dbuf_inc_len( DBuf *dest);
|
||||
void dbuf_copy( DBuf *dest, DBuf *src);
|
||||
void dbuf_ncopy( DBuf *dest, DBuf *src, int slen);
|
||||
void dbuf_ncat( DBuf *dest, DBuf *src, int slen);
|
||||
void dbuf_cat( DBuf *dest, DBuf *src);
|
||||
void dbuf_strncpy( DBuf *dest, char *src, int slen);
|
||||
void dbuf_strcpy( DBuf *dest, char *src);
|
||||
void dbuf_strncat( DBuf *dest, char *src, int slen);
|
||||
void dbuf_strcat( DBuf *dest, char *src);
|
||||
void dbuf_concat( DBuf *dest, ...);
|
||||
char *dbuf_next_char(DBuf *sbuf);
|
||||
int dbuf_get_char(DBuf *sbuf);
|
||||
char *dbuf_get_dupchars(DBuf *sbuf, int len);
|
||||
int dbuf_unget_char(DBuf *sbuf);
|
||||
int dbuf_unput_char(DBuf *sbuf);
|
||||
void dbuf_put_char( DBuf *dest, char c);
|
||||
char *dbuf_get_line(DBuf *dest, DBuf *src);
|
||||
void dbuf_vprintf( DBuf *dest, const char *format, va_list args );
|
||||
void dbuf_printf( DBuf *dest, const char *format, ...);
|
||||
void dbuf_move_beg( DBuf *dbuf);
|
||||
|
||||
#endif /* DBUF_H */
|
414
lib/dlist.c
Normal file
414
lib/dlist.c
Normal file
@ -0,0 +1,414 @@
|
||||
/*
|
||||
* dlist.c - A generic doubly linked list.
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <appclass.h>
|
||||
#include <dlist.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* DList(AppClass) Methods : A doubly linked list.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
static DList *dlist_new_node(AppClass * data);
|
||||
static void dlist_construct_node(DList * node, AppClass * data);
|
||||
|
||||
|
||||
static DList *dlist_new_node(AppClass * data)
|
||||
{
|
||||
DList *node;
|
||||
|
||||
node = app_new0(DList, 1);
|
||||
dlist_construct_node(node, data);
|
||||
app_class_overload_destroy((AppClass *) node, dlist_destroy_node);
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
static void dlist_construct_node(DList * node, AppClass * data)
|
||||
{
|
||||
app_class_construct((AppClass *) node);
|
||||
|
||||
node->prev = node;
|
||||
node->next = node;
|
||||
|
||||
node->data = data;
|
||||
}
|
||||
|
||||
void dlist_destroy_node(void *node)
|
||||
{
|
||||
DList *_node = (DList *) node;
|
||||
|
||||
if (_node == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_node->data) {
|
||||
app_class_unref(_node->data);
|
||||
}
|
||||
app_class_destroy(node);
|
||||
}
|
||||
|
||||
/** \brief Add a new node to the end of the list.
|
||||
*
|
||||
* If cmp argument is not NULL, use cmp() to see if node already exists and
|
||||
* don't add node if it exists.
|
||||
*
|
||||
* This function can unref data if not added, if asked by user (*res != 0).
|
||||
* The res variable is set to 1 if data is not added.
|
||||
*
|
||||
* head is modified only when the list is empty.
|
||||
* So it is safe to add node to an existing list.
|
||||
*/
|
||||
|
||||
DList *dlist_add(DList * head, AppClass * data, DListFP_Cmp cmp, int *res)
|
||||
{
|
||||
if (head == NULL) {
|
||||
/* The list is empty, make new node the head. */
|
||||
head = dlist_new_node(NULL); /* special head node */
|
||||
}
|
||||
DList *node = head->next;
|
||||
|
||||
/* Walk the list to find the end */
|
||||
|
||||
if (cmp) {
|
||||
while (node != head) {
|
||||
if ((*cmp) (node->data, data) == 0) {
|
||||
/* node already exists and we were asked to keep nodes unique */
|
||||
if (res) {
|
||||
if (*res) {
|
||||
app_class_unref(data); /* elem destroyed */
|
||||
}
|
||||
*res = 1; /* elem not added to the list */
|
||||
}
|
||||
return head;
|
||||
}
|
||||
node = node->next;
|
||||
}
|
||||
}
|
||||
/* reached the end - add at the tail */
|
||||
dlist_add_at(head->prev, data);
|
||||
if (res) {
|
||||
*res = 0; /* elem added to the list */
|
||||
}
|
||||
return head;
|
||||
}
|
||||
|
||||
/** \brief Add a new node after this node
|
||||
*/
|
||||
|
||||
DList *dlist_add_at(DList * node, AppClass * data)
|
||||
{
|
||||
DList *head = node;
|
||||
|
||||
if (head == NULL) {
|
||||
head = dlist_new_node(NULL); /* special head node */
|
||||
}
|
||||
|
||||
DList *newnode = dlist_new_node(data);
|
||||
|
||||
newnode->prev = head->next->prev;
|
||||
head->next->prev = newnode;
|
||||
newnode->next = head->next;
|
||||
head->next = newnode;
|
||||
|
||||
return head;
|
||||
}
|
||||
|
||||
/* add a node at the head */
|
||||
DList *dlist_add_head(DList * head, AppClass * data)
|
||||
{
|
||||
return dlist_add_at(head, data);
|
||||
}
|
||||
|
||||
/* add a node at the tail */
|
||||
DList *dlist_add_tail(DList * head, AppClass * data)
|
||||
{
|
||||
if ( ! head) {
|
||||
return dlist_add_at(head, data);
|
||||
}
|
||||
dlist_add_at(head->prev, data);
|
||||
return head;
|
||||
}
|
||||
|
||||
/*
|
||||
* remove node from list
|
||||
* free the node and data if not refed
|
||||
*/
|
||||
void dlist_remove(DList * node)
|
||||
{
|
||||
if (node) {
|
||||
node->prev->next = node->next;
|
||||
node->next->prev = node->prev;
|
||||
/* free the node and data */
|
||||
app_class_unref((AppClass *) node);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* get next data at head or tail
|
||||
* return data
|
||||
*/
|
||||
AppClass *dlist_get_data(DList * head, DList * node)
|
||||
{
|
||||
if (head && node != head) {
|
||||
return node->data;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* get next data at head or tail
|
||||
* remove node from list
|
||||
* return data
|
||||
* caller must call app_class_unref to free the data
|
||||
*/
|
||||
AppClass *dlist_get_data_rm_node(DList * head, DList * node)
|
||||
{
|
||||
AppClass *data = dlist_get_data(head, node);
|
||||
|
||||
if (data) {
|
||||
app_class_ref(data);
|
||||
dlist_remove(node);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/* get next data at head */
|
||||
AppClass *dlist_dequeue_head(DList * head)
|
||||
{
|
||||
if (head) {
|
||||
return dlist_get_data_rm_node(head, head->next);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* get next data at tail */
|
||||
AppClass *dlist_dequeue_tail(DList * head)
|
||||
{
|
||||
if (head) {
|
||||
return dlist_get_data_rm_node(head, head->prev);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/** \brief Conditionally delete a node from the list.
|
||||
*
|
||||
* Delete a node from the list if the node's data matches the specified
|
||||
* data. Returns the head of the modified list.
|
||||
*/
|
||||
|
||||
DList *dlist_delete(DList * head, AppClass * data, DListFP_Cmp cmp)
|
||||
{
|
||||
if (cmp == NULL) {
|
||||
msg_fatal("compare function not specified");
|
||||
}
|
||||
if (head == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
DList *node = head->next;
|
||||
|
||||
while (node != head) {
|
||||
if ((*cmp) (node->data, data) == 0) {
|
||||
/* remove the node from the list and also unref the node */
|
||||
dlist_remove(node);
|
||||
|
||||
return head;
|
||||
}
|
||||
/* move on to next node */
|
||||
node = node->next;
|
||||
}
|
||||
/* if we get here, data wasn't found, just return original head */
|
||||
return head;
|
||||
}
|
||||
|
||||
void dlist_delete_list(DList ** head)
|
||||
{
|
||||
if ( *head ){
|
||||
if ( (*head)->next == *head ){
|
||||
/* destroy special node as well */
|
||||
app_class_unref((AppClass *) *head );
|
||||
} else {
|
||||
dlist_delete_all(*head);
|
||||
}
|
||||
*head = NULL;
|
||||
}
|
||||
}
|
||||
/** \brief Blow away the entire list.
|
||||
* Warning: after this function we must not reuse the head without
|
||||
* setting it to NULL. Use dlist_delete_list instead.
|
||||
*/
|
||||
|
||||
void dlist_delete_all(DList * head)
|
||||
{
|
||||
if (head == NULL) {
|
||||
return;
|
||||
}
|
||||
DList *node = head->next;
|
||||
DList *next;
|
||||
|
||||
while (node != head) {
|
||||
next = node->next;
|
||||
|
||||
app_class_unref((AppClass *) node);
|
||||
node = next;
|
||||
}
|
||||
/* destroy special node as well */
|
||||
app_class_unref((AppClass *) node);
|
||||
}
|
||||
|
||||
/** \brief Lookup an item in the list.
|
||||
*
|
||||
* Walk the list pointed to by head and return a pointer to the data if
|
||||
* found. If not found, return NULL.
|
||||
*
|
||||
* \param head The head of the list to be iterated.
|
||||
* \param data The data to be passed to the func when it is applied.
|
||||
* \param cmp A function to be used for comparing the items.
|
||||
*
|
||||
* \return A pointer to the data found, or NULL if not found.
|
||||
*/
|
||||
|
||||
AppClass *dlist_lookup(DList * head, AppClass * data, DListFP_Cmp cmp)
|
||||
{
|
||||
if (head == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
DList *node = head->next;
|
||||
|
||||
if (cmp == NULL) {
|
||||
msg_fatal("compare function not specified");
|
||||
}
|
||||
|
||||
while (node != head) {
|
||||
if ((*cmp) (node->data, data) == 0) {
|
||||
return node->data;
|
||||
}
|
||||
node = node->next;
|
||||
}
|
||||
|
||||
/* If we get here, no node was found, return NULL. */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* a simple node compare function for the iterator.
|
||||
*/
|
||||
|
||||
int dlist_iterator_cmp(AppClass * n1, AppClass * n2)
|
||||
{
|
||||
/*
|
||||
* Since this is only used in the iterator, we are guaranteed that it is
|
||||
* safe to compare data pointers because both n1 and n2 came from the
|
||||
* list.
|
||||
*/
|
||||
|
||||
return (int) (n1 - n2);
|
||||
}
|
||||
|
||||
/** \brief Iterate over all elements of the list.
|
||||
*
|
||||
* For each element, call the user supplied iterator function and pass it the
|
||||
* node data and the user_data. If the iterator function return non-zero,
|
||||
* remove the node from the list.
|
||||
*
|
||||
* \param head The head of the list to be iterated.
|
||||
* \param func The function to be applied.
|
||||
* \param user_data The data to be passed to the func when it is applied.
|
||||
*
|
||||
* \return An int : return what the function return
|
||||
* func return:
|
||||
* - 0 = OK all elements visited - return 0
|
||||
* - DLIST_RM_NODE = remove the node, stop and return DLIST_RM_NODE
|
||||
* - DLIST_RM_NODE_CONT = remove the node and continue the loop
|
||||
* - any other value = stop the loop and return the value
|
||||
*/
|
||||
|
||||
int dlist_iterator(DList * head, DListFP_Iter func, void *user_data)
|
||||
{
|
||||
if (func == NULL) {
|
||||
msg_fatal("no iteration func supplied");
|
||||
}
|
||||
if (head == NULL) {
|
||||
return 0;
|
||||
}
|
||||
DList *node = head->next;
|
||||
|
||||
while (node != head) {
|
||||
/*
|
||||
* WARNING: if next = node->next is placed before the func,
|
||||
* we can suppress the node but we may have problem adding to the list
|
||||
* WARNING: if next = node->next is placed after the func
|
||||
* we have problem if node is suppressed by the func,
|
||||
* but no problen to add to the list.
|
||||
*/
|
||||
int ret = (*func) (node->data, user_data);
|
||||
/* placed here ! : so NEVER destroy the node in the function */
|
||||
/* let the following code do the destroy */
|
||||
DList *next = node->next; /* must be before remove node */
|
||||
|
||||
if (ret) {
|
||||
/* remove node also unref the node + node->data */
|
||||
if (ret == DLIST_RM_NODE || ret == DLIST_RM_NODE_CONT) {
|
||||
dlist_remove(node);
|
||||
}
|
||||
if (ret != DLIST_RM_NODE_CONT) {
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
node = next;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* return number of nodes in list
|
||||
*/
|
||||
int dlist_get_nelem(DList * head)
|
||||
{
|
||||
if (dlist_isempty(head)) {
|
||||
return 0;
|
||||
}
|
||||
DList *node = head->next;
|
||||
int n = 0;
|
||||
|
||||
while (node != head) {
|
||||
n++;
|
||||
node = node->next;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
/*
|
||||
* get a member of the list at index
|
||||
*/
|
||||
AppClass *dlist_get_ndata(DList * head, int n)
|
||||
{
|
||||
if (head == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
DList *node = head->next;
|
||||
int i = 0;
|
||||
|
||||
while (node != head) {
|
||||
if (i == n) {
|
||||
return node->data;
|
||||
}
|
||||
i++;
|
||||
node = node->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
92
lib/dlist.h
Normal file
92
lib/dlist.h
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* dlist.h - A generic doubly linked list.
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
/*
|
||||
* *----------------------------------------*
|
||||
* | |
|
||||
* o--o---o |
|
||||
* | prev |>-----------------------------* |
|
||||
* | next |>------* *-----------* | |
|
||||
* o--o---o | | | | |
|
||||
* | o--o---o | o-o--o-o |
|
||||
* | | next |>--* | next |>--*
|
||||
* *-------<| prev | *-------<| prev |
|
||||
* o--o---o | o------o
|
||||
* | |
|
||||
* *--------*
|
||||
* head node1 ... noden
|
||||
*/
|
||||
|
||||
#ifndef APP_DLIST_H
|
||||
#define APP_DLIST_H
|
||||
|
||||
#include <appclass.h>
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* DList(AppClass) Methods : A doubly linked list.
|
||||
* A special node is created to hold a pointer to the first node and
|
||||
* the last node.
|
||||
* The list acts as Generic FIFO First In First Out.
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#define dlist_isempty(head) ((head) == NULL || (head)->next == (head))
|
||||
#define dlist_getfirst(head) ((head)->next)
|
||||
#define dlist_getlast(head) ((head)->prev)
|
||||
|
||||
/*
|
||||
* return value for dlist_iterator
|
||||
*/
|
||||
#define DLIST_RM_NODE 0x7fff0000 /* remove node and return */
|
||||
#define DLIST_RM_NODE_CONT 0x7fff0001 /* remove node and continue */
|
||||
#define DLIST_ITER_STOP 0x7fff0002 /* end the iteration loop */
|
||||
#define DLIST_CONT 0 /* continue iteration loop */
|
||||
|
||||
typedef struct _DList DList;
|
||||
|
||||
typedef int (*DListFP_Cmp) (AppClass * d1, AppClass * d2);
|
||||
typedef int (*DListFP_Iter) (AppClass * data, void *user_data);
|
||||
|
||||
|
||||
struct _DList {
|
||||
AppClass parent;
|
||||
struct _DList *prev;
|
||||
struct _DList *next;
|
||||
AppClass *data;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
|
||||
extern void dlist_destroy_node(void *node);
|
||||
|
||||
extern DList *dlist_add(DList * head, AppClass * data, DListFP_Cmp cmp,
|
||||
int *res);
|
||||
DList *dlist_add_at(DList * node, AppClass * data);
|
||||
DList *dlist_add_head(DList * head, AppClass * data);
|
||||
DList *dlist_add_tail(DList * head, AppClass * data);
|
||||
void dlist_remove(DList * node);
|
||||
AppClass *dlist_get_data(DList * head, DList * node);
|
||||
AppClass *dlist_get_data_rm_node(DList * head, DList * node);
|
||||
AppClass *dlist_dequeue_head(DList * head);
|
||||
AppClass *dlist_dequeue_tail(DList * head);
|
||||
DList *dlist_delete(DList * head, AppClass * data, DListFP_Cmp cmp);
|
||||
void dlist_delete_all(DList * head);
|
||||
void dlist_delete_list(DList ** head);
|
||||
AppClass *dlist_lookup(DList * head, AppClass * data,
|
||||
DListFP_Cmp cmp);
|
||||
int dlist_iterator(DList * head, DListFP_Iter func,
|
||||
void *user_data);
|
||||
int dlist_iterator_cmp(AppClass * n1, AppClass * n2);
|
||||
AppClass *dlist_get_ndata(DList * head, int n);
|
||||
|
||||
int dlist_get_nelem(DList * head);
|
||||
int dlist_charPtr_cmp(AppClass * n1, AppClass * n2);
|
||||
|
||||
#endif /* APP_DLIST_H */
|
81
lib/dliststr.c
Normal file
81
lib/dliststr.c
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* dliststr.c - a list of StrObj's
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <msglog.h>
|
||||
#include <dliststr.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/** \brief Add a new node to the end of the list. */
|
||||
|
||||
DList *dlist_str_add( DList *head, char *pstr, DListFP_Cmp cmp, int *res )
|
||||
{
|
||||
|
||||
StrObj *strobj = str_new( pstr );
|
||||
return dlist_add( head, (AppClass *) strobj, cmp, res );
|
||||
}
|
||||
|
||||
/** \brief Add a new node at the head of the list. */
|
||||
|
||||
DList *dlist_str_add_head( DList *head, char *pstr )
|
||||
{
|
||||
StrObj *strobj = str_new( pstr );
|
||||
return dlist_add_head( head, (AppClass *) strobj );
|
||||
}
|
||||
|
||||
/** \brief Add a new node at the tail of the list. */
|
||||
|
||||
DList *dlist_str_add_tail( DList *head, char *pstr )
|
||||
{
|
||||
StrObj *strobj = str_new( pstr );
|
||||
return dlist_add_tail( head, (AppClass *) strobj );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* get a member of the list at index
|
||||
*/
|
||||
char *dlist_str_node_get_data(DList *node)
|
||||
{
|
||||
if ( node ) {
|
||||
StrObj *strobj = (StrObj *) node->data;
|
||||
return strobj->pstr;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* get a member of the list at index
|
||||
*/
|
||||
char *dlist_str_get_ndata(DList *head, int index)
|
||||
{
|
||||
StrObj *strobj;
|
||||
if ( ( strobj = (StrObj *) dlist_get_ndata(head, index)) ) {
|
||||
return strobj->pstr;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
DList *dlist_str_set_ndata( DList *head, char *nstr, int index)
|
||||
{
|
||||
StrObj *strobj;
|
||||
|
||||
if ( ( strobj = (StrObj *) dlist_get_ndata(head, index)) ) {
|
||||
str_replace( strobj, nstr);
|
||||
} else {
|
||||
strobj = str_new(nstr);
|
||||
head = dlist_add_tail( head, (AppClass *) strobj );
|
||||
}
|
||||
return head;
|
||||
}
|
||||
|
||||
|
25
lib/dliststr.h
Normal file
25
lib/dliststr.h
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef DLISTSTR_H
|
||||
#define DLISTSTR_H
|
||||
|
||||
/*
|
||||
* dliststr.h - function to handle string in DList
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <strobj.h>
|
||||
#include <dlist.h>
|
||||
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
DList *dlist_str_add( DList *head, char *pstr, DListFP_Cmp cmp, int *res );
|
||||
DList *dlist_str_add_head( DList *head, char *pstr );
|
||||
DList *dlist_str_add_tail( DList *head, char *pstr );
|
||||
|
||||
char *dlist_str_node_get_data(DList *node);
|
||||
char *dlist_str_get_ndata(DList *head, int index);
|
||||
DList *dlist_str_set_ndata( DList *head, char *nstr, int index);
|
||||
|
||||
#endif /* DLISTSTR_H */
|
45
lib/duprintf.c
Normal file
45
lib/duprintf.c
Normal file
@ -0,0 +1,45 @@
|
||||
/**
|
||||
* \file duprintf.c
|
||||
* \brief strdup printf function
|
||||
*
|
||||
* stolen from glib
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <duprintf.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
char *app_strdup_vprintf(const char *format, va_list args)
|
||||
{
|
||||
char *string = NULL;
|
||||
|
||||
/* vasprintf returns malloc-allocated memory */
|
||||
int len = vasprintf(&string, format, args);
|
||||
|
||||
if (len < 0) {
|
||||
string = NULL;
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
char *app_strdup_printf(const char *format, ...)
|
||||
{
|
||||
char *buffer;
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
buffer = app_strdup_vprintf(format, args);
|
||||
va_end(args);
|
||||
|
||||
return buffer;
|
||||
}
|
18
lib/duprintf.h
Normal file
18
lib/duprintf.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef DUPRINTF_H
|
||||
#define DUPRINTF_H
|
||||
|
||||
/*
|
||||
* duprintf.h - Interface to app_strdup_printf
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <strmem.h>
|
||||
#include <appmem.h>
|
||||
|
||||
char *app_strdup_vprintf(const char *format, va_list args);
|
||||
char *app_strdup_printf(const char *format, ...);
|
||||
|
||||
#endif /* DUPRINTF_H */
|
148
lib/fdbuf.c
Normal file
148
lib/fdbuf.c
Normal file
@ -0,0 +1,148 @@
|
||||
/*
|
||||
* fdbuf.c - file dynamic buffer functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#define _GNU_SOURCE /* stdio.h fseeko */
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <fdbuf.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
/** \brief Allocates memory for a new FDBuf object. */
|
||||
|
||||
FDBuf *
|
||||
fdbuf_new( char *filename, char *mode, int size)
|
||||
{
|
||||
FDBuf *fdbuf;
|
||||
|
||||
fdbuf = app_new0(FDBuf, 1 );
|
||||
fdbuf_construct( fdbuf, filename, mode, size);
|
||||
app_class_overload_destroy( (AppClass *) fdbuf, fdbuf_destroy );
|
||||
|
||||
return fdbuf;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the FDBuf object. */
|
||||
|
||||
void
|
||||
fdbuf_construct( FDBuf *fdbuf, char *filename, char *mode, int size)
|
||||
{
|
||||
dbuf_construct( (DBuf *) fdbuf, size, NULL );
|
||||
fdbuf->filename = app_strdup(filename);
|
||||
fdbuf->flags = FDB_STRIP_CR; /* remove cr by default */
|
||||
fdbuf->fd = fopen( filename, mode );
|
||||
if ( fdbuf->fd == NULL ) {
|
||||
msg_error(_("Can't open file '%s'"), filename );
|
||||
fdbuf->status = -1;
|
||||
}
|
||||
}
|
||||
|
||||
/** \brief Destructor for the FDBuf object. */
|
||||
|
||||
void fdbuf_destroy( void *fdbuf)
|
||||
{
|
||||
FDBuf *this = (FDBuf *) fdbuf;
|
||||
|
||||
if ( fdbuf == NULL ) {
|
||||
return;
|
||||
}
|
||||
app_free(this->filename);
|
||||
if ( this->fd ) {
|
||||
fclose( this->fd );
|
||||
}
|
||||
|
||||
dbuf_destroy( fdbuf );
|
||||
}
|
||||
|
||||
/*
|
||||
* remove cr in crlf
|
||||
*/
|
||||
|
||||
void fdbuf_set_flags(FDBuf *dest, int flags)
|
||||
{
|
||||
dest->flags = flags;
|
||||
}
|
||||
|
||||
char *fdbuf_get_line(FDBuf *dest)
|
||||
{
|
||||
int c;
|
||||
int lastc = 0;
|
||||
|
||||
dbuf_clear((DBuf *) dest);
|
||||
while ((c = fgetc(dest->fd)) >= 0) {
|
||||
if ( c == '\n' && lastc == '\\' && (dest->flags & FDB_JOIN_LINES) ) {
|
||||
dbuf_unput_char( (DBuf *) dest ); /* remove lastc */
|
||||
c = ' ';
|
||||
dest->lineno++;
|
||||
}
|
||||
if (c == '\n' || c == 0 ) {
|
||||
break;
|
||||
}
|
||||
dbuf_put_char( (DBuf *) dest, c);
|
||||
lastc = c;
|
||||
}
|
||||
if ( (dest->flags & FDB_STRIP_CR) && c == '\n' && lastc == '\r' ) {
|
||||
dbuf_unput_char( (DBuf *) dest );
|
||||
}
|
||||
if ( c < 0 && dbuf_get_len((DBuf *) dest ) == 0) {
|
||||
return NULL;
|
||||
}
|
||||
dest->lineno++;
|
||||
return ((DBuf *) dest)->s;
|
||||
}
|
||||
|
||||
/*
|
||||
* read stream in DBuf at start
|
||||
*/
|
||||
|
||||
int fdbuf_read(FDBuf *dest, int nbytes )
|
||||
{
|
||||
int n;
|
||||
DBuf *dbuf = (DBuf *) dest;
|
||||
|
||||
dbuf_check_size( dbuf, nbytes);
|
||||
|
||||
n = fread( dbuf->s, 1, nbytes, dest->fd );
|
||||
|
||||
dbuf->len = 0;
|
||||
if ( n > 0 ){
|
||||
dbuf->len = n;
|
||||
}
|
||||
*(dbuf->s + dbuf->len) = 0;
|
||||
return n;
|
||||
}
|
||||
|
||||
void fdbuf_rewind( FDBuf *fdbuf)
|
||||
{
|
||||
fdbuf->lineno = 0;
|
||||
if (fseeko(fdbuf->fd, 0L, SEEK_SET) < 0) {
|
||||
msg_fatal(_("Seek error '%s': %s"), fdbuf->filename, strerror(errno) );
|
||||
}
|
||||
}
|
||||
|
||||
int fdbuf_fseeko( FDBuf *fdbuf, off_t offset, int whence)
|
||||
{
|
||||
return fseeko(fdbuf->fd, offset, whence);
|
||||
}
|
||||
|
||||
off_t fdbuf_tello( FDBuf *fdbuf)
|
||||
{
|
||||
return ftello(fdbuf->fd);
|
||||
}
|
||||
|
||||
int fdbuf_get_lineno( FDBuf *fdbuf)
|
||||
{
|
||||
return fdbuf->lineno;
|
||||
}
|
||||
|
||||
char *fdbuf_get_buffer( FDBuf *fdbuf )
|
||||
{
|
||||
return ((DBuf *) fdbuf)->s;
|
||||
}
|
43
lib/fdbuf.h
Normal file
43
lib/fdbuf.h
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef FILE_DBUF_H
|
||||
#define FILE_DBUF_H
|
||||
|
||||
/*
|
||||
* fdbuf.c - file dynamic buffer interface
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#define _GNU_SOURCE /* off_t */
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <dbuf.h>
|
||||
|
||||
enum _FDbufFlagsInfo {
|
||||
FDB_STRIP_CR = ( 1 << 0 ), /* if set remove crlf - \r\n -> \n */
|
||||
FDB_JOIN_LINES = ( 1 << 1 ), /* if set join lines - \\n -> ' ' */
|
||||
};
|
||||
|
||||
typedef struct _FDBuf FDBuf;
|
||||
|
||||
struct _FDBuf {
|
||||
DBuf parent;
|
||||
char *filename;
|
||||
FILE *fd; /* filedesc */
|
||||
int flags; /* see _FDbufFlagsInfo */
|
||||
int lineno; /* line number */
|
||||
int status; /* op status */
|
||||
};
|
||||
|
||||
FDBuf *fdbuf_new( char *filename, char *mode, int size);
|
||||
void fdbuf_construct( FDBuf *fdbuf, char *filename, char *mode, int size);
|
||||
void fdbuf_destroy(void *fdbuf);
|
||||
char *fdbuf_get_line(FDBuf *dest);
|
||||
void fdbuf_set_flags(FDBuf *dest, int flags);
|
||||
void fdbuf_rewind( FDBuf *fdbuf);
|
||||
int fdbuf_get_lineno( FDBuf *fdbuf);
|
||||
void fdbuf_set_lineno( FDBuf *fdbuf, int lineno);
|
||||
int fdbuf_read(FDBuf *dest, int nbytes );
|
||||
off_t fdbuf_tello( FDBuf *fdbuf);
|
||||
int fdbuf_fseeko( FDBuf *fdbuf, off_t offset, int whence);
|
||||
char *fdbuf_get_buffer( FDBuf *fdbuf );
|
||||
|
||||
#endif /* FILE_DBUF_H */
|
95
lib/fdsel.c
Normal file
95
lib/fdsel.c
Normal file
@ -0,0 +1,95 @@
|
||||
/*
|
||||
* fdsel.c - file descriptor select object. Use this if you don't have a loop
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <sys/select.h>
|
||||
|
||||
#include <fdsel.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
*** \brief Allocates memory for a new FdescSelect object.
|
||||
*/
|
||||
|
||||
FdescSelect *fdsel_new( int fd, long sec, long usec )
|
||||
{
|
||||
FdescSelect *fds;
|
||||
|
||||
fds = app_new0(FdescSelect, 1);
|
||||
fdsel_construct( fds, fd, sec, usec );
|
||||
app_class_overload_destroy( (AppClass *) fds, fdsel_destroy );
|
||||
return fds;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the FdescSelect object. */
|
||||
|
||||
void fdsel_construct( FdescSelect *fds, int fd, long sec, long usec)
|
||||
{
|
||||
app_class_construct( (AppClass *) fds );
|
||||
|
||||
fds->fd = fd;
|
||||
fdsel_set_timeout(fds, sec, usec);
|
||||
}
|
||||
|
||||
/** \brief Destructor for the FdescSelect object. */
|
||||
|
||||
void fdsel_destroy(void *fds)
|
||||
{
|
||||
// FdescSelect *this = (FdescSelect *) fds;
|
||||
|
||||
if (fds == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
app_class_destroy( fds );
|
||||
}
|
||||
|
||||
void fdsel_set_fd(FdescSelect *fds, int fd)
|
||||
{
|
||||
fds->fd = fd;
|
||||
}
|
||||
|
||||
void fdsel_set_timeout(FdescSelect *fds, long sec, long usec)
|
||||
{
|
||||
fds->timeout_sec = sec;
|
||||
fds->timeout_usec = usec;
|
||||
}
|
||||
|
||||
int fdsel_is_ready(FdescSelect *fds, int check)
|
||||
{
|
||||
int i = 0;
|
||||
fd_set fdset ;
|
||||
int nfds;
|
||||
struct timeval sel_timeout ;
|
||||
|
||||
sel_timeout.tv_sec = 0 ;
|
||||
sel_timeout.tv_usec = 0 ;
|
||||
if ( check & FDSEL_CHECK_TIMEOUT ) {
|
||||
sel_timeout.tv_sec = fds->timeout_sec ;
|
||||
sel_timeout.tv_usec = fds->timeout_usec ;
|
||||
}
|
||||
|
||||
|
||||
FD_ZERO(&fdset) ;
|
||||
FD_SET(fds->fd, &fdset) ;
|
||||
nfds = fds->fd + 1;
|
||||
|
||||
if ( check & FDSEL_CHECK_READ) {
|
||||
i = select(nfds, &fdset, NULL, NULL, &sel_timeout ) ;
|
||||
} else if ( check & FDSEL_CHECK_WRITE) {
|
||||
i = select(nfds, NULL, &fdset, NULL, &sel_timeout ) ;
|
||||
}
|
||||
if ( i == -1 ) {
|
||||
msg_error(_("select error '%s'"), strerror(errno) ) ;
|
||||
} else if ( i > 0 ) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
38
lib/fdsel.h
Normal file
38
lib/fdsel.h
Normal file
@ -0,0 +1,38 @@
|
||||
#ifndef FDSEL_H
|
||||
#define FDSEL_H
|
||||
|
||||
/*
|
||||
* fdsel.h - file descriptor select object.
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <appclass.h>
|
||||
|
||||
enum _FdselCheckInfo {
|
||||
FDSEL_CHECK_READ = 1 << 0, /* is socket ready for read ? */
|
||||
FDSEL_CHECK_WRITE = 1 << 1, /* is socket ready for write ? */
|
||||
FDSEL_CHECK_TIMEOUT = 1 << 2, /* set a timeout or not */
|
||||
};
|
||||
|
||||
typedef struct _FdescSelect FdescSelect;
|
||||
|
||||
struct _FdescSelect {
|
||||
AppClass parent;
|
||||
long timeout_sec; /* timeout seconds */
|
||||
long timeout_usec; /* timeout microseconds */
|
||||
int fd; /* file descriptor */
|
||||
};
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
FdescSelect *fdsel_new( int fd, long sec, long usec );
|
||||
void fdsel_construct( FdescSelect *fds, int fd, long sec, long usec );
|
||||
void fdsel_destroy(void *fds);
|
||||
|
||||
void fdsel_set_fd(FdescSelect *fds, int fd);
|
||||
void fdsel_set_timeout(FdescSelect *fds, long sec, long usec);
|
||||
int fdsel_is_ready(FdescSelect *fds, int check);
|
||||
|
||||
#endif /* FDSEL_H */
|
309
lib/fileformat.c
Normal file
309
lib/fileformat.c
Normal file
@ -0,0 +1,309 @@
|
||||
/*
|
||||
* fileformat.c - fileformat interface functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <spicestream.h>
|
||||
#include <fileformat.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
#define SS_NOT_USE_REGEX 0
|
||||
#define SS_USE_REGEX 1
|
||||
|
||||
extern int sf_rdhdr_hsascii( SpiceStream *ss );
|
||||
extern int sf_rdhdr_hsbin( SpiceStream *ss );
|
||||
extern int sf_rdhdr_cazm( SpiceStream *ss );
|
||||
extern int sf_rdhdr_s3raw( SpiceStream *ss );
|
||||
extern int sf_rdhdr_s2raw( SpiceStream *ss );
|
||||
extern int sf_rdhdr_ascii( SpiceStream *ss );
|
||||
extern int sf_rdhdr_nsout( SpiceStream *ss );
|
||||
extern int sf_rdhdr_wav( SpiceStream *ss );
|
||||
|
||||
extern int sf_readrow_ascii( SpiceStream *ss );
|
||||
extern int sf_readrow_hspice( SpiceStream *ss );
|
||||
extern int sf_readrow_nsout( SpiceStream *ss );
|
||||
extern int sf_readrow_s3raw( SpiceStream *ss );
|
||||
extern int sf_readrow_s2raw( SpiceStream *ss );
|
||||
extern int sf_readrow_wav( SpiceStream *ss );
|
||||
|
||||
extern int sf_write_file_ascii( FILE *fd, WaveTable *wt, char *fmt );
|
||||
extern int sf_write_file_nsout( FILE *fd, WaveTable *wt, char *fmt );
|
||||
extern int sf_write_file_hsascii( FILE *fd, WaveTable *wt, char *fmt );
|
||||
extern int sf_write_file_s3ascii( FILE *fd, WaveTable *wt, char *fmt );
|
||||
extern int sf_write_file_s2raw( FILE *fd, WaveTable *wt, char *fmt );
|
||||
extern int sf_write_file_wav( FILE *fd, WaveTable *wt, char *fmt );
|
||||
|
||||
char *hspivepat[] = {
|
||||
"tr[0-9]",
|
||||
"sw[0-9]",
|
||||
"ac[0-9]",
|
||||
NULL
|
||||
};
|
||||
|
||||
char *cazmpat[] = {
|
||||
"BNW]",
|
||||
NULL
|
||||
};
|
||||
|
||||
char *spice3pat[] = {
|
||||
"raw",
|
||||
NULL
|
||||
};
|
||||
|
||||
char *spice2pat[] = {
|
||||
"rawspice",
|
||||
NULL
|
||||
};
|
||||
|
||||
char *nsoutpat[] = {
|
||||
"out",
|
||||
NULL
|
||||
};
|
||||
|
||||
char *wavpat[] = {
|
||||
"wav",
|
||||
NULL
|
||||
};
|
||||
|
||||
char *asciipat[] = {
|
||||
"asc",
|
||||
"acs",
|
||||
"ascii",
|
||||
"dat",
|
||||
NULL
|
||||
};
|
||||
|
||||
static FileFormat format_tab[] = {
|
||||
{ "hsascii", "\\.(tr|sw|ac)[0-9]$", NULL,
|
||||
sf_rdhdr_hsascii, sf_readrow_hspice, sf_write_file_hsascii,
|
||||
hspivepat },
|
||||
{ "hsbinary", "\\.(tr|sw|ac)[0-9]$", NULL,
|
||||
sf_rdhdr_hsbin, sf_readrow_hspice, NULL,
|
||||
hspivepat },
|
||||
{ "cazm", "\\.[BNW]$", NULL,
|
||||
sf_rdhdr_cazm, sf_readrow_ascii, NULL,
|
||||
cazmpat },
|
||||
{ "spice3raw", "\\.raw$", NULL,
|
||||
sf_rdhdr_s3raw, sf_readrow_s3raw, sf_write_file_s3ascii,
|
||||
spice3pat },
|
||||
{ "spice2raw", "\\.rawspice$", NULL,
|
||||
sf_rdhdr_s2raw , sf_readrow_s2raw, sf_write_file_s2raw,
|
||||
spice2pat },
|
||||
{ "nsout", "\\.out$" , NULL,
|
||||
sf_rdhdr_nsout, sf_readrow_nsout, sf_write_file_nsout,
|
||||
nsoutpat },
|
||||
{ "wav", "\\.wav$" , NULL,
|
||||
sf_rdhdr_wav, sf_readrow_wav, sf_write_file_wav,
|
||||
wavpat },
|
||||
{ "ascii", "\\.(asc|acs|ascii|dat)$", NULL,
|
||||
sf_rdhdr_ascii, sf_readrow_ascii, sf_write_file_ascii,
|
||||
asciipat },
|
||||
};
|
||||
static const int NFormats = sizeof(format_tab) / sizeof(format_tab[0]);
|
||||
|
||||
void fileformat_cleanup(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NFormats; i++) {
|
||||
if ( format_tab[i].creg) {
|
||||
g_free(format_tab[i].creg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static regex_t *regexp_compile(char *str)
|
||||
{
|
||||
int err;
|
||||
char ebuf[128];
|
||||
regex_t *creg;
|
||||
|
||||
creg = g_new(regex_t, 1);
|
||||
err = regcomp(creg, str, REG_NOSUB | REG_EXTENDED);
|
||||
if (err) {
|
||||
regerror(err, creg, ebuf, sizeof(ebuf));
|
||||
msg_fatal(_("internal error (in regexp %s):\n %s"), str, ebuf );
|
||||
}
|
||||
return creg;
|
||||
}
|
||||
|
||||
|
||||
|
||||
char *fileformat_get_next_name( int *i, int option )
|
||||
{
|
||||
int idx = ++(*i);
|
||||
|
||||
if ( idx >= 0 && idx < NFormats ){
|
||||
if ( (option == FILE_WRITE_OP && format_tab[*i].wrFilefunc) ||
|
||||
(option == FILE_READ_OP && format_tab[*i].rdRowfunc) ||
|
||||
option == 0 ){
|
||||
return format_tab[*i].name;
|
||||
}
|
||||
} else {
|
||||
*i = -1;
|
||||
}
|
||||
if ( idx == NFormats && option == FILE_READ_OP ){
|
||||
return "auto";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int fileformat_get_index(char *format )
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0 ; i < NFormats; i++) {
|
||||
if ( app_strcmp(format, format_tab[i].name) == 0) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
ReadRowFP fileformat_get_read_func(int index)
|
||||
{
|
||||
if ( index < 0 ) {
|
||||
return NULL;
|
||||
}
|
||||
return format_tab[index].rdRowfunc;
|
||||
}
|
||||
|
||||
ReadRowFP fileformat_get_readhdr_func(int index)
|
||||
{
|
||||
if ( index < 0 ) {
|
||||
return NULL;
|
||||
}
|
||||
return format_tab[index].rdHeaderfunc;
|
||||
}
|
||||
|
||||
WriteFileFP fileformat_get_write_func(int index)
|
||||
{
|
||||
if ( index < 0 ) {
|
||||
return NULL;
|
||||
}
|
||||
return format_tab[index].wrFilefunc;
|
||||
}
|
||||
|
||||
char **fileformat_get_patterns(int index)
|
||||
{
|
||||
if ( index < 0 ) {
|
||||
return NULL;
|
||||
}
|
||||
return format_tab[index].globlist;
|
||||
}
|
||||
|
||||
int fileformat_try_format( SpiceStream *ss, int index )
|
||||
{
|
||||
int ret = (format_tab[index].rdHeaderfunc)(ss);
|
||||
|
||||
if ( ret <= 0) {
|
||||
fdbuf_rewind(ss->linebuf);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int fileformat_find_format( SpiceStream *ss, char *filename, int use_regex)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
for (i = 0; i < NFormats; i++) {
|
||||
if ( ! format_tab[i].creg) {
|
||||
format_tab[i].creg = regexp_compile(format_tab[i].fnrexp);
|
||||
}
|
||||
if (use_regex == 0 || regexec(format_tab[i].creg, filename, 0, NULL, 0) == 0) {
|
||||
ret = fileformat_try_format( ss, i);
|
||||
if (ret == 1) {
|
||||
msg_dbg("%s: read with format \"%s\"", filename, format_tab[i].name);
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* return >= 0 : index of format if successfull read of the header
|
||||
* or -1 if error
|
||||
*/
|
||||
int fileformat_read_header( SpiceStream *ss)
|
||||
{
|
||||
int i;
|
||||
char *format = ss->format;
|
||||
|
||||
if ( format && *format == 0 ) {
|
||||
format = NULL;
|
||||
}
|
||||
|
||||
if ( format && app_strcmp(format, "auto" ) ){
|
||||
if ( app_strcmp(format, "hspice") == 0 ) {
|
||||
i = fileformat_get_index("hsaccii");
|
||||
if ( i >= 0 && fileformat_try_format( ss, i ) == 1 ){
|
||||
return i;
|
||||
}
|
||||
i = fileformat_get_index("hsbinary");
|
||||
if ( i >= 0 && fileformat_try_format( ss, i ) == 1 ){
|
||||
return i;
|
||||
}
|
||||
} else {
|
||||
i = fileformat_get_index(format);
|
||||
if ( i >= 0 && fileformat_try_format( ss, i ) == 1 ){
|
||||
return i;
|
||||
} else {
|
||||
msg_error(_("%s:\n is not a \"%s\" Format."),
|
||||
ss->filename, format);
|
||||
}
|
||||
}
|
||||
i = -1;
|
||||
} else {
|
||||
/* try to guess format from filename */
|
||||
i = fileformat_find_format( ss, ss->filename, SS_USE_REGEX );
|
||||
if ( i < 0) {
|
||||
msg_dbg("%s: couldn't guess a format from filename suffix.", ss->filename);
|
||||
i = fileformat_find_format( ss, ss->filename, SS_NOT_USE_REGEX );
|
||||
if ( i < 0 ) {
|
||||
msg_error(_("%s: couldn't read with any format"), ss->filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
int fileformat_file_write( WaveTable *wt, char *filename, char *format, char *fmt)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
if ( format == NULL ) {
|
||||
format = "ascii";
|
||||
}
|
||||
if ((i = fileformat_get_index(format)) < 0 ) {
|
||||
msg_error( _("Can't find format '%s'"), format );
|
||||
return -1;
|
||||
}
|
||||
WriteFileFP write_func = fileformat_get_write_func(i);
|
||||
|
||||
if ( ! write_func ) {
|
||||
msg_error(_("Write function not yet implemented for format '%s'"), format );
|
||||
return -1;
|
||||
}
|
||||
FILE *fd = fopen(filename, "w");
|
||||
|
||||
if ( fd == NULL ) {
|
||||
msg_error(_("Can't open file '%s': %s"), filename, strerror (errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = write_func ( fd, wt, fmt);
|
||||
|
||||
fclose(fd);
|
||||
return ret;
|
||||
}
|
43
lib/fileformat.h
Normal file
43
lib/fileformat.h
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef FILEFORMAT_H
|
||||
#define FILEFORMAT_H
|
||||
|
||||
/*
|
||||
* fileformat.h - fileformat protocol interface
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <regex.h>
|
||||
|
||||
#define FILE_READ_OP 1
|
||||
#define FILE_WRITE_OP 2
|
||||
|
||||
typedef struct _FileFormat FileFormat;
|
||||
|
||||
struct _FileFormat {
|
||||
char *name; /* format name */
|
||||
char *fnrexp; /* regex to match the file extension name */
|
||||
regex_t *creg; /* compiled form of regexp */
|
||||
ReadHeaderFP rdHeaderfunc;
|
||||
ReadRowFP rdRowfunc;
|
||||
WriteFileFP wrFilefunc;
|
||||
char **globlist; /* shell style glob patterm list */
|
||||
};
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
|
||||
char *fileformat_get_next_name( int *i, int option);
|
||||
int fileformat_get_index(char *format);
|
||||
ReadHeaderFP fileformat_get_readhdr_func(int index);
|
||||
ReadRowFP fileformat_get_read_func(int index);
|
||||
WriteFileFP fileformat_get_write_func(int index);
|
||||
int fileformat_read_header( SpiceStream *ss);
|
||||
int fileformat_file_write( WaveTable *wt, char *filename, char *format, char *fmt);
|
||||
char **fileformat_get_patterns(int index);
|
||||
|
||||
void fileformat_cleanup(void);
|
||||
|
||||
#endif /* FILEFORMAT_H */
|
42
lib/fileutil.c
Normal file
42
lib/fileutil.c
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* fsutil.c - file utility functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <fileutil.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
int file_exists (const char *filename)
|
||||
{
|
||||
struct stat statbuf;
|
||||
|
||||
return stat (filename, &statbuf) == 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* return size of the file
|
||||
*
|
||||
* for an open file use this, it is faster !
|
||||
* size = lseek(fd, 0L, SEEK_END);
|
||||
* lseek(fd, 0L, SEEK_SET);
|
||||
*/
|
||||
off_t file_size (const char *filename)
|
||||
{
|
||||
struct stat statbuf;
|
||||
|
||||
if ( stat (filename, &statbuf) == 0 ) {
|
||||
return statbuf.st_size;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
19
lib/fileutil.h
Normal file
19
lib/fileutil.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef FILEUTIL_H
|
||||
#define FILEUTIL_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
/*
|
||||
* fileutil.h - file utility interface
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
int file_exists (const char *filename);
|
||||
off_t file_size (const char *filename);
|
||||
|
||||
#endif /* FILEUTIL_H */
|
62
lib/fsutil.c
Normal file
62
lib/fsutil.c
Normal file
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* fsutil.c - filesystem utility functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <pwd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <appmem.h>
|
||||
#include <strmem.h>
|
||||
#include <strcatdup.h>
|
||||
#include <fsutil.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
char *fsu_getcwd(void)
|
||||
{
|
||||
char buf[BUFSIZ];
|
||||
|
||||
if ( getcwd( buf, sizeof(buf)) ) {
|
||||
return app_strdup( buf );
|
||||
}
|
||||
msg_fatal("Can't get cwd.");
|
||||
}
|
||||
|
||||
char *fsu_home_dir (void)
|
||||
{
|
||||
char *home = getenv ("HOME");
|
||||
|
||||
if ( ! home) {
|
||||
/*
|
||||
* If HOME is not defined, try getting it from the password file.
|
||||
*/
|
||||
struct passwd *pwd = getpwuid (getuid ());
|
||||
if ( ! pwd || !pwd->pw_dir) {
|
||||
return NULL;
|
||||
}
|
||||
home = pwd->pw_dir;
|
||||
}
|
||||
return home ;
|
||||
}
|
||||
|
||||
char *fsu_absolute_name( char *dir, char *name)
|
||||
{
|
||||
if ( *name == '/' ) {
|
||||
/* absolute name */
|
||||
return app_strdup(name);
|
||||
} else {
|
||||
/* relative file */
|
||||
return app_strcatdup( dir, "/", name, 0 );
|
||||
}
|
||||
}
|
||||
|
15
lib/fsutil.h
Normal file
15
lib/fsutil.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef FSUTIL_H
|
||||
#define FSUTIL_H
|
||||
|
||||
/*
|
||||
* fsutil.c - filesystem utility functions
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
|
||||
char *fsu_home_dir (void);
|
||||
char *fsu_getcwd(void);
|
||||
char *fsu_absolute_name( char *dir, char *fname);
|
||||
|
||||
#endif /* FSUTIL_H */
|
141
lib/incvar.c
Normal file
141
lib/incvar.c
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* incvar.c - keep track of user variables for rewriting
|
||||
* line interface
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <msglog.h>
|
||||
#include <array.h>
|
||||
#include <dliststr.h>
|
||||
#include <strcatdup.h>
|
||||
#include <incvar.h>
|
||||
#include <duprintf.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*** \brief Allocates memory for a new IncVar object.
|
||||
*/
|
||||
|
||||
IncVar *var_new( unsigned int linenum, void *varptr, int vartype )
|
||||
{
|
||||
IncVar *var;
|
||||
|
||||
var = app_new0(IncVar, 1);
|
||||
var_construct( var, linenum, varptr, vartype );
|
||||
app_class_overload_destroy( (AppClass *) var, var_destroy );
|
||||
return var;
|
||||
}
|
||||
|
||||
/** \brief Constructor for the IncVar object. */
|
||||
|
||||
void var_construct( IncVar *var, unsigned int linenum, void *varptr, int vartype )
|
||||
{
|
||||
app_class_construct( (AppClass *) var );
|
||||
|
||||
var->linenum = linenum;
|
||||
var->varptr = varptr;
|
||||
var->vartype = vartype;
|
||||
}
|
||||
|
||||
/** \brief Destructor for the IncLine object. */
|
||||
|
||||
void var_destroy(void *var)
|
||||
{
|
||||
// IncVar *this = (IncVar *) var;
|
||||
|
||||
if (var == NULL) {
|
||||
return;
|
||||
}
|
||||
app_class_destroy( var );
|
||||
}
|
||||
|
||||
|
||||
char *var_mkstr(void *varptr, int vartype)
|
||||
{
|
||||
char *pstr;
|
||||
char *tmpstr;
|
||||
|
||||
switch( vartype) {
|
||||
case TBOOL:
|
||||
{
|
||||
int *pi = (int *) varptr;
|
||||
return app_strdup_printf("%d", (*pi ? 1 : 0) ) ;
|
||||
}
|
||||
break ;
|
||||
case TDECI: {
|
||||
int *pi = (int *) varptr;
|
||||
return app_strdup_printf( "%d", *pi ) ;
|
||||
}
|
||||
break ;
|
||||
case THEXA :
|
||||
{
|
||||
int *pi = (int *) varptr;
|
||||
return app_strdup_printf( "0x%X", *pi ) ;
|
||||
}
|
||||
break ;
|
||||
case TPTR:
|
||||
{
|
||||
char *p = *((char **) varptr);
|
||||
if ( ! p ) {
|
||||
return NULL;
|
||||
}
|
||||
/* always put string in quotes */
|
||||
return app_strdup_printf("\"%s\"", p ) ;
|
||||
}
|
||||
break ;
|
||||
case TARYSTR:
|
||||
{
|
||||
int i;
|
||||
Array *ary = *((Array **) varptr);
|
||||
int num = array_get_nelem(ary);
|
||||
char *retptr = app_strdup("");
|
||||
char *sep = "";
|
||||
|
||||
for ( i = 0 ; i < num ; i++ ) {
|
||||
pstr = array_tbl_get(ary, i);
|
||||
/* always put string in quotes */
|
||||
tmpstr = app_strdup_printf("\"%s\"", pstr );
|
||||
retptr = app_strappend( retptr, tmpstr, sep);
|
||||
sep = ", ";
|
||||
}
|
||||
return retptr;
|
||||
}
|
||||
break;
|
||||
case TLIST:
|
||||
{
|
||||
DList *head = *((DList **) varptr);
|
||||
DList *node = head;
|
||||
if ( head ) {
|
||||
node = head->next;
|
||||
}
|
||||
char *retptr = app_strdup("");
|
||||
char *sep = "";
|
||||
int i = 0;
|
||||
|
||||
while (node != head) {
|
||||
pstr = dlist_str_node_get_data(node);
|
||||
/* always put string in quotes */
|
||||
tmpstr = app_strdup_printf("\"%s\"", pstr );
|
||||
retptr = app_strappend( retptr, tmpstr, sep );
|
||||
sep = ", ";
|
||||
i++;
|
||||
node = node->next;
|
||||
}
|
||||
return retptr;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *var_get_str(IncVar *var)
|
||||
{
|
||||
return var_mkstr(var->varptr, var->vartype);
|
||||
}
|
62
lib/incvar.h
Normal file
62
lib/incvar.h
Normal file
@ -0,0 +1,62 @@
|
||||
#ifndef INCVAR_H
|
||||
#define INCVAR_H
|
||||
|
||||
/*
|
||||
* incvar.h - info for rewriting variables
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
|
||||
enum _VarTypeInfo {
|
||||
TBOOL = 1,
|
||||
TDECI,
|
||||
THEXA,
|
||||
TPTR, /* pointer to malloced string */
|
||||
TARYSTR, /* array of pointer to string */
|
||||
TARY, /* array of pointer to object */
|
||||
TLIST, /* string with elements separated with ',' */
|
||||
TCMT, /* comment type */
|
||||
TINI, /* initialize entry */
|
||||
};
|
||||
|
||||
#include <appclass.h>
|
||||
|
||||
/*
|
||||
* line coding field
|
||||
* line number : 19 bit
|
||||
* file type : 4
|
||||
* file number : 8
|
||||
* count modified : 1
|
||||
*/
|
||||
|
||||
enum _lineFieldInfo {
|
||||
LF_TYPESHIFT = 19,
|
||||
LF_FNUMSHIFT = 23,
|
||||
LF_LINEMSK = (1 << LF_TYPESHIFT) - 1,
|
||||
LF_TYPEMSK = ((1 << LF_FNUMSHIFT) - 1) & ~LF_LINEMSK,
|
||||
LF_MODIFIED = (unsigned int) (1 << 31),
|
||||
LF_FNUMMSK = (LF_MODIFIED - 1) & ~(LF_TYPEMSK | LF_LINEMSK) ,
|
||||
};
|
||||
|
||||
|
||||
typedef struct _IncVar IncVar;
|
||||
|
||||
struct _IncVar {
|
||||
AppClass parent;
|
||||
unsigned int linenum; /* line number where the rule is */
|
||||
void *varptr; /* address of the variable */
|
||||
int vartype; /* type of the variable e */
|
||||
};
|
||||
|
||||
/*
|
||||
* prototypes
|
||||
*/
|
||||
|
||||
IncVar *var_new( unsigned int linenum, void *varptr, int vartype );
|
||||
void var_construct( IncVar *var, unsigned int linenum, void *varptr, int vartype);
|
||||
void var_destroy(void *var);
|
||||
|
||||
char *var_mkstr(void *varptr, int vartype);
|
||||
char *var_get_str(IncVar *var);
|
||||
|
||||
#endif /* INCVAR_H */
|
423
lib/msglog.c
Normal file
423
lib/msglog.c
Normal file
@ -0,0 +1,423 @@
|
||||
/**
|
||||
* \file msglog.c
|
||||
* \brief Functions for printing messages, warnings and errors.
|
||||
*
|
||||
* This module provides output printing facilities.
|
||||
*
|
||||
* include LICENSE
|
||||
*/
|
||||
#define _GNU_SOURCE
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <msglog.h>
|
||||
#include <duprintf.h>
|
||||
|
||||
#ifdef TRACE_MEM
|
||||
#include <tracemem.h>
|
||||
#endif
|
||||
|
||||
#define MSG_FMT_DATE \
|
||||
"%2d %3s %4d %2d:%02d:%02d", \
|
||||
ptm->tm_mday, msg_month_of_year[ptm->tm_mon], (1900 + ptm->tm_year), \
|
||||
ptm->tm_hour, ptm->tm_min, ptm->tm_sec
|
||||
|
||||
const char *msg_month_of_year[] = {
|
||||
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
|
||||
};
|
||||
|
||||
const char *msg_day_of_week[] = {
|
||||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
||||
};
|
||||
|
||||
const char *msg_typename[] = {
|
||||
"DEBUG",
|
||||
"INFO",
|
||||
"WARNING",
|
||||
"ERROR",
|
||||
"FATAL",
|
||||
};
|
||||
|
||||
/* see man console_codes */
|
||||
#define COL(x) "\033[" #x ";1m"
|
||||
#define RED COL(31)
|
||||
#define GREEN COL(32)
|
||||
#define YELLOW COL(33)
|
||||
#define BLUE COL(34)
|
||||
#define MAGENTA COL(35)
|
||||
#define CYAN COL(36)
|
||||
#define WHITE COL(37)
|
||||
#define GRAY "\033[0m" /* end of color */
|
||||
|
||||
const char *msg_color[] = {
|
||||
"", /* Debug */
|
||||
"", /* info */
|
||||
GREEN, /* Warning */
|
||||
RED, /* Error */
|
||||
BLUE, /* Fatal */
|
||||
};
|
||||
|
||||
int prog_debug; /* global turn debug on */
|
||||
MsgLogData *msglogp; /* global pointeur to MsgLogData in main */
|
||||
/*
|
||||
* struct _MsgLogData moved from msglog.h
|
||||
* Let use different msglog.c without changing msglog.h
|
||||
*/
|
||||
struct _MsgLogData {
|
||||
FILE *msg_fd;
|
||||
FILE *dbg_fd; /* debug message file desc */
|
||||
char *msg_progname;
|
||||
int msg_flags;
|
||||
int msg_verbose_level;
|
||||
int msg_dbg_msk;
|
||||
// int msg_dump_msk;
|
||||
char *msg_filename;
|
||||
int log_facility; /* storage for facility used in syslog */
|
||||
int logger_is_open; /* set if openlog has been called */
|
||||
MsgFunc msg_displayFunc;
|
||||
};
|
||||
|
||||
/*
|
||||
* if given filename store message in file
|
||||
* if given displayFunc call func to display messge
|
||||
* except for debug message
|
||||
*/
|
||||
void msg_set_func(MsgFunc displayFunc)
|
||||
{
|
||||
msglogp->msg_displayFunc = displayFunc;
|
||||
if (displayFunc) {
|
||||
msglogp->msg_flags &= ~MSG_F_TYPE;
|
||||
}
|
||||
}
|
||||
|
||||
void msg_set_facility(int facility)
|
||||
{
|
||||
msglogp->log_facility = facility;
|
||||
}
|
||||
int msg_get_facility(void)
|
||||
{
|
||||
return msglogp->log_facility;
|
||||
}
|
||||
|
||||
void msg_set_logger_is_open(int is_open)
|
||||
{
|
||||
msglogp->logger_is_open = is_open;
|
||||
}
|
||||
int msg_get_logger_is_open(void)
|
||||
{
|
||||
return msglogp->logger_is_open;
|
||||
}
|
||||
|
||||
void msg_initlog(char *name, int flags, char *filename,
|
||||
MsgFunc displayFunc)
|
||||
{
|
||||
if (!msglogp) {
|
||||
msglogp = app_new0(MsgLogData, 1);
|
||||
}
|
||||
msglogp->msg_progname = name;
|
||||
msglogp->msg_flags = flags;
|
||||
msglogp->msg_verbose_level = 1;
|
||||
msglogp->msg_dbg_msk = 1;
|
||||
msg_set_func(displayFunc);
|
||||
msglogp->msg_fd = stderr;
|
||||
msglogp->dbg_fd = stderr;
|
||||
if (filename) {
|
||||
char *omode = "a";
|
||||
|
||||
if (flags & MSG_F_OVERWRITE) {
|
||||
omode = "w";
|
||||
}
|
||||
msg_openlog(filename, omode);
|
||||
}
|
||||
atexit(msg_closelog);
|
||||
}
|
||||
|
||||
FILE * msg_get_msg_fd(void)
|
||||
{
|
||||
return msglogp->msg_fd;
|
||||
}
|
||||
|
||||
void msg_set_dbg_fd(FILE * msg_fd )
|
||||
{
|
||||
msglogp->dbg_fd = msg_fd;
|
||||
}
|
||||
|
||||
void msg_atexit(void)
|
||||
{
|
||||
if (msglogp) {
|
||||
if (msglogp->msg_flags & MSG_F_SIGNAL) {
|
||||
kill(getppid(), SIGQUIT);
|
||||
}
|
||||
msg_closelog();
|
||||
app_free(msglogp);
|
||||
msglogp = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void msg_set_flags(int flags)
|
||||
{
|
||||
msglogp->msg_flags = flags;
|
||||
}
|
||||
|
||||
void msg_set_level(int level)
|
||||
{
|
||||
msglogp->msg_verbose_level = level;
|
||||
}
|
||||
|
||||
int msg_get_level(void)
|
||||
{
|
||||
return msglogp->msg_verbose_level;
|
||||
}
|
||||
|
||||
#ifdef MSG_DEBUG
|
||||
void private_msg_set_dbg_msk(int msk)
|
||||
{
|
||||
msglogp->msg_dbg_msk = msk;
|
||||
}
|
||||
|
||||
int private_msg_get_dbg_msk(void)
|
||||
{
|
||||
return msglogp->msg_dbg_msk;
|
||||
}
|
||||
|
||||
void private_msg_get_dbg_msk_str(char *msg)
|
||||
{
|
||||
unsigned int i;
|
||||
int k = 0;
|
||||
|
||||
int msk = msglogp->msg_dbg_msk;
|
||||
for ( i = 0 ; i < 8 * sizeof(int) ; i++ ){
|
||||
if ( msk & (1 << i) ){
|
||||
if ( k ) {
|
||||
msg[k] = ',';
|
||||
k++;
|
||||
}
|
||||
sprintf(&msg[k], "%d", i);
|
||||
k++;
|
||||
if ( i > 9) {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
}
|
||||
msg[k] = 0;
|
||||
}
|
||||
|
||||
unsigned int private_msg_set_dbg_msk_str(char *p)
|
||||
{
|
||||
unsigned int ui = 1;
|
||||
int i;
|
||||
|
||||
if ( *p == 0 ){
|
||||
prog_debug = 0;
|
||||
goto finish;
|
||||
}
|
||||
while (1) {
|
||||
i = strtoul(p, &p, 10);
|
||||
ui |= (1 << i);
|
||||
if (*p == 0) {
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
prog_debug = 1;
|
||||
finish:
|
||||
msglogp->msg_dbg_msk = ui;
|
||||
return ui;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MSG_DUMP
|
||||
void private_msg_dump(int level, char *buf, int len, int start, FILE *fd,
|
||||
char *fmt, ...)
|
||||
{
|
||||
int i;
|
||||
int n;
|
||||
char msgbuf[50];
|
||||
char lastline[50];
|
||||
char cbuf[18];
|
||||
int dup = 0;
|
||||
int print_offset = 1;
|
||||
va_list ap;
|
||||
|
||||
if ((level & msglogp->msg_dbg_msk) == 0) {
|
||||
return;
|
||||
}
|
||||
if ( fd == NULL ){
|
||||
fd = msglogp->msg_fd;
|
||||
}
|
||||
if (fmt) {
|
||||
char *ffmt;
|
||||
va_start(ap, fmt);
|
||||
ffmt = app_strdup_vprintf(fmt, ap);
|
||||
va_end(ap);
|
||||
fprintf(fd, "%s: %d\n", ffmt, len );
|
||||
app_free(ffmt);
|
||||
}
|
||||
if ( start == -1 ){
|
||||
print_offset = 0;
|
||||
}
|
||||
lastline[0] = 0;
|
||||
while (len > 0) {
|
||||
int k = 0;
|
||||
n = 16;
|
||||
if (len < n) {
|
||||
n = len;
|
||||
}
|
||||
for (i = 0; i < n; i++) {
|
||||
sprintf(&msgbuf[k], "%02X ", (unsigned char) *buf);
|
||||
k += 3;
|
||||
if ( i == 7){
|
||||
msgbuf[k] =' ';
|
||||
k++;
|
||||
}
|
||||
if (isprint(*buf & 0x7F)) {
|
||||
cbuf[i] = *buf & 0x7F;
|
||||
} else {
|
||||
cbuf[i] = '.';
|
||||
}
|
||||
buf++;
|
||||
}
|
||||
cbuf[i] = 0;
|
||||
msgbuf[k] = 0;
|
||||
len -= i;
|
||||
if (strcmp(msgbuf, lastline) == 0 && len > 0) {
|
||||
dup++;
|
||||
} else {
|
||||
if (dup > 0) {
|
||||
fprintf(fd, " -- prev line repeats %d times --\n", dup);
|
||||
}
|
||||
dup = 0;
|
||||
strcpy(lastline, msgbuf);
|
||||
if ( print_offset ){
|
||||
fprintf(fd, "%8X: ", (unsigned int) start);
|
||||
}
|
||||
fprintf(fd, "%-49s %s\n", msgbuf, cbuf);
|
||||
}
|
||||
start += n;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* msg_openlog :
|
||||
* send log messages to a file if needed
|
||||
*/
|
||||
|
||||
FILE *msg_openlog(char *filename, char *mode)
|
||||
{
|
||||
msglogp->msg_filename = filename;
|
||||
if ((msglogp->msg_fd = fopen(filename, mode)) == NULL) {
|
||||
msglogp->msg_fd = stderr; /* just to get the next mesg */
|
||||
msg_fatal(_("Can't open file '%s': %s"), filename, strerror(errno));
|
||||
}
|
||||
if ( prog_debug ){
|
||||
msglogp->dbg_fd = msglogp->msg_fd;
|
||||
}
|
||||
return msglogp->msg_fd;
|
||||
}
|
||||
|
||||
void msg_closelog(void)
|
||||
{
|
||||
if (msglogp->msg_fd != stderr) {
|
||||
fclose(msglogp->msg_fd);
|
||||
msglogp->msg_fd = stderr;
|
||||
}
|
||||
}
|
||||
|
||||
void msg_str_time_date(char *strdate);
|
||||
|
||||
void msg_str_time_date(char *strdate)
|
||||
{
|
||||
time_t now;
|
||||
struct tm *ptm;
|
||||
|
||||
time(&now);
|
||||
ptm = localtime(&now);
|
||||
sprintf(strdate, MSG_FMT_DATE);
|
||||
}
|
||||
|
||||
void private_message(int level, int msgtype, const char *func, char *file,
|
||||
int line, char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *ffmt;
|
||||
char date[128];
|
||||
char text[128];
|
||||
char *p;
|
||||
char *color_s = "";
|
||||
char *color_e = "";
|
||||
|
||||
if (msgtype == MSG_T_DEBUG) {
|
||||
if ((msglogp->msg_dbg_msk & level) == 0) {
|
||||
return;
|
||||
}
|
||||
} else if (level > msglogp->msg_verbose_level) {
|
||||
return;
|
||||
}
|
||||
date[0] = 0;
|
||||
if (msglogp->msg_flags & MSG_F_DATE) {
|
||||
msg_str_time_date(date);
|
||||
strcat(date, ": ");
|
||||
}
|
||||
if (msglogp->msg_flags & MSG_F_PROG) {
|
||||
if (msglogp->msg_progname && *msglogp->msg_progname) {
|
||||
p = date + strlen(date);
|
||||
snprintf(p, sizeof(date) - strlen(date), "%s: ",
|
||||
msglogp->msg_progname);
|
||||
}
|
||||
}
|
||||
|
||||
text[0] = 0;
|
||||
if (msgtype == MSG_T_DEBUG || msglogp->msg_flags & MSG_F_TYPE) {
|
||||
p = text + strlen(text);
|
||||
snprintf(p, sizeof(text) - strlen(text), "%s: ",
|
||||
msg_typename[msgtype]);
|
||||
}
|
||||
if (msglogp->msg_flags & MSG_F_FUNC) {
|
||||
p = text + strlen(text);
|
||||
snprintf(p, sizeof(text) - strlen(text), "%s: ", func);
|
||||
}
|
||||
if (msglogp->msg_flags & MSG_F_FILE) {
|
||||
p = text + strlen(text);
|
||||
snprintf(p, sizeof(text) - strlen(text), "%s:%d: ", file, line);
|
||||
}
|
||||
if (msglogp->msg_flags & MSG_F_COLOR) {
|
||||
color_s = (char *) msg_color[msgtype];
|
||||
if (msgtype > MSG_T_INFO) {
|
||||
color_e = GRAY;
|
||||
}
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
ffmt = app_strdup_vprintf(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (msglogp->msg_flags & MSG_F_FOLD) {
|
||||
if (strlen(date) + strlen(text) + strlen(ffmt) > 80) {
|
||||
strcat(text, "\n ");
|
||||
}
|
||||
}
|
||||
|
||||
if (msgtype == MSG_T_DEBUG) {
|
||||
fprintf(msglogp->dbg_fd, "%s%s%s\n", date, text, ffmt);
|
||||
fflush(msglogp->dbg_fd);
|
||||
} else if (msglogp->msg_displayFunc) {
|
||||
char message[1024];
|
||||
|
||||
snprintf(message, sizeof(message), "%s%s%s\n", date, text, ffmt);
|
||||
(msglogp->msg_displayFunc) (msgtype, message);
|
||||
} else {
|
||||
fprintf(msglogp->msg_fd, "%s%s%s%s%s\n", color_s, date, text, ffmt,
|
||||
color_e);
|
||||
fflush(msglogp->msg_fd);
|
||||
}
|
||||
app_free(ffmt);
|
||||
}
|
214
lib/msglog.h
Normal file
214
lib/msglog.h
Normal file
@ -0,0 +1,214 @@
|
||||
#ifndef MSG_LOG_H
|
||||
#define MSG_LOG_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/*
|
||||
* gettext support
|
||||
* msglog.h must follow config.h
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
#include <libintl.h>
|
||||
#else
|
||||
#define gettext(msgid) (msgid)
|
||||
#define textdomain(domain)
|
||||
#define bindtextdomain(domain, dir)
|
||||
#endif
|
||||
|
||||
#define _(msgid) gettext (msgid)
|
||||
#define gettext_noop(msgid) msgid
|
||||
#define N_(msgid) gettext_noop (msgid)
|
||||
|
||||
/*
|
||||
* DBG_0 is for msg_dbg
|
||||
* msg_dbgl and msg_dumpl share the same dbg_msk
|
||||
*/
|
||||
enum _debugLevelInfo {
|
||||
DBG_0 = (1 << 0),
|
||||
DBG_1 = (1 << 1),
|
||||
DBG_2 = (1 << 2),
|
||||
DBG_3 = (1 << 3),
|
||||
DBG_4 = (1 << 4),
|
||||
DBG_5 = (1 << 5),
|
||||
DBG_6 = (1 << 6),
|
||||
DBG_7 = (1 << 7),
|
||||
DBG_8 = (1 << 8), /* sockcon */
|
||||
DBG_9 = (1 << 9),
|
||||
DBG_10 = (1 << 10),
|
||||
DBG_11 = (1 << 11),
|
||||
DBG_12 = (1 << 12),
|
||||
DBG_13 = (1 << 13),
|
||||
DBG_14 = (1 << 14), /* message dump */
|
||||
DBG_15 = (1 << 15), /* lex */
|
||||
DBG_16 = (1 << 16),
|
||||
DBG_17 = (1 << 17),
|
||||
DBG_18 = (1 << 18),
|
||||
DBG_19 = (1 << 19),
|
||||
DBG_20 = (1 << 20),
|
||||
DBG_21 = (1 << 21),
|
||||
DBG_22 = (1 << 22),
|
||||
DBG_23 = (1 << 23),
|
||||
DBG_24 = (1 << 24),
|
||||
DBG_25 = (1 << 25),
|
||||
DBG_26 = (1 << 26),
|
||||
DBG_27 = (1 << 27),
|
||||
DBG_28 = (1 << 28),
|
||||
DBG_29 = (1 << 29),
|
||||
DBG_30 = (1 << 30),
|
||||
/* DBG_31 = (1 << 31), is not an integer constant expression */
|
||||
};
|
||||
|
||||
typedef int (*MsgFunc) (int type, const char *s); /* display func proto */
|
||||
|
||||
typedef struct _MsgLogData MsgLogData;
|
||||
|
||||
/* struct _MsgLogData modved to msglog.c */
|
||||
|
||||
/*
|
||||
* external variables should be declared in main as global !
|
||||
*/
|
||||
extern int prog_debug;
|
||||
extern MsgLogData *msglogp; /* global pointeur to MsgLogData in main */
|
||||
|
||||
|
||||
/*
|
||||
* macros used to print messages
|
||||
* msg_dbg : print a debug message normally used in development
|
||||
* msg_info : print an informationnal message
|
||||
* msg_warning : print a warning message
|
||||
* msg_error : print a error message. Let the programmer to decide
|
||||
* msg_fatal : print a error message and exit
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Same macros with selective level or bit mask for debug
|
||||
* msg_dbgl : print a debug message normally used in development
|
||||
* a bit mask can be allocated to a part of the program.
|
||||
* msg_infol : print an informatonnal message
|
||||
* msg_warningl : print a warning message
|
||||
* msg_errorl : print a error message. Let the programmer to decide
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
enum _msg_fmt_info {
|
||||
MSG_F_DATE = (1 << 0),
|
||||
MSG_F_PROG = (1 << 1),
|
||||
MSG_F_TYPE = (1 << 2),
|
||||
MSG_F_FILE = (1 << 3),
|
||||
MSG_F_FUNC = (1 << 4),
|
||||
MSG_F_FOLD = (1 << 5),
|
||||
MSG_F_COLOR = (1 << 6),
|
||||
MSG_F_SIGNAL = (1 << 7), /* signal exit to parent */
|
||||
MSG_F_OVERWRITE = (1 << 8), /* overwrite log file, default is append */
|
||||
MSG_F_NO_DATE = MSG_F_PROG | MSG_F_TYPE | MSG_F_FILE | MSG_F_FUNC,
|
||||
MSG_F_ALL =
|
||||
MSG_F_DATE | MSG_F_PROG | MSG_F_TYPE | MSG_F_FILE | MSG_F_FUNC,
|
||||
};
|
||||
|
||||
enum _msg_type_info {
|
||||
MSG_T_DEBUG = 0,
|
||||
MSG_T_INFO,
|
||||
MSG_T_WARNING,
|
||||
MSG_T_ERROR,
|
||||
MSG_T_FATAL,
|
||||
};
|
||||
|
||||
|
||||
#ifdef MSG_DEBUG
|
||||
#define msg_dbgl(msk, ...) \
|
||||
if ( prog_debug ) { \
|
||||
private_message( msk, MSG_T_DEBUG, __func__, __FILE__, __LINE__, __VA_ARGS__) ;\
|
||||
}
|
||||
#define msg_dbg(...) \
|
||||
if ( prog_debug ) { \
|
||||
private_message( 1, MSG_T_DEBUG, __func__, __FILE__, __LINE__, __VA_ARGS__) ;\
|
||||
}
|
||||
#define msg_set_dbg_msk(msk) \
|
||||
private_msg_set_dbg_msk(msk);
|
||||
#define msg_get_dbg_msk() \
|
||||
(private_msg_get_dbg_msk())
|
||||
#define msg_set_dbg_msk_str(str) \
|
||||
private_msg_set_dbg_msk_str(str);
|
||||
#define msg_get_dbg_msk_str(str) \
|
||||
private_msg_get_dbg_msk_str(str);
|
||||
#else
|
||||
#define msg_dbgl(msk, ...)
|
||||
#define msg_dbg(...)
|
||||
#define msg_set_dbg_msk(msk)
|
||||
#define msg_set_dbg_msk_str(str)
|
||||
#define msg_get_dbg_msk_str(str)
|
||||
#define msg_get_dbg_msk() (0)
|
||||
#endif
|
||||
|
||||
#ifdef MSG_DUMP
|
||||
#define msg_dump(buf, len, start, fd, ...) \
|
||||
private_msg_dump(1, buf, len, start, fd, __VA_ARGS__) ;
|
||||
#define msg_dumpl(msk, buf, len, start, fd, ...) \
|
||||
private_msg_dump(msk, buf, len, start, fd, __VA_ARGS__) ;
|
||||
#else
|
||||
#define msg_dump(buf, len, start, fd, ...)
|
||||
#define msg_dumpl(msk, buf, len, start, fd, ...)
|
||||
#endif
|
||||
|
||||
#define msg_info(...) \
|
||||
private_message(1, MSG_T_INFO, __func__, __FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
#define msg_infol(level, ...) \
|
||||
private_message(level, MSG_T_INFO, __func__, __FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
#define msg_warning(...) \
|
||||
private_message(1, MSG_T_WARNING, __func__, __FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
#define msg_warningl(level, ...) \
|
||||
private_message(level, MSG_T_WARNING, __func__, __FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
#define msg_error(...) \
|
||||
private_message(1, MSG_T_ERROR, __func__, __FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
#define msg_errorl(level, ...) \
|
||||
private_message(level, MSG_T_ERROR, __func__, __FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
/*
|
||||
* exit(1) is here to avoid a compiler message when no return after a
|
||||
* msg_fatal. Exit will call msg_atexit.
|
||||
*/
|
||||
#define msg_fatal(...) \
|
||||
{ private_message(0, MSG_T_FATAL, __func__, __FILE__, __LINE__, __VA_ARGS__ ); \
|
||||
exit(1);}
|
||||
|
||||
void private_msg_set_dbg_msk(int msk);
|
||||
int private_msg_get_dbg_msk(void);
|
||||
unsigned int private_msg_set_dbg_msk_str(char *p);
|
||||
void private_msg_get_dbg_msk_str(char *p);
|
||||
void private_msg_dump(int level, char *buf, int len, int start, FILE *fd,
|
||||
char *fmt, ... );
|
||||
void private_message(int level, int msgtype, const char *func,
|
||||
char *file, int line, char *fmt, ...);
|
||||
|
||||
void msg_initlog(char *name, int flags, char *filename,
|
||||
MsgFunc displayFunc);
|
||||
void msg_set_func(MsgFunc displayFunc);
|
||||
void msg_set_flags(int flags);
|
||||
int msg_get_level(void);
|
||||
void msg_set_level(int level);
|
||||
unsigned int private_msg_set_dbg_msk_str(char *str);
|
||||
|
||||
FILE *msg_openlog(char *filename, char *mode);
|
||||
FILE *msg_get_msg_fd(void);
|
||||
void msg_set_dbg_fd(FILE * msg_fd );
|
||||
void msg_closelog(void);
|
||||
void msg_atexit(void);
|
||||
|
||||
void msg_set_facility(int facility);
|
||||
int msg_get_facility(void);
|
||||
void msg_set_logger_is_open(int is_open);
|
||||
int msg_get_logger_is_open(void);
|
||||
|
||||
extern const char *msg_day_of_week[];
|
||||
extern const char *msg_month_of_year[];
|
||||
|
||||
#endif /* MSG_LOG_H */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user