Makefile.global.in 9.7 KB
Newer Older
1 2 3 4 5 6 7 8 9
#----------------------------------------------------------------------------
#
# Makefile.global--
#    global configuration for the Makefiles
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
P
Peter Eisentraut 已提交
10
#    $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.87 2000/07/16 14:50:41 petere Exp $
11 12
#
# NOTES
13 14
#    Essentially all Postgres make files include this file and use the
#    variables it sets.
15 16 17 18 19 20
#
#    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
21
#    often another variable (like CUSTOM_COPT) that you can set in
22 23 24 25
#    Makefile.custom that influences the later setting of the true variable
#    of interest (like CFLAGS) by Makefile.global.
#
#
26
#    If you change any of these defines you probably have to
27
#       make clean; make
28
#    since no dependencies are created for these. (of course you can
29 30
#    be crafty and check what files really depend on them and just remake
#    those).
31 32 33 34
#
#    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).
35 36 37
#
#-------------------------------------------------------------------------

38 39 40
# PostgreSQL version number
VERSION = @VERSION@

41 42 43 44
ifndef top_builddir
top_builddir = $(SRCDIR)/..
endif

45
ifndef SRCDIR
46 47 48
SRCDIR = $(top_builddir)/src
endif

49 50
# This should be changed once we have separate build dirs.
top_srcdir = $(top_builddir)
51

52 53 54 55 56 57
ifeq ($(top_builddir), $(top_srcdir))
srcdir = .
else
srcdir = $(top_srcdir)/$(subdir)
endif
VPATH = $(srcdir)
58 59 60 61 62

##############################################################################
#
# CONFIGURATION SECTION
#
63 64
# Following are settings pertaining to the postgres build and
# installation.
65
# of the port.
66
#
67 68 69 70
# 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
71

M
 
Marc G. Fournier 已提交
72 73 74 75
# 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@

76
LIBPQDIR= $(SRCDIR)/interfaces/libpq
B
Bruce Momjian 已提交
77
LIBPGEASYDIR= $(SRCDIR)/interfaces/libpgeasy
78
LIBPGTCLDIR= $(SRCDIR)/interfaces/libpgtcl
79

80 81
LIBPQ= -L$(LIBPQDIR) -lpq
LIBPGTCL= -L$(LIBPGTCLDIR) -lpgtcl
B
Bruce Momjian 已提交
82
LIBPGEASY= -L$(LIBPGEASYDIR) -lpgeasy
83

84 85 86 87 88 89 90 91 92 93 94 95 96
# 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@
97
mandir = @mandir@
98

99
docdir = ${prefix}/doc
100 101
odbcinst_ini_dir = @odbcinst_ini_dir@

102 103 104 105 106 107
# old variable names for installation directories

POSTGRESDIR= $(prefix)
BINDIR= $(bindir)
LIBDIR= $(libdir)
TEMPLATEDIR= $(libdir)
108 109
POSTMANDIR= $(mandir)
POSTDOCDIR= $(docdir)
110
HEADERDIR= $(includedir)
111

112

113 114
##############################################################################
#
115
# FEATURES
116 117 118 119 120 121 122 123 124 125 126 127
#
# To disable a feature, comment out the entire definition
# (that is, prepend '#', don't set it to "0" or "no").

# Comment out ENFORCE_ALIGNMENT if you do NOT want unaligned access to
# multi-byte types to generate a bus error.
ENFORCE_ALIGNMENT= true

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


128
with_CXX = @with_CXX@
129
with_perl = @with_perl@
130 131 132 133 134 135
enable_odbc = @enable_odbc@

with_python = @with_python@
PYTHON = @PYTHON@
python_extmakefile = @python_extmakefile@
python_moduledir = @python_moduledir@
136

137 138
krb_srvtab = @krb_srvtab@

B
Bruce Momjian 已提交
139 140 141
#
# Please do not edit USE_TCL and USE_TK by hand.
#
142
USE_TCL= @USE_TCL@
B
Bruce Momjian 已提交
143
USE_TK= @USE_TK@
B
Bruce Momjian 已提交
144
WISH= @WISH@
145 146
TCL_CONFIG_SH = @TCL_CONFIG_SH@
TK_CONFIG_SH = @TK_CONFIG_SH@
147

148 149 150
X_CFLAGS= @X_CFLAGS@
X_LIBS= @X_LIBS@
X11_LIBS= -lX11 @X_EXTRA_LIBS@
151

P
Peter Eisentraut 已提交
152
# flag whether multibyte is on/off
M
 
Marc G. Fournier 已提交
153
MULTIBYTE=@MULTIBYTE@
154 155 156

##############################################################################
#
157
# Installation.
158 159 160 161
#
# For many ports, INSTALL is overridden below.
INSTALL= @INSTALL@

162 163 164 165 166 167 168 169
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SHLIB = @INSTALL_SHLIB@

mkinstalldirs = @mkinstalldirs@

RANLIB= @RANLIB@
170

M
Marc G. Fournier 已提交
171 172 173
#-------------------------------------------------------------
# See the subdirectory template for default settings for these
#-------------------------------------------------------------
174
CC= @CC@
175
CPP= @CPP@
176
YACC= @YACC@
177
YFLAGS = @YFLAGS@
178
LEX= @LEX@
M
Marc G. Fournier 已提交
179
AROPT= @AROPT@
180 181
CPPFLAGS = @CPPFLAGS@
CFLAGS = -I$(SRCDIR)/include $(CPPFLAGS) @CFLAGS@
182
CFLAGS_SL= @SHARED_LIB@
183 184
LIBS= @LIBS@
LDFLAGS= @LDFLAGS@ $(LIBS)
185
KRB_LIBS = @KRB_LIBS@
B
Bruce Momjian 已提交
186
LDREL= -r
187
LDOUT= -o
M
Marc G. Fournier 已提交
188
DLSUFFIX= @DLSUFFIX@
189
LN_S= @LN_S@
190
TAR= @tar@
191
PERL = @PERL@
192
AWK = @AWK@
193 194
CXX=@CXX@
CXXFLAGS=@CXXFLAGS@ @INCLUDES@
195
GCC = @GCC@
196

197

198 199 200 201 202
##############################################################################
#
# Additional platform-specific settings
#

203
# Name of the target platform.
204
PORTNAME= @PORTNAME@
205
CPU= @CPU@
206

207 208 209 210
# Various grungy items needed to configure some platforms.
HAVE_POSIX_SIGNALS= @HAVE_POSIX_SIGNALS@
HPUXMATHLIB= @HPUXMATHLIB@

211
include $(SRCDIR)/Makefile.port
212

213
##############################################################################
214
#
215
# Customization.
216
#
217 218 219 220 221
# 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
222 223
endif

224 225 226 227 228 229 230 231
# This goes here so that customization in Makefile.custom is effective
##############################################################################

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

#
232
# Flags for CC and LD.
233 234 235 236

##############################################################################
# COPT
#
237
# COPT is for options that the sophisticated builder might want to vary
238
# from one build to the next, like options to build Postgres with debugging
239
# information included.  COPT is meant to be set on the make command line,
240 241 242 243
# 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.
#
244
# There is a nonobvious relationship between -O (optimization) and
245 246 247 248 249
# -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
250
# inlining can happen, and hence the problem.  Therefore, we include
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
# 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)
268
   LDFLAGS+= $(COPT)
269 270 271 272
endif

ifdef PROFILE
   CFLAGS+= $(PROFILE)
B
Bruce Momjian 已提交
273
   LDFLAGS+= $(PROFILE)
274
endif
275 276 277


# substitute implementations of the C library
278
INET_ATON = @INET_ATON@
279 280 281 282 283 284
STRERROR = @STRERROR@
STRERROR2 = @STRERROR2@
SNPRINTF = @SNPRINTF@
STRDUP = @STRDUP@

.PHONY: all install installdirs uninstall dep depend clean distclean maintainer-clean
285
.SILENT: installdirs
P
Peter Eisentraut 已提交
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 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353

# make `all' the default target
all:

$(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

$(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
clean: clean-deps

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

endif # autodepend