summaryrefslogtreecommitdiff
path: root/databases/postgresql84/Makefile.common
blob: c9809b14be8266e68b334f12b47aa4dc6261d3c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# $NetBSD: Makefile.common,v 1.3.4.2 2010/05/22 10:38:54 tron Exp $
#
# used by databases/postgresql84-adminpack/Makefile
# used by databases/postgresql84-client/Makefile
# used by databases/postgresql84-plperl/Makefile
# used by databases/postgresql84-plpython/Makefile
# used by databases/postgresql84-pltcl/Makefile
# used by databases/postgresql84-server/Makefile
#
# This Makefile fragment is included by all PostgreSQL packages built from
# the main sources of the PostgreSQL distribution except jdbc-postgresql.
#
# The PostgreSQL package naming scheme, aside from the obvious piecewise
# packages, is as follows:
#
#	<lang>-postgresql	client-side interface to PostgreSQL
#	postgresql-<lang>	server-side module for PostgreSQL backend

.include "../../databases/postgresql84/Makefile.mirrors"

DISTNAME?=	postgresql-${DIST_VERS}
CATEGORIES+=	databases
MASTER_SITES?=	${PGSQL_MIRRORS:=source/v${DIST_VERS}/}
EXTRACT_SUFX=	.tar.bz2

MAINTAINER?=	adam@NetBSD.org
HOMEPAGE?=	http://www.postgresql.org/

CONFLICTS+=	postgresql-[0-9]*
CONFLICTS+=	postgresql73-*
CONFLICTS+=	postgresql74-*
CONFLICTS+=	postgresql80-*
CONFLICTS+=	postgresql81-*
CONFLICTS+=	postgresql82-*
CONFLICTS+=	postgresql83-*

DISTINFO_FILE?=		${.CURDIR}/../postgresql84/distinfo
COMMON_FILESDIR?=	${.CURDIR}/../postgresql84/files
PATCHDIR?=		${.CURDIR}/../postgresql84/patches

# Version numbering scheme:
# DIST_VERS		version number on the postgresql distfile
# BASE_VERS		pkgsrc-mangled version number (convert pl -> .)
# Note: Do not forget jdbc-postgresql84 when updating version
DIST_VERS?=		8.4.4
BASE_VERS?=		${DIST_VERS}

BUILDLINK_API_DEPENDS.postgresql84-client+=	postgresql84-client>=${BASE_VERS}

USE_PKGLOCALEDIR=	yes
USE_TOOLS+=		bison gmake lex msgfmt
PKG_SYSCONFSUBDIR=	postgresql

.include "../../mk/bsd.prefs.mk"

PG_TEMPLATE.SunOS=	solaris
PG_TEMPLATE.IRIX=	irix5
.if !defined(PG_TEMPLATE.${OPSYS})
PG_TEMPLATE.${OPSYS}=	${LOWER_OPSYS}
.endif

PG_SUBPREFIX=		# empty
.if empty(PG_SUBPREFIX)
PG_PREFIX=		${PREFIX}
PLIST_SUBST+=		PG_SUBPREFIX=
.else
PG_PREFIX=		${PREFIX}/${PG_SUBPREFIX}
BUILD_DEFS+=		PG_SUBPREFIX
PLIST_SUBST+=		PG_SUBPREFIX=${PG_SUBPREFIX}/
BUILDLINK_PASSTHRU_DIRS+=	${PG_PREFIX}
.endif
PG_DATA_DIR=		${PG_PREFIX}/share/postgresql
PG_DOC_DIR=		${PG_PREFIX}/share/doc/postgresql
PG_LOCALE_DIR=		${PG_PREFIX}/${PKGLOCALEDIR}/locale
PG_ETC_DIR=		${PKG_SYSCONFDIR:S/^${PREFIX}\//${PG_PREFIX}\//}

GNU_CONFIGURE=		yes
GNU_CONFIGURE_PREFIX=	${PG_PREFIX}
CONFIGURE_ARGS+=	--sysconfdir=${PG_ETC_DIR}
CONFIGURE_ARGS+=	--datadir=${PG_DATA_DIR}
CONFIGURE_ARGS+=	--localedir=${PG_LOCALE_DIR}
CONFIGURE_ARGS+=	--with-docdir=${PG_DOC_DIR}
CONFIGURE_ARGS+=	--with-template=${PG_TEMPLATE.${OPSYS}}
CONFIGURE_ARGS+=	--without-readline
CONFIGURE_ARGS+=	--without-zlib
CONFIGURE_ARGS+=	--enable-nls

CONFIGURE_ARGS+=	--without-perl
CONFIGURE_ARGS+=	--without-python
CONFIGURE_ARGS+=	--without-tcl

# Enable Bonjour on Mac OS X
.if ${OPSYS} == "Darwin"
CONFIGURE_ARGS+=	--with-bonjour
.endif

# PostgreSQL explicitly forbids any use of -ffast-math
BUILDLINK_TRANSFORM+=	rm:-ffast-math

# USE_LIBLTDL is "yes" or "no" depending on whether we're using libltdl
# to provide "dlopen" functionality for the PostgreSQL backend.
.if ${OPSYS} == "Interix"
USE_LIBLTDL?=		yes
.endif
USE_LIBLTDL?=		no

FILES_SUBST+=		PG_PREFIX=${PG_PREFIX:Q}

.include "../../devel/gettext-lib/buildlink3.mk"

.if !defined(META_PACKAGE)
post-extract:
	cp -f ${COMMON_FILESDIR}/Makefile.custom ${WRKSRC}/src/Makefile.custom
	cp -f ${COMMON_FILESDIR}/Makefile.libtool ${WRKSRC}/src/Makefile.shlib
.  if !empty(USE_LIBLTDL:M[yY][eE][sS])
	cp -f ${COMMON_FILESDIR}/dynloader-ltdl.h \
		${WRKSRC}/src/backend/port/dynloader/${PG_TEMPLATE.${OPSYS}:Q}.h
	${ECHO} "static int dummy = 0;" \
		> ${WRKSRC}/src/backend/port/dynloader/${PG_TEMPLATE.${OPSYS}:Q}.c
.  endif
	touch ${WRKSRC}/src/template/dragonfly
	cp ${WRKSRC}/src/backend/port/dynloader/freebsd.c \
		${WRKSRC}/src/backend/port/dynloader/dragonfly.c
	cp ${WRKSRC}/src/backend/port/dynloader/freebsd.h \
		${WRKSRC}/src/backend/port/dynloader/dragonfly.h
	cp ${WRKSRC}/src/include/port/freebsd.h	\
		${WRKSRC}/src/include/port/dragonfly.h
	cp ${WRKSRC}/src/makefiles/Makefile.freebsd \
		${WRKSRC}/src/makefiles/Makefile.dragonfly
.endif

# PGSQL_BLCKSZ is the size in bytes of a PostgreSQL disk page or block.
# This also limits the size of a tuple.  The valid values are powers
# of 2 up to 32768, and the default size is 8196 (hardcoded in the
# PostgreSQL sources).  Please don't change this value unless you know
# what you are doing.
BUILD_DEFS+=	PGSQL_BLCKSZ

.if defined(PGSQL_BLCKSZ)
.PHONY: pgsql-blcksz
pre-configure: pgsql-blcksz
pgsql-blcksz:
	for file in ${WRKSRC}/src/include/pg_config_manual.h; do	\
		${SED} -e "/^#define[ 	]*BLCKSZ[ 	]*/s/^\(#define[ 	]*BLCKSZ\).*/\1	${PGSQL_BLCKSZ}/" $$file > $$file.new; \
		${MV} -f $$file.new $$file;				\
	done
.endif