1 /*
2  * Provides a build mark with the current version and current time of compilation.
3  *
4  * climm Copyright (C) © 2001-2010 Rüdiger Kuhlmann
5  *
6  * climm is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 dated June, 1991.
9  *
10  * climm is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
13  * License for more details.
14  *
15  * In addition, as a special exception permission is granted to link the
16  * code of this release of climm with the OpenSSL project's "OpenSSL"
17  * library, and distribute the linked executables.  You must obey the GNU
18  * General Public License in all respects for all of the code used other
19  * than "OpenSSL".  If you modify this file, you may extend this exception
20  * to your version of the file, but you are not obligated to do so.  If you
21  * do not wish to do so, delete this exception statement from your version
22  * of this file.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this package; if not, write to the Free Software
26  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27  * 02111-1307, USA.
28  *
29  * $Id: buildmark.c 2866 2010-03-20 11:07:42Z kuhlmann $
30  */
31 
32 /*                         0.7.1.0 */
33 #define CLIMM_BUILD_NUM 0x00070100
34 
35 #include "climm.h"
36 #include "buildmark.h"
37 #include "conv.h"
38 #include "contact.h"
39 #include "preferences.h"
40 #include "util_rl.h"
41 #include ".cvsupdate"
42 
43 #ifdef __AMIGA__
44 #define EXTRAVERSION_DEF "AmigaOS"
45 #define BUILD_PLATFORM BUILD_PLATFORM_AMIGAOS
46 #elif defined (__QNX__)
47 #define EXTRAVERSION_DEF "QNX"
48 #define BUILD_PLATFORM BUILD_PLATFORM_QNX
49 #elif defined (__APPLE__)
50 #define EXTRAVERSION_DEF "Apple Mac OS X"
51 #define BUILD_PLATFORM BUILD_PLATFORM_MACOSX
52 #elif defined (__BEOS__)
53 #define EXTRAVERSION_DEF "BeOS"
54 #define BUILD_PLATFORM BUILD_PLATFORM_BEOS
55 #elif defined (__Cygwin__)
56 #define EXTRAVERSION_DEF "Cygwin"
57 #define BUILD_PLATFORM BUILD_PLATFORM_CYGWIN
58 #elif defined (_WIN32)
59 #define EXTRAVERSION_DEF "Win32"
60 #define BUILD_PLATFORM BUILD_PLATFORM_WINDOWS
61 #elif defined (__OpenBSD__)
62 #define EXTRAVERSION_DEF "OpenBSD"
63 #define BUILD_PLATFORM BUILD_PLATFORM_OPENBSD
64 #elif defined (__NetBSD__)
65 #define EXTRAVERSION_DEF "NetBSD"
66 #define BUILD_PLATFORM BUILD_PLATFORM_NETBSD
67 #elif defined (__FreeBSD__)
68 #define EXTRAVERSION_DEF "FreeBSD"
69 #define BUILD_PLATFORM BUILD_PLATFORM_FREEBSD
70 #elif defined (_AIX)
71 #define EXTRAVERSION_DEF "AIX"
72 #define BUILD_PLATFORM BUILD_PLATFORM_AIX
73 #elif defined (__hpux)
74 #define EXTRAVERSION_DEF "HPUX"
75 #define BUILD_PLATFORM BUILD_PLATFORM_HPUX
76 #elif defined (__sun__) || defined (sun)
77 #define EXTRAVERSION_DEF "Solaris"
78 #define BUILD_PLATFORM BUILD_PLATFORM_SOLARIS
79 #elif __Dbn__ != -1
80 #define EXTRAVERSION_DEF "De" "bi" "an"
81 #define BUILD_PLATFORM BUILD_PLATFORM_DEBIAN
82 #elif defined (__linux__)
83 #define EXTRAVERSION_DEF "Linux"
84 #define BUILD_PLATFORM BUILD_PLATFORM_LINUX
85 #elif defined (__unix__)
86 #define EXTRAVERSION_DEF "Unix"
87 #define BUILD_PLATFORM BUILD_PLATFORM_UNIX
88 #else
89 #define EXTRAVERSION_DEF "unknown"
90 #define BUILD_PLATFORM 0x00000000
91 #endif
92 
93 #ifndef EXTRAVERSION
94 #define EXTRAVERSION EXTRAVERSION_DEF " hand compiled"
95 #endif
96 
97 #ifdef ENABLE_AUTOPACKAGE
98 #define EV_AP "AP "
99 #else
100 #define EV_AP
101 #endif
102 
103 #ifdef ENABLE_PEER2PEER
104 #define EV_P2P "P2P "
105 #else
106 #define EV_P2P
107 #endif
108 
109 #ifdef ENABLE_TCL
110 #define EV_TCL "TCL "
111 #else
112 #define EV_TCL
113 #endif
114 
115 #ifdef ENABLE_SSL
116 #define EV_SSL "SSL "
117 #else
118 #define EV_SSL
119 #endif
120 
121 #ifdef ENABLE_XMPP
122 #define EV_XMPP "XMPP "
123 #else
124 #define EV_XMPP
125 #endif
126 
127 #ifdef ENABLE_MSN
128 #define EV_MSN "MSN "
129 #else
130 #define EV_MSN
131 #endif
132 
133 #ifdef ENABLE_OTR
134 #define EV_OTR "OTR "
135 #else
136 #define EV_OTR
137 #endif
138 
139 #define EV EV_OTR EV_AP EV_SSL EV_TCL EV_P2P EV_XMPP EV_MSN
140 
141 const UDWORD BuildPlatformID = BUILD_PLATFORM;
142 const char  *BuildPlatformStr = EXTRAVERSION_DEF;
143 
BuildVersion(void)144 const char *BuildVersion (void)
145 {
146     return s_sprintf (i18n (2327, "%sclimm%s - CLI-based Multi-Messenger%s version %s%s%s\n"),
147             COLERROR, COLSERVER, COLNONE, COLSERVER, CLIMM_VERSION " (" SVNUPDATE ")", COLNONE);
148 }
149 
BuildAttribution(void)150 const char *BuildAttribution (void)
151 {
152     char *name;
153     int baselen = 79;
154     const char *full;
155     const char *c = ConvTranslit ("\xc2\xa9", "(c)");
156     const char *ue = ConvTranslit ("\xc3\xbc", "ue");
157 
158     baselen += 2 * (*c == '(' ? 2 : 0) + (*ue == 'u' ? 1 : 0);
159 
160     name = strdup (s_sprintf ("%s 2001-2010 %sR%sdiger Kuhlmann%s %smicq %s 1998-2000 %sMatthew D. Smith%s\n",
161                    c, COLQUOTE, ue, COLNONE, (rl_columns > baselen ? "based on " : ""),
162                    c, COLQUOTE, COLNONE));
163     full = s_sprintf (i18n (2574, "%sReleased under version 2 of the GNU General Public License (%sGPL v2%s).\n"),
164                    name, COLQUOTE, COLNONE);
165     free (name);
166     return full;
167 }
168 
169 const UDWORD BuildVersionNum = CLIMM_BUILD_NUM;
170 const char *BuildVersionText = "$VER: climm " VERSION " " EV EXTRAVERSION "\n(" SVNUPDATE " build " BUILDDATE ")\n" CONFIGURELINE;
171 const char *BuildVersionStr  = VERSION CLIMM_IS_SVN;
172 
173 /*
174  i18n (1000, "UTF-8")            charset used
175  i19n (1001, "en")               locale
176  i19n (1002, "en_US")            locale
177  i19n (1003, "0-4-10")           CLIMM_BUILD_NUM
178  i19n (1004, "Ruediger Kuhlmann") all contributors
179  i19n (1005, "Ruediger Kuhlmann") last contributor
180  i19n (1006, "2002-05-02")       last change
181  i19n (1007, "iso-8859-1")       charset used (obsolete)
182  i19n (1008, "US-ASCII")         default language's charset
183  */
184