Makefile.global.in 9.7 KB
Newer Older
1 2 3 4 5 6 7
# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.92 2000/08/31 16:09:22 petere Exp $

#------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets,
# which in turn are put here by the configure script. There is no need for
# users to edit this file -- if it turns out to be necessary then that's a
# bug.
8
#
9 10 11 12 13
# A makefile that includes this file needs to set the variable `subdir' to
# the relative path from the top to itself and `top_builddir' to the relative
# path from itself to the top before including this file. (The "top" is the
# parent directory of the directory this file is in.)
#------------------------------------------------------------------------------
14

15 16 17
# PostgreSQL version number
VERSION = @VERSION@

18 19
# This should be changed once we have separate build dirs.
top_srcdir = $(top_builddir)
20

21 22 23 24 25 26
ifeq ($(top_builddir), $(top_srcdir))
srcdir = .
else
srcdir = $(top_srcdir)/$(subdir)
endif
VPATH = $(srcdir)
27 28 29 30 31

##############################################################################
#
# CONFIGURATION SECTION
#
32 33
# Following are settings pertaining to the postgres build and
# installation.
34
# of the port.
35
#
36 37 38 39
# 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
40

M
 
Marc G. Fournier 已提交
41 42 43 44
# This is mainly for use on FreeBSD, where we have both a.out and elf
# systems now.  May be applicable to other systems to?
ELF_SYSTEM= @ELF_SYS@

45 46 47 48 49 50 51
libpq_srcdir = $(top_srcdir)/src/interfaces/libpq
libpq_builddir = $(top_builddir)/src/interfaces/libpq
libpq = -L$(libpq_builddir) -lpq

libpgeasy_srcdir = $(top_srcdir)/src/interfaces/libpgeasy
libpgeasy_builddir = $(top_builddir/src/interfaces/libpgeasy
libpgeasy = -L$(libpgeasy_builddir) -lpgeasy
52

53

54 55 56 57 58 59 60 61 62 63 64 65 66
# installation directories

prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
includedir = @includedir@
67
mandir = @mandir@
68
docdir = @docdir@
69

70 71
odbcinst_ini_dir = @odbcinst_ini_dir@

72

73 74
##############################################################################
#
75
# FEATURES
76 77 78 79 80 81 82 83
#
# To disable a feature, comment out the entire definition
# (that is, prepend '#', don't set it to "0" or "no").

# Comment out PROFILE to generate a profile version of the binaries
#PROFILE= -p -non_shared


84
with_CXX = @with_CXX@
85
with_perl = @with_perl@
86 87 88 89 90 91
enable_odbc = @enable_odbc@

with_python = @with_python@
PYTHON = @PYTHON@
python_extmakefile = @python_extmakefile@
python_moduledir = @python_moduledir@
92

93 94
krb_srvtab = @krb_srvtab@

B
Bruce Momjian 已提交
95 96 97
#
# Please do not edit USE_TCL and USE_TK by hand.
#
98
USE_TCL= @USE_TCL@
B
Bruce Momjian 已提交
99
USE_TK= @USE_TK@
B
Bruce Momjian 已提交
100
WISH= @WISH@
101 102
TCL_CONFIG_SH = @TCL_CONFIG_SH@
TK_CONFIG_SH = @TK_CONFIG_SH@
103

104 105 106
X_CFLAGS= @X_CFLAGS@
X_LIBS= @X_LIBS@
X11_LIBS= -lX11 @X_EXTRA_LIBS@
107

P
Peter Eisentraut 已提交
108
# flag whether multibyte is on/off
M
 
Marc G. Fournier 已提交
109
MULTIBYTE=@MULTIBYTE@
110 111 112

##############################################################################
#
113
# Installation.
114 115 116
#
INSTALL= @INSTALL@

117 118 119 120 121 122
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SHLIB = @INSTALL_SHLIB@

mkinstalldirs = @mkinstalldirs@
123
missing = $(top_srcdir)/config/missing
124 125

RANLIB= @RANLIB@
126

M
Marc G. Fournier 已提交
127 128 129
#-------------------------------------------------------------
# See the subdirectory template for default settings for these
#-------------------------------------------------------------
130
CC= @CC@
131
CPP= @CPP@
132
YACC= @YACC@
133
YFLAGS = @YFLAGS@
134 135
FLEX = @FLEX@
FLEXFLAGS = @FLEXFLAGS@ $(LFLAGS)
M
Marc G. Fournier 已提交
136
AROPT= @AROPT@
137
CPPFLAGS = @CPPFLAGS@
138
CFLAGS = -I$(top_srcdir)/src/include $(CPPFLAGS) @CFLAGS@
139
CFLAGS_SL= @SHARED_LIB@
140 141
LIBS= @LIBS@
LDFLAGS= @LDFLAGS@ $(LIBS)
142
KRB_LIBS = @KRB_LIBS@
B
Bruce Momjian 已提交
143
LDREL= -r
144
LDOUT= -o
M
Marc G. Fournier 已提交
145
DLSUFFIX= @DLSUFFIX@
146
LN_S= @LN_S@
147
TAR= @tar@
148
PERL = @PERL@
149
AWK = @AWK@
150 151
CXX=@CXX@
CXXFLAGS=@CXXFLAGS@ @INCLUDES@
152
GCC = @GCC@
153

154

155 156 157 158 159
##############################################################################
#
# Additional platform-specific settings
#

160
# Name of the target platform.
161
PORTNAME= @PORTNAME@
162
CPU= @CPU@
163

164 165 166 167
# Various grungy items needed to configure some platforms.
HAVE_POSIX_SIGNALS= @HAVE_POSIX_SIGNALS@
HPUXMATHLIB= @HPUXMATHLIB@

168
include $(top_builddir)/src/Makefile.port
169

170
##############################################################################
171
#
172
# Customization.
173
#
174 175 176
# 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.
177
-include $(top_srcdir)/src/Makefile.custom
178

179 180 181 182 183 184 185 186
# This goes here so that customization in Makefile.custom is effective
##############################################################################

ifneq ($(CUSTOM_INSTALL),)
INSTALL= $(CUSTOM_INSTALL)
endif

#
187
# Flags for CC and LD.
188 189 190 191

##############################################################################
# COPT
#
192
# COPT is for options that the sophisticated builder might want to vary
193
# from one build to the next, like options to build Postgres with debugging
194
# information included.  COPT is meant to be set on the make command line,
195 196 197 198
# 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.
#
199
# There is a nonobvious relationship between -O (optimization) and
200 201 202 203 204
# -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
205
# inlining can happen, and hence the problem.  Therefore, we include
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
# 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_CC),)
  CC= $(CUSTOM_CC)
endif

ifneq ($(CUSTOM_COPT),)
  COPT= $(CUSTOM_COPT)
endif

ifdef COPT
   CFLAGS+= $(COPT)
223
   LDFLAGS+= $(COPT)
224 225 226 227
endif

ifdef PROFILE
   CFLAGS+= $(PROFILE)
B
Bruce Momjian 已提交
228
   LDFLAGS+= $(PROFILE)
229
endif
230 231 232


# substitute implementations of the C library
233
INET_ATON = @INET_ATON@
234 235 236 237 238
STRERROR = @STRERROR@
STRERROR2 = @STRERROR2@
SNPRINTF = @SNPRINTF@
STRDUP = @STRDUP@

239
.PHONY: all install installdirs uninstall dep depend clean distclean maintainer-clean distprep
240
.SILENT: installdirs
P
Peter Eisentraut 已提交
241 242 243 244

# make `all' the default target
all:

245 246 247 248 249

# Remake Makefile.global from Makefile.global.in if the latter
# changed. In order to trigger this rule, the including file must
# write `include $(top_builddir)/src/Makefile.global', not some
# shortcut thereof.
P
Peter Eisentraut 已提交
250 251 252
$(top_builddir)/src/Makefile.global: $(top_srcdir)/src/Makefile.global.in $(top_builddir)/config.status
	cd $(top_builddir) && CONFIG_FILES=src/Makefile.global CONFIG_HEADERS= ./config.status

253 254 255 256 257 258 259 260 261 262 263 264 265 266
# Remake config.h from config.h.in if the latter changed.
# config.status will not change the timestamp on config.h if it
# doesn't change, so as to avoid recompiling the entire tree
# unnecessarily. Therefore config.status will update a timestamp file
# everytime it runs so that we don't trigger this rule everytime.
#
# Of course you need to turn on dependency tracking to get any
# dependencies on config.h
$(top_builddir)/src/include/config.h: $(top_builddir)/src/include/stamp-h
$(top_builddir)/src/include/stamp-h: $(top_srcdir)/src/include/config.h.in $(top_builddir)/config.status
	cd $(top_builddir) && CONFIG_FILES= CONFIG_HEADERS=src/include/config.h ./config.status

# When configure changes, rerun configure with the same options as
# last time. To change configure, you need to run autoconf manually.
P
Peter Eisentraut 已提交
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
$(top_builddir)/config.status: $(top_srcdir)/configure
	cd $(top_builddir) && ./config.status --recheck




COMPILE.c = $(CC) -c $(CPPFLAGS) $(CFLAGS)

# Automatic dependency generation
# -------------------------------
# When we configure with --enable-depend then we override the default
# compilation rule with the magic below. While or after creating the
# actual output file we also create a dependency list for the .c file.
# Next time we invoke make we will have top-notch information about
# whether this file needs to be updated. The dependency files are kept
# in the .deps subdirectory of each directory.
#
# The sed command is necessary to post-process the dependency file:
# Each dependency file becomes a target of its own, without
# dependencies or commands. This is because if you happen to remove a
# file that is a dependency (say, you rename a header file) the
# dependency would point to a non-existing file and make would fail.
# But if the file is listed as a target of its own, without
# prerequisites and commands, and doesn't exist then make will
# consider it updated. (That in turn also has the nice side effect
# that make will update all files that depended on the now removed
# file.)

autodepend = @autodepend@

ifdef autodepend

DEPDIR = .deps
df = $(DEPDIR)/$(*F)

ifeq ($(GCC), yes)

# GCC allows us to create object and dependency file in one invocation.
%.o : %.c
	$(COMPILE.c) -MMD $< -o $@
	@if test ! -d $(DEPDIR); then mkdir $(DEPDIR); fi; \
	 cp $*.d $(df).P; \
	 sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
	     -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $(df).P; \
	 rm -f $*.d

endif # GCC

# Include all the dependency files generated for the current
# directory. List /dev/null as dummy because if the wildcard expands
# to nothing then make would complain.
-include $(wildcard $(DEPDIR)/*.P) /dev/null

# hook for clean-up
321
clean distclean maintainer-clean: clean-deps
P
Peter Eisentraut 已提交
322 323 324 325 326 327

.PHONY: clean-deps
clean-deps:
	@rm -rf $(DEPDIR)

endif # autodepend