/*-------------------------------------------------------------------------
*
* config_info . c
* Common code for pg_config output
*
*
* Portions Copyright ( c ) 1996 - 2025 , PostgreSQL Global Development Group
* Portions Copyright ( c ) 1994 , Regents of the University of California
*
*
* IDENTIFICATION
* src / common / config_info . c
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
#ifndef FRONTEND
#include "postgres.h"
#else
#include "postgres_fe.h"
#endif
#include "common/config_info.h"
/*
* get_configdata ( const char * my_exec_path , size_t * configdata_len )
*
* Get configure - time constants . The caller is responsible
* for pfreeing the result .
*/
ConfigData *
get_configdata(const char *my_exec_path, size_t *configdata_len)
{
ConfigData *configdata;
char path[MAXPGPATH];
char *lastsep;
int i = 0 ;
/* Adjust this to match the number of items filled below */
*configdata_len = 23 ;
configdata = palloc_array(ConfigData, *configdata_len);
configdata[i].name = pstrdup("BINDIR" );
strlcpy(path, my_exec_path, sizeof (path));
lastsep = strrchr(path, '/' );
if (lastsep)
*lastsep = '\0' ;
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("DOCDIR" );
get_doc_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("HTMLDIR" );
get_html_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("INCLUDEDIR" );
get_include_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("PKGINCLUDEDIR" );
get_pkginclude_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("INCLUDEDIR-SERVER" );
get_includeserver_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("LIBDIR" );
get_lib_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("PKGLIBDIR" );
get_pkglib_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("LOCALEDIR" );
get_locale_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("MANDIR" );
get_man_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("SHAREDIR" );
get_share_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("SYSCONFDIR" );
get_etc_path(my_exec_path, path);
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("PGXS" );
get_pkglib_path(my_exec_path, path);
strlcat(path, "/pgxs/src/makefiles/pgxs.mk" , sizeof (path));
cleanup_path(path);
configdata[i].setting = pstrdup(path);
i++;
configdata[i].name = pstrdup("CONFIGURE" );
configdata[i].setting = pstrdup(CONFIGURE_ARGS);
i++;
configdata[i].name = pstrdup("CC" );
#ifdef VAL_CC
configdata[i].setting = pstrdup(VAL_CC);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("CPPFLAGS" );
#ifdef VAL_CPPFLAGS
configdata[i].setting = pstrdup(VAL_CPPFLAGS);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("CFLAGS" );
#ifdef VAL_CFLAGS
configdata[i].setting = pstrdup(VAL_CFLAGS);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("CFLAGS_SL" );
#ifdef VAL_CFLAGS_SL
configdata[i].setting = pstrdup(VAL_CFLAGS_SL);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("LDFLAGS" );
#ifdef VAL_LDFLAGS
configdata[i].setting = pstrdup(VAL_LDFLAGS);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("LDFLAGS_EX" );
#ifdef VAL_LDFLAGS_EX
configdata[i].setting = pstrdup(VAL_LDFLAGS_EX);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("LDFLAGS_SL" );
#ifdef VAL_LDFLAGS_SL
configdata[i].setting = pstrdup(VAL_LDFLAGS_SL);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("LIBS" );
#ifdef VAL_LIBS
configdata[i].setting = pstrdup(VAL_LIBS);
#else
configdata[i].setting = pstrdup(_("not recorded" ));
#endif
i++;
configdata[i].name = pstrdup("VERSION" );
configdata[i].setting = pstrdup("PostgreSQL " PG_VERSION);
i++;
Assert(i == *configdata_len);
return configdata;
}
Messung V0.5 in Prozent C=91 H=96 G=93
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-08-08)
¤
*© Formatika GbR, Deutschland