#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.2 1997/01/23 23:48:08 scrappy Exp $
+# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.3 1997/01/24 02:35:31 scrappy Exp $
#
# NOTES
-# Essentially all Postgres make files include this file and use the
-# variables it sets.
+# 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). Sometimes, a variable gets set in
# Makefile.global after Makefile.custom has been included, so you can't
# simply set that variable in Makefile.custom. In those cases, there is
-# often another variable (like CUSTOM_COPT) that you can set in
+# often another variable (like CUSTOM_COPT) that you can set in
# Makefile.custom that influences the later setting of the true variable
# of interest (like CFLAGS) by Makefile.global.
#
#
-# If you change any of these defines you probably have to
+# 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
+# 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).
+#
+# 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).
#
#-------------------------------------------------------------------------
# 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
+# 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
# 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
+LINUX_ELF= true
LIBPQDIR:= $(SRCDIR)/libpq
# This is the directory where IPC utilities ipcs and ipcrm are located
#
IPCS=@ipcs@
-IPCRM=@ipcrm@
+IPCRM=@ipcrm@
# Where the man pages (suitable for use with "man") get installed.
POSTMANDIR= $(POSTGRESDIR)/man
# Comment out PROFILE to generate a profile version of the binaries
#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.
-#
-@USE_READLINE@
-
-# directories for the readline and history libraries.
-#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
-
-# curses is required by readline. Ncurses has obsoleted curses, and may
-# in fact be what goes by the name "curses" on this system.
-
-CURSES_LIB= -L/home/tools/lib -lcurses
-
# If you plan to use Kerberos for authentication...
#
# Comment out KRBVERS if you do not use Kerberos.
# you do echo "no newline after this\c".
DASH_N= @DASH_N@
-BACKSLASH_C= @BACKSLASH_C@
+BACKSLASH_C= @BACKSLASH_C@
##############################################################################
# Shared libraries.
# This is overridden for many PORTNAMEs below.
-# NAT: autoconf needs to know about DLSUFFIX
DLSUFFIX= .so
#
LEX= @LEX@
LD_ADD_BE = @LEXLIB@
-# SHARED LIBRARIES
-#
+#----------------------------------------------------------------------
+ifeq ($(PORTNAME), BSD44_derived)
+# cc is gcc, but never mind about that...
+
+INSTALL= /usr/bin/install
+RANLIB= /usr/bin/ranlib
+
+# FreeBSD 2.1R with new Flex v2.5.2 in /usr/local
+
CFLAGS_SL= -fpic -DPIC
%.so: %.o
#--------------------------------------------------------------------------
ifeq ($(PORTNAME), aix)
+# might want to try installbsd instead
+INSTALL= /usr/ucb/install
+
# 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
#
# 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
+POSTGRES_EXP= $(SRCDIR)/backend/postgres$(EXPSUFF)
+
MKLDEXPORT=$(SRCDIR)/backend/port/aix/mkldexport.sh
%$(EXPSUFF): %.o
$(MKLDEXPORT) $< `pwd` > $@
-%.so: %.o %$(EXPSUFF)
- @echo The link stage here:
+$(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:$(LIBDIR)/postgres$(EXPSUFF) -bE:$*$(EXPSUFF) \
+ -bI:$(POSTGRES_EXP) -bE:$*$(EXPSUFF) \
$*.o -lm -lc 2>/dev/null
endif
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 $@ $<
+DASH_N=
+BACKSLASH_C= '\\\\c'
+
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
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
+ LDADD_BE= -ltermcap -ldl
+ ifeq ($(shell uname -r), 2.1)
+ LDADD_BE+= -lipc
+ endif
else
# cc is gcc v1.42
# gcc is gcc v2.6.3
#--------------------------------------------------------------------------
-# NAT: autoconf needs tests for -fpic
-
ifeq ($(PORTNAME), dgux)
CFLAGS_SL= -fpic
%.so: %.o
$(CC) -shared -o $@ $<
-LDADD_BE= -ldl -lfl
+LDADD_BE= -ldl
+
+YACC= bison -y
+
+INSTALL=/usr/bin/X11/bsdinst
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+= /usr/lib/libdld.sl
endif
-# NAT: autoconf needs to check the HPUX version. How?
-
ifdef ENFORCE_ALIGNMENT
CFLAGS_BE= -DNOFIXADE
else
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
+# This is a script from the MIT X11 distribution.
+INSTALL= bsdinst
+
+# RANLIB is not used on HP-UX
+RANLIB= touch
+
CFLAGS_SL= +z
DLSUFFIX= .sl
%.sl: %.o
$(LD) -b -o $@ $<
+DASH_N= ''
+BACKSLASH_C= '\\\\c'
+
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.
+# cc won't work!
+
+# RANLIB is not used on solaris
+RANLIB= touch
+
+INSTALL= /usr/ucb/install
+
+ #
+ # 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
+ # accessing headers in the backend directory.
+ CFLAGS_BE= -I$(SRCDIR)/backend/port/sparc_solaris
+ LDADD_BE= -lsocket -lnsl -ll -ldl
+ LD_ADD= -lsocket -lnsl
-# NAT: autoconf needs to know about -fPIC etc
ifeq ($(CC), cc)
CFLAGS_SL= -K PIC
else
%.so: %.o
$(LD) -G -Bdynamic -o $@ $<
+DASH_N=''
+BACKSLASH_C='\\\\c'
+
endif
#----------------------------------------------------------------------------
ifeq ($(PORTNAME), irix5)
-# NAT: autoconf needs to figure out -ll
LDADD_BE= -ll
+# RANLIB is not used on IRIX 5
+RANLIB= touch
+
+#If you have GNU install, by all means set CUSTOM_INSTALL to that in
+#Makefile.custom. If you read the man page for /usr/bin/X11/bsdinst,
+#you will see it is not intended for end user use. It chowns the files
+#it installs to root.
+INSTALL= /usr/bin/X11/bsdinst
+
+IPCSDIR= /usr/sbin
+
+INSTLOPTS= -m 444
+INSTL_EXE_OPTS= -m 555
+INSTL_LIB_OPTS= -m 664
+
%.so: %.o
- $(LD) -G -Bdynamic -o $@ $<
+ $(LD) -G -Bdynamic -o $@ $< $(LD_ADD)
+
+DASH_N=''
+BACKSLASH_C='\\\\c'
endif
#---------------------------------------------------------------------------
ifeq ($(PORTNAME), linux)
-# NAT: how can autoconf work out the ELF stuff?
ifndef LINUX_ELF
DLSUFFIX= .o
LDADD_BE= -ldld
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)
+ifeq ($(PORTNAME), sunos4)
+# cc won't work!
+
+INSTALL= /usr/bin/install
+RANLIB= /usr/bin/ranlib
-# NAT: autoconf needs to know about gcc vs cc and -PIC vs -fPIC
ifeq ($(CC), cc)
CFLAGS_SL= -PIC
else
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)
+# cc won't work!
-# NAT: autoconf needs to know about dynamic loading libraries
-LDADD_BE= -ll -ldl
+LDADD_BE= -lsocket -lnsl -ll -ldl
+LD_ADD= -lsocket -lnsl
+
+# RANLIB is not used on solaris
+RANLIB= touch
+
+INSTALL= /usr/ucb/install
#
# 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 $@ $<
+DASH_N= ''
+BACKSLASH_C= '\\\\c'
+
endif
#-----------------------------------------------------------------------------
ifeq ($(PORTNAME), svr4)
-# NAT: autoconf needs to know about -W0 and why you need it
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.
-# NAT: autoconf needs to know about MAKE_EXPORTS
MAKE_EXPORTS= true
+# RANLIB is not used on svr4
+RANLIB= touch
+
+# GNU install
+INSTALL= /home/tools/bin/install
+
#
# 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 $@ $<
+DASH_N= ''
+BACKSLASH_C= '\\\\c'
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
+INSTALL= /usr/bin/install
+RANLIB= /usr/bin/ranlib
+
CFLAGS_SL= -G 0
DLSUFFIX= .o
endif
-ifneq ($(PORTNAME), next)
-# NAT: autoconf needs to know about -lm
-LDADD_BE+= -lm
+#---------------------------------------------------------------------------
+ifeq ($(PORTNAME), nextstep)
+LDADD_BE+= -lipc
+AROPT= rc
+DLSUFFIX= .o
+endif
+
+#---------------------------------------------------------------------------
+# All others need -lm
+
+ifneq ($(PORTNAME), nextstep)
+LD_ADD+= -lm
endif
# This goes here so that customization in Makefile.custom is effective
ifneq ($(CUSTOM_INSTALL),)
INSTALL= $(CUSTOM_INSTALL)
-endif
+endif
#
# Flags for CC and LD.
# include port-specific flags
CFLAGS+= $(CFLAGS_BE)
-LDADD+= $(LDADD_BE)
+LD_ADD+= $(LDADD_BE)
LDFLAGS+= $(LDFLAGS_BE)