#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.10 1997/02/08 20:39:24 momjian Exp $
+# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.45 1998/07/26 04:30:15 scrappy Exp $
#
# NOTES
# Essentially all Postgres make files include this file and use the
# CONFIGURATION SECTION
#
# Following are settings pertaining to the postgres build and
-# installation. The most important one is obviously the name
+# installation.
# of the port.
+#
+# Ignore BSD_SHLIB if you're not using one of the BSD ports. But if you
+# are, and it's one that doesn't have shared libraries (NetBSD/vax is an
+# example of this), set BSD_SHLIB to null in Makefile.custom.
+BSD_SHLIB= true
+
+LIBPQDIR:= $(SRCDIR)/interfaces/libpq
-# The name of the port. Valid choices are:
-# aix IBM on AIX 3.2.5
-# alpha DEC Alpha AXP on OSF/1 2.0
-# BSD44_derived OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
-# bsdi BSD/OS 2.0, 2.01, 2.1
-# dgux DG/UX 5.4R3.10
-# hpux HP PA-RISC on HP-UX 9.0
-# i386_solaris i386 Solaris
-# irix5 SGI MIPS on IRIX 5.3 or better
-# linux Intel x86 on Linux 1.2 and Linux ELF
-# (For non-ELF Linux, see LINUX_ELF below).
-# nextstep Motorola MC68K or Intel x86 on NeXTSTEP 3.2 or greater
-# sparc_solaris SUN SPARC on Solaris 2.4
-# sunos4 SUN SPARC on SunOS 4.1.3
-# svr4 Intel x86 on Intel SVR4
-# ultrix4 DEC MIPS on Ultrix 4.4
-#
-# 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= @PORTNAME@
-
-# 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= true
-
-LIBPQDIR:= $(SRCDIR)/libpq
-
-# For convenience, POSTGRESDIR is where DATADIR, BINDIR, and LIBDIR
+# For convenience, POSTGRESDIR is where BINDIR, and LIBDIR
# and other target destinations are rooted. Of course, each of these is
# changable separately.
-POSTGRESDIR= /usr/local/pgsql
+POSTGRESDIR= @prefix@
# Where the postgres executables live (changeable by just putting them
# somewhere else and putting that directory in your shell PATH)
# Where the header files necessary to build frontend programs get installed.
HEADERDIR= $(POSTGRESDIR)/include
-# 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
# Compile libpq++
@HAVECXX@
-# Commenting out CASSERT will make things go a LOT faster, but you will
-# also loose a lot of useful error-checking.
-CASSERT= true
-
# Comment out ENFORCE_ALIGNMENT if you do NOT want unaligned access to
# multi-byte types to generate a bus error.
ENFORCE_ALIGNMENT= true
# location of Tcl/Tk headers and libraries
#
# Uncomment this to build the tcl utilities.
-# USE_TCL= true
+USE_TCL= @USE_TCL@
# customize these to your site's needs
#
-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
+TCL_LIB= @TCL_LIB@
+TK_LIB= @TK_LIB@
-X11_INCDIR= /usr/include
-X11_LIBDIR= /usr/lib
-X11_LIB= -lX11 @SOCKET_LIB@ @NSL_LIB@
+USE_PERL= @USE_PERL@
-##############################################################################
-#
-# YACC
+X_CFLAGS= @X_CFLAGS@
+X_LIBS= @X_LIBS@
+X11_LIBS= -lX11 @X_EXTRA_LIBS@
-YFLAGS= -d
+#
+# enable multi-byte support
+# choose one of:
+# EUC_JP,EUC_CN,EUC_KR,EUC_TW,UNICODE,MULE_INTERNAL,LATIN1-5
+MULTIBYTE=@MULTIBYTE@
+ifdef MULTIBYTE
+MBFLAGS = -DMULTIBYTE=$(MULTIBYTE)
+endif
##############################################################################
#
INSTLOPTS= @INSTLOPTS@
INSTL_EXE_OPTS= @INSTL_EXE_OPTS@
INSTL_LIB_OPTS= @INSTL_LIB_OPTS@
+INSTL_SHLIB_OPTS= @INSTL_SHLIB_OPTS@
##############################################################################
#
BACKSLASH_C= @BACKSLASH_C@
+
+#-------------------------------------------------------------
+# See the subdirectory template for default settings for these
+#-------------------------------------------------------------
+CC= @CC@
+YFLAGS= @YFLAGS@
+YACC= @YACC@
+LEX= @LEX@
+AROPT= @AROPT@
+CFLAGS= -I$(SRCDIR)/include -I$(SRCDIR)/backend @CPPFLAGS@ @CFLAGS@
+CFLAGS_SL= @SHARED_LIB@
+LDFLAGS= @LDFLAGS@ @LIBS@
+DLSUFFIX= @DLSUFFIX@
+
+include $(SRCDIR)/Makefile.port
+
##############################################################################
#
# Customization.
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
-
-ifneq (,$(findstring /$(PORTNAME)/, /BSD44_derived/bsdi/sparc/))
- AROPT = cq
-else
- AROPT = crs
-endif
-
-##############################################################################
-#
-# Shared libraries.
-# This is overridden for many PORTNAMEs below.
-
-DLSUFFIX= .so
-
-#
-# CC
-#
-CC= @CC@
-
-#
-# LEX
-#
-LEX= @LEX@
-
-CFLAGS= @CPPFLAGS@
-LDFLAGS= @LDFLAGS@
-LDADD_BE= @LIBS@
-LD_ADD= $(LDADD_BE)
-
-#----------------------------------------------------------------------
-ifeq ($(PORTNAME), BSD44_derived)
-# cc is gcc, but never mind about that...
-
-# FreeBSD 2.1R with new Flex v2.5.2 in /usr/local
-
-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)
-
-# MAKE_EXPORTS is required for svr4 loaders that want a file of
-# symbol names to tell them what to export/import.
-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.
-#
-CFLAGS_BE= -qchars=signed -qmaxmem=4000
-
-
-EXPSUFF= .exp
-
-POSTGRES_EXP= $(SRCDIR)/backend/postgres$(EXPSUFF)
-
-MKLDEXPORT=$(SRCDIR)/backend/port/aix/mkldexport.sh
-
-%$(EXPSUFF): %.o
- $(MKLDEXPORT) $< `pwd` > $@
-
-$(POSTGRES_EXP):
- $(MAKE) -C $(SRCDIR)/backend postgres.exp
-
-%.so: %.o %$(EXPSUFF) $(POSTGRES_EXP)
- @echo Making share library $@ from $*.o, $*$(EXPSUFF), and postgres.exp
- $(LD) -H512 -T512 -o $@ -e _nostart \
- -bI:$(POSTGRES_EXP) -bE:$*$(EXPSUFF) \
- $*.o @MATH_LIB@ -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
-
-# use the regex library
-USE_REGEX= 1
-
-%.so: %.o
- $(LD) -shared -expect_unresolved '*' -o $@ $<
-
-DASH_N=
-BACKSLASH_C= '\\\\c'
-
-endif
-
-#---------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), bsdi)
-
-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
-
-ifeq ($(PRE_BSDI_2_1), true)
-# cc is gcc v1.42
-# gcc is gcc v2.6.3
-# use the regex library
- USE_REGEX= 1
- CFLAGS_BE= -DPRE_BSDI_2_1
-endif
-
-DLSUFFIX= .o
-
-endif
-
-#--------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), dgux)
-CFLAGS_SL= -fpic
-%.so: %.o
- $(CC) -shared -o $@ $<
-
-YACC= bison -y
-
-endif
-
-#----------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), hpux)
-# -W l,-E export symbols for linking with the shared libraries
-# dynamic loader
-
-ifeq ($(CC), cc)
- CFLAGS_BE= -W l,-E
- LDFLAGS_BE= -W l,-E
-endif
-ifeq ($(CC), gcc)
- LDADD_BE+= /usr/lib/libdld.sl
-endif
-
-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
-
-# (extended) ANSI flag for cc (-Ae is same as -Aa -D_HPUX_SOURCE)
-ifeq ($(CC), cc)
-CFLAGS_BE+= -Ae
-endif
-
-CFLAGS_SL= +z
-DLSUFFIX= .sl
-
-%.sl: %.o
- $(LD) -b -o $@ $<
-
-DASH_N= ''
-BACKSLASH_C= '\\\\c'
-
-endif
-
-#--------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), i386_solaris)
-# cc won't work!
-
-#
-# 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
-
-ifeq ($(CC), cc)
-CFLAGS_SL= -K PIC
-else
-CFLAGS_SL= -fPIC
-endif
-
-%.so: %.o
- $(LD) -G -Bdynamic -o $@ $<
-
-DASH_N=''
-BACKSLASH_C='\\\\c'
-
-endif
-
-#----------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), irix5)
-
-# RANLIB is not used on IRIX 5
-RANLIB= touch
-
-%.so: %.o
- $(LD) -G -Bdynamic -o $@ $< $(LD_ADD)
-
-DASH_N=''
-BACKSLASH_C='\\\\c'
-
-endif
-
-#---------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), linux)
-ifndef LINUX_ELF
-DLSUFFIX= .o
-else
-DLSUFFIX= .so
-LDFLAGS_BE= -rdynamic
-endif
-MK_NO_LORDER= true
-
-# use the regex library
-USE_REGEX= 1
-
-CFLAGS_SL= -fpic
-%.so: %.o
- $(CC) -shared -o $@ $<
-
-endif
-
-#---------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), sunos4)
-
-ifeq ($(CC), cc)
-CFLAGS_SL= -PIC
-else
-CFLAGS_SL= -fPIC
-endif
-
-%.so: %.o
- $(LD) -dc -dp -Bdynamic -o $@ $<
-endif
-
-#----------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), sparc_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.
-CFLAGS_BE= -I$(SRCDIR)/backend/port/sparc_solaris
-
-ifeq ($(CC), cc)
-CFLAGS_SL= -K PIC
-else
-CFLAGS_SL= -fPIC
-endif
-
-%.so: %.o
- $(LD) -G -Bdynamic -o $@ $<
-
-DASH_N= ''
-BACKSLASH_C= '\\\\c'
-
-endif
-
-#-----------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), svr4)
-CFLAGS+= -W0
-YACC= bison -y
-
-# MAKE_EXPORTS is required for svr4 loaders that want a file of
-# symbol names to tell them what to export/import.
-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.
-CFLAGS_BE+= -I$(SRCDIR)/backend/port/svr4
-LDADD_BE+= /usr/ucblib/libucb.a
-LDFLAGS_BE= -LD-Blargedynsym
-
-%.so: %.o
- $(LD) -G -Bdynamic -o $@ $<
-
-DASH_N= ''
-BACKSLASH_C= '\\\\c'
-endif
-
-#---------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), ultrix4)
-ifdef ENFORCE_ALIGNMENT
-CFLAGS_BE= -DNOFIXADE
-endif
-
-# install creates intermediate directories
-NO_BEFOREINSTL= true
-
-CFLAGS_SL= -G 0
-DLSUFFIX= .o
-
-endif
-
-
-#---------------------------------------------------------------------------
-ifeq ($(PORTNAME), nextstep)
-AROPT= rc
-DLSUFFIX= .o
-endif
-
# This goes here so that customization in Makefile.custom is effective
##############################################################################
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
+ LDFLAGS+= $(COPT)
endif
ifdef PROFILE
CFLAGS+= $(PROFILE)
LDFLAGS+= $(PROFILE)
endif
-
-# Globally pass PORTNAME
-CFLAGS+= -D$(PORTNAME)
-
-# include port-specific flags
-CFLAGS+= $(CFLAGS_BE)
-LDFLAGS+= $(LDFLAGS_BE)
-