1 /* libsswf-version.h -- written by Alexis WILKE for Made to Order Software Corp. (c) 2002-2009 */
2 #ifndef LIBSSWF_VERSION_H
3 #define	LIBSSWF_VERSION_H
4 
5 /*
6 
7 Copyright (c) 2002-2009 Made to Order Software Corp.
8 
9 Permission is hereby granted, free of charge, to any
10 person obtaining a copy of this software and
11 associated documentation files (the "Software"), to
12 deal in the Software without restriction, including
13 without limitation the rights to use, copy, modify,
14 merge, publish, distribute, sublicense, and/or sell
15 copies of the Software, and to permit persons to whom
16 the Software is furnished to do so, subject to the
17 following conditions:
18 
19 The above copyright notice and this permission notice
20 shall be included in all copies or substantial
21 portions of the Software.
22 
23 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
24 ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
25 LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
26 FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
27 EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
29 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
30 ARISING FROM, OUT OF OR IN CONNECTION WITH THE
31 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32 SOFTWARE.
33 
34 */
35 
36 /** \file
37  *
38  * \brief The authority defining the version of the SSWF libraries
39  *
40  * The libsswf-version.h header file describes the SSWF version
41  * and the versions of all the libraries available in the SSWF
42  * project.
43  *
44  * The library versions are compatibility versions used by the
45  * dynamic linker to make sure that a given library can indeed
46  * be used by a software or another.
47  */
48 
49 
50 
51 /** \brief The exact SSWF project version
52  *
53  * The SSWF VERSION represents the current project release
54  * (see libtool -release).
55  *
56  * Its declares the exact version of the SSWF project. It is
57  * composed of 3 decimal numbers separated by two points.
58  *
59  * The first number defines the major version of the library and
60  * tools. So far, it has not changed.
61  *
62  * The second number defines the tag versions, each time I add
63  * support for one or more SWF tags, that version is increased.
64  *
65  * The third number defines the revision number. I increase that
66  * number whenever I make a new release with bug fixes and new
67  * functions, but no new SWF tags.
68  *
69  * \note
70  * Do not confound the SSWF project version (SSWF_VERSION) and
71  * the SSWF library compatibility version (LIBSSWF_VERSION).
72  * These two versions are not the same. One represents bug
73  * fixes and enhancements, the other represents changes to the
74  * interface of the library (which happen nearly all the time!).
75  *
76  * \sa LIBSSWF_VERSION
77  */
78 #define	SSWF_VERSION		1.8.4
79 
80 /** \brief A low-level macro to create a C string
81  *
82  * The TO_STR_sub(s) macro is used to transform the parameter
83  * into a string. This macro is called by the TO_STR(s) macro.
84  *
85  * \param s Often another macro such as SSWF_VERSION
86  *
87  * \sa SSWF_VERSION
88  */
89 #define	TO_STR_sub(s)		#s
90 
91 /** \brief Transform a macro which is not a string into a string
92  *
93  * The TO_STR(s) macro transform the parameter into a string.
94  *
95  * \param s Often another macro such as SSWF_VERSION
96  *
97  * \sa SSWF_VERSION
98  */
99 #define	TO_STR(s)		TO_STR_sub(s)
100 
101 
102 /******************************************************************************
103  * The following are the current compatibility versions for each library
104  * (see libtool -version-info)
105  ******************************************************************************/
106 
107 
108 /** \brief The C++ SSWF library (libsswf) compatibility version
109  *
110  * When you run a program linked against the dynamic SSWF library, the
111  * dynamic linker will check the version of the library to make sure that
112  * it is compatible. This version is defined by LIBSSWF_VERSION.
113  *
114  * When this version changes, it is not unlikely that the C library
115  * version will change too.
116  *
117  * The syntax is what libtools supports. Three decimal numbers separated
118  * by semicolons.
119  *
120  * \sa LIBSSWFC_VERSION
121  */
122 #define	LIBSSWF_VERSION		3:0:0
123 
124 
125 /** \brief The C SSWF library (libsswf_c) compatibility version
126  *
127  * When you run a program linked against the dynamic C SSWF library, the
128  * dynamic linker will check the version of the library to make sure that
129  * it is compatible. This version is defined by LIBSSWFC_VERSION.
130  *
131  * This version should change less than the C++ library version, yet it
132  * will certain often change when the C++ library includes new functions
133  * and parameters.
134  *
135  * The syntax is what libtools supports. Three decimal numbers separated
136  * by semicolons.
137  *
138  * \sa LIBSSWF_VERSION
139  */
140 #define	LIBSSWFC_VERSION	2:0:0
141 
142 
143 /** \brief The ActionScript compiler library (libsswf_as) compatibility version
144  *
145  * When you run a program linked against the dynamic ActionScript compiler
146  * library, the dynamic linker will check the version of the library to
147  * make sure that it is compatible. This version is defined by
148  * LIBSSWFAS_VERSION.
149  *
150  * The syntax is what libtools supports. Three decimal numbers separated
151  * by semicolons.
152  *
153  * \sa LIBSSWFASAS_VERSION
154  * \sa LIBSSWFASC_VERSION
155  */
156 #define	LIBSSWFAS_VERSION	2:0:0
157 
158 
159 /** \brief The ActionScript assembler library (libsswf_asas) compatibility version
160  *
161  * When you run a program linked against the dynamic ActionScript assembler
162  * library, the dynamic linker will check the version of the library to
163  * make sure that it is compatible. This version is defined by
164  * LIBSSWFASAS_VERSION.
165  *
166  * The syntax is what libtools supports. Three decimal numbers separated
167  * by semicolons.
168  *
169  * \sa LIBSSWFAS_VERSION
170  * \sa LIBSSWFASC_VERSION
171  */
172 #define	LIBSSWFASAS_VERSION	2:0:0
173 
174 
175 
176 /** \brief The ActionScript internal script files.
177  *
178  * The compiler can be used with all the packages defined internally instead of
179  * externally. This is achieved with the SSWF asc library. The following is the
180  * version of that library. The dynamic linker will check that version whenever
181  * the library is being loaded to make sure it is compatible with your tools.
182  *
183  * \sa LIBSSWFAS_VERSION
184  * \sa LIBSSWFASAS_VERSION
185  */
186 #define	LIBSSWFASC_VERSION	1:0:0
187 
188 
189 
190 /****************************************************************************
191  *
192  * Fink requires us to setup the library versions. This is anyhow a very
193  * good idea to manage compatibility between versions. Only problem, I need
194  * to test and make sure to change the versions each time I'm about to
195  * create a new public release...
196  *
197  * libtool expects a -version_info option with three values. What follows
198  * is an extract from:
199  *
200  *   http://docsrv.sco.com:507/cgi-bin/info2html?(libtool.info.gz)Updating%2520version%2520info&lang=en
201  *
202  * which explains how we need to handle this information.
203  *
204  ****************************************************************************
205  *
206  *    Here are a set of rules to help you update your library version
207  * information:
208  *
209  *   1. Start with version information of `0:0:0' for each libtool library.
210  *
211  *   2. Update the version information only immediately before a public
212  *      release of your software.  More frequent updates are unnecessary,
213  *      and only guarantee that the current interface number gets larger
214  *      faster.
215  *
216  *   3. If the library source code has changed at all since the last
217  *      update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
218  *
219  *   4. If any interfaces have been added, removed, or changed since the
220  *      last update, increment CURRENT, and set REVISION to 0.
221  *
222  *   5. If any interfaces have been added since the last public release,
223  *      then increment AGE.
224  *
225  *   6. If any interfaces have been removed since the last public release,
226  *      then set AGE to 0.
227  *
228  ****************************************************************************
229  */
230 
231 
232 #endif		// #ifndef LIBSSWF_VERSION_H
233