Add missing file.

This commit is contained in:
Bruce Momjian 2004-08-01 13:54:05 +00:00
parent cc07f8cfe7
commit 72e7f0d48a
1 changed files with 154 additions and 0 deletions

View File

@ -0,0 +1,154 @@
/*-------------------------------------------------------------------------
*
* pg_config.c
*
* This program reports various pieces of information about the
* installed version of PostgreSQL. Packages that interface to
* PostgreSQL can use it to configure their build.
*
* This is a C implementation of the previous shell script written by
* Peter Eisentraut <peter_e@gmx.net>, with adjustments made to
* accomodate the possibility that the installation has been relocated from
* the place originally configured.
*
* author of C translation: Andrew Dunstan mailto:andrew@dunslane.net
*
* This code is released under the terms of the PostgreSQL License.
*
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.1 2004/08/01 13:54:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
#include "port.h"
#include <stdio.h>
#define _(x) gettext((x))
char * progname;
static void
help()
{
printf(_("\n%s provides information about the installed version of PostgreSQL.\n\n"),progname);
printf(_("Usage:\n"));
printf(_(" %s OPTION...\n\n"),progname);
printf(_("Options:\n"));
printf(_(" --bindir show location of user executables\n"));
printf(_(" --includedir show location of C header files of the client\n"));
printf(_(" interfaces\n"));
printf(_(" --includedir-server show location of C header files for the server\n"));
printf(_(" --libdir show location of object code libraries\n"));
printf(_(" --pkglibdir show location of dynamically loadable modules\n"));
printf(_(" --configure show options given to 'configure' script when\n"));
printf(_(" PostgreSQL was built\n"));
printf(_(" --version show the PostgreSQL version, then exit\n"));
printf(_(" --help show this help, then exit\n\n"));
printf(_("Report bugs to <pgsql-bugs@postgresql.org>.\n"));
}
static void
advice()
{
fprintf(stderr,_("\nTry \"%s --help\" for more information\n"),progname);
}
int
main (int argc, char ** argv)
{
int i;
int ret;
char mypath[MAXPGPATH];
char otherpath[MAXPGPATH];
progname = (char *)get_progname(argv[0]);
if (argc < 2)
{
fprintf(stderr,_("%s: argument required\n"),progname);
advice();
exit(1);
}
for (i=1; i < argc; i++)
{
if (strcmp(argv[i],"--bindir") == 0 ||
strcmp(argv[i],"--includedir") == 0 ||
strcmp(argv[i],"--includedir-server") == 0 ||
strcmp(argv[i],"--libdir") == 0 ||
strcmp(argv[i],"--pkglibdir") == 0 ||
strcmp(argv[i],"--configure") == 0
)
{
/* come back to these later */
continue;
}
if (strcmp(argv[i],"--version") == 0)
{
printf("PostgreSQL " PG_VERSION "\n");
exit(0);
}
if (strcmp(argv[i],"--help") == 0 || strcmp(argv[i],"-?") == 0)
{
help();
exit(0);
}
fprintf(stderr,_("%s: invalid argument: %s\n"),progname,argv[i]);
advice();
exit(1);
}
ret = find_my_exec(argv[0],mypath);
if (ret)
{
fprintf(stderr,"%s: could not locate my own executable\n",progname);
exit(1);
}
for (i=1; i < argc; i++)
{
if (strcmp(argv[i],"--configure") == 0)
{
/* the VAL_CONFIGURE macro must be defined by the Makefile */
printf("%s\n",VAL_CONFIGURE);
continue;
}
if (strcmp(argv[i],"--bindir") == 0)
{
/* assume we are located in the bindir */
char * lastsep;
strcpy(otherpath,mypath);
lastsep = strrchr(otherpath,'/');
if (lastsep)
*lastsep = '\0';
}
else if (strcmp(argv[i],"--includedir") == 0)
get_include_path(mypath,otherpath);
else if (strcmp(argv[i],"--includedir-server") ==0)
get_includeserver_path(mypath,otherpath);
else if (strcmp(argv[i],"--libdir") == 0)
get_lib_path(mypath,otherpath);
else if (strcmp(argv[i],"--pkglibdir") == 0)
get_pkglib_path(mypath,otherpath);
printf("%s\n",otherpath);
}
return 0;
}