Makefile.global.in 9.8 KB
Newer Older
1
# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.95 2000/09/25 22:22:54 petere Exp $
2 3 4 5 6 7

#------------------------------------------------------------------------------
# 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 18 19
# Delete target files if the command fails after it has
# started to update the file.
.DELETE_ON_ERROR:


20 21 22
# PostgreSQL version number
VERSION = @VERSION@

23 24
# This should be changed once we have separate build dirs.
top_srcdir = $(top_builddir)
25

26 27 28 29 30 31
ifeq ($(top_builddir), $(top_srcdir))
srcdir = .
else
srcdir = $(top_srcdir)/$(subdir)
endif
VPATH = $(srcdir)
32 33 34 35 36

##############################################################################
#
# CONFIGURATION SECTION
#
37 38
# Following are settings pertaining to the postgres build and
# installation.
39
# of the port.
40
#
41 42 43 44
# 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
45

M
 
Marc G. Fournier 已提交
46 47 48 49
# 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@

50 51 52 53 54 55 56
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
57

58

59 60 61 62 63 64 65 66 67 68 69 70 71
# 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@
72
mandir = @mandir@
73
docdir = @docdir@
74

75 76
odbcinst_ini_dir = @odbcinst_ini_dir@

77

78 79
##############################################################################
#
80
# FEATURES
81 82 83 84 85 86 87 88
#
# 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


89
with_CXX = @with_CXX@
90
with_perl = @with_perl@
91 92 93 94 95 96
enable_odbc = @enable_odbc@

with_python = @with_python@
PYTHON = @PYTHON@
python_extmakefile = @python_extmakefile@
python_moduledir = @python_moduledir@
97

98 99
krb_srvtab = @krb_srvtab@

100 101 102
with_tcl = @with_tcl@
with_tk = @with_tk@

B
Bruce Momjian 已提交
103
WISH= @WISH@
104 105
TCL_CONFIG_SH = @TCL_CONFIG_SH@
TK_CONFIG_SH = @TK_CONFIG_SH@
106

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

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

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

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

RANLIB= @RANLIB@
125

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

153 154 155
ifeq ($(GCC), yes)
  CFLAGS += -Wall -Wmissing-prototypes -Wmissing-declarations
endif
156

157 158 159 160 161
##############################################################################
#
# Additional platform-specific settings
#

162
# Name of the target platform.
163
PORTNAME= @PORTNAME@
164
CPU= @CPU@
165

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

170
include $(top_builddir)/src/Makefile.port
171

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

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

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

#
189
# Flags for CC and LD.
190 191 192 193

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

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


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

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

# make `all' the default target
all:

247 248 249 250 251

# 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 已提交
252 253 254
$(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

255 256 257 258 259 260 261 262 263 264 265 266 267 268
# 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 已提交
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
$(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@

299
ifeq ($(autodepend), yes)
P
Peter Eisentraut 已提交
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

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
323
clean distclean maintainer-clean: clean-deps
P
Peter Eisentraut 已提交
324 325 326 327 328 329

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

endif # autodepend