aboutsummaryrefslogtreecommitdiffstats
path: root/databases/postgresql-devel/Makefile
blob: 9ea0e248f1c3a130f0f7fc92a38a7d2e5bf0e57b (plain) (blame)
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
# New ports collection makefile for:    PostgreSQL
# Version required: 6.4
# Date created:     November 13, 1998
# Whom:         Marc G. Fournier <scrappy@FreeBSD.ORG>
#
# $Id: Makefile,v 1.30 1998/11/24 05:09:06 asami Exp $
#

DISTNAME=   postgresql-v6.4
PKGNAME=    postgresql-6.4
CATEGORIES= databases
MASTER_SITES=   ftp://ftp.postgresql.org/pub/

MAINTAINER= andreas@FreeBSD.ORG

# if you want to use the tcl/tk frontend pgaccess, then you need to build
# postgresql with tcl support by typing: make USE_TCL=yes
.if defined(USE_TCL)
TCL_INCDIR= ${PREFIX}/include/tcl8.0
TK_INCDIR=  ${PREFIX}/include/tk8.0
MAKE_ENV=   USE_TCL=true TCL_INCDIR=${TCL_INCDIR}
LIB_DEPENDS=    tcl80.1:${PORTSDIR}/lang/tcl80 tk80.1:${PORTSDIR}/x11-toolkits/tk80
WITH_TCL=   --with-tcl --with-tclconfig="${PREFIX}/lib/tcl8.0 ${PREFIX}/lib/tk8.0"
.endif

NO_PACKAGE= "Requires pgsql uid"
WRKSRC=     ${WRKDIR}/${DISTNAME}/src

USE_GMAKE=  YES
MAKEFILE=   GNUmakefile
HAS_CONFIGURE=  YES
CONFIGURE_ARGS= --prefix=${PREFIX}/pgsql \
        --enable-locale \
        --with-template=`uname -s | ${TR} '[A-Z]' '[a-z]'` \
        --with-includes="/usr/local/include ${TCL_INCDIR} ${TK_INCDIR}" ${WITH_TCL} \
        --with-libraries=/usr/local/lib

INSTALL_TARGET= install install-man

MAN1=       cleardbdir.1 createdb.1 createuser.1 destroydb.1 \
        destroyuser.1 ecpg.1 initdb.1 initlocation.1 \
        ipcclean.1 pg_dump.1 pg_dumpall.1 pg_passwd.1 \
        pg_upgrade.1 postgres.1 postmaster.1 psql.1
MAN3=       catalogs.3 libpq.3
MAN5=       pg_hba.conf.5
MANL=       abort.l alter_table.l alter_user.l begin.l close.l cluster.l \
        commit.l copy.l create_aggregate.l create_database.l \
        create_function.l create_index.l create_language.l \
        create_operator.l create_rule.l create_sequence.l \
        create_table.l create_trigger.l create_type.l create_user.l \
        create_version.l create_view.l declare.l delete.l drop.l \
        drop_aggregate.l drop_database.l drop_function.l drop_index.l \
        drop_language.l drop_operator.l drop_rule.l drop_sequence.l \
        drop_table.l drop_trigger.l drop_type.l drop_user.l \
        drop_view.l end.l explain.l fetch.l grant.l insert.l listen.l \
        load.l lock.l move.l notify.l reset.l revoke.l rollback.l \
        select.l set.l show.l sql.l update.l vacuum.l

MANPREFIX=  ${PREFIX}/pgsql

pre-fetch:
.if !defined(USE_TCL)
    @${ECHO_MSG} "To build the \"PostgreSQL to Tcl interface library\", libpgtcl, type:"
    @${ECHO_MSG} "    make USE_TCL=yes"
.else
    @${ECHO_MSG} "Building PostgreSQL with \"libpgtcl\"."
.endif

post-patch:

    @ ${MV} ${WRKSRC}/template/freebsd ${WRKSRC}/template/freebsd.orig
    @ ${SED} -e 's#CFLAGS:-O2 -m486 -pipe#CFLAGS:${CFLAGS}#' \
        -e 's#USE_LOCALE:no#USE_LOCALE:yes#' \
    ${WRKSRC}/template/freebsd.orig >> ${WRKSRC}/template/freebsd

post-build:
    @ ${ECHO} "------------------------------------------------------------"
    @ ${ECHO} "Dump existing databases, before installing new db version !!"
    @ ${ECHO} "Detailed instructions, see INSTALL file under ${WRKDIR}...  "
    @ ${ECHO} "------------------------------------------------------------"

pre-install:
.if defined(PACKAGE_BUILDING)
    /bin/rm -rf ${PREFIX}/pgsql
.endif
    @ ${MKDIR} ${PREFIX}/pgsql
    @ ${SETENV} ${MAKE_ENV} perl ${SCRIPTDIR}/createuser

post-install:
    @ if [ ! -f ${PREFIX}/pgsql/.profile ]; then \
        ${ECHO} "PATH=${PATH}:${PREFIX}/pgsql/bin" \
            > ${PREFIX}/pgsql/.profile; \
        ${ECHO} "MANPATH=${MANPATH}:${PREFIX}/pgsql/bin" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "PGLIB=${PREFIX}/pgsql/lib" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "# note: PGDATA overwrites the -D startup option" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "PGDATA=${PREFIX}/pgsql/data" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "DISPLAY=:0" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "export PATH MANPATH PGLIB PGDATA DISPLAY" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "# if you want to make regression tests use this TZ" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "#TZ=PST8PDT" \
            >> ${PREFIX}/pgsql/.profile; \
        ${ECHO} "#export TZ" \
            >> ${PREFIX}/pgsql/.profile; \
    fi
    @ chown -R pgsql:pgsql ${PREFIX}/pgsql
    @ ${ECHO} 'Initializing PostgreSQL Databases - this may take a few minutes...'
    @ ${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/pgsql/lib
    @ su -l pgsql -c '${PREFIX}/pgsql/bin/initdb --pglib=${PREFIX}/pgsql/lib --pgdata=${PREFIX}/pgsql/data'
    @ ${SED} -e "s=!!PREFIX!!=${PREFIX}=g" < ${FILESDIR}/pgsql.sh.tmpl \
        > ${PREFIX}/etc/rc.d/pgsql.sh
    @ chmod 554 ${PREFIX}/etc/rc.d/pgsql.sh
    @ chown root.pgsql ${PREFIX}/etc/rc.d/pgsql.sh
    @ ${INSTALL_DATA} ${FILESDIR}/post-install-notes ${PREFIX}/pgsql
.if !defined(NOPORTDOCS)
    ${MKDIR} ${PREFIX}/share/doc/pgsql
    ${CP} -r ${WRKDIR}/${DISTNAME}/doc/* ${PREFIX}/share/doc/pgsql
.endif
.if !defined(BATCH)
    @ more -e ${FILESDIR}/post-install-notes
.endif

.include <bsd.port.mk>