libsswf: libsswf-version.h Source File

# libsswf-version.h

Go to the documentation of this file.

    00001 /* libsswf-version.h -- written by Alexis WILKE for Made to Order Software Corp. (c) 2002-2009 */
    00002 #ifndef LIBSSWF_VERSION_H
    00003 #define LIBSSWF_VERSION_H
    00004
    00005 /*
    00006
    00007 Copyright (c) 2002-2009 Made to Order Software Corp.
    00008
    00009 Permission is hereby granted, free of charge, to any
    00010 person obtaining a copy of this software and
    00011 associated documentation files (the "Software"), to
    00012 deal in the Software without restriction, including
    00013 without limitation the rights to use, copy, modify,
    00014 merge, publish, distribute, sublicense, and/or sell
    00015 copies of the Software, and to permit persons to whom
    00016 the Software is furnished to do so, subject to the
    00017 following conditions:
    00018
    00019 The above copyright notice and this permission notice
    00020 shall be included in all copies or substantial
    00021 portions of the Software.
    00022
    00023 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    00024 ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
    00025 LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
    00026 FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
    00027 EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    00028 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    00029 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    00030 ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    00031 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    00032 SOFTWARE.
    00033
    00034 */
    00035
    00036 /** \file
    00037  *
    00038  * \brief The authority defining the version of the SSWF libraries
    00039  *
    00040  * The libsswf-version.h header file describes the SSWF version
    00041  * and the versions of all the libraries available in the SSWF
    00042  * project.
    00043  *
    00044  * The library versions are compatibility versions used by the
    00045  * dynamic linker to make sure that a given library can indeed
    00046  * be used by a software or another.
    00047  */
    00048
    00049
    00050
    00051 /** \brief The exact SSWF project version
    00052  *
    00053  * The SSWF VERSION represents the current project release
    00054  * (see libtool -release).
    00055  *
    00056  * Its declares the exact version of the SSWF project. It is
    00057  * composed of 3 decimal numbers separated by two points.
    00058  *
    00059  * The first number defines the major version of the library and
    00060  * tools. So far, it has not changed.
    00061  *
    00062  * The second number defines the tag versions, each time I add
    00063  * support for one or more SWF tags, that version is increased.
    00064  *
    00065  * The third number defines the revision number. I increase that
    00066  * number whenever I make a new release with bug fixes and new
    00067  * functions, but no new SWF tags.
    00068  *
    00069  * \note
    00070  * Do not confound the SSWF project version (SSWF_VERSION) and
    00071  * the SSWF library compatibility version (LIBSSWF_VERSION).
    00072  * These two versions are not the same. One represents bug
    00073  * fixes and enhancements, the other represents changes to the
    00074  * interface of the library (which happen nearly all the time!).
    00075  *
    00076  * \sa LIBSSWF_VERSION
    00077  */
    00078 #define SSWF_VERSION            1.8.5
    00079
    00080 /** \brief A low-level macro to create a C string
    00081  *
    00082  * The TO_STR_sub(s) macro is used to transform the parameter
    00083  * into a string. This macro is called by the TO_STR(s) macro.
    00084  *
    00085  * \param s Often another macro such as SSWF_VERSION
    00086  *
    00087  * \sa SSWF_VERSION
    00088  */
    00089 #define TO_STR_sub(s)           #s
    00090
    00091 /** \brief Transform a macro which is not a string into a string
    00092  *
    00093  * The TO_STR(s) macro transform the parameter into a string.
    00094  *
    00095  * \param s Often another macro such as SSWF_VERSION
    00096  *
    00097  * \sa SSWF_VERSION
    00098  */
    00099 #define TO_STR(s)               TO_STR_sub(s)
    00100
    00101
    00102 /******************************************************************************
    00103  * The following are the current compatibility versions for each library
    00104  * (see libtool -version-info)
    00105  ******************************************************************************/
    00106
    00107
    00108 /** \brief The C++ SSWF library (libsswf) compatibility version
    00109  *
    00110  * When you run a program linked against the dynamic SSWF library, the
    00111  * dynamic linker will check the version of the library to make sure that
    00112  * it is compatible. This version is defined by LIBSSWF_VERSION.
    00113  *
    00114  * When this version changes, it is not unlikely that the C library
    00115  * version will change too.
    00116  *
    00117  * The syntax is what libtools supports. Three decimal numbers separated
    00118  * by semicolons.
    00119  *
    00120  * \sa LIBSSWFC_VERSION
    00121  */
    00122 #define LIBSSWF_VERSION         4:0:0
    00123
    00124
    00125 /** \brief The C SSWF library (libsswf_c) compatibility version
    00126  *
    00127  * When you run a program linked against the dynamic C SSWF library, the
    00128  * dynamic linker will check the version of the library to make sure that
    00129  * it is compatible. This version is defined by LIBSSWFC_VERSION.
    00130  *
    00131  * This version should change less than the C++ library version, yet it
    00132  * will certain often change when the C++ library includes new functions
    00133  * and parameters.
    00134  *
    00135  * The syntax is what libtools supports. Three decimal numbers separated
    00136  * by semicolons.
    00137  *
    00138  * \sa LIBSSWF_VERSION
    00139  */
    00140 #define LIBSSWFC_VERSION        3:0:0
    00141
    00142
    00143 /** \brief The ActionScript compiler library (libsswf_as) compatibility version
    00144  *
    00145  * When you run a program linked against the dynamic ActionScript compiler
    00146  * library, the dynamic linker will check the version of the library to
    00147  * make sure that it is compatible. This version is defined by
    00148  * LIBSSWFAS_VERSION.
    00149  *
    00150  * The syntax is what libtools supports. Three decimal numbers separated
    00151  * by semicolons.
    00152  *
    00153  * \sa LIBSSWFASAS_VERSION
    00154  * \sa LIBSSWFASC_VERSION
    00155  */
    00156 #define LIBSSWFAS_VERSION       2:0:0
    00157
    00158
    00159 /** \brief The ActionScript assembler library (libsswf_asas) compatibility version
    00160  *
    00161  * When you run a program linked against the dynamic ActionScript assembler
    00162  * library, the dynamic linker will check the version of the library to
    00163  * make sure that it is compatible. This version is defined by
    00164  * LIBSSWFASAS_VERSION.
    00165  *
    00166  * The syntax is what libtools supports. Three decimal numbers separated
    00167  * by semicolons.
    00168  *
    00169  * \sa LIBSSWFAS_VERSION
    00170  * \sa LIBSSWFASC_VERSION
    00171  */
    00172 #define LIBSSWFASAS_VERSION     2:0:0
    00173
    00174
    00175
    00176 /** \brief The ActionScript internal script files.
    00177  *
    00178  * The compiler can be used with all the packages defined internally instead of
    00179  * externally. This is achieved with the SSWF asc library. The following is the
    00180  * version of that library. The dynamic linker will check that version whenever
    00181  * the library is being loaded to make sure it is compatible with your tools.
    00182  *
    00183  * \sa LIBSSWFAS_VERSION
    00184  * \sa LIBSSWFASAS_VERSION
    00185  */
    00186 #define LIBSSWFASC_VERSION      1:0:0
    00187
    00188
    00189
    00190 /****************************************************************************
    00191  *
    00192  * Fink requires us to setup the library versions. This is anyhow a very
    00193  * good idea to manage compatibility between versions. Only problem, I need
    00194  * to test and make sure to change the versions each time I'm about to
    00195  * create a new public release...
    00196  *
    00197  * libtool expects a -version_info option with three values. What follows
    00198  * is an extract from:
    00199  *
    00200  *   http://docsrv.sco.com:507/cgi-bin/info2html?(libtool.info.gz)Updating%2520version%2520info&lang=en
    00201  *
    00202  * which explains how we need to handle this information.
    00203  *
    00204  ****************************************************************************
    00205  *
    00206  *    Here are a set of rules to help you update your library version
    00207  * information:
    00208  *
    00209  *   1. Start with version information of `0:0:0' for each libtool library.
    00210  *
    00211  *   2. Update the version information only immediately before a public
    00212  *      release of your software.  More frequent updates are unnecessary,
    00213  *      and only guarantee that the current interface number gets larger
    00214  *      faster.
    00215  *
    00216  *   3. If the library source code has changed at all since the last
    00217  *      update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
    00218  *
    00219  *   4. If any interfaces have been added, removed, or changed since the
    00220  *      last update, increment CURRENT, and set REVISION to 0.
    00221  *
    00222  *   5. If any interfaces have been added since the last public release,
    00223  *      then increment AGE.
    00224  *
    00225  *   6. If any interfaces have been removed since the last public release,
    00226  *      then set AGE to 0.
    00227  *
    00228  ****************************************************************************
    00229  */
    00230
    00231
    00232 #endif          // #ifndef LIBSSWF_VERSION_H