From 4c9239173adec1ce23b6438ce73be36973356dcd Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" Date: Fri, 9 Oct 1998 07:04:53 +0000 Subject: [PATCH] Changes to support standalone installation. --- src/interfaces/odbc/GNUmakefile.in | 34 +++++--- src/interfaces/odbc/Makefile.global.in | 39 +++++---- src/interfaces/odbc/configure | 109 +++++++++++++++++-------- src/interfaces/odbc/configure.in | 62 +++++++------- 4 files changed, 150 insertions(+), 94 deletions(-) diff --git a/src/interfaces/odbc/GNUmakefile.in b/src/interfaces/odbc/GNUmakefile.in index 6393eb16f1..0b2652f2a5 100644 --- a/src/interfaces/odbc/GNUmakefile.in +++ b/src/interfaces/odbc/GNUmakefile.in @@ -1,13 +1,13 @@ #------------------------------------------------------------------------- # -# Makefile.inc-- -# Build and install postgres. +# GNUMakefile.in-- +# Build and install psqlodbc (Postgres ODBC driver). # # Copyright (c) 1994, Regents of the University of California # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile.in,v 1.2 1998/10/07 06:49:19 thomas Exp $ +# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile.in,v 1.3 1998/10/09 07:04:49 thomas Exp $ # #------------------------------------------------------------------------- @SET_MAKE@ @@ -40,11 +40,11 @@ ifeq ($(PORTNAME), bsd) endif endif -SOURCES = *.c *.h *.in Config.mk Makefile Makefile.unx README.Linux \ +SOURCES = *.c *.h *.in Config.mk \ TODO.txt Version.mk config.guess config.sub configure \ - install-sh license.txt notice.txt odbcinst.ini patch \ - psqlodbc.aps psqlodbc.def psqlodbc.mak psqlodbc.mdp \ - psqlodbc.ncb psqlodbc.rc readme.txt + install-sh license.txt notice.txt odbcinst.ini \ + psqlodbc.def \ + psqlodbc.rc readme.txt OBJECTS = info.o bind.o columninfo.o connection.o convert.o drvconn.o \ environ.o execute.o lobj.o misc.o options.o \ @@ -92,7 +92,7 @@ install-shlib: $(shlib) cd $(DESTDIR)$(LIBDIR) && $(LN_S) -f lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) lib$(NAME)$(DLSUFFIX) install-ini: odbcinst.ini - $(INSTALL) $(INSTL_LIB_OPTS) odbcinst.ini $(ODBCINST)/odbcinst.ini + $(INSTALL) $(INSTL_LIB_OPTS) odbcinst.ini $(ODBCINST) depend dep: $(CC) -MM *.c >depend @@ -101,24 +101,32 @@ depend dep: clean: -rm -f lib$(NAME).a $(shlib) $(OBJECTS) lib$(NAME)$(DLSUFFIX) - -rm -f config.log config.cache config.status - + .PHONY: distclean distclean: clean -rm -f config.h GNUmakefile Makefile.global + -rm -f config.cache config.log config.status + @if [ $SRCDIR ne $ODBCSRCDIR ]; then rm -f template makefiles port .PHONY: standalone standalone: + @if test "$SRCDIR" = "$ODBCSRCDIR"; then \ + echo "****************************************************"; \ + echo "Note: This was a standalone installation already"; \ + echo "This may produce a slightly inconsistant tar file..."; \ + echo "You should use the original tar file instead"; \ + echo "****************************************************"; \ + fi -rm -f psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar.gz - tar -cf psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar $(SOURCES) - tar -r -C ../.. -f psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar template + $(TAR) -chf psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar \ + $(SOURCES) -C @top_srcdir@ makefiles template gzip psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar .PHONY: integrated integrated: -rm -f psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar.gz - tar -cf psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar $(SOURCES) + $(TAR) -cf psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar $(SOURCES) gzip psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar diff --git a/src/interfaces/odbc/Makefile.global.in b/src/interfaces/odbc/Makefile.global.in index f074cb1093..d5edb32a0d 100644 --- a/src/interfaces/odbc/Makefile.global.in +++ b/src/interfaces/odbc/Makefile.global.in @@ -1,13 +1,13 @@ #---------------------------------------------------------------------------- # # Makefile.global-- -# global configuration for the Makefiles +# global configuration for pgsqlodbc (Postgres ODBC driver) # # Copyright (c) 1994, Regents of the University of California # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/Makefile.global.in,v 1.1 1998/10/06 05:57:56 thomas Exp $ +# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/Makefile.global.in,v 1.2 1998/10/09 07:04:50 thomas Exp $ # # NOTES # This is derived from the main Postgres makefile. @@ -71,18 +71,18 @@ BINDIR= $(POSTGRESDIR)/bin LIBDIR= $(POSTGRESDIR)/lib -# Where the man pages (suitable for use with "man") get installed. -POSTMANDIR= $(POSTGRESDIR)/man - +## Where the man pages (suitable for use with "man") get installed. +#POSTMANDIR= $(POSTGRESDIR)/man +# # Where the formatted documents (e.g., the reference manual) get installed. -POSTDOCDIR= $(POSTGRESDIR)/doc +#POSTDOCDIR= $(POSTGRESDIR)/doc # Where the header files necessary to build frontend programs get installed. HEADERDIR= $(POSTGRESDIR)/include # Where the odbcinst.ini file will be placed -ODBCINST= $(POSTGRESDIR)@ODBCINSTDIR@ +ODBCINST= @ODBCINST@ ############################################################################## # @@ -119,7 +119,6 @@ DASH_N= @DASH_N@ BACKSLASH_C= @BACKSLASH_C@ - #------------------------------------------------------------- # See the subdirectory template for default settings for these #------------------------------------------------------------- @@ -131,30 +130,30 @@ LDFLAGS= @LDFLAGS@ @LIBS@ DLSUFFIX= @DLSUFFIX@ LN_S = @LN_S@ +ifneq ($(wildcard $(SRCDIR)/Makefile.port), ) + include $(SRCDIR)/Makefile.port +endif + + ############################################################################## # # Customization. # -# This includes local customizations. If we're being build from +# This includes local customizations. If we're being built from # within the Postgres distribution and a Makefile.custom exists -# in the top level Postgres directory it overrides any local customization -# that might be in Makefile.custom of the odbc driver directory. These -# files don't exist in the original -# distribution so that they don't get overwritten when you upgrade. +# in the top level Postgres directory it will take precedence +# over any local Makefile.custom in the odbc driver directory. ifneq ($(wildcard $(SRCDIR)/Makefile.custom), ) -include $(SRCDIR)/Makefile.custom + include $(SRCDIR)/Makefile.custom endif -ifneq ($(wildcard ../../Makefile.custom), ) -include ../../Makefile.custom -endif # This goes here so that customization in Makefile.custom is effective ############################################################################## ifneq ($(CUSTOM_INSTALL),) -INSTALL= $(CUSTOM_INSTALL) + INSTALL= $(CUSTOM_INSTALL) endif # @@ -193,9 +192,9 @@ ifneq ($(CUSTOM_COPT),) endif ifeq ($(CC), gcc) -CFLAGS+= -Wall -Wmissing-prototypes + CFLAGS+= -Wall -Wmissing-prototypes endif ifdef COPT - CFLAGS+= $(COPT) + CFLAGS+= $(COPT) endif diff --git a/src/interfaces/odbc/configure b/src/interfaces/odbc/configure index a4a6a01537..7cf0d23e73 100755 --- a/src/interfaces/odbc/configure +++ b/src/interfaces/odbc/configure @@ -14,10 +14,10 @@ ac_default_prefix=/usr/local ac_default_prefix=/usr/local ac_help="$ac_help --with-template=TEMPLATE - use operating system template file - see template directory" + use operating system template file; see template directory" ac_help="$ac_help - --with-odbcinst= change default directory for odbcinst.ini" + --with-odbcinst= + change default directory for odbcinst.ini " # Initialize some variables set by options. # The variables have the same names as the options, with @@ -527,25 +527,31 @@ fi +echo "*** configuring psqlodbc ***" + if test -d ../../interfaces then - TEMPLATEDIR=../../template - if test "$prefix" = "NONE" - then - ac_default_prefix=/usr/local/pgsql - fi - ODBCINSTDIR= -else - TEMPLATEDIR=./template - if test "$prefix" = "NONE" - then - ODBCINSTDIR=/share - else - ODBCINSTDIR= - fi + echo "psqlodbc can be configured either standalone or integrated" + echo "into the Postgres main distribution." + echo "It appears that you are running the standalone configure" + echo "from within the main distribution. The recommended (and required)" + echo "procedure is to configure ODBC using the integrated configuration" + echo "procedure using the --with-odbc option." + exit fi -echo "*** configuring psqlodbc ***" +TEMPLATEDIR=./template +if test "$prefix" = "NONE" +then + if test -d "/share" + then + ODBCINST=/share/odbcinst.ini + else + ODBCINST=/etc/odbcinst.ini + fi +else + ODBCINST=$prefix/odbcinst.ini +fi ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do @@ -573,7 +579,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:577: checking host system type" >&5 +echo "configure:583: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -637,7 +643,6 @@ esac PORTNAME=${os} - echo "checking echo setting..." if echo '\c' | grep -s c >/dev/null 2>&1 then @@ -652,7 +657,7 @@ fi echo $ac_n "checking setting template to""... $ac_c" 1>&6 -echo "configure:656: checking setting template to" >&5 +echo "configure:661: checking setting template to" >&5 # Check whether --with-template or --without-template was given. if test "${with_template+set}" = set; then withval="$with_template" @@ -692,7 +697,7 @@ distribution's 'interfaces/odbc' directory and try again. If neither of these is the case than please complain -kindly to the maintainers, their e-mail addresses can +kindly to the maintainers; their e-mail addresses can be found in the Readme files. ************************************************************* EOT @@ -764,7 +769,7 @@ export LDFLAGS echo "- setting LDFLAGS=$LDFLAGS" echo $ac_n "checking setting ODBCINST""... $ac_c" 1>&6 -echo "configure:768: checking setting ODBCINST" >&5 +echo "configure:773: checking setting ODBCINST" >&5 # Check whether --with-odbcinst or --without-odbcinst was given. if test "${with_odbcinst+set}" = set; then withval="$with_odbcinst" @@ -774,18 +779,13 @@ EOF echo "$ac_t""$with_odbcinst" 1>&6 else cat >> confdefs.h <&6 + echo "$ac_t""${ODBCINST}" 1>&6 fi -if test "X$with_odbcinst" != "X" -then - ODBCINSTDIR=$with_odbcinst -fi - if test "X$with_compiler" != "X" @@ -1755,10 +1755,10 @@ s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g s%@host_vendor@%$host_vendor%g s%@host_os@%$host_os%g -s%@PORTNAME@%$PORTNAME%g -s%@ODBCINSTDIR@%$ODBCINSTDIR%g +s%@ODBCINST@%$ODBCINST%g s%@CC@%$CC%g s%@CPP@%$CPP%g +s%@PORTNAME@%$PORTNAME%g s%@AROPT@%$AROPT%g s%@SHARED_LIB@%$SHARED_LIB%g s%@DLSUFFIX@%$DLSUFFIX%g @@ -1977,6 +1977,51 @@ cat >> $CONFIG_STATUS <<\EOF fi fi; done +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +srcdir=$ac_given_srcdir +while test -n "$ac_sources"; do + set $ac_dests; ac_dest=$1; shift; ac_dests=$* + set $ac_sources; ac_source=$1; shift; ac_sources=$* + + echo "linking $srcdir/$ac_source to $ac_dest" + + if test ! -r $srcdir/$ac_source; then + { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; } + fi + rm -f $ac_dest + + # Make relative symlinks. + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'` + if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then + # The dest file is in a subdirectory. + test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir" + ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dest_dir_suffix. + ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dest_dir_suffix= ac_dots= + fi + + case "$srcdir" in + [/$]*) ac_rel_source="$srcdir/$ac_source" ;; + *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;; + esac + + # Make a symlink if possible; otherwise try a hard link. + if ln -s $ac_rel_source $ac_dest 2>/dev/null || + ln $srcdir/$ac_source $ac_dest; then : + else + { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; } + fi +done EOF cat >> $CONFIG_STATUS </dev/null 2>&1 @@ -101,8 +110,7 @@ dnl fi AC_MSG_CHECKING(setting template to) AC_ARG_WITH(template, [ --with-template=TEMPLATE - use operating system template file - see template directory], + use operating system template file; see template directory], [ TEMPLATE=$withval ], [ host_no_ver=`echo "$host" | sed 's/[[0-9.]]*$//'` GUESS=`grep "$host_no_ver" $TEMPLATEDIR/.similar | sed 's/.*=//' | tail -1` @@ -136,7 +144,7 @@ distribution's 'interfaces/odbc' directory and try again. If neither of these is the case than please complain -kindly to the maintainers, their e-mail addresses can +kindly to the maintainers; their e-mail addresses can be found in the Readme files. ************************************************************* EOT @@ -212,18 +220,14 @@ dnl file which is normally ${prefix}/share or ${prefix} if this is dnl being compiled inside the postgres distribution. AC_MSG_CHECKING(setting ODBCINST) AC_ARG_WITH( - odbcinst, - [ --with-odbcinst= change default directory for odbcinst.ini], + odbcinst, + [ --with-odbcinst= + change default directory for odbcinst.ini ], AC_DEFINE_UNQUOTED(ODBCINST, ${with_odbcinst}) AC_MSG_RESULT($with_odbcinst), - AC_DEFINE_UNQUOTED(ODBCINST, ${ODBCINSTDIR}) AC_MSG_RESULT(${ODBCINSTDIR}) + AC_DEFINE_UNQUOTED(ODBCINST, /etc/odbcinst.ini) AC_MSG_RESULT(${ODBCINST}) ) -if test "X$with_odbcinst" != "X" -then - ODBCINSTDIR=$with_odbcinst -fi - -AC_SUBST(ODBCINSTDIR) +AC_SUBST(ODBCINST) if test "X$with_compiler" != "X" then