Initial commit
This commit is contained in:
		
						commit
						c3b542d8c5
					
				| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					obj
 | 
				
			||||||
 | 
					html
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,278 @@
 | 
				
			||||||
 | 
					                    GNU GENERAL PUBLIC LICENSE
 | 
				
			||||||
 | 
					                       Version 2, June 1991
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					 Everyone is permitted to copy and distribute verbatim copies
 | 
				
			||||||
 | 
					 of this license document, but changing it is not allowed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            Preamble
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The licenses for most software are designed to take away your
 | 
				
			||||||
 | 
					freedom to share and change it.  By contrast, the GNU General Public
 | 
				
			||||||
 | 
					License is intended to guarantee your freedom to share and change free
 | 
				
			||||||
 | 
					software--to make sure the software is free for all its users.  This
 | 
				
			||||||
 | 
					General Public License applies to most of the Free Software
 | 
				
			||||||
 | 
					Foundation's software and to any other program whose authors commit to
 | 
				
			||||||
 | 
					using it.  (Some other Free Software Foundation software is covered by
 | 
				
			||||||
 | 
					the GNU Library General Public License instead.)  You can apply it to
 | 
				
			||||||
 | 
					your programs, too.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  When we speak of free software, we are referring to freedom, not
 | 
				
			||||||
 | 
					price.  Our General Public Licenses are designed to make sure that you
 | 
				
			||||||
 | 
					have the freedom to distribute copies of free software (and charge for
 | 
				
			||||||
 | 
					this service if you wish), that you receive source code or can get it
 | 
				
			||||||
 | 
					if you want it, that you can change the software or use pieces of it
 | 
				
			||||||
 | 
					in new free programs; and that you know you can do these things.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  To protect your rights, we need to make restrictions that forbid
 | 
				
			||||||
 | 
					anyone to deny you these rights or to ask you to surrender the rights.
 | 
				
			||||||
 | 
					These restrictions translate to certain responsibilities for you if you
 | 
				
			||||||
 | 
					distribute copies of the software, or if you modify it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  For example, if you distribute copies of such a program, whether
 | 
				
			||||||
 | 
					gratis or for a fee, you must give the recipients all the rights that
 | 
				
			||||||
 | 
					you have.  You must make sure that they, too, receive or can get the
 | 
				
			||||||
 | 
					source code.  And you must show them these terms so they know their
 | 
				
			||||||
 | 
					rights.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  We protect your rights with two steps: (1) copyright the software, and
 | 
				
			||||||
 | 
					(2) offer you this license which gives you legal permission to copy,
 | 
				
			||||||
 | 
					distribute and/or modify the software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Also, for each author's protection and ours, we want to make certain
 | 
				
			||||||
 | 
					that everyone understands that there is no warranty for this free
 | 
				
			||||||
 | 
					software.  If the software is modified by someone else and passed on, we
 | 
				
			||||||
 | 
					want its recipients to know that what they have is not the original, so
 | 
				
			||||||
 | 
					that any problems introduced by others will not reflect on the original
 | 
				
			||||||
 | 
					authors' reputations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Finally, any free program is threatened constantly by software
 | 
				
			||||||
 | 
					patents.  We wish to avoid the danger that redistributors of a free
 | 
				
			||||||
 | 
					program will individually obtain patent licenses, in effect making the
 | 
				
			||||||
 | 
					program proprietary.  To prevent this, we have made it clear that any
 | 
				
			||||||
 | 
					patent must be licensed for everyone's free use or not licensed at all.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The precise terms and conditions for copying, distribution and
 | 
				
			||||||
 | 
					modification follow.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    GNU GENERAL PUBLIC LICENSE
 | 
				
			||||||
 | 
					   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  0. This License applies to any program or other work which contains
 | 
				
			||||||
 | 
					a notice placed by the copyright holder saying it may be distributed
 | 
				
			||||||
 | 
					under the terms of this General Public License.  The "Program", below,
 | 
				
			||||||
 | 
					refers to any such program or work, and a "work based on the Program"
 | 
				
			||||||
 | 
					means either the Program or any derivative work under copyright law:
 | 
				
			||||||
 | 
					that is to say, a work containing the Program or a portion of it,
 | 
				
			||||||
 | 
					either verbatim or with modifications and/or translated into another
 | 
				
			||||||
 | 
					language.  (Hereinafter, translation is included without limitation in
 | 
				
			||||||
 | 
					the term "modification".)  Each licensee is addressed as "you".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Activities other than copying, distribution and modification are not
 | 
				
			||||||
 | 
					covered by this License; they are outside its scope.  The act of
 | 
				
			||||||
 | 
					running the Program is not restricted, and the output from the Program
 | 
				
			||||||
 | 
					is covered only if its contents constitute a work based on the
 | 
				
			||||||
 | 
					Program (independent of having been made by running the Program).
 | 
				
			||||||
 | 
					Whether that is true depends on what the Program does.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  1. You may copy and distribute verbatim copies of the Program's
 | 
				
			||||||
 | 
					source code as you receive it, in any medium, provided that you
 | 
				
			||||||
 | 
					conspicuously and appropriately publish on each copy an appropriate
 | 
				
			||||||
 | 
					copyright notice and disclaimer of warranty; keep intact all the
 | 
				
			||||||
 | 
					notices that refer to this License and to the absence of any warranty;
 | 
				
			||||||
 | 
					and give any other recipients of the Program a copy of this License
 | 
				
			||||||
 | 
					along with the Program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You may charge a fee for the physical act of transferring a copy, and
 | 
				
			||||||
 | 
					you may at your option offer warranty protection in exchange for a fee.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  2. You may modify your copy or copies of the Program or any portion
 | 
				
			||||||
 | 
					of it, thus forming a work based on the Program, and copy and
 | 
				
			||||||
 | 
					distribute such modifications or work under the terms of Section 1
 | 
				
			||||||
 | 
					above, provided that you also meet all of these conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    a) You must cause the modified files to carry prominent notices
 | 
				
			||||||
 | 
					    stating that you changed the files and the date of any change.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    b) You must cause any work that you distribute or publish, that in
 | 
				
			||||||
 | 
					    whole or in part contains or is derived from the Program or any
 | 
				
			||||||
 | 
					    part thereof, to be licensed as a whole at no charge to all third
 | 
				
			||||||
 | 
					    parties under the terms of this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    c) If the modified program normally reads commands interactively
 | 
				
			||||||
 | 
					    when run, you must cause it, when started running for such
 | 
				
			||||||
 | 
					    interactive use in the most ordinary way, to print or display an
 | 
				
			||||||
 | 
					    announcement including an appropriate copyright notice and a
 | 
				
			||||||
 | 
					    notice that there is no warranty (or else, saying that you provide
 | 
				
			||||||
 | 
					    a warranty) and that users may redistribute the program under
 | 
				
			||||||
 | 
					    these conditions, and telling the user how to view a copy of this
 | 
				
			||||||
 | 
					    License.  (Exception: if the Program itself is interactive but
 | 
				
			||||||
 | 
					    does not normally print such an announcement, your work based on
 | 
				
			||||||
 | 
					    the Program is not required to print an announcement.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These requirements apply to the modified work as a whole.  If
 | 
				
			||||||
 | 
					identifiable sections of that work are not derived from the Program,
 | 
				
			||||||
 | 
					and can be reasonably considered independent and separate works in
 | 
				
			||||||
 | 
					themselves, then this License, and its terms, do not apply to those
 | 
				
			||||||
 | 
					sections when you distribute them as separate works.  But when you
 | 
				
			||||||
 | 
					distribute the same sections as part of a whole which is a work based
 | 
				
			||||||
 | 
					on the Program, the distribution of the whole must be on the terms of
 | 
				
			||||||
 | 
					this License, whose permissions for other licensees extend to the
 | 
				
			||||||
 | 
					entire whole, and thus to each and every part regardless of who wrote it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Thus, it is not the intent of this section to claim rights or contest
 | 
				
			||||||
 | 
					your rights to work written entirely by you; rather, the intent is to
 | 
				
			||||||
 | 
					exercise the right to control the distribution of derivative or
 | 
				
			||||||
 | 
					collective works based on the Program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In addition, mere aggregation of another work not based on the Program
 | 
				
			||||||
 | 
					with the Program (or with a work based on the Program) on a volume of
 | 
				
			||||||
 | 
					a storage or distribution medium does not bring the other work under
 | 
				
			||||||
 | 
					the scope of this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  3. You may copy and distribute the Program (or a work based on it,
 | 
				
			||||||
 | 
					under Section 2) in object code or executable form under the terms of
 | 
				
			||||||
 | 
					Sections 1 and 2 above provided that you also do one of the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    a) Accompany it with the complete corresponding machine-readable
 | 
				
			||||||
 | 
					    source code, which must be distributed under the terms of Sections
 | 
				
			||||||
 | 
					    1 and 2 above on a medium customarily used for software interchange; or,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    b) Accompany it with a written offer, valid for at least three
 | 
				
			||||||
 | 
					    years, to give any third party, for a charge no more than your
 | 
				
			||||||
 | 
					    cost of physically performing source distribution, a complete
 | 
				
			||||||
 | 
					    machine-readable copy of the corresponding source code, to be
 | 
				
			||||||
 | 
					    distributed under the terms of Sections 1 and 2 above on a medium
 | 
				
			||||||
 | 
					    customarily used for software interchange; or,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    c) Accompany it with the information you received as to the offer
 | 
				
			||||||
 | 
					    to distribute corresponding source code.  (This alternative is
 | 
				
			||||||
 | 
					    allowed only for noncommercial distribution and only if you
 | 
				
			||||||
 | 
					    received the program in object code or executable form with such
 | 
				
			||||||
 | 
					    an offer, in accord with Subsection b above.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The source code for a work means the preferred form of the work for
 | 
				
			||||||
 | 
					making modifications to it.  For an executable work, complete source
 | 
				
			||||||
 | 
					code means all the source code for all modules it contains, plus any
 | 
				
			||||||
 | 
					associated interface definition files, plus the scripts used to
 | 
				
			||||||
 | 
					control compilation and installation of the executable.  However, as a
 | 
				
			||||||
 | 
					special exception, the source code distributed need not include
 | 
				
			||||||
 | 
					anything that is normally distributed (in either source or binary
 | 
				
			||||||
 | 
					form) with the major components (compiler, kernel, and so on) of the
 | 
				
			||||||
 | 
					operating system on which the executable runs, unless that component
 | 
				
			||||||
 | 
					itself accompanies the executable.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If distribution of executable or object code is made by offering
 | 
				
			||||||
 | 
					access to copy from a designated place, then offering equivalent
 | 
				
			||||||
 | 
					access to copy the source code from the same place counts as
 | 
				
			||||||
 | 
					distribution of the source code, even though third parties are not
 | 
				
			||||||
 | 
					compelled to copy the source along with the object code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  4. You may not copy, modify, sublicense, or distribute the Program
 | 
				
			||||||
 | 
					except as expressly provided under this License.  Any attempt
 | 
				
			||||||
 | 
					otherwise to copy, modify, sublicense or distribute the Program is
 | 
				
			||||||
 | 
					void, and will automatically terminate your rights under this License.
 | 
				
			||||||
 | 
					However, parties who have received copies, or rights, from you under
 | 
				
			||||||
 | 
					this License will not have their licenses terminated so long as such
 | 
				
			||||||
 | 
					parties remain in full compliance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  5. You are not required to accept this License, since you have not
 | 
				
			||||||
 | 
					signed it.  However, nothing else grants you permission to modify or
 | 
				
			||||||
 | 
					distribute the Program or its derivative works.  These actions are
 | 
				
			||||||
 | 
					prohibited by law if you do not accept this License.  Therefore, by
 | 
				
			||||||
 | 
					modifying or distributing the Program (or any work based on the
 | 
				
			||||||
 | 
					Program), you indicate your acceptance of this License to do so, and
 | 
				
			||||||
 | 
					all its terms and conditions for copying, distributing or modifying
 | 
				
			||||||
 | 
					the Program or works based on it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  6. Each time you redistribute the Program (or any work based on the
 | 
				
			||||||
 | 
					Program), the recipient automatically receives a license from the
 | 
				
			||||||
 | 
					original licensor to copy, distribute or modify the Program subject to
 | 
				
			||||||
 | 
					these terms and conditions.  You may not impose any further
 | 
				
			||||||
 | 
					restrictions on the recipients' exercise of the rights granted herein.
 | 
				
			||||||
 | 
					You are not responsible for enforcing compliance by third parties to
 | 
				
			||||||
 | 
					this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  7. If, as a consequence of a court judgment or allegation of patent
 | 
				
			||||||
 | 
					infringement or for any other reason (not limited to patent issues),
 | 
				
			||||||
 | 
					conditions are imposed on you (whether by court order, agreement or
 | 
				
			||||||
 | 
					otherwise) that contradict the conditions of this License, they do not
 | 
				
			||||||
 | 
					excuse you from the conditions of this License.  If you cannot
 | 
				
			||||||
 | 
					distribute so as to satisfy simultaneously your obligations under this
 | 
				
			||||||
 | 
					License and any other pertinent obligations, then as a consequence you
 | 
				
			||||||
 | 
					may not distribute the Program at all.  For example, if a patent
 | 
				
			||||||
 | 
					license would not permit royalty-free redistribution of the Program by
 | 
				
			||||||
 | 
					all those who receive copies directly or indirectly through you, then
 | 
				
			||||||
 | 
					the only way you could satisfy both it and this License would be to
 | 
				
			||||||
 | 
					refrain entirely from distribution of the Program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If any portion of this section is held invalid or unenforceable under
 | 
				
			||||||
 | 
					any particular circumstance, the balance of the section is intended to
 | 
				
			||||||
 | 
					apply and the section as a whole is intended to apply in other
 | 
				
			||||||
 | 
					circumstances.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is not the purpose of this section to induce you to infringe any
 | 
				
			||||||
 | 
					patents or other property right claims or to contest validity of any
 | 
				
			||||||
 | 
					such claims; this section has the sole purpose of protecting the
 | 
				
			||||||
 | 
					integrity of the free software distribution system, which is
 | 
				
			||||||
 | 
					implemented by public license practices.  Many people have made
 | 
				
			||||||
 | 
					generous contributions to the wide range of software distributed
 | 
				
			||||||
 | 
					through that system in reliance on consistent application of that
 | 
				
			||||||
 | 
					system; it is up to the author/donor to decide if he or she is willing
 | 
				
			||||||
 | 
					to distribute software through any other system and a licensee cannot
 | 
				
			||||||
 | 
					impose that choice.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This section is intended to make thoroughly clear what is believed to
 | 
				
			||||||
 | 
					be a consequence of the rest of this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  8. If the distribution and/or use of the Program is restricted in
 | 
				
			||||||
 | 
					certain countries either by patents or by copyrighted interfaces, the
 | 
				
			||||||
 | 
					original copyright holder who places the Program under this License
 | 
				
			||||||
 | 
					may add an explicit geographical distribution limitation excluding
 | 
				
			||||||
 | 
					those countries, so that distribution is permitted only in or among
 | 
				
			||||||
 | 
					countries not thus excluded.  In such case, this License incorporates
 | 
				
			||||||
 | 
					the limitation as if written in the body of this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  9. The Free Software Foundation may publish revised and/or new versions
 | 
				
			||||||
 | 
					of the General Public License from time to time.  Such new versions will
 | 
				
			||||||
 | 
					be similar in spirit to the present version, but may differ in detail to
 | 
				
			||||||
 | 
					address new problems or concerns.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Each version is given a distinguishing version number.  If the Program
 | 
				
			||||||
 | 
					specifies a version number of this License which applies to it and "any
 | 
				
			||||||
 | 
					later version", you have the option of following the terms and conditions
 | 
				
			||||||
 | 
					either of that version or of any later version published by the Free
 | 
				
			||||||
 | 
					Software Foundation.  If the Program does not specify a version number of
 | 
				
			||||||
 | 
					this License, you may choose any version ever published by the Free Software
 | 
				
			||||||
 | 
					Foundation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  10. If you wish to incorporate parts of the Program into other free
 | 
				
			||||||
 | 
					programs whose distribution conditions are different, write to the author
 | 
				
			||||||
 | 
					to ask for permission.  For software which is copyrighted by the Free
 | 
				
			||||||
 | 
					Software Foundation, write to the Free Software Foundation; we sometimes
 | 
				
			||||||
 | 
					make exceptions for this.  Our decision will be guided by the two goals
 | 
				
			||||||
 | 
					of preserving the free status of all derivatives of our free software and
 | 
				
			||||||
 | 
					of promoting the sharing and reuse of software generally.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            NO WARRANTY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 | 
				
			||||||
 | 
					FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 | 
				
			||||||
 | 
					OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 | 
				
			||||||
 | 
					PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 | 
				
			||||||
 | 
					OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
 | 
				
			||||||
 | 
					TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 | 
				
			||||||
 | 
					PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 | 
				
			||||||
 | 
					REPAIR OR CORRECTION.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 | 
				
			||||||
 | 
					WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 | 
				
			||||||
 | 
					REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 | 
				
			||||||
 | 
					INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 | 
				
			||||||
 | 
					OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 | 
				
			||||||
 | 
					TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 | 
				
			||||||
 | 
					YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 | 
				
			||||||
 | 
					PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 | 
				
			||||||
 | 
					POSSIBILITY OF SUCH DAMAGES.
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					liblwevent
 | 
				
			||||||
 | 
					========================================================================
 | 
				
			||||||
 | 
					(c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					Released under the GNU GPLv2. See file COPYING or 
 | 
				
			||||||
 | 
					http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Really Quick Instructions
 | 
				
			||||||
 | 
					-------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To build: ./make.sh
 | 
				
			||||||
 | 
					To install: ./make.sh install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You might want to edit 'config' first. You might also want to set
 | 
				
			||||||
 | 
					'INSTALL_PREFIX', which is prepended onto the destination of any
 | 
				
			||||||
 | 
					installed file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@TODO@
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					# liblwevent/config
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file contains options used to build liblwevent.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# PREFIX is the most important option. Many other paths are derived from it, as follows:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   PREFIX      | /                 | /usr              | /usr/local        | /opt/*
 | 
				
			||||||
 | 
					#   ------------+-------------------+-------------------+-------------------+-----------------
 | 
				
			||||||
 | 
					#   BINDIR      | /bin              | /usr/bin          | /usr/local/bin    | /opt/*/bin
 | 
				
			||||||
 | 
					#   SBINDIR     | /sbin             | /usr/sbin         | /usr/local/sbin   | /opt/*/sbin
 | 
				
			||||||
 | 
					#   LIBDIR      | /lib              | /usr/lib          | /usr/local/lib    | /opt/*/lib
 | 
				
			||||||
 | 
					#   INCLUDEDIR  | /usr/include      | /usr/include      | /usr/local/include| /opt/*/include
 | 
				
			||||||
 | 
					#   CONFIGDIR   | /etc              | /etc              | /usr/local/etc    | /etc/opt/*
 | 
				
			||||||
 | 
					#   VARDIR      | /var              | /var              | /var              | /var/opt/*
 | 
				
			||||||
 | 
					#   SHAREDIR    | /usr/share        | /usr/share        | /usr/local/share  | /opt/*/share
 | 
				
			||||||
 | 
					#   DOCSDIR     | /usr/share/doc    | /usr/share/doc    | /usr/local/share/doc, /opt/*/doc
 | 
				
			||||||
 | 
					#   WEBDIR      | /srv/http         | /srv/http         | /srv/http         | /opt/*/http
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Specific notes:
 | 
				
			||||||
 | 
					#   When installing, all paths are prepended with INSTALL_PREFIX.
 | 
				
			||||||
 | 
					#   Any parameter can be overridden by setting an environment variable.
 | 
				
			||||||
 | 
					#   CGIDIR is set to ${WEBDIR}/cgi-bin .
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					[ -z "${PREFIX}" ] && PREFIX="/usr/local"
 | 
				
			||||||
 | 
					source "scripts/paths"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Project-specific variables below.
 | 
				
			||||||
 | 
					[ -z "${CC}" ] && CC="gcc"
 | 
				
			||||||
 | 
					[ -z "${CFLAGS}" ] && CFLAGS="-g -O2 -W -Wall"
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,296 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					# liblwevent/make.sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2006-2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This file is the script used to build liblwevent. There are some
 | 
				
			||||||
 | 
					# options that can be edited; these are set in the file 'config' (or you
 | 
				
			||||||
 | 
					# can pass them in as environment variables).
 | 
				
			||||||
 | 
					if [ ! -e "config" ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    echo "Configuration file not found???"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					source "config" # don't fail on error, since last command in config might return false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Get version information
 | 
				
			||||||
 | 
					source version || exit 1
 | 
				
			||||||
 | 
					VERSION="${VERMAJOR}.${VERMINOR}.${VERMICRO}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Get standard functions
 | 
				
			||||||
 | 
					[ -z "${VERBOSE}" ] && VERBOSE="0"
 | 
				
			||||||
 | 
					source scripts/functions.sh || exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# List of directories which will be emptied by clean.
 | 
				
			||||||
 | 
					OUTPUT_DIRS="obj html"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This function makes a monolithic file out of several source files. Its
 | 
				
			||||||
 | 
					# first argument is the name of the output file, and the second is the
 | 
				
			||||||
 | 
					# format of monolithic file to create (for example, "C" will cause the
 | 
				
			||||||
 | 
					# inclusion of "#line" directives at the top of each included file).
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# It also examines the following variables:
 | 
				
			||||||
 | 
					#  MONOLITHIC_TESTS       if any file mentioned in this list is newer
 | 
				
			||||||
 | 
					#                         than the output file, then we recreate it
 | 
				
			||||||
 | 
					#  MONOLITHIC_SOURCE      a list (in order) of the source files
 | 
				
			||||||
 | 
					#  MONOLITHIC_OPTIONS     will #define the options to match the respective
 | 
				
			||||||
 | 
					#                         environment variables.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Recognised formats are:
 | 
				
			||||||
 | 
					#  none                   no special processing happens before each file
 | 
				
			||||||
 | 
					#  C                      #line directives are inserted before each file
 | 
				
			||||||
 | 
					#                         and VERSION, VERMAJOR etc. are #defined
 | 
				
			||||||
 | 
					#  Ch                     Like C, but for header files (no VERSION #defines)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					make_monolithic() {
 | 
				
			||||||
 | 
					    if [ $# -ne 2 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        print_failure "make_monolithic() called with wrong number of arguments"
 | 
				
			||||||
 | 
					        print_failure "(expecting 2, got $#)"
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MONOLITHIC_OUT=$1
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    # extract options
 | 
				
			||||||
 | 
					    HASHLINE=0
 | 
				
			||||||
 | 
					    VERDEFINE=0
 | 
				
			||||||
 | 
					    HASHDEFINE=0
 | 
				
			||||||
 | 
					    if [ "$2" == "C" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        HASHLINE=1
 | 
				
			||||||
 | 
					        VERDEFINE=1
 | 
				
			||||||
 | 
					        HASHDEFINE=1
 | 
				
			||||||
 | 
					    elif [ "$2" == "Ch" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        HASHLINE=1
 | 
				
			||||||
 | 
					        HASHDEFINE=1
 | 
				
			||||||
 | 
					    elif [ "$2" == "none" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        HASHLINE=0 # dummy command
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        print_failure "make_monolithic() called with unknown format $2"
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo " Building monolithic file '${MONOLITHIC_OUT}'..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MODIFIED=0
 | 
				
			||||||
 | 
					    for FILE in ${MONOLITHIC_TESTS} ${MONOLITHIC_SOURCE}
 | 
				
			||||||
 | 
					    do
 | 
				
			||||||
 | 
					        if [ ! -e "${FILE}" ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            print_failure "'${FILE}' does not exist"
 | 
				
			||||||
 | 
					            return 1
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if [ "${FILE}" -nt ${MONOLITHIC_OUT} ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            MODIFIED=1
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ${MODIFIED} -ne 0 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        do_cmd mkdir -p $(dirname ${MONOLITHIC_OUT})
 | 
				
			||||||
 | 
					        do_cmd rm -f ${MONOLITHIC_OUT} || exit 1
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if [ ${VERDEFINE} -ne 0 ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            do_cmd_redir ${MONOLITHIC_OUT} echo "#define VERSION \"${VERSION}\"" || return 1
 | 
				
			||||||
 | 
					            do_cmd_redir ${MONOLITHIC_OUT} echo "#define VERMAJOR ${VERMAJOR}" || return 1
 | 
				
			||||||
 | 
					            do_cmd_redir ${MONOLITHIC_OUT} echo "#define VERMINOR ${VERMINOR}" || return 1
 | 
				
			||||||
 | 
					            do_cmd_redir ${MONOLITHIC_OUT} echo "#define VERMICRO ${VERMICRO}" || return 1
 | 
				
			||||||
 | 
					            do_cmd_redir ${MONOLITHIC_OUT} echo "#define VEREXTRA \"${VEREXTRA}\"" || return 1
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if [ ${HASHDEFINE} -ne 0 ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            for opt in ${MONOLITHIC_OPTIONS}
 | 
				
			||||||
 | 
					            do
 | 
				
			||||||
 | 
					                do_cmd_redir ${MONOLITHIC_OUT} echo "#define ${opt} ${!opt}" || return 1
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for FILE in ${MONOLITHIC_SOURCE}
 | 
				
			||||||
 | 
					        do
 | 
				
			||||||
 | 
					            if [ ${HASHLINE} -ne 0 ]
 | 
				
			||||||
 | 
					            then
 | 
				
			||||||
 | 
					                do_cmd_redir ${MONOLITHIC_OUT} echo "#line 1 \"${FILE}\"" || return 1
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            do_cmd_redir ${MONOLITHIC_OUT} cat "${FILE}" || return 1
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        print_success "Done"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        print_success "Up to date"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This will build a directory tree, if required, with mode 0755. The
 | 
				
			||||||
 | 
					# argument is the directory to build.
 | 
				
			||||||
 | 
					build_dir_tree() {
 | 
				
			||||||
 | 
					    # sanity check
 | 
				
			||||||
 | 
					    if [ $# -ne 1 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        print_failure "build_dir_tree() called with wrong number of arguments"
 | 
				
			||||||
 | 
					        print_failure "(expecting 1, got $#)"
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    build_dir_tree_recurse "${INSTALL_PREFIX}$1"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_dir_tree_recurse() {
 | 
				
			||||||
 | 
					    local DIR="$1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # if the directory already exists, return success
 | 
				
			||||||
 | 
					    [ -d "${DIR}" ] && return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # if something with this name already exists, but not a directory,
 | 
				
			||||||
 | 
					    # then fail
 | 
				
			||||||
 | 
					    if [ -e "${DIR}" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        print_failure "Failed to create directory '${DIR}'"
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # build the directory, but if it fails, recurse a level (and handle
 | 
				
			||||||
 | 
					    # the case where recursion fails)
 | 
				
			||||||
 | 
					    mkdir "${DIR}" >& /dev/null
 | 
				
			||||||
 | 
					    if [ $? -ne 0 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        build_dir_tree_recurse $(dirname "${DIR}") || return 1
 | 
				
			||||||
 | 
						echo " Creating directory '${DIR}'"
 | 
				
			||||||
 | 
					        do_cmd mkdir "${DIR}"
 | 
				
			||||||
 | 
					        if [ $? -ne 0 ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            print_failure "Failed to create directory '${DIR}'"
 | 
				
			||||||
 | 
					            return 1
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # set permissions on newly-created dir and return
 | 
				
			||||||
 | 
					    chmod 0755 "${DIR}"
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This will install a file. The first parameter is the source, and the
 | 
				
			||||||
 | 
					# second is the destination. The third is the octal mode.
 | 
				
			||||||
 | 
					install_file() {
 | 
				
			||||||
 | 
					    # figure out if $2 is a directory or not
 | 
				
			||||||
 | 
					    DEST_FILE="${INSTALL_PREFIX}$2"
 | 
				
			||||||
 | 
					    [ -d "${DEST_FILE}" ] && DEST_FILE="${INSTALL_PREFIX}$2/$(basename $1)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo " Installing: '$1' -> '${DEST_FILE}'"
 | 
				
			||||||
 | 
					    do_cmd cp -fP "$1" "${DEST_FILE}" || return 1
 | 
				
			||||||
 | 
					    do_cmd chmod "$3" "${DEST_FILE}" || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This will install a header file. It is basically similar to 
 | 
				
			||||||
 | 
					# install_file(), only we strip out the #line directives.
 | 
				
			||||||
 | 
					install_header() {
 | 
				
			||||||
 | 
					    DEST_FILE="${INSTALL_PREFIX}$2"
 | 
				
			||||||
 | 
					    [ -d "${DEST_FILE}" ] && DEST_FILE="${INSTALL_PREFIX}$2/$(basename $1)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo " Installing: '$1' -> '${DEST_FILE}'"
 | 
				
			||||||
 | 
					    do_cmd rm -f ${DEST_FILE} || exit 1
 | 
				
			||||||
 | 
					    do_cmd_redir ${DEST_FILE} sed -e "s,^#line.*,," $1 || exit 1
 | 
				
			||||||
 | 
					    do_cmd chmod "$3" "${DEST_FILE}" || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This installs a symlink. The first argument is the symlink's name; the
 | 
				
			||||||
 | 
					# second the symlink's source filename, and the third is the directory
 | 
				
			||||||
 | 
					# in which to create the symlink.
 | 
				
			||||||
 | 
					install_symlink() {
 | 
				
			||||||
 | 
					    echo " Installing symlink: '${INSTALL_PREFIX}$3/$1' -> '$2'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ( do_cmd ln -sf $2 ${INSTALL_PREFIX}$3/$1 ) || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_target() {
 | 
				
			||||||
 | 
					    ITEMS="src/$1/build.default"
 | 
				
			||||||
 | 
					    if [ ! -e "${ITEMS}" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        ITEMS="$(find src -type f -name build.$1)"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if [ -z "${ITEMS}" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        print_failure "Unrecognised target '$1'"
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for item in ${ITEMS}
 | 
				
			||||||
 | 
					    do
 | 
				
			||||||
 | 
					        do_cmd source ${item} || exit 1
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					# Main script
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ $# -eq 0 ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    targets="default"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    targets="$@"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for func in ${targets}
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    case ${func} in
 | 
				
			||||||
 | 
					    clean)
 | 
				
			||||||
 | 
					        echo "Cleaning..."
 | 
				
			||||||
 | 
					        rm -rf ${OUTPUT_DIRS}
 | 
				
			||||||
 | 
					        print_success "Done"
 | 
				
			||||||
 | 
					        true
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # bad Kdevelop! bad!
 | 
				
			||||||
 | 
					    -j1)
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					    -k)
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
					        build_target ${func} || exit 1
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,54 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					# liblwevent/test.sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2006, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Running this script on its own will display a summary of all the
 | 
				
			||||||
 | 
					# available tests; running it with arguments runs the relevant test.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This runs a test, setting the correct library path.
 | 
				
			||||||
 | 
					run_test() {
 | 
				
			||||||
 | 
					    EXE=obj/tests/$1
 | 
				
			||||||
 | 
					    shift
 | 
				
			||||||
 | 
					    if [ ! -x ${EXE} ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        echo "No such test '${EXE}'"
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    LD_LIBRARY_PATH="obj" ${EXE} "$@" || return 1
 | 
				
			||||||
 | 
					    return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This prints summary output from each test app.
 | 
				
			||||||
 | 
					print_tests() {
 | 
				
			||||||
 | 
					    echo "Available tests"
 | 
				
			||||||
 | 
					    echo "---------------------------------------------------------------------"
 | 
				
			||||||
 | 
					    for EXE in obj/tests/*
 | 
				
			||||||
 | 
					    do
 | 
				
			||||||
 | 
					        [ -x ${EXE} ] || continue
 | 
				
			||||||
 | 
					        NAME=$(echo ${EXE} | sed 's,obj/tests/,,')
 | 
				
			||||||
 | 
					        echo -ne "${NAME}\t"
 | 
				
			||||||
 | 
					        LD_LIBRARY_PATH="obj" ${EXE} --print-summary
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Main script
 | 
				
			||||||
 | 
					if [ $# -eq 0 ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    print_tests
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run_test $*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					build.app.c
 | 
				
			||||||
 | 
					build.app.c++
 | 
				
			||||||
 | 
					build.app.c++-qt
 | 
				
			||||||
 | 
					build.app.sh
 | 
				
			||||||
 | 
					build.docs.doxygen
 | 
				
			||||||
 | 
					build.docs.none
 | 
				
			||||||
 | 
					build.files.none
 | 
				
			||||||
 | 
					build.firmware.gpasm
 | 
				
			||||||
 | 
					build.firmware.sdcc
 | 
				
			||||||
 | 
					build.lib.c
 | 
				
			||||||
 | 
					build.lib.c++
 | 
				
			||||||
 | 
					build.make.none
 | 
				
			||||||
 | 
					build.module.c
 | 
				
			||||||
 | 
					build.tests.c
 | 
				
			||||||
 | 
					build.tests.c++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config-printflags.sh
 | 
				
			||||||
 | 
					module-create.sh
 | 
				
			||||||
 | 
					release.sh
 | 
				
			||||||
 | 
					version.sh
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					# liblwevent/scripts/functions.sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2006, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Common functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Print a success message
 | 
				
			||||||
 | 
					print_success() {
 | 
				
			||||||
 | 
					    if [ -z "${TERM}" -o "${TERM}" == "dumb" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        echo -n " - "
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        (echo -n -e " \E[32m* "; tput sgr0)
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    echo $*
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Print a failure message
 | 
				
			||||||
 | 
					print_failure() {
 | 
				
			||||||
 | 
					    if [ -z "${TERM}" -o "${TERM}" == "dumb" ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        echo -n " *** "
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        (echo -n -e " \E[31m*** "; tput sgr0)
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    echo $*
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This function carries out a command, but reports its failure if
 | 
				
			||||||
 | 
					# necessary.
 | 
				
			||||||
 | 
					do_cmd() {
 | 
				
			||||||
 | 
					    [ "${VERBOSE}" != "0" ] && echo "$@"
 | 
				
			||||||
 | 
					    "$@"
 | 
				
			||||||
 | 
					    if [ $? -ne 0 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        print_failure "'$@' failed."
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This function carries out a command, but reports its failure if
 | 
				
			||||||
 | 
					# necessary.
 | 
				
			||||||
 | 
					do_cmd_redir() {
 | 
				
			||||||
 | 
					    DEST=$1
 | 
				
			||||||
 | 
					    shift
 | 
				
			||||||
 | 
					    [ "${VERBOSE}" != "0" ] && echo "$@ >> ${DEST}"
 | 
				
			||||||
 | 
					    "$@" >> ${DEST}
 | 
				
			||||||
 | 
					    if [ $? -ne 0 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        print_failure "'$@' failed."
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					# liblwevent/scripts/paths
 | 
				
			||||||
 | 
					# vim: syntax=sh:sw=4:ts=4:expandtab
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Default path setup. Not meant for editing; use environment variables 
 | 
				
			||||||
 | 
					#  to override values if needed.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# build proposed paths
 | 
				
			||||||
 | 
					case "${PREFIX}" in
 | 
				
			||||||
 | 
					/)
 | 
				
			||||||
 | 
					    MY_BINDIR="/bin"
 | 
				
			||||||
 | 
					    MY_SBINDIR="/sbin"
 | 
				
			||||||
 | 
					    MY_LIBDIR="/lib"
 | 
				
			||||||
 | 
					    MY_INCLUDEDIR="/usr/include"
 | 
				
			||||||
 | 
					    MY_CONFIGDIR="/etc"
 | 
				
			||||||
 | 
					    MY_VARDIR="/var"
 | 
				
			||||||
 | 
					    MY_SHAREDIR="/usr/share/liblwevent"
 | 
				
			||||||
 | 
					    MY_DOCSDIR="/usr/share/doc/liblwevent"
 | 
				
			||||||
 | 
					    MY_WEBDIR="/srv/http"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/usr)
 | 
				
			||||||
 | 
					    MY_BINDIR="/usr/bin"
 | 
				
			||||||
 | 
					    MY_SBINDIR="/usr/sbin"
 | 
				
			||||||
 | 
					    MY_LIBDIR="/usr/lib"
 | 
				
			||||||
 | 
					    MY_INCLUDEDIR="/usr/include"
 | 
				
			||||||
 | 
					    MY_CONFIGDIR="/etc"
 | 
				
			||||||
 | 
					    MY_VARDIR="/var"
 | 
				
			||||||
 | 
					    MY_SHAREDIR="/usr/share/liblwevent"
 | 
				
			||||||
 | 
					    MY_DOCSDIR="/usr/share/doc/liblwevent"
 | 
				
			||||||
 | 
					    MY_WEBDIR="/srv/http"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/usr/local)
 | 
				
			||||||
 | 
					    MY_BINDIR="/usr/local/bin"
 | 
				
			||||||
 | 
					    MY_SBINDIR="/usr/local/sbin"
 | 
				
			||||||
 | 
					    MY_LIBDIR="/usr/local/lib"
 | 
				
			||||||
 | 
					    MY_INCLUDEDIR="/usr/local/include"
 | 
				
			||||||
 | 
					    MY_CONFIGDIR="/usr/local/etc"
 | 
				
			||||||
 | 
					    MY_VARDIR="/var"
 | 
				
			||||||
 | 
					    MY_SHAREDIR="/usr/local/share/liblwevent"
 | 
				
			||||||
 | 
					    MY_DOCSDIR="/usr/local/share/doc/liblwevent"
 | 
				
			||||||
 | 
					    MY_WEBDIR="/srv/http"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/opt/*)
 | 
				
			||||||
 | 
					    MY_BINDIR="${PREFIX}/bin"
 | 
				
			||||||
 | 
					    MY_SBINDIR="${PREFIX}/sbin"
 | 
				
			||||||
 | 
					    MY_LIBDIR="${PREFIX}/lib"
 | 
				
			||||||
 | 
					    MY_INCLUDEDIR="${PREFIX}/include"
 | 
				
			||||||
 | 
					    MY_CONFIGDIR="/etc${PREFIX}"
 | 
				
			||||||
 | 
					    MY_VARDIR="/var${PREFIX}"
 | 
				
			||||||
 | 
					    MY_SHAREDIR="/var${PREFIX}"
 | 
				
			||||||
 | 
					    MY_DOCSDIR="${PREFIX}/doc"
 | 
				
			||||||
 | 
					    MY_WEBDIR="${PREFIX}/http"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**)
 | 
				
			||||||
 | 
					    MY_BINDIR="${PREFIX}/bin"
 | 
				
			||||||
 | 
					    MY_SBINDIR="${PREFIX}/sbin"
 | 
				
			||||||
 | 
					    MY_LIBDIR="${PREFIX}/lib"
 | 
				
			||||||
 | 
					    MY_INCLUDEDIR="${PREFIX}/include"
 | 
				
			||||||
 | 
					    MY_CONFIGDIR="${PREFIX}/etc"
 | 
				
			||||||
 | 
					    MY_VARDIR="${PREFIX}/var"
 | 
				
			||||||
 | 
					    MY_DOCSDIR="${PREFIX}/share/doc"
 | 
				
			||||||
 | 
					    MY_WEBDIR="${PREFIX}/srv/http"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MY_CGIDIR="${WEBDIR}/cgi-bin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# assign paths allowing user to override
 | 
				
			||||||
 | 
					[ -z "${BINDIR}" ] && BINDIR="${MY_BINDIR}"
 | 
				
			||||||
 | 
					[ -z "${SBINDIR}" ] && SBINDIR="${MY_SBINDIR}"
 | 
				
			||||||
 | 
					[ -z "${LIBDIR}" ] && LIBDIR="${MY_LIBDIR}"
 | 
				
			||||||
 | 
					[ -z "${INCLUDEDIR}" ] && INCLUDEDIR="${MY_INCLUDEDIR}"
 | 
				
			||||||
 | 
					[ -z "${CONFIGDIR}" ] && CONFIGDIR="${MY_CONFIGDIR}"
 | 
				
			||||||
 | 
					[ -z "${VARDIR}" ] && VARDIR="${MY_VARDIR}"
 | 
				
			||||||
 | 
					[ -z "${DOCSDIR}" ] && DOCSDIR="${MY_DOCSDIR}"
 | 
				
			||||||
 | 
					[ -z "${WEBDIR}" ] && WEBDIR="${MY_WEBDIR}"
 | 
				
			||||||
 | 
					[ -z "${CGIDIR}" ] && CGIDIR="${MY_CGIDIR}"
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					docs doxygen docs
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,179 @@
 | 
				
			||||||
 | 
					# liblwevent/src/docs/Doxyfile.in
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DOXYFILE_ENCODING      = UTF-8
 | 
				
			||||||
 | 
					PROJECT_NAME           = liblwevent
 | 
				
			||||||
 | 
					OUTPUT_DIRECTORY       =
 | 
				
			||||||
 | 
					CREATE_SUBDIRS         = NO
 | 
				
			||||||
 | 
					OUTPUT_LANGUAGE        = English
 | 
				
			||||||
 | 
					BRIEF_MEMBER_DESC      = YES
 | 
				
			||||||
 | 
					REPEAT_BRIEF           = YES
 | 
				
			||||||
 | 
					ABBREVIATE_BRIEF       =
 | 
				
			||||||
 | 
					ALWAYS_DETAILED_SEC    = NO
 | 
				
			||||||
 | 
					INLINE_INHERITED_MEMB  = YES
 | 
				
			||||||
 | 
					FULL_PATH_NAMES        = NO
 | 
				
			||||||
 | 
					STRIP_FROM_PATH        =
 | 
				
			||||||
 | 
					STRIP_FROM_INC_PATH    =
 | 
				
			||||||
 | 
					SHORT_NAMES            = NO
 | 
				
			||||||
 | 
					JAVADOC_AUTOBRIEF      = NO
 | 
				
			||||||
 | 
					MULTILINE_CPP_IS_BRIEF = YES
 | 
				
			||||||
 | 
					DETAILS_AT_TOP         = YES
 | 
				
			||||||
 | 
					INHERIT_DOCS           = YES
 | 
				
			||||||
 | 
					SEPARATE_MEMBER_PAGES  = NO
 | 
				
			||||||
 | 
					TAB_SIZE               = 4
 | 
				
			||||||
 | 
					ALIASES                =
 | 
				
			||||||
 | 
					OPTIMIZE_OUTPUT_FOR_C  = NO
 | 
				
			||||||
 | 
					OPTIMIZE_OUTPUT_JAVA   = NO
 | 
				
			||||||
 | 
					BUILTIN_STL_SUPPORT    = NO
 | 
				
			||||||
 | 
					CPP_CLI_SUPPORT        = NO
 | 
				
			||||||
 | 
					DISTRIBUTE_GROUP_DOC   = NO
 | 
				
			||||||
 | 
					SUBGROUPING            = YES
 | 
				
			||||||
 | 
					EXTRACT_ALL            = NO
 | 
				
			||||||
 | 
					EXTRACT_PRIVATE        = NO
 | 
				
			||||||
 | 
					EXTRACT_STATIC         = NO
 | 
				
			||||||
 | 
					EXTRACT_LOCAL_CLASSES  = NO
 | 
				
			||||||
 | 
					EXTRACT_LOCAL_METHODS  = NO
 | 
				
			||||||
 | 
					HIDE_UNDOC_MEMBERS     = NO
 | 
				
			||||||
 | 
					HIDE_UNDOC_CLASSES     = NO
 | 
				
			||||||
 | 
					HIDE_FRIEND_COMPOUNDS  = YES
 | 
				
			||||||
 | 
					HIDE_IN_BODY_DOCS      = NO
 | 
				
			||||||
 | 
					INTERNAL_DOCS          = NO
 | 
				
			||||||
 | 
					CASE_SENSE_NAMES       = YES
 | 
				
			||||||
 | 
					HIDE_SCOPE_NAMES       = NO
 | 
				
			||||||
 | 
					SHOW_INCLUDE_FILES     = NO
 | 
				
			||||||
 | 
					INLINE_INFO            = YES
 | 
				
			||||||
 | 
					SORT_MEMBER_DOCS       = NO
 | 
				
			||||||
 | 
					SORT_BRIEF_DOCS        = NO
 | 
				
			||||||
 | 
					SORT_BY_SCOPE_NAME     = NO
 | 
				
			||||||
 | 
					GENERATE_TODOLIST      = YES
 | 
				
			||||||
 | 
					GENERATE_TESTLIST      = YES
 | 
				
			||||||
 | 
					GENERATE_BUGLIST       = YES
 | 
				
			||||||
 | 
					GENERATE_DEPRECATEDLIST= YES
 | 
				
			||||||
 | 
					ENABLED_SECTIONS       =
 | 
				
			||||||
 | 
					MAX_INITIALIZER_LINES  = 30
 | 
				
			||||||
 | 
					SHOW_USED_FILES        = NO
 | 
				
			||||||
 | 
					SHOW_DIRECTORIES       = NO
 | 
				
			||||||
 | 
					FILE_VERSION_FILTER    =
 | 
				
			||||||
 | 
					QUIET                  = YES
 | 
				
			||||||
 | 
					WARNINGS               = YES
 | 
				
			||||||
 | 
					WARN_IF_UNDOCUMENTED   = YES
 | 
				
			||||||
 | 
					WARN_IF_DOC_ERROR      = YES
 | 
				
			||||||
 | 
					WARN_NO_PARAMDOC       = YES
 | 
				
			||||||
 | 
					WARN_FORMAT            = "$file:$line: $text"
 | 
				
			||||||
 | 
					WARN_LOGFILE           =
 | 
				
			||||||
 | 
					INPUT_ENCODING         = UTF-8
 | 
				
			||||||
 | 
					FILE_PATTERNS          =
 | 
				
			||||||
 | 
					RECURSIVE              = NO
 | 
				
			||||||
 | 
					EXCLUDE                =
 | 
				
			||||||
 | 
					EXCLUDE_SYMLINKS       = NO
 | 
				
			||||||
 | 
					EXCLUDE_PATTERNS       =
 | 
				
			||||||
 | 
					EXCLUDE_SYMBOLS        = 
 | 
				
			||||||
 | 
					EXAMPLE_PATH           =
 | 
				
			||||||
 | 
					EXAMPLE_PATTERNS       =
 | 
				
			||||||
 | 
					EXAMPLE_RECURSIVE      = NO
 | 
				
			||||||
 | 
					IMAGE_PATH             = src/docs
 | 
				
			||||||
 | 
					INPUT_FILTER           =
 | 
				
			||||||
 | 
					FILTER_PATTERNS        =
 | 
				
			||||||
 | 
					FILTER_SOURCE_FILES    = NO
 | 
				
			||||||
 | 
					SOURCE_BROWSER         = NO
 | 
				
			||||||
 | 
					INLINE_SOURCES         = NO
 | 
				
			||||||
 | 
					STRIP_CODE_COMMENTS    = YES
 | 
				
			||||||
 | 
					REFERENCED_BY_RELATION = YES
 | 
				
			||||||
 | 
					REFERENCES_RELATION    = YES
 | 
				
			||||||
 | 
					REFERENCES_LINK_SOURCE = YES
 | 
				
			||||||
 | 
					USE_HTAGS              = NO
 | 
				
			||||||
 | 
					VERBATIM_HEADERS       = NO
 | 
				
			||||||
 | 
					ALPHABETICAL_INDEX     = YES
 | 
				
			||||||
 | 
					COLS_IN_ALPHA_INDEX    = 5
 | 
				
			||||||
 | 
					IGNORE_PREFIX          =
 | 
				
			||||||
 | 
					GENERATE_HTML          = YES
 | 
				
			||||||
 | 
					HTML_OUTPUT            = html
 | 
				
			||||||
 | 
					HTML_FILE_EXTENSION    = .html
 | 
				
			||||||
 | 
					HTML_HEADER            =
 | 
				
			||||||
 | 
					HTML_FOOTER            =
 | 
				
			||||||
 | 
					HTML_STYLESHEET        =
 | 
				
			||||||
 | 
					HTML_ALIGN_MEMBERS     = YES
 | 
				
			||||||
 | 
					GENERATE_HTMLHELP      = NO
 | 
				
			||||||
 | 
					CHM_FILE               =
 | 
				
			||||||
 | 
					HHC_LOCATION           =
 | 
				
			||||||
 | 
					GENERATE_CHI           = NO
 | 
				
			||||||
 | 
					BINARY_TOC             = NO
 | 
				
			||||||
 | 
					TOC_EXPAND             = NO
 | 
				
			||||||
 | 
					DISABLE_INDEX          = NO
 | 
				
			||||||
 | 
					ENUM_VALUES_PER_LINE   = 4
 | 
				
			||||||
 | 
					GENERATE_TREEVIEW      = NO
 | 
				
			||||||
 | 
					TREEVIEW_WIDTH         = 250
 | 
				
			||||||
 | 
					GENERATE_LATEX         = NO
 | 
				
			||||||
 | 
					LATEX_OUTPUT           = latex
 | 
				
			||||||
 | 
					LATEX_CMD_NAME         = latex
 | 
				
			||||||
 | 
					MAKEINDEX_CMD_NAME     = makeindex
 | 
				
			||||||
 | 
					COMPACT_LATEX          = NO
 | 
				
			||||||
 | 
					PAPER_TYPE             = a4wide
 | 
				
			||||||
 | 
					EXTRA_PACKAGES         = 
 | 
				
			||||||
 | 
					LATEX_HEADER           = 
 | 
				
			||||||
 | 
					PDF_HYPERLINKS         = NO
 | 
				
			||||||
 | 
					USE_PDFLATEX           = NO
 | 
				
			||||||
 | 
					LATEX_BATCHMODE        = NO
 | 
				
			||||||
 | 
					LATEX_HIDE_INDICES     = NO
 | 
				
			||||||
 | 
					GENERATE_RTF           = NO
 | 
				
			||||||
 | 
					RTF_OUTPUT             = rtf
 | 
				
			||||||
 | 
					COMPACT_RTF            = NO
 | 
				
			||||||
 | 
					RTF_HYPERLINKS         = NO
 | 
				
			||||||
 | 
					RTF_STYLESHEET_FILE    = 
 | 
				
			||||||
 | 
					RTF_EXTENSIONS_FILE    = 
 | 
				
			||||||
 | 
					GENERATE_MAN           = NO
 | 
				
			||||||
 | 
					MAN_OUTPUT             = man
 | 
				
			||||||
 | 
					MAN_EXTENSION          = .3
 | 
				
			||||||
 | 
					MAN_LINKS              = NO
 | 
				
			||||||
 | 
					GENERATE_XML           = NO
 | 
				
			||||||
 | 
					XML_OUTPUT             = xml
 | 
				
			||||||
 | 
					XML_SCHEMA             = 
 | 
				
			||||||
 | 
					XML_DTD                = 
 | 
				
			||||||
 | 
					XML_PROGRAMLISTING     = YES
 | 
				
			||||||
 | 
					GENERATE_AUTOGEN_DEF   = NO
 | 
				
			||||||
 | 
					GENERATE_PERLMOD       = NO
 | 
				
			||||||
 | 
					PERLMOD_LATEX          = NO
 | 
				
			||||||
 | 
					PERLMOD_PRETTY         = YES
 | 
				
			||||||
 | 
					PERLMOD_MAKEVAR_PREFIX = 
 | 
				
			||||||
 | 
					ENABLE_PREPROCESSING   = YES
 | 
				
			||||||
 | 
					MACRO_EXPANSION        = NO
 | 
				
			||||||
 | 
					EXPAND_ONLY_PREDEF     = NO
 | 
				
			||||||
 | 
					SEARCH_INCLUDES        = YES
 | 
				
			||||||
 | 
					INCLUDE_PATH           =
 | 
				
			||||||
 | 
					INCLUDE_FILE_PATTERNS  =
 | 
				
			||||||
 | 
					PREDEFINED             = DOXYGEN
 | 
				
			||||||
 | 
					EXPAND_AS_DEFINED      =
 | 
				
			||||||
 | 
					SKIP_FUNCTION_MACROS   = YES
 | 
				
			||||||
 | 
					TAGFILES               =
 | 
				
			||||||
 | 
					GENERATE_TAGFILE       =
 | 
				
			||||||
 | 
					ALLEXTERNALS           = NO
 | 
				
			||||||
 | 
					EXTERNAL_GROUPS        = YES
 | 
				
			||||||
 | 
					PERL_PATH              = /usr/bin/perl
 | 
				
			||||||
 | 
					CLASS_DIAGRAMS         = YES
 | 
				
			||||||
 | 
					MSCGEN_PATH            = 
 | 
				
			||||||
 | 
					HIDE_UNDOC_RELATIONS   = YES
 | 
				
			||||||
 | 
					HAVE_DOT               = YES
 | 
				
			||||||
 | 
					CLASS_GRAPH            = YES
 | 
				
			||||||
 | 
					COLLABORATION_GRAPH    = YES
 | 
				
			||||||
 | 
					GROUP_GRAPHS           = NO
 | 
				
			||||||
 | 
					UML_LOOK               = NO
 | 
				
			||||||
 | 
					TEMPLATE_RELATIONS     = NO
 | 
				
			||||||
 | 
					INCLUDE_GRAPH          = NO
 | 
				
			||||||
 | 
					INCLUDED_BY_GRAPH      = NO
 | 
				
			||||||
 | 
					CALL_GRAPH             = NO
 | 
				
			||||||
 | 
					CALLER_GRAPH           = NO
 | 
				
			||||||
 | 
					GRAPHICAL_HIERARCHY    = YES
 | 
				
			||||||
 | 
					DIRECTORY_GRAPH        = NO
 | 
				
			||||||
 | 
					DOT_IMAGE_FORMAT       = png
 | 
				
			||||||
 | 
					DOT_PATH               =
 | 
				
			||||||
 | 
					DOTFILE_DIRS           =
 | 
				
			||||||
 | 
					DOT_GRAPH_MAX_NODES    = 50
 | 
				
			||||||
 | 
					DOT_TRANSPARENT        = YES
 | 
				
			||||||
 | 
					DOT_MULTI_TARGETS      = YES
 | 
				
			||||||
 | 
					GENERATE_LEGEND        = YES
 | 
				
			||||||
 | 
					DOT_CLEANUP            = YES
 | 
				
			||||||
 | 
					SEARCHENGINE           = NO
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/docs/MainPage.dox
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \mainpage Lightweight Event Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This library is a lightweight wrapper around the \c epoll(7) facility. Its purpose is to provide a
 | 
				
			||||||
 | 
					slightly higher level interface for simplicity and speed of development. Effectively, it provides an
 | 
				
			||||||
 | 
					API consisting of the common operations used by programs written using an event-driven, finite state
 | 
				
			||||||
 | 
					machine (or other object-based) paradigm.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Its features are as follows:
 | 
				
			||||||
 | 
					 \li simple event loop interface (see section \ref eventloop)
 | 
				
			||||||
 | 
					 \li wrapper functions for adding and removing file descriptors (see section \ref fdevent)
 | 
				
			||||||
 | 
					 \li signal functions (TODO)
 | 
				
			||||||
 | 
					 \li timer functions (TODO)
 | 
				
			||||||
 | 
					 \li safe inter-object actions (one object may free another at any time)
 | 
				
			||||||
 | 
					 \li O(1) design to match that of \c epoll(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See the page \ref libdesign for detailed information on the implementation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					source src/docs/build.docs
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					# These are external variables, and shouldn't clash with anything else
 | 
				
			||||||
 | 
					#  docs_BUILT
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MONOLITHIC_DOC="${MONOLITHIC_DOC} $(echo src/docs/*.dox)"
 | 
				
			||||||
 | 
					build_target monolithic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z ${docs_BUILT} ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    echo "Building documentation with Doxygen..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DOXYFILE=obj/Doxyfile.docs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ! -e ${DOXYFILE} ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        do_cmd cp src/docs/Doxyfile.in ${DOXYFILE} || return 1
 | 
				
			||||||
 | 
					        echo "INPUT = ${MONOLITHIC_DOC}" >> ${DOXYFILE}
 | 
				
			||||||
 | 
					        echo "PROJECT_NUMBER = ${VERSION}" >> ${DOXYFILE}
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MODIFIED=0
 | 
				
			||||||
 | 
					    for file in ${MONOLITHIC_DOC}
 | 
				
			||||||
 | 
					    do
 | 
				
			||||||
 | 
					        if [ ${file} -nt html/index.html ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            MODIFIED=1
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ${MODIFIED} -ne 0 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        do_cmd doxygen ${DOXYFILE} || return 1
 | 
				
			||||||
 | 
					        print_success "Documentation built"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        print_success "Documentation is up to date"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    docs_BUILT=1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					source src/docs/build.install-docs
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					build_target docs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# create documentation directories
 | 
				
			||||||
 | 
					echo "Installing documentation into ${DOCSDIR}"
 | 
				
			||||||
 | 
					build_dir_tree "${DOCSDIR}/html" || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# copy across the Doxygen-generated documentation
 | 
				
			||||||
 | 
					for file in html/*
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    install_file ${file} ${DOCSDIR}/html 0644 || return 1
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# copy across the generic files
 | 
				
			||||||
 | 
					for file in COPYING README
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    install_file ${file} ${DOCSDIR} 0644 || return 1
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print_success "Documentation installed"
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,49 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/docs/libdesign.dox
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \page libdesign Library design
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section libdesign_O1 O(1) design
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Like the \c epoll(7) facility, \a liblwevent is designed to be O(1): execution time does not scale
 | 
				
			||||||
 | 
					with number of active file descriptors, and is instead constant (per event). Effectively, this means
 | 
				
			||||||
 | 
					that the library \em never stores or scans a list of active objects; instead, objects are associated
 | 
				
			||||||
 | 
					solely with file descriptors, and the kernel maintains this association in its file descriptor 
 | 
				
			||||||
 | 
					table.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As a consequence, the library does not have information about which (if any) objects are active. It
 | 
				
			||||||
 | 
					cannot be used to directly implement per-object timeouts, since there would be no way of determining
 | 
				
			||||||
 | 
					which objects to scan when computing what the timeouts should be, and no way of knowing which 
 | 
				
			||||||
 | 
					objects did not receive events after a call to \c epoll_wait(2).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section libdesign_interobject Inter-object actions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unlike \a libevent (see \c event(3)), liblwevent directly supports safe inter-object actions. This
 | 
				
			||||||
 | 
					means that one object can safely free (or modify) another, at any time, without fear of crashing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Consider an event loop watching two objects, A and B. When either object's file descriptor is 
 | 
				
			||||||
 | 
					closed, the other object should be freed. Now imagine that the remote side of B is shut down and,
 | 
				
			||||||
 | 
					before the kernel schedules in the event loop's process, A becomes ready for reading. The kernel,
 | 
				
			||||||
 | 
					unaware of the semantics of the link between these two objects, will return two events: \c EPOLLHUP
 | 
				
			||||||
 | 
					for B, and EPOLLIN for A. The process is scheduled in, and processes B's event first. It closes the
 | 
				
			||||||
 | 
					file descriptor associated with A and destroys the associated user-space information (write buffers
 | 
				
			||||||
 | 
					etc.). But then it comes to process the event for A, which is now invalid, and has dangling pointers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\a liblwevent provides a mechanism for dealing with this sequence of events. Each object has an
 | 
				
			||||||
 | 
					\em invalid flag, normally cleared. When B destroys the information associated with A, the struct
 | 
				
			||||||
 | 
					lwevent object associated with A persists with its invalid flag set, and a pointer to it is placed
 | 
				
			||||||
 | 
					onto a list. When the event for A is processed, \a liblwevent notices the invalid flag and skips the
 | 
				
			||||||
 | 
					event. When all events have been processed, the library iterates through the list of invalid events
 | 
				
			||||||
 | 
					and frees the remaining objects. This ensures robust operation regardless of the order in which
 | 
				
			||||||
 | 
					events occur.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					lib c liblwevent lwevent.h
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/liblwevent/000_TopHeader.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef HEADER_liblwevent
 | 
				
			||||||
 | 
					#define HEADER_liblwevent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* standard includes, or includes needed for type declarations */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=c.doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/liblwevent/000_TopSource.c
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "lwevent.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Below are all the includes used throughout the library. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/liblwevent/200_eventloop.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \defgroup eventloop Main event loop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This module controls overall program flow. The two main functions of interest are
 | 
				
			||||||
 | 
					lwevent_loop(), which implements a full event-driven programming loop (only returning when the
 | 
				
			||||||
 | 
					program should exit), and lwevent_wait(), which implements a single run of the event loop.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					/*!@{*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Event loop exit flag.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This flag, if set, signifies that lwevent_loop() should exit after its next iteration. It can be
 | 
				
			||||||
 | 
					set by a signal handler or any other function in the program at any time. It is scanned after each
 | 
				
			||||||
 | 
					loop is completely processed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					extern volatile int lwevent_loop_exit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Event loop (loop forever).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\retval 0 on success (event loop exited due to lwevent_loop_exit flag).
 | 
				
			||||||
 | 
					\retval -1 on error (system call failed; see \a errno).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function will call lwevent_wait() in a loop forever. The loop can be aborted by setting the
 | 
				
			||||||
 | 
					flag lwevent_loop_exit to non-zero. The loop will also be aborted if lwevent_wait() returns an
 | 
				
			||||||
 | 
					error (in which case \a errno can be used to determine the error).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					int lwevent_loop(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Event loop (loop once).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\param timeout_ms A timeout, in milliseconds. This function will return as soon as any events occur,
 | 
				
			||||||
 | 
					    but will return after \a timeout_ms milliseconds have elapsed.
 | 
				
			||||||
 | 
					\retval 0 on success (events occurred, timeout occurred).
 | 
				
			||||||
 | 
					\retval -1 on error (system call failed; see \a errno).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function will run the event loop once, returning as soon as events are available (or the
 | 
				
			||||||
 | 
					timeout, in milliseconds, occurs). If any events do occur, they will be dispatched to the relevant
 | 
				
			||||||
 | 
					callback objects. The final action of this function is to free the memory associated with any
 | 
				
			||||||
 | 
					objects that are closed during the callbacks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					int lwevent_wait(int timeout_ms);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*!@}*/
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=c.doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,111 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/liblwevent/300_fdevent.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \defgroup fdevent File descriptor event management
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This module contains functions for managing file descriptor-based events. For each file descriptor
 | 
				
			||||||
 | 
					to be monitored, a struct lwevent is instantiated with lwevent_new(). This opaque object contains
 | 
				
			||||||
 | 
					all the details needed to provide callbacks when events occur (see section \ref fdparams for more
 | 
				
			||||||
 | 
					information).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					/*!@{*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Opaque file descriptor event structure.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This structure is associated with a single file descriptor. It holds the details used to
 | 
				
			||||||
 | 
					implement callbacks whenever the file descriptor is ready for I/O. The structure cannot be
 | 
				
			||||||
 | 
					dereferenced; instead, the functions used in the section \ref fdparams can be used to store or
 | 
				
			||||||
 | 
					retrieve associated values.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					struct lwevent
 | 
				
			||||||
 | 
					#ifndef DOXYGEN
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /*! \brief Dummy variable for doxygen */
 | 
				
			||||||
 | 
					    int dummy;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Event callback function pointer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\param ev Pointer to event structure.
 | 
				
			||||||
 | 
					\param revents Bitmask of returned events (see \c epoll(7)).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is the type of function pointer used for event callbacks. The event callback function will be
 | 
				
			||||||
 | 
					called from lwevent_wait() or lwevent_loop() with a pointer to the associated event structure and
 | 
				
			||||||
 | 
					a bitmask of events which have occurred.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					typedef void (*lwevent_callback)(struct lwevent* ev, int revents);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Create new event structure associated with a file descriptor.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\param fd File descriptor to monitor.
 | 
				
			||||||
 | 
					\param events Bitmask of events to watch for, and epoll flags (see \c epoll(7)).
 | 
				
			||||||
 | 
					\param callback Pointer to function to call whenever an event occurs.
 | 
				
			||||||
 | 
					\returns Pointer to new lwevent structure on success.
 | 
				
			||||||
 | 
					\retval 0 on error (and see \a errno).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function will create and register with \c epoll(7) a lwevent structure associated with the
 | 
				
			||||||
 | 
					file descriptor \a fd. Initially, the object will have the callback function specified in
 | 
				
			||||||
 | 
					\a callback, but this (and other attributes) can be changed; see section \ref fdparams.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once a lwevent structure has been created for \a fd, \a fd should not be passed to \c close(2)
 | 
				
			||||||
 | 
					directly. Instead, when it is time to close the file descriptor, pass the associated lwevent
 | 
				
			||||||
 | 
					structure to lwevent_free().
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					struct lwevent* lwevent_new(int fd, int events, lwevent_callback callback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*! \brief Free an event structure and close its associated file descriptor.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\param ev Event structure. May be 0.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This function will close the file descriptor associated with \a ev, call the destructor if one is
 | 
				
			||||||
 | 
					registered (see section \ref fdparams), and free the memory used by \a ev. It may be called at any
 | 
				
			||||||
 | 
					time in the event loop. If called with a null argument, it is a no-op.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Whenever this function is called, the object \a ev is marked as invalid. If it has already been
 | 
				
			||||||
 | 
					marked as invalid, the function is a no-op. Otherwise, the file descriptor is immediately closed
 | 
				
			||||||
 | 
					with \c close(2), and the destructor is also called. The object \a ev itself is not actually freed
 | 
				
			||||||
 | 
					at this point; it is placed onto a list of invalid objects, and is only freed at the very end of a
 | 
				
			||||||
 | 
					call to lwevent_wait().
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This behaviour is what allows an object to be freed at any time without fear of crashing. If two
 | 
				
			||||||
 | 
					events are returned from lwevent_wait(), and the callback of the first event calls lwevent_free()
 | 
				
			||||||
 | 
					on the second event's object, the second callback can be aborted (since the event object will still
 | 
				
			||||||
 | 
					exist, but is marked as invalid). Further objects may call lwevent_free() on the invalid object
 | 
				
			||||||
 | 
					without consequence. At the end of the event loop, once no more callbacks are queued, the invalid
 | 
				
			||||||
 | 
					objects are freed. This means that you cannot continue to refer to invalid objects after a completed
 | 
				
			||||||
 | 
					call to lwevent_wait().
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					void lwevent_free(struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int lwevent_deactivate(struct lwevent* ev);
 | 
				
			||||||
 | 
					int lwevent_reactivate(struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*!@}*/
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=c.doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/liblwevent/300_fdevent.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int lwevent_get_fd(const struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int lwevent_set_events(struct lwevent* ev, int events, int* old_events);
 | 
				
			||||||
 | 
					int lwevent_get_events(const struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void lwevent_set_callback(struct lwevent* ev, lwevent_callback callback,
 | 
				
			||||||
 | 
					    lwevent_callback* old_callback);
 | 
				
			||||||
 | 
					lwevent_callback lwevent_get_callback(const struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void lwevent_set_user(struct lwevent* ev, void* user);
 | 
				
			||||||
 | 
					void* lwevent_get_user(const struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef void (*lwevent_dtor)(struct lwevent* ev);
 | 
				
			||||||
 | 
					void lwevent_set_dtor(struct lwevent* ev, lwevent_dtor dtor, lwevent_dtor* old_dtor);
 | 
				
			||||||
 | 
					lwevent_dtor lwevent_get_dtor(struct lwevent* ev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=c.doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					/* liblwevent/src/liblwevent/999_BottomHeader.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					 *  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					 *  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* options for text editors
 | 
				
			||||||
 | 
					kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					vim: expandtab:ts=4:sw=4:syntax=c.doxygen
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					source src/liblwevent/build.lib
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					source src/liblwevent/build.install-lib
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					build_target liblwevent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# make paths (this is for Gentoo in particular)
 | 
				
			||||||
 | 
					build_dir_tree "${LIBDIR}" || return 1
 | 
				
			||||||
 | 
					build_dir_tree "${BINDIR}" || return 1
 | 
				
			||||||
 | 
					build_dir_tree "${INCLUDEDIR}" || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install library
 | 
				
			||||||
 | 
					echo "Installing libraries into '${LIBDIR}'"
 | 
				
			||||||
 | 
					install_file ${liblwevent} ${LIBDIR} 0755 || return 1
 | 
				
			||||||
 | 
					BASE="${liblwevent_BASE}.so"
 | 
				
			||||||
 | 
					MAJOR="${BASE}.${SOMAJOR}"
 | 
				
			||||||
 | 
					MICRO="${MAJOR}.${SOMICRO}"
 | 
				
			||||||
 | 
					install_symlink "${BASE}" "${MICRO}" "${LIBDIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install header
 | 
				
			||||||
 | 
					echo "Installing header file '${liblwevent_HEADER}' into ${INCLUDEDIR}"
 | 
				
			||||||
 | 
					install_header ${liblwevent_HEADER} ${INCLUDEDIR} 0644 || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install config script
 | 
				
			||||||
 | 
					echo "Installing config script into ${BINDIR}"
 | 
				
			||||||
 | 
					CONFFILE="${INSTALL_PREFIX}${BINDIR}/liblwevent-config"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					do_cmd rm -f "${CONFFILE}"
 | 
				
			||||||
 | 
					do_cmd_redir "${CONFFILE}" sed \
 | 
				
			||||||
 | 
					    -e "s,@VERSION@,${VERSION}," \
 | 
				
			||||||
 | 
					    -e "s,@DEP_CFLAGS@,${liblwevent_DEP_CFLAGS}," \
 | 
				
			||||||
 | 
					    -e "s,@DEP_LIBS@,${liblwevent_DEP_LIBS}," \
 | 
				
			||||||
 | 
					    -e "s,@LIB_DIR@,${LIBDIR}," \
 | 
				
			||||||
 | 
					    -e "s,@INCLUDE_DIR@,${INCLUDEDIR}," \
 | 
				
			||||||
 | 
					    src/liblwevent/config-script
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					do_cmd chmod 0755 "${CONFFILE}"
 | 
				
			||||||
 | 
					print_success "Done"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,55 @@
 | 
				
			||||||
 | 
					# These are external variables, and shouldn't clash with anything else
 | 
				
			||||||
 | 
					#  liblwevent
 | 
				
			||||||
 | 
					#  liblwevent_BUILT
 | 
				
			||||||
 | 
					#  liblwevent_HEADER
 | 
				
			||||||
 | 
					#  liblwevent_BASE
 | 
				
			||||||
 | 
					#  liblwevent_DEP_CFLAGS
 | 
				
			||||||
 | 
					#  liblwevent_DEP_LIBS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z ${liblwevent_BUILT} ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    liblwevent_BASE=liblwevent
 | 
				
			||||||
 | 
					    source src/liblwevent/soversion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    liblwevent="obj/${liblwevent_BASE}.so.${SOMAJOR}.${SOMICRO}"
 | 
				
			||||||
 | 
					    liblwevent_DEP_CFLAGS="" # @TODO@ cflags
 | 
				
			||||||
 | 
					    liblwevent_DEP_LIBS="" # @TODO@ libs
 | 
				
			||||||
 | 
					    SO_EXTRA="${liblwevent_DEP_CFLAGS} ${liblwevent_DEP_LIBS} -lc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "Building library ${liblwevent}..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    do_cmd source src/liblwevent/build.monolithic || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MODIFIED=0
 | 
				
			||||||
 | 
					    for test in ${MONOLITHIC_TESTS} ${HDR} ${SRC}
 | 
				
			||||||
 | 
					    do
 | 
				
			||||||
 | 
					        if [ ${test} -nt ${liblwevent} ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            MODIFIED=1
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ${MODIFIED} -ne 0 ]
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        echo " Compiling"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SONAME="${liblwevent_BASE}.so.${SOMAJOR}"
 | 
				
			||||||
 | 
					        do_cmd ${CC} ${CFLAGS} -Iobj -shared -fpic -o "${liblwevent}" \
 | 
				
			||||||
 | 
					            -Wl,-soname,${SONAME} \
 | 
				
			||||||
 | 
					            ${SRC} ${SO_EXTRA} || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # make tests work
 | 
				
			||||||
 | 
					        do_cmd ln -sf $(basename ${liblwevent}) obj/${SONAME} || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        print_success "Library built"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        print_success "Library up to date"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    liblwevent_BUILT=1
 | 
				
			||||||
 | 
					    liblwevent_HEADER=${HDR}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					# These are external variables, and shouldn't clash with anything else
 | 
				
			||||||
 | 
					#  liblwevent_MONOLITHIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SRC="obj/liblwevent.c"
 | 
				
			||||||
 | 
					HDR="obj/lwevent.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MONOLITHIC_TESTS="src/liblwevent/build.lib src/liblwevent/build.monolithic"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z "${liblwevent_MONOLITHIC}" ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    MONOLITHIC_SOURCE="$(find src/liblwevent/ -name '*.h' | sort)"
 | 
				
			||||||
 | 
					    make_monolithic ${HDR} Ch || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MONOLITHIC_SOURCE="$(find src/liblwevent/ -name '*.c' | sort)"
 | 
				
			||||||
 | 
					    make_monolithic ${SRC} C || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    liblwevent_MONOLITHIC=1
 | 
				
			||||||
 | 
					    MONOLITHIC_DOC="${MONOLITHIC_DOC} ${HDR}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,98 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# liblwevent/src/liblwevent/config-script
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# liblwevent-config template. Variables are finalised at install time.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					dep_cflags="@DEP_CFLAGS@"
 | 
				
			||||||
 | 
					dep_libs="@DEP_LIBS@"
 | 
				
			||||||
 | 
					include_dir="@INCLUDE_DIR@"
 | 
				
			||||||
 | 
					include_dir_set="no"
 | 
				
			||||||
 | 
					lib_dir="@LIB_DIR@"
 | 
				
			||||||
 | 
					lib_dir_set="no"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					usage() {
 | 
				
			||||||
 | 
					    cat <<EOF
 | 
				
			||||||
 | 
					Usage: liblwevent-config [options]
 | 
				
			||||||
 | 
					Options:
 | 
				
			||||||
 | 
					        [--version]
 | 
				
			||||||
 | 
					        [--libs]
 | 
				
			||||||
 | 
					        [--libdir[=DIR]]
 | 
				
			||||||
 | 
					        [--cflags]
 | 
				
			||||||
 | 
					        [--includedir[=DIR]]
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					    exit $1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ $# -eq 0 ] && usage 1 1>&2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while [ $# -gt 0 ]
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    case "$1" in
 | 
				
			||||||
 | 
					        -*=*) 
 | 
				
			||||||
 | 
					            optarg="$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//')"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        *)
 | 
				
			||||||
 | 
					            optarg=""
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case "$1" in
 | 
				
			||||||
 | 
					        --libdir=*)
 | 
				
			||||||
 | 
					            lib_dir="${optarg}"
 | 
				
			||||||
 | 
					            lib_dir_set="yes"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --libdir)
 | 
				
			||||||
 | 
					            echo_lib_dir="yes"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --includedir=*)
 | 
				
			||||||
 | 
					            include_dir="${optarg}"
 | 
				
			||||||
 | 
					            include_dir_set="yes"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --includedir)
 | 
				
			||||||
 | 
					            echo_include_dir="yes"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --version)
 | 
				
			||||||
 | 
					            echo "@VERSION@"
 | 
				
			||||||
 | 
					            exit 0
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --cflags)
 | 
				
			||||||
 | 
					            [ "${include_dir}" != "/usr/include" ] && includes="-I${include_dir}"
 | 
				
			||||||
 | 
					            echo_cflags="yes"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --libs)
 | 
				
			||||||
 | 
					            echo_libs="yes"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        *)
 | 
				
			||||||
 | 
					            usage 1 1>&2
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    shift
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ "${echo_prefix}" == "yes" ] && echo "${prefix}"
 | 
				
			||||||
 | 
					[ "${echo_exec_prefix}" == "yes" ] && echo "${exec_prefix}"
 | 
				
			||||||
 | 
					[ "${echo_cflags}" == "yes" ] && echo "${dep_cflags} ${includes}"
 | 
				
			||||||
 | 
					[ "${echo_libs}" == "yes" ] && echo "${dep_libs} -L${lib_dir} -llwevent"
 | 
				
			||||||
 | 
					true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim: syntax=sh:expandtab:ts=4:sw=4
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					# liblwevent/src/liblwevent/soversion
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SOMAJOR is included in the library's soname, and needs to be bumped
 | 
				
			||||||
 | 
					# after a binary-incompatible release. It is a single integer.
 | 
				
			||||||
 | 
					SOMAJOR=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SOMICRO is bumped every time there is a binary-compatible release.
 | 
				
			||||||
 | 
					SOMICRO=0
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					# liblwevent/version
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  (c)2007, Laurence Withers, <l@lwithers.me.uk>.
 | 
				
			||||||
 | 
					#  Released under the GNU GPLv2. See file COPYING or
 | 
				
			||||||
 | 
					#  http://www.gnu.org/copyleft/gpl.html for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# VERSION contains the full version number of the library, which is 
 | 
				
			||||||
 | 
					# expected to be in 'major.minor.micro' format.
 | 
				
			||||||
 | 
					VERMAJOR=0
 | 
				
			||||||
 | 
					VERMINOR=0
 | 
				
			||||||
 | 
					VERMICRO=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
 | 
				
			||||||
 | 
					# vim: expandtab:ts=4:sw=4
 | 
				
			||||||
		Loading…
	
		Reference in New Issue