Bring in Nat' preliminary work at autoconf'ng PostgreSQL...I imagine

it still needs lots of work, but, hey, at least this way there are more
ppl working off the same "Source"...
This commit is contained in:
Marc G. Fournier 1997-01-23 22:50:14 +00:00
parent fdaf47f9f4
commit 2732075b78
4 changed files with 3234 additions and 0 deletions

757
src/Makefile.global.in Normal file
View File

@ -0,0 +1,757 @@
#----------------------------------------------------------------------------
#
# Makefile.global--
# global configuration for the Makefiles
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.1 1997/01/23 22:50:10 scrappy Exp $
#
# NOTES
# Essentially all Postgres make files include this file and use the
# variables it sets. To
# override the default setting, create a Makefile.custom in this
# directory and put your defines there. (Makefile.custom is included
# near the end of this file.)
#
# If you change any of these defines you probably have to
# make clean; make
# since no dependencies are created for these. (of course you can
# be crafty and check what files really depend on them and just remake
# those).
#
# Before including this file, you must set the SRCDIR variable to the
# path of the top of the Postgres source tree (the directory that
# contains this file).
#
#-------------------------------------------------------------------------
##############################################################################
#
# CONFIGURATION SECTION
#
# Following are settings pertaining to the postgres build and
# installation. The most important one is obviously the name
# of the port.
# The name of the port. Valid choices are:
# alpha DEC Alpha AXP on OSF/1 2.0
# hpux HP PA-RISC on HP-UX 9.0
# i386_solaris i386 Solaris
# sparc_solaris SUN SPARC on Solaris 2.4
# sparc SUN SPARC on SunOS 4.1.3
# ultrix4 DEC MIPS on Ultrix 4.4
# linux Intel x86 on Linux 1.2 and Linux ELF
# (For non-ELF Linux, see LINUX_ELF below).
# BSD44_derived OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
# bsdi BSD/OS 2.0, 2.01, 2.1
# aix IBM on AIX 3.2.5
# irix5 SGI MIPS on IRIX 5.3
# dgux DG/UX 5.4R3.10
# Some hooks are provided for
# svr4 Intel x86 on Intel SVR4
# next Motorola MC68K or Intel x86 on NeXTSTEP 3.2
# but these are guaranteed not to work as of yet.
#
# Note that portname is defined here to be UNDEFINED to remind you
# to change it in Makefile.custom.
#
# make sure that you have no whitespaces after the PORTNAME setting
# or the makefiles can get confused
PORTNAME= UNDEFINED
# Ignore LINUX_ELF if you're not using Linux. But if you are, and you're
# compiling to a.out (which means you're using the dld dynamic loading
# library), set LINUX_ELF to null in Makefile.custom.
LINUX_ELF= 1
LIBPQDIR:= $(SRCDIR)/libpq
# For convenience, POSTGRESDIR is where DATADIR, BINDIR, and LIBDIR
# and other target destinations are rooted. Of course, each of these is
# changable separately.
POSTGRESDIR= /usr/local/pgsql
# DATADIR specifies where the postmaster expects to find its database.
# This may be overridden by command line options or the PGDATA environment
# variable.
DATADIR= $(POSTGRESDIR)/data
# Where the postgres executables live (changeable by just putting them
# somewhere else and putting that directory in your shell PATH)
BINDIR= $(POSTGRESDIR)/bin
# Where libpq.a gets installed. You must put it where your loader will
# look for it if you wish to use the -lpq convention. Otherwise you
# can just put the absolute pathname to the library at the end of your
# command line.
LIBDIR= $(POSTGRESDIR)/lib
# This is the directory where IPC utilities ipcs and ipcrm are located
#
IPCS=@ipcs@
IPCRM=@ipcrm@
#IPCSDIR= /usr/bin
# 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
# Where the header files necessary to build frontend programs get installed.
HEADERDIR= $(POSTGRESDIR)/include
# The port to run the postmaster on
POSTPORT= 5432
# NAMEDATALEN is the max length for system identifiers (e.g. table names,
# attribute names, function names, etc.)
#
# These MUST be set here. DO NOT COMMENT THESE OUT
# Setting these too high will result in excess space usage for system catalogs
# Setting them too low will make the system unusable.
# values between 16 and 64 that are multiples of four are recommended.
#
# NOTE also that databases with different NAMEDATALEN's cannot interoperate!
#
# THERE ARE REDUNDANT DEFINITIONS OF THESE VALUES IN config.h.
# Don't change anything here without changing it there too.
NAMEDATALEN= 32
# OIDNAMELEN should be set to NAMEDATALEN + sizeof(Oid)
OIDNAMELEN= 36
##############################################################################
#
# FEATURES
#
# To disable a feature, comment out the entire definition
# (that is, prepend '#', don't set it to "0" or "no").
# Compile libpq++
# NAT: autoconf can check if we have a cplusplus compiler and will
# NAT: define HAVE_Cplusplus for us
#HAVE_Cplusplus= true
@HAVECXX@
# Commenting out CASSERT will make things go a LOT faster, but you will
# also loose a lot of useful error-checking.
# NAT: autoconf doesn't deal with CASSERT: this is a user choice.
CASSERT= true
# Comment out ENFORCE_ALIGNMENT if you do NOT want unaligned access to
# multi-byte types to generate a bus error.
# NAT: autoconf doesn't deal with ENFORCE_ALIGNMENT. Should it test for
# NAT: it and only set it if it has to?).
ENFORCE_ALIGNMENT= true
# Comment out PROFILE to generate a profile version of the binaries
# NAT: autoconf doesn't deal with PROFILE: this is a user choice.
#PROFILE= -p -non_shared
# About the use of readline in psql:
# psql does not require the GNU readline and history libraries. Hence, we
# do not compile with them by default. However, there are hooks in the
# program which supports the use of GNU readline and history. Should you
# decide to use them, change USE_READLINE to true and change READLINE_INCDIR
# and READLINE_LIBDIR to reflect the location of the readline and history
# headers and libraries.
#
# NAT: autoconf will check for libreadline and will define USE_READLINE
# NAT: appropriately, and hopefully take care of the inc and lib too.
@USE_READLINE@
# directories for the readline and history libraries.
# [automagically taken care of by autoconf?]
#READLINE_INC= -I/home/tools/include
#READLINE_LIB= -L/home/tools/lib -lreadline
# use the following if your readline has a separate history lib
#HISTORY_INC= -I/home/tools/include -I/home/tools/include/readline
#HISTORY_LIB= -L/home/tools/lib -lhistory
# If you plan to use Kerberos for authentication...
#
# Comment out KRBVERS if you do not use Kerberos.
# Set KRBVERS to "4" for Kerberos v4, "5" for Kerberos v5.
# XXX Edit the default Kerberos variables below!
#
# NAT: I don't know how to deal with kerberos in autoconf.
#KRBVERS= 5
# Globally pass Kerberos file locations.
# these are used in the postmaster and all libpq applications.
#
# Adjust KRBINCS and KRBLIBS to reflect where you have Kerberos
# include files and libraries installed.
# PG_KRB_SRVNAM is the name under which POSTGRES is registered in
# the Kerberos database (KDC).
# PG_KRB_SRVTAB is the location of the server's keytab file.
#
ifdef KRBVERS
KRBINCS= -I/usr/athena/include
KRBLIBS= -L/usr/athena/lib
KRBFLAGS+= $(KRBINCS) -DPG_KRB_SRVNAM='"postgres_dbms"'
ifeq ($(KRBVERS), 4)
KRBFLAGS+= -DKRB4
KRBFLAGS+= -DPG_KRB_SRVTAB='"/etc/srvtab"'
KRBLIBS+= -lkrb -ldes
else
ifeq ($(KRBVERS), 5)
KRBFLAGS+= -DKRB5
KRBFLAGS+= -DPG_KRB_SRVTAB='"FILE:/krb5/srvtab.postgres"'
KRBLIBS+= -lkrb5 -lcrypto -lcom_err -lisode
endif
endif
endif
#
# location of Tcl/Tk headers and libraries
#
# Uncomment this to build the tcl utilities.
# USE_TCL= true
# customize these to your site's needs
#
# NAT: I don't know how to deal with TCL in autoconf.
TCL_INCDIR= /home/tools/include
TCL_LIBDIR= /home/tools/lib
TCL_LIB= -ltcl7.5
TK_INCDIR= /home/tools/include
TK_LIBDIR= /home/tools/lib
TK_LIB= -ltk4.1
X11_INCDIR= /usr/include
X11_LIBDIR= /usr/lib
X11_LIB= -lX11 -lsocket -lnsl
##############################################################################
#
# YACC
YFLAGS= -d
##############################################################################
#
# Installation.
#
# For many ports, INSTALL is overridden below.
INSTALL= @INSTALL@
RANLIB= @RANLIB@
INSTLOPTS= @INSTLOPTS@
INSTL_EXE_OPTS= @INSTL_EXE_OPTS@
INSTL_LIB_OPTS= @INSTL_LIB_OPTS@
##############################################################################
#
# For building shell scripts:
#
# For many ports, these are overridden below.
# DASH_N is what we put before the text on an echo command when we don't
# want a trailing newline. BACKSLASH_C is what we put at the end of the
# string on a echo command when we don't want a trailing newline. On
# some systems, you do echo -n "no newline after this", while on others
# you do echo "no newline after this\c".
DASH_N= @DASH_N@
BACKSLASH_C= @BACKSLASH_C@
##############################################################################
#
# Customization.
#
# This includes your local customizations if Makefile.custom exists
# in the source directory. This file doesn't exist in the original
# distribution so that it doesn't get overwritten when you upgrade.
ifneq ($(wildcard $(SRCDIR)/Makefile.custom), )
include $(SRCDIR)/Makefile.custom
endif
#############################################################################
# include port specific rules and variables.
#
#
# HISTORY: Before October 1996, this file included the following line:
# -include $(MKDIR)/port/postgres.mk.$(PORTNAME)
# Now, we instead have all the former contents of those .mk files inline
# with ifeq ($(PORTNAME) ...). This makes it easier to read the make
# files and to make certain updates. It should also help with the migration
# to autoconf. -Bryan
# Since there are no longer separate files for each platform, much of the
# commonality among the platforms ought to be factored out of the following.
##############################################################################
#
# AR
# NAT: I am unsure how to write a test for AROPT=cq vs AROPT=crs, because
# NAT: I don't know what it does ;-)
ifneq (,$(findstring /$(PORTNAME)/, /BSD44_derived/bsdi/sparc/))
AROPT = cq
else
AROPT = crs
endif
##############################################################################
#
# Shared libraries.
# This is overridden for many PORTNAMEs below.
# NAT: autoconf needs to know about DLSUFFIX
DLSUFFIX= .so
#
# CC
#
# NAT: autoconf tests for CC
CC= @CC@
#
# LEX
#
# NAT: autoconf tests for LEX and LEXLIB. I've removed the -L and
# NAT: am unsure how to get it back with autoconf.
LEX= @LEX@
LD_ADD_BE = @LEXLIB@
# SHARED LIBRARIES
#
# NAT: I am unsure how to write an autoconf test for shared library
# NAT: flags and rules.
CFLAGS_SL= -fpic -DPIC
%.so: %.o
$(LD) -x -r -o $<.obj $<
@echo building shared object $@
@rm -f $@.pic
@${AR} cq $@.pic `lorder $<.obj | tsort`
${RANLIB} $@.pic
@rm -f $@
$(LD) -x -Bshareable -Bforcearchive \
-o $@ $@.pic
endif
#--------------------------------------------------------------------------
ifeq ($(PORTNAME), aix)
# the -lm is because "pow" is defined in libbsd.a and we want pow(3m)
# NAT: autoconf should look to see whether libbsd has the functions
# NAT: we need from it, and if so include it. Similarly -lm. -ll is
# NAT: for lex. -lld is the shared library stuff that needs attention.
LDADD_BE= -lm -lbsd -ll -lld
# MAKE_EXPORTS is required for svr4 loaders that want a file of
# symbol names to tell them what to export/import.
# NAT: is there any harm in always defining this? Does it have meaning
# NAT: in BSD systems? How do I write an autoconf test for this?
MAKE_EXPORTS= true
#
# Random things that must be passed everywhere to enable
# everything to compile. :-/
#
# The -qmaxmem is because of optimizer limits.
# The HAVE_ANSI_CPP flag indicates that cc isn't ANSI but also doesn't
# have a Reiser (pcc-style) cpp.
#
# NAT: autoconf should test for this by building a program that tests
# NAT: the optimizer limits and the signed chars thing.
CFLAGS_BE= -qchars=signed -qmaxmem=4000
# NAT: ldexport stuff. I don't understand this.
EXPSUFF= .exp
MKLDEXPORT=$(SRCDIR)/backend/port/aix/mkldexport.sh
%$(EXPSUFF): %.o
$(MKLDEXPORT) $< `pwd` > $@
%.so: %.o %$(EXPSUFF)
@echo The link stage here:
$(LD) -H512 -T512 -o $@ -e _nostart \
-bI:$(LIBDIR)/postgres$(EXPSUFF) -bE:$*$(EXPSUFF) \
$*.o -lm -lc 2>/dev/null
endif
#---------------------------------------------------------------------------
ifeq ($(PORTNAME), alpha)
# NOFIXADE disallows unaligned access.
# on Ultrix and OSF/1 it invokes an explicit syscall.
# on HP-UX it turns off certain compiler options.
# This is defined here because a bunch of clients include tmp/c.h,
# which is where the work is done on HP-UX. It only affects the
# backend on Ultrix and OSF/1.
ifdef ENFORCE_ALIGNMENT
CFLAGS_BE= -DNOFIXADE
else
CFLAGS_BE= -DNOPRINTADE
endif
# NAT: autoconf should test for this. What symbol does libln.a give us?
LDADD_BE= -lln
# use the regex library
# NAT: autoconf should test for this, but how?
USE_REGEX= 1
# NAT: autoconf should tell us which of these nasty definitions to use.
%.so: %.o
$(LD) -shared -expect_unresolved '*' -o $@ $<
endif
#---------------------------------------------------------------------------
ifeq ($(PORTNAME), bsdi)
# NAT: how should autoconf test for pre-2.1. bsdi? grep for those
# NAT: strings in the return value from uname?
PRE_BSDI_2_1= false
ifeq ($(shell uname -r), 2.0)
PRE_BSDI_2_1= true
endif
ifeq ($(shell uname -r), 2.01)
PRE_BSDI_2_1= true
endif
# NAT: autoconf needs tests for -lipc, -lcompat, -ldld, -ltermap
ifeq ($(PRE_BSDI_2_1), false)
# cc is gcc v1.42
# gcc is gcc v2.7.2
LDADD_BE= -ltermcap -ldl -lipc
else
# cc is gcc v1.42
# gcc is gcc v2.6.3
# use the regex library
USE_REGEX= 1
CFLAGS_BE= -DPRE_BSDI_2_1
LDADD_BE= -ldld -lcompat -lipc
endif
DLSUFFIX= .o
endif
#--------------------------------------------------------------------------
# NAT: autoconf needs tests for -fpic
ifeq ($(PORTNAME), dgux)
CFLAGS_SL= -fpic
%.so: %.o
$(CC) -shared -o $@ $<
LDADD_BE= -ldl -lfl
endif
#----------------------------------------------------------------------------
ifeq ($(PORTNAME), hpux)
# NAT: autoconf needs to test for -W l,-E export symbols
# -W l,-E export symbols for linking with the shared libraries
# dynamic loader
LDADD_BE= -lBSD -ll
ifeq $(CC), cc)
CFLAGS_BE= -W l,-E
LDFLAGS_BE= -W l,-E
LDADD_BE+= -ldld
endif
ifeq ($(CC), gcc)
LDADD_BE+= /usr/lib/libdld.sl
endif
# NAT: autoconf needs to check the HPUX version. How?
ifdef ENFORCE_ALIGNMENT
CFLAGS_BE= -DNOFIXADE
else
HPUX_VERS:= $(shell uname -r)
HPUX_MAJOR= ${HPUX_VERS:R:E}
HPUX_MINOR= ${HPUX_VERS:E}
ifeq ($(HPUX_MAJOR), 08)
CFLAGS_BE+= +u -DHP_S500_ALIGN
LDFLAGS_BE+= +u
else
ifeq ($(HPUX_MAJOR), 09)
ifeq ($(CC), cc)
CFLAGS_BE+= +u4
LDFLAGS_BE+= +u4
endif
endif
endif
endif
# NAT: autoconf needs to check the (extended) ANSI flag
# (extended) ANSI flag for cc (-Ae is same as -Aa -D_HPUX_SOURCE)
ifeq ($(CC), cc)
CFLAGS_BE+= -Ae
endif
# NAT: shared library stuff needs to be detected by autoconf
CFLAGS_SL= +z
DLSUFFIX= .sl
%.sl: %.o
$(LD) -b -o $@ $<
endif
#--------------------------------------------------------------------------
ifeq ($(PORTNAME), i386_solaris)
#
# Random things that must be passed everywhere to enable
# everything to compile. :-/
#
# The extra -I flag is to scoop up extra BSD-emulating headers.
# This needs to be fixed. Things other than the backend should not be
# accessing headers in the backend directory.
CFLAGS_BE= -I$(SRCDIR)/backend/port/sparc_solaris
# NAT: autoconf needs to know about -lsocket, -lnsl
LDADD_BE= -lsocket -lnsl -ll -ldl
# NAT: autoconf needs to know about -fPIC etc
ifeq ($(CC), cc)
CFLAGS_SL= -K PIC
else
CFLAGS_SL= -fPIC
endif
%.so: %.o
$(LD) -G -Bdynamic -o $@ $<
endif
#----------------------------------------------------------------------------
ifeq ($(PORTNAME), irix5)
# NAT: autoconf needs to figure out -ll
LDADD_BE= -ll
%.so: %.o
$(LD) -G -Bdynamic -o $@ $<
endif
#---------------------------------------------------------------------------
ifeq ($(PORTNAME), linux)
# NAT: how can autoconf work out the ELF stuff?
ifndef LINUX_ELF
DLSUFFIX= .o
LDADD_BE= -ldld
else
DLSUFFIX= .so
LDADD_BE= -ldl
LDFLAGS_BE= -rdynamic
endif
MK_NO_LORDER= true
# use the regex library
# NAT: what is the regex library and how can autoconf find it?
USE_REGEX= 1
# NAT: autoconf needs to know about -fpic and other shared library
# NAT: isms
CFLAGS_SL= -fpic
%.so: %.o
$(CC) -shared -o $@ $<
# The Linux gnulib #defines the problem away for you and calls
# the BSD routines if you give it the right flags.
# NAT: what problem, and how can autoconf test for -lbsd needed?
LDADD_BE+= -lbsd
endif
#---------------------------------------------------------------------------
ifeq ($(PORTNAME), sparc)
# NAT: autoconf needs to know about gcc vs cc and -PIC vs -fPIC
ifeq ($(CC), cc)
CFLAGS_SL= -PIC
else
CFLAGS_SL= -fPIC
endif
LDADD_BE= -lln -ldl
# NAT: autoconf also needs to know about -Bdynamic
%.so: %.o
$(LD) -dc -dp -Bdynamic -o $@ $<
endif
#----------------------------------------------------------------------------
ifeq ($(PORTNAME), sparc_solaris)
# NAT: autoconf needs to know about dynamic loading libraries
LDADD_BE= -ll -ldl
#
# Random things that must be passed everywhere to enable
# everything to compile. :-/
#
# The extra -I flag is to scoop up extra BSD-emulating headers.
# NAT: autoconf needs to know about BSD-emulating headers (see
# NAT: the i386 port), -lsocket and -lnsl
CFLAGS_BE= -I$(SRCDIR)/backend/port/sparc_solaris
LDADD_BE+= -lsocket -lnsl
# NAT: autoconf needs to know about -K PIC vs -fPIC
ifeq ($(CC), cc)
CFLAGS_SL= -K PIC
else
CFLAGS_SL= -fPIC
endif
# NAT: autoconf needs to know about dynamic loading
%.so: %.o
$(LD) -G -Bdynamic -o $@ $<
endif
#-----------------------------------------------------------------------------
ifeq ($(PORTNAME), svr4)
# NAT: autoconf needs to know about -W0 and why you need it
CFLAGS+= -W0
# MAKE_EXPORTS is required for svr4 loaders that want a file of
# symbol names to tell them what to export/import.
# NAT: autoconf needs to know about MAKE_EXPORTS
MAKE_EXPORTS= true
#
# Random things that must be passed everywhere to enable
# everything to compile. :-/
#
# The extra -I flag is to scoop up extra BSD-emulating headers.
# NAT: autoconf needs to know about BSD-emulating headers,
# NAT: -lsocket, -lnsl -lc libucb -ll and -ldl
CFLAGS_BE+= -I$(SRCDIR)/backend/port/svr4
LDADD_BE= -lsocket -lnsl -lc /usr/ucblib/libucb.a -ll -ldl
# NAT: autoconf needs to know about -LD-Blargedynsym
LDFLAGS_BE= -LD-Blargedynsym
# NAT: autoconf needs to know about dynamic loading
%.so: %.o
$(LD) -G -Bdynamic -o $@ $<
endif
#---------------------------------------------------------------------------
ifeq ($(PORTNAME), ultrix4)
# NAT: autoconf needs to know about the different types of alignment
# NAT: enforcement.
ifdef ENFORCE_ALIGNMENT
CFLAGS_BE= -DNOFIXADE
endif
# NAT: autoconf needs to know about dynamic loading
LDADD_BE= -ldl -lln
# NAT: autoconf needs to know about NO_BEFOREINSTL - what is it used
# NAT: for and how do I test for it?
# install creates intermediate directories
NO_BEFOREINSTL= true
# NAT: autoconf needs to know about dynamic loading
CFLAGS_SL= -G 0
DLSUFFIX= .o
endif
ifneq ($(PORTNAME), next)
# NAT: autoconf needs to know about -lm
LDADD_BE+= -lm
endif
# This goes here so that customization in Makefile.custom is effective
##############################################################################
#
# Flags for CC and LD.
##############################################################################
# COPT
#
# COPT is for options that the sophisticated builder might want to vary
# from one build to the next, like options to build Postgres with debugging
# information included. COPT is meant to be set on the make command line,
# for example with the command "make COPT=-g". The value you see set here
# is the default that gets used if the builder does not give a value for
# COPT on his make command.
#
# There is a nonobvious relationship between -O (optimization) and
# -Werror (consider all warnings fatal). On some systems, if you don't
# optimize, you will always get some warnings because the system header
# files will include some unreferenced functions in the code. These are
# functions that are supposed to be inline, so there wouldn't ordinarily
# be an "unreferenced" problem, but if you don't enable optimization, no
# inlining can happen, and hence the problem. Therefore, we include
# if you override -O, you override -Werror as well.
#
# CUSTOM_COPT is something the user may set in Makefile.custom
# Common values for COPT are: -g for debuggable binaries, -m486 if you are
# using a i486 or better.
ifneq ($(CUSTOM_COPT),)
COPT= $(CUSTOM_COPT)
else
ifeq ($(CC), gcc)
COPT= -O2 -Werror
else
COPT= -O
endif
endif
ifeq ($(CC), gcc)
# Some flags only gcc recognizes...
# PostgreSQL should *always* compile with these enabled
CFLAGS+= -Wall -Wmissing-prototypes
endif
# Globally pass debugging/optimization/profiling flags based
# on the options selected above.
ifdef COPT
CFLAGS+= $(COPT)
else
ifndef CFLAGS_OPT
CFLAGS_OPT= -O
endif
CFLAGS+= $(CFLAGS_OPT)
endif
ifndef CASSERT
CFLAGS+= -DNO_ASSERT_CHECKING
endif
ifdef PROFILE
CFLAGS+= $(PROFILE)
LDFLAGS+= $(PROFILE)
endif
# Globally pass PORTNAME
CFLAGS+= -D$(PORTNAME)
# include port-specific flags
CFLAGS+= $(CFLAGS_BE)
LDADD+= $(LDADD_BE)
LDFLAGS+= $(LDFLAGS_BE)

64
src/Makefile.in Normal file
View File

@ -0,0 +1,64 @@
#-------------------------------------------------------------------------
#
# Makefile.inc--
# Build and install postgres.
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/Attic/Makefile.in,v 1.1 1997/01/23 22:50:11 scrappy Exp $
#
#-------------------------------------------------------------------------
SRCDIR= .
include Makefile.global
FIND = @find@
# assuming gnu tar and split here
TAR = @tar@
SPLIT = @split@
ETAGS = @etags@
XARGS = @xargs@
.DEFAULT all:
@if test $(PORTNAME) = UNDEFINED; then \
echo You must set the PORTNAME value in Makefile.global before \
you can build Postgres. ;\
false ;\
fi
$(MAKE) -C utils $@
$(MAKE) -C backend $@
$(MAKE) -C libpq $@
ifeq ($(HAVE_Cplusplus), true)
$(MAKE) -C libpq++ $@
endif
ifeq ($(USE_TCL), true)
$(MAKE) -C libpgtcl $@
endif
$(MAKE) -C bin $@
ifneq ($(wildcard man), )
$(MAKE) -C man $@
endif
@if test $@. = all. -o $@. = .; then \
echo All of Postgres95 is successfully made. Ready to install. ;\
fi
TAGS:
rm -f TAGS; \
for i in backend libpq bin; do \
$(FIND) $$i -name '*.[chyl]' -print | $(XARGS) $(ETAGS) -a ; \
done
# target to generate a backup tar file and split files that can be
# saved to 1.44M floppy
BACKUP:
rm -f BACKUP.filelist BACKUP.tgz; \
$(FIND) . -not -path '*obj/*' -not -path '*data/*' -type f -print > BACKUP.filelist; \
$(TAR) --files-from BACKUP.filelist -c -z -v -f BACKUP.tgz
$(SPLIT) --bytes=1400k BACKUP.tgz pgBACKUP.
.PHONY: TAGS
.PHONY: BACKUP

2315
src/configure vendored Executable file

File diff suppressed because it is too large Load Diff

98
src/configure.in Normal file
View File

@ -0,0 +1,98 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(backend/access/common/heaptuple.c)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_CXX
dnl Check if we should set Have_Cplusplus
if test -n "$CXX"; then
export HAVECXX
HAVECXX='HAVE_Cplusplus=true'
fi
AC_SUBST(HAVECXX)
dnl AC_PROG_INSTALL was broken on my machine (NAT), so here's an
dnl alternative, built from the various portname options
AC_PATH_PROG(INSTALL, install, /usr/bin:/usr/ucb:/home/tools/bin)
AC_PATH_PROG(BSDINST, bsdinst, /usr/bin/X11:/usr/X11R6/bin:/sbin)
INSTLOPTS="-m 444"
INSTL_EXE_OPTS="-m 555"
INSTL_LIB_OPTS="-m 664"
if test -n "$INSTALL"; then
INSTLOPTS="-c $INSTLOPTS"
INSTL_EXE_OPTS="-c $INSTL_EXE_OPTS"
INSTL_LIB_OPTS="-c $INSTL_LIB_OPTS"
else
INSTALL=$BSDINST
fi
AC_SUBST(INSTALL)
AC_SUBST(INSTLOPTS)
AC_SUBST(INSTL_LIB_OPTS)
AC_SUBST(INSTL_EXE_OPTS)
dnl Check the option to echo to inhibit newlines.
ECHO_N_OUT=`echo -n "" | wc -c`
ECHO_C_OUT=`echo "\c" | wc -c`
if test "$ECHO_N_OUT" -eq 0; then
DASH_N='-n'
BACKSLASH_C=
else
if test "ECHO_C_OUT" -eq 0; then
DASH_N=
BACKSLASH_C= '\\\\c'
else
AC_MSG_ERROR("echo behaviour undetermined")
fi
fi
AC_SUBST(DASH_N)
AC_SUBST(BACKSLASH_C)
AC_PROG_LEX
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PATH_PROG(find, find)
AC_PATH_PROG(tar, tar)
AC_PATH_PROG(split, split)
AC_PATH_PROG(etags, etags)
AC_PATH_PROG(xargs, xargs)
AC_PATH_PROG(ipcs, ipcs)
AC_PATH_PROG(ipcrm, ipcrm)
dnl Checks for libraries.
dnl readline (used in psql if present)
dnl if the library readline is present,
dnl set the shell variable USE_READLINE
dnl to have the value USE_READLINE=true
dnl and substitute it into the makefiles
AC_CHECK_LIB(readline, readline, USE_READLINE='USE_READLINE=true')
AC_SUBST(USE_READLINE)
AC_CHECK_LIB(history, history)
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h limits.h sys/file.h sys/ioctl.h sys/time.h unistd.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_UID_T
AC_C_INLINE
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(ftime getcwd gethostname gettimeofday putenv regcomp select socket strcspn strdup strerror strftime strspn strtod strtol)
#AC_OUTPUT(backend/optimizer/path/Makefile libpq++/man/Makefile backend/port/sparc_solaris/Makefile backend/utils/misc/Makefile backend/port/ultrix4/Makefile bin/psql/Makefile backend/utils/init/Makefile tutorial/C-code/Makefile test/examples/Makefile backend/utils/adt/Makefile bin/destroyuser/Makefile Makefile tutorial/Makefile bin/pg_dump/Makefile bin/cleardbdir/Makefile backend/optimizer/plan/Makefile backend/access/heap/Makefile backend/storage/page/Makefile backend/port/svr4/Makefile backend/optimizer/Makefile backend/utils/hash/Makefile backend/storage/large_object/Makefile backend/access/hash/Makefile test/Makefile backend/optimizer/prep/Makefile bin/initdb/Makefile bin/pg_version/Makefile bin/ipcclean/Makefile bin/pg4_dump/Makefile backend/postmaster/Makefile backend/access/Makefile test/regress/Makefile backend/storage/Makefile backend/port/bsdi/Makefile libpq++/Makefile backend/lib/Makefile backend/libpq/Makefile backend/access/gist/Makefile backend/nodes/Makefile libpgtcl/Makefile libpq/Makefile bin/destroydb/Makefile backend/access/nbtree/Makefile bin/Makefile bin/createuser/Makefile backend/port/Makefile backend/port/irix5/Makefile backend/utils/sort/Makefile backend/utils/error/Makefile backend/utils/time/Makefile backend/Makefile backend/utils/Makefile backend/commands/Makefile bin/pg_id/Makefile backend/tioga/Makefile backend/utils/cache/Makefile backend/port/aix/Makefile backend/storage/lmgr/Makefile test/bench/Makefile bin/monitor/Makefile backend/access/index/Makefile backend/port/hpux/Makefile utils/Makefile backend/port/i386_solaris/Makefile backend/catalog/Makefile backend/storage/smgr/Makefile backend/bootstrap/Makefile backend/storage/buffer/Makefile backend/storage/ipc/Makefile backend/rewrite/Makefile backend/access/rtree/Makefile backend/port/linux/Makefile backend/storage/file/Makefile man/Makefile libpq++/examples/Makefile backend/main/Makefile bin/pgtclsh/Makefile backend/access/common/Makefile bin/createdb/Makefile backend/port/dgux/Makefile backend/utils/fmgr/Makefile backend/parser/Makefile backend/port/sparc/Makefile backend/executor/Makefile backend/optimizer/util/Makefile tools/mkldexport/Makefile backend/utils/mmgr/Makefile backend/tcop/Makefile backend/port/BSD44_derived/Makefile backend/access/transam/Makefile backend/port/alpha/Makefile backend/regex/Makefile)
AC_OUTPUT(Makefile Makefile.global)