1/*
2 * tclPkgConfig.c --
3 *
4 *	This file contains the configuration information to embed into the tcl
5 *	binary library.
6 *
7 * Copyright (c) 2002 Andreas Kupries <andreas_kupries@users.sourceforge.net>
8 *
9 * See the file "license.terms" for information on usage and redistribution of
10 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
11 *
12 * RCS: @(#) $Id: tclPkgConfig.c,v 1.4 2005/11/07 15:14:09 dkf Exp $
13 */
14
15/* Note, the definitions in this module are influenced by the following C
16 * preprocessor macros:
17 *
18 * OSCMa  = shortcut for "old style configuration macro activates"
19 * NSCMdt = shortcut for "new style configuration macro declares that"
20 *
21 * - TCL_THREADS		OSCMa compilation as threaded core.
22 * - TCL_MEM_DEBUG		OSCMa memory debugging.
23 * - TCL_COMPILE_DEBUG		OSCMa debugging of bytecode compiler.
24 * - TCL_COMPILE_STATS		OSCMa bytecode compiler statistics.
25 *
26 * - TCL_CFG_DO64BIT		NSCMdt tcl is compiled for a 64bit system.
27 * - TCL_CFG_DEBUG		NSCMdt tcl is compiled with symbol info on.
28 * - TCL_CFG_OPTIMIZED		NSCMdt tcl is compiled with cc optimizations on
29 * - TCL_CFG_PROFILED		NSCMdt tcl is compiled with profiling info.
30 *
31 * - CFG_RUNTIME_*		Paths to various stuff at runtime.
32 * - CFG_INSTALL_*		Paths to various stuff at installation time.
33 *
34 * - TCL_CFGVAL_ENCODING	string containing the encoding used for the
35 *				configuration values.
36 */
37
38#include "tclInt.h"
39
40/*
41 * Use C preprocessor statements to define the various values for the embedded
42 * configuration information.
43 */
44
45#ifdef TCL_THREADS
46#  define  CFG_THREADED		"1"
47#else
48#  define  CFG_THREADED		"0"
49#endif
50
51#ifdef TCL_MEM_DEBUG
52#  define CFG_MEMDEBUG		"1"
53#else
54#  define CFG_MEMDEBUG		"0"
55#endif
56
57#ifdef TCL_COMPILE_DEBUG
58#  define CFG_COMPILE_DEBUG	"1"
59#else
60#  define CFG_COMPILE_DEBUG	"0"
61#endif
62
63#ifdef TCL_COMPILE_STATS
64#  define CFG_COMPILE_STATS	"1"
65#else
66#  define CFG_COMPILE_STATS	"0"
67#endif
68
69#ifdef TCL_CFG_DO64BIT
70#  define CFG_64		"1"
71#else
72#  define CFG_64		"0"
73#endif
74
75#ifdef TCL_CFG_DEBUG
76#  define CFG_DEBUG		"1"
77#else
78#  define CFG_DEBUG		"0"
79#endif
80
81#ifdef TCL_CFG_OPTIMIZED
82#  define CFG_OPTIMIZED		"1"
83#else
84#  define CFG_OPTIMIZED		"0"
85#endif
86
87#ifdef TCL_CFG_PROFILED
88#  define CFG_PROFILED		"1"
89#else
90#  define CFG_PROFILED		"0"
91#endif
92
93static Tcl_Config cfg[] = {
94    {"debug",			CFG_DEBUG},
95    {"threaded",		CFG_THREADED},
96    {"profiled",		CFG_PROFILED},
97    {"64bit",			CFG_64},
98    {"optimized",		CFG_OPTIMIZED},
99    {"mem_debug",		CFG_MEMDEBUG},
100    {"compile_debug",		CFG_COMPILE_DEBUG},
101    {"compile_stats",		CFG_COMPILE_STATS},
102
103    /* Runtime paths to various stuff */
104
105    {"libdir,runtime",		CFG_RUNTIME_LIBDIR},
106    {"bindir,runtime",		CFG_RUNTIME_BINDIR},
107    {"scriptdir,runtime",	CFG_RUNTIME_SCRDIR},
108    {"includedir,runtime",	CFG_RUNTIME_INCDIR},
109    {"docdir,runtime",		CFG_RUNTIME_DOCDIR},
110
111    /* Installation paths to various stuff */
112
113    {"libdir,install",		CFG_INSTALL_LIBDIR},
114    {"bindir,install",		CFG_INSTALL_BINDIR},
115    {"scriptdir,install",	CFG_INSTALL_SCRDIR},
116    {"includedir,install",	CFG_INSTALL_INCDIR},
117    {"docdir,install",		CFG_INSTALL_DOCDIR},
118
119    /* Last entry, closes the array */
120    {NULL, NULL}
121};
122
123void
124TclInitEmbeddedConfigurationInformation(
125    Tcl_Interp* interp)		/* Interpreter the configuration command is
126				 * registered in. */
127{
128    Tcl_RegisterConfig(interp, "tcl", cfg, TCL_CFGVAL_ENCODING);
129}
130
131/*
132 * Local Variables:
133 * mode: c
134 * c-basic-offset: 4
135 * fill-column: 78
136 * End:
137 */
138