mirror of https://github.com/postgres/postgres.git
909 lines
20 KiB
Makefile
909 lines
20 KiB
Makefile
#----------------------------------------------------------------------------
|
|
#
|
|
# Makefile.global--
|
|
# global configuration for the Makefiles
|
|
#
|
|
# Copyright (c) 1994, Regents of the University of California
|
|
#
|
|
#
|
|
# IDENTIFICATION
|
|
# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.43 1996/10/27 09:45:05 bryanh Exp $
|
|
#
|
|
# NOTES
|
|
# This is seen by any Makefiles that include mk/postgres.mk. 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
|
|
# gmake clean; gmake
|
|
# since no dependecies 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 and 2.01
|
|
# bsdi_2_1 - BSD/OS 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
|
|
|
|
# SRCDIR specifies where the source files are. It should be defined before
|
|
# we are included, but for transition purposes, we put this default here.
|
|
ifdef SRCDIR
|
|
MKDIR= $(SRCDIR)/mk
|
|
else
|
|
SRCDIR= /usr/local/postgres95/src
|
|
endif
|
|
|
|
# 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/postgres95
|
|
|
|
# POSTGRESLOGIN is the login name of the user who gets special
|
|
# privileges within the database. By default it is "postgres", but
|
|
# you can change it to any existing login name (such as your own
|
|
# login if you are compiling a private version or don't have root
|
|
# access).
|
|
POSTGRESLOGIN= postgres
|
|
|
|
# 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
|
|
#
|
|
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").
|
|
|
|
HAVE_Cplusplus= false
|
|
|
|
# Comment out CDEBUG to turn off debugging and sanity-checking.
|
|
#
|
|
# XXX on MIPS, use -g3 if you want to compile with -O
|
|
CDEBUG= -O
|
|
|
|
# Comment out ENFORCE_ALIGNMENT if you do NOT want unaligned access to
|
|
# multi-byte types to generate a bus error.
|
|
ENFORCE_ALIGNMENT= true
|
|
|
|
#
|
|
# XXX define on MIPS if you want to be able to use pixie.
|
|
# note that this disables dynamic loading!
|
|
#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= false
|
|
|
|
# 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
|
|
|
|
# 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!
|
|
#
|
|
#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
|
|
#
|
|
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 = -c -m 444
|
|
INSTL_EXE_OPTS = -c -m 555
|
|
INSTL_LIB_OPTS = -c -m 664
|
|
|
|
|
|
objdir= obj
|
|
|
|
##############################################################################
|
|
#
|
|
# 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 $(MKDIR)/../Makefile.custom), )
|
|
include $(MKDIR)/../Makefile.custom
|
|
endif
|
|
|
|
#############################################################################
|
|
# include port specific rules and variables. For instance:
|
|
#
|
|
# signal(2) handling - this is here because it affects some of
|
|
# the frontend commands as well as the backend server.
|
|
#
|
|
# Ultrix and SunOS provide BSD signal(2) semantics by default.
|
|
#
|
|
# SVID2 and POSIX signal(2) semantics differ from BSD signal(2)
|
|
# semantics. We can use the POSIX sigaction(2) on systems that
|
|
# allow us to request restartable signals (SA_RESTART).
|
|
#
|
|
# Some systems don't allow restartable signals at all unless we
|
|
# link to a special BSD library.
|
|
#
|
|
# We devoutly hope that there aren't any systems that provide
|
|
# neither POSIX signals nor BSD signals. The alternative
|
|
# is to do signal-handler reinstallation, which doesn't work well
|
|
# at all.
|
|
#
|
|
# 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 a little bit easier to use
|
|
# Makefile.global because you don't have to set MKDIR too. It also makes
|
|
# it easier to read the make files. Finally, it should help with
|
|
# 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.
|
|
|
|
#----------------------------------------------------------------------
|
|
ifeq ($PORTNAME, BSD44_derived)
|
|
MK_PORT= BSD44_derived
|
|
|
|
# cc is gcc, but never mind about that...
|
|
CC= gcc
|
|
|
|
INSTALL= /usr/bin/install
|
|
RANLIB= /usr/bin/ranlib
|
|
|
|
AROPT = cq
|
|
|
|
# FreeBSD 2.1R with new Flex v2.5.2 in /usr/local
|
|
LEX = flex
|
|
LDADD+= -L/usr/local/lib -lfl
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
CFLAGS_SL = -fpic -DPIC
|
|
|
|
ifneq ($(HOSTTYPE), mips)
|
|
SLSUFF= .so
|
|
endif
|
|
|
|
%.so: %.o
|
|
$(LD) -x -r -o $(objdir)/$(<F).obj $(objdir)/$(<F)
|
|
@echo building shared object $(objdir)/$(@F)
|
|
@rm -f $(objdir)/$(@F).pic
|
|
@${AR} cq $(objdir)/$(@F).pic `lorder $(objdir)/$(<F).obj | tsort`
|
|
${RANLIB} $(objdir)/$(@F).pic
|
|
@rm -f $(objdir)/$(@F)
|
|
$(LD) -x -Bshareable -Bforcearchive \
|
|
-o $(objdir)/$(@F) $(objdir)/$(@F).pic
|
|
endif
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), aix)
|
|
MK_PORT= aix
|
|
|
|
# might want to try installbsd instead
|
|
INSTALL= /usr/ucb/install
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
|
|
# the -lm is because "pow" is defined in libbsd.a and we want pow(3m)
|
|
LDADD_BE= -lm -lbsd
|
|
|
|
# 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 -DHAVE_ANSI_CPP
|
|
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
EXPSUFF= .exp
|
|
SLSUFF= .so
|
|
|
|
MKLDEXPORT=$(SRCDIR)/backend/port/aix/mkldexport.sh
|
|
|
|
%$(EXPSUFF): %.o
|
|
$(MKLDEXPORT) $(objdir)/$(<F) `pwd` > $(objdir)/$(@F)
|
|
|
|
%.so: %.o %$(EXPSUFF)
|
|
@echo The link stage here:
|
|
$(LD) -H512 -T512 -o $(objdir)/$(@F) -e _nostart \
|
|
-bI:$(LIBDIR)/postgres$(EXPSUFF) -bE:$*$(EXPSUFF) \
|
|
$*.o -lm -lc 2>/dev/null
|
|
endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), alpha)
|
|
MK_PORT= alpha
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_BE+= -DUSE_POSIX_SIGNALS
|
|
|
|
# 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
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
SLSUFF= .so
|
|
|
|
# cd into objdir so that so_locations is also in obj
|
|
%.so: %.o
|
|
cd $(objdir); $(LD) -shared -expect_unresolved '*' -o $(@F) $(<F)
|
|
|
|
CLEANFILES+= so_locations
|
|
|
|
#
|
|
# for postgres.shell.mk
|
|
#
|
|
DASH_N=
|
|
BACKSLASH_C='\\\\c'
|
|
|
|
endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), bsdi)
|
|
MK_PORT= bsdi
|
|
|
|
# cc is gcc v1.42
|
|
# gcc is gcc v2.6.3
|
|
CC= gcc
|
|
|
|
LEX= flex
|
|
AROPT= cq
|
|
|
|
# use the regex library
|
|
USE_REGEX = 1
|
|
|
|
LDADD_BE= -ldld -lcompat
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
SLSUFF= .o
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_OPT= -g -DUSE_POSIX_SIGNALS # -O2
|
|
|
|
endif
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), bsdi_2_1)
|
|
MK_PORT= bsdi_2_1
|
|
|
|
# cc is gcc v1.42
|
|
# gcc is gcc v2.7.2
|
|
CC= gcc
|
|
|
|
LEX= lex
|
|
AROPT= cq
|
|
|
|
LD_ADD+= -ltermcap
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
SLSUFF= .o
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_OPT= -O2 -m486
|
|
CFLAGS_BE = -DUSE_POSIX_SIGNALS
|
|
|
|
endif
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), dgux)
|
|
MK_PORT= linux
|
|
|
|
SLSUFF= .so
|
|
#LDFLAGS+= -rdynamic
|
|
|
|
|
|
CFLAGS_SL= -fpic
|
|
%.so: %.o
|
|
cd $(objdir); $(CC) -shared -o $(@F) $(<F)
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CC= gcc
|
|
CFLAGS_OPT= -O2 -pipe
|
|
|
|
CFLAGS_BE= -D__USE_POSIX_SIGNALS -DUSE_POSIX_SIGNALS -O2
|
|
LDADD_BE= -ldl -lfl
|
|
|
|
LEX = flex
|
|
YACC = bison -y
|
|
|
|
INSTALL=/usr/bin/X11/bsdinst
|
|
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), hpux)
|
|
MK_PORT= hpux
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
LDADD_BE= -lBSD
|
|
|
|
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
|
|
|
|
# This is a script from the MIT X11 distribution.
|
|
INSTALL= bsdinst
|
|
|
|
# RANLIB is not used on HP-UX
|
|
RANLIB=touch
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
CFLAGS_SL= +z
|
|
SLSUFF= .sl
|
|
|
|
%.sl: %.o
|
|
$(LD) -b -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
|
|
#
|
|
# for postgres.shell.mk
|
|
#
|
|
DASH_N= ''
|
|
BACKSLASH_C='\\\\c'
|
|
|
|
endif
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), i386_solaris)
|
|
MK_PORT= i386_solaris
|
|
|
|
# cc won't work!
|
|
CC= gcc
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_BE+= -DUSE_POSIX_SIGNALS
|
|
|
|
# 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.
|
|
CFLAGS_BE+= -DSYSV_DIRENT -I$(POSTGRESDIR)/src/backend/port/sparc_solaris
|
|
LDADD_BE+= -lsocket -lnsl
|
|
|
|
LD_ADD+= $(LDADD_BE)
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
ifeq ($(CC), cc)
|
|
CFLAGS_SL= -K PIC
|
|
else
|
|
CFLAGS_SL= -fPIC
|
|
endif
|
|
|
|
SLSUFF= .so
|
|
|
|
%.so: %.o
|
|
$(LD) -G -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
|
|
#
|
|
# for postgres.shell.mk
|
|
#
|
|
DASH_N=''
|
|
BACKSLASH_C='\\\\c'
|
|
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), irix5)
|
|
MK_PORT= irix5
|
|
|
|
CC= cc
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_BE+= -DUSE_POSIX_SIGNALS
|
|
|
|
# RANLIB is not used on IRIX 5
|
|
RANLIB=touch
|
|
|
|
INSTALL=/sbin/bsdinst
|
|
|
|
INSTLOPTS= -m 444
|
|
INSTL_EXE_OPTS= -m 555
|
|
INSTL_LIB_OPTS= -m 664
|
|
|
|
#
|
|
# Random things that must be passed everywhere to enable
|
|
# everything to compile. :-/
|
|
#
|
|
CFLAGS_BE+= -DSYSV_DIRENT
|
|
|
|
LD_ADD+= $(LDADD_BE)
|
|
|
|
SLSUFF= .so
|
|
|
|
%.so: %.o
|
|
$(LD) -G -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
|
|
#
|
|
# for postgres.shell.mk
|
|
#
|
|
DASH_N=''
|
|
BACKSLASH_C='\\\\c'
|
|
|
|
endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), linux)
|
|
MK_PORT= linux
|
|
|
|
ifndef LINUX_ELF
|
|
SLSUFF= .o
|
|
else
|
|
SLSUFF= .so
|
|
LDFLAGS+= -rdynamic
|
|
endif
|
|
MK_NO_LORDER= true
|
|
|
|
# use the regex library
|
|
USE_REGEX = 1
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
CFLAGS_SL= -fpic
|
|
%.so: %.o
|
|
cd $(objdir); $(CC) -shared -o $(@F) $(<F)
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_OPT= -O2 -pipe -m486
|
|
|
|
# The Linux gnulib #defines the problem away for you and calls
|
|
# the BSD routines if you give it the right flags.
|
|
CFLAGS_BE= -D__USE_BSD -D__USE_BSD_SIGNAL
|
|
LDADD_BE= -lbsd
|
|
|
|
LEX = flex
|
|
|
|
endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), sparc)
|
|
MK_PORT= sparc
|
|
|
|
# cc won't work!
|
|
CC= gcc
|
|
|
|
# the ar on SunOs is dumb, can't use the s option
|
|
AROPT= cq
|
|
|
|
INSTALL= /usr/bin/install
|
|
RANLIB= /usr/bin/ranlib
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
ifeq ($(CC), cc)
|
|
CFLAGS_SL= -PIC
|
|
else
|
|
CFLAGS_SL= -fPIC
|
|
endif
|
|
|
|
SLSUFF= .so
|
|
|
|
%.so: %.o
|
|
$(LD) -dc -dp -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
|
|
endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), sparc_solaris)
|
|
MK_PORT= sparc_solaris
|
|
|
|
# cc won't work!
|
|
CC= gcc
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_BE+= -DUSE_POSIX_SIGNALS
|
|
|
|
# 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.
|
|
CFLAGS_BE+= -DSYSV_DIRENT -I$(SRCDIR)/backend/port/sparc_solaris
|
|
LDADD_BE+= -lsocket -lnsl
|
|
|
|
LD_ADD+= $(LDADD_BE)
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
ifeq ($(CC), cc)
|
|
CFLAGS_SL= -K PIC
|
|
else
|
|
CFLAGS_SL= -fPIC
|
|
endif
|
|
|
|
SLSUFF= .so
|
|
|
|
%.so: %.o
|
|
$(LD) -G -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
|
|
#
|
|
# for postgres.shell.mk
|
|
#
|
|
DASH_N=''
|
|
BACKSLASH_C='\\\\c'
|
|
|
|
endif
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), svr4)
|
|
MK_PORT= svr4
|
|
|
|
# cc won't work?
|
|
#CC= gcc
|
|
CC= cc -W0
|
|
YACC= bison -y
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_BE+= -DUSE_POSIX_SIGNALS
|
|
|
|
# MAKE_EXPORTS is required for svr4 loaders that want a file of
|
|
# symbol names to tell them what to export/import.
|
|
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.
|
|
CFLAGS_BE+= -DSYSV_DIRENT -I$(POSTGRESDIR)/src/backend/port/svr4
|
|
LDADD_BE+= -lsocket -lnsl -lc /usr/ucblib/libucb.a
|
|
|
|
LD_ADD+= $(LDADD_BE)
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
CFLAGS_OPT= -O
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
#CFLAGS_SL= -K pic
|
|
ifeq ($(CC), cc)
|
|
#CFLAGS_SL= -K PIC
|
|
else
|
|
#CFLAGS_SL= -fPIC
|
|
endif
|
|
|
|
SLSUFF= .so
|
|
|
|
#%.so: %.o
|
|
# $(LD) -G $(LDFLAGS) -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
%.so: %.o
|
|
$(LD) -G -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
|
|
|
|
#
|
|
# for postgres.shell.mk
|
|
#
|
|
DASH_N=''
|
|
BACKSLASH_C='\\\\c'
|
|
endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
ifeq ($(PORTNAME), ultrix4)
|
|
MK_PORT= ultrix4
|
|
|
|
#
|
|
# for postgres.mk
|
|
#
|
|
ifdef ENFORCE_ALIGNMENT
|
|
CFLAGS_BE= -DNOFIXADE
|
|
endif
|
|
|
|
# install creates intermediate directories
|
|
NO_BEFOREINSTL= true
|
|
|
|
INSTALL= /usr/bin/install
|
|
RANLIB= /usr/bin/ranlib
|
|
|
|
#
|
|
# for postgres.user.mk
|
|
#
|
|
CFLAGS_SL= -G 0
|
|
SLSUFF= .o
|
|
|
|
endif
|
|
|
|
|
|
|
|
##############################################################################
|
|
#
|
|
# Miscellaneous configuration
|
|
#
|
|
|
|
srcdir= $(SRCDIR)
|
|
includedir= $(HEADERDIR)
|
|
|
|
|
|
# This goes here so that customization in Makefile.custom is effective
|
|
##############################################################################
|
|
#
|
|
# Flags for CC and LD. (depend on CDEBUG and PROFILE)
|
|
#
|
|
|
|
# Globally pass debugging/optimization/profiling flags based
|
|
# on the options selected above.
|
|
ifdef CDEBUG
|
|
CFLAGS+= $(CDEBUG)
|
|
LDFLAGS+= $(CDEBUG)
|
|
else
|
|
ifndef CFLAGS_OPT
|
|
CFLAGS_OPT= -O
|
|
endif
|
|
CFLAGS+= $(CFLAGS_OPT)
|
|
#
|
|
# Uncommenting this will make things go a LOT faster, but you will
|
|
# also lose a lot of useful error-checking.
|
|
#
|
|
CFLAGS+= -DNO_ASSERT_CHECKING
|
|
endif
|
|
|
|
ifdef PROFILE
|
|
CFLAGS+= $(PROFILE)
|
|
LDFLAGS+= $(PROFILE)
|
|
endif
|
|
|
|
# Globally pass PORTNAME
|
|
CFLAGS+= -DPORTNAME_$(PORTNAME) -D$(PORTNAME)
|
|
|
|
# include port-specific flags
|
|
CFLAGS+= $(CFLAGS_BE)
|
|
LDADD+= $(LDADD_BE)
|
|
LDFLAGS+= $(LDFLAGS_BE)
|
|
|