summaryrefslogtreecommitdiffstats
path: root/generic/tclPkgConfig.c
blob: 06070ef0844f61440752e2930611d843f9b24117 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* 
 * tclPkgConfig.c --
 *
 *	This file contains the configuration information to
 *	embed into the tcl binary library.
 *
 * Copyright (c) 2002 Andreas Kupries <andreas_kupries@users.sourceforge.net>
 *
 * See the file "license.terms" for information on usage and redistribution
 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * RCS: @(#) $Id: tclPkgConfig.c,v 1.2 2003/06/09 22:48:33 andreas_kupries Exp $
 */

/* Note, the definitions in this module are influenced by the
 * following C preprocessor macros:
 *
 * OSCMa  = shortcut for "old style configuration macro activates"
 * NSCMdt = shortcut for "new style configuration macro declares that"
 *
 * - TCL_THREADS		OSCMa  compilation as threaded core.
 * - TCL_MEM_DEBUG		OSCMa  memory debugging.
 * - TCL_COMPILE_DEBUG		OSCMa  debugging of bytecode compiler.
 * - TCL_COMPILE_STATS		OSCMa  bytecode compiler statistics.
 *
 * - TCL_CFG_DO64BIT		NSCMdt tcl is compiled for a 64bit system.
 * - TCL_CFG_DEBUG		NSCMdt tcl is compiled with symbol info on.
 * - TCL_CFG_OPTIMIZED		NSCMdt tcl is compiled with cc optimizations on.
 * - TCL_CFG_PROFILED		NSCMdt tcl is compiled with profiling info.
 *
 * - CFG_RUNTIME_*		Paths to various stuff at runtime.
 * - CFG_INSTALL_*		Paths to various stuff at installation time.
 *
 * - TCL_CFGVAL_ENCODING	string containing the encoding used for the
 *                              configuration values.
 */

#include "tclInt.h"



/* Use C preprocessor statements to define the various values for the
 * embedded configuration information.  */

#ifdef TCL_THREADS
#  define  CFG_THREADED "1"
#else
#  define  CFG_THREADED "0"
#endif
#ifdef TCL_MEM_DEBUG
#  define CFG_MEMDEBUG "1"
#else
#  define CFG_MEMDEBUG "0"
#endif
#ifdef TCL_COMPILE_DEBUG
#  define CFG_COMPILE_DEBUG "1"
#else
#  define CFG_COMPILE_DEBUG "0"
#endif
#ifdef TCL_COMPILE_STATS
#  define CFG_COMPILE_STATS "1"
#else
#  define CFG_COMPILE_STATS "0"
#endif
#ifdef TCL_CFG_DO64BIT
#  define CFG_64            "1"
#else
#  define CFG_64            "0"
#endif
#ifdef TCL_CFG_DEBUG
#  define CFG_DEBUG         "1"
#else
#  define CFG_DEBUG         "0"
#endif
#ifdef TCL_CFG_OPTIMIZED
#  define CFG_OPTIMIZED     "1"
#else
#  define CFG_OPTIMIZED     "0"
#endif
#ifdef TCL_CFG_PROFILED
#  define CFG_PROFILED     "1"
#else
#  define CFG_PROFILED     "0"
#endif

static Tcl_Config cfg [] = {
  {"debug",               CFG_DEBUG},
  {"threaded",            CFG_THREADED},
  {"profiled",            CFG_PROFILED},
  {"64bit",               CFG_64},
  {"optimized",           CFG_OPTIMIZED},
  {"mem_debug",           CFG_MEMDEBUG},
  {"compile_debug",       CFG_COMPILE_DEBUG},
  {"compile_stats",       CFG_COMPILE_STATS},

  /* Runtime paths to various stuff */

  {"libdir,runtime",     CFG_RUNTIME_LIBDIR},
  {"bindir,runtime",     CFG_RUNTIME_BINDIR},
  {"scriptdir,runtime",  CFG_RUNTIME_SCRDIR},
  {"includedir,runtime", CFG_RUNTIME_INCDIR},
  {"docdir,runtime",     CFG_RUNTIME_DOCDIR},

  /* Installation paths to various stuff */

  {"libdir,install",     CFG_INSTALL_LIBDIR},
  {"bindir,install",     CFG_INSTALL_BINDIR},
  {"scriptdir,install",  CFG_INSTALL_SCRDIR},
  {"includedir,install", CFG_INSTALL_INCDIR},
  {"docdir,install",     CFG_INSTALL_DOCDIR},

  /* Last entry, closes the array */
  {NULL, NULL}
};

void
TclInitEmbeddedConfigurationInformation (interp)
     Tcl_Interp* interp;            /* Interpreter the configuration
				     * command is registered in. */
{
  Tcl_RegisterConfig (interp, "tcl", cfg, TCL_CFGVAL_ENCODING);
}