aboutsummaryrefslogtreecommitdiffstats
path: root/lang/fpc/Makefile
blob: b7163dd9ef293bacb8250b7bbedb6196f82d9f9f (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
# New ports collection makefile for:    Free Pascal Compiler
# Date created:             28 November 2001
# Whom:                 John Merryweather Cooper et al
#
# $FreeBSD$
#

PORTNAME=   fpc
PORTVERSION=    2.2.2
PORTREVISION?=  0
CATEGORIES?=    lang
MASTER_SITES=   ftp://ftp.freepascal.org/pub/fpc/dist/source-${PORTVERSION}/:source \
        ftp://planetmirror.com/pub/fpc/dist/source-${PORTVERSION}/:source \
        ftp://ftp.jp.freepascal.org/mirror/fpc/dist/source-${PORTVERSION}/:source \
        ftp://freepascal.stack.nl/pub/fpc/dist/source-${PORTVERSION}/:source \
        ftp://ftp.no.freepascal.org/pub/fpc/dist/source-${PORTVERSION}/:source \
        ftp://ftp.us.freepascal.org/pub/fpc/dist/source-${PORTVERSION}/:source \
        ${MASTER_SITE_SOURCEFORGE}:source \
        ${MASTER_SITE_LOCAL:S|$|acm/freepascal/:bin|}
MASTER_SITE_SUBDIR= freepascal
DISTNAME=   ${PORTNAME}-${PORTVERSION}
DISTFILES=  ${DISTNAME:S/$/.source/}${EXTRACT_SUFX}:source
DIST_SUBDIR=    freepascal

MAINTAINER?=    acm@FreeBSD.org
COMMENT?=   Free Pascal compiler with Turbo and Delphi

USE_GMAKE=  yes
ONLY_FOR_ARCHS= i386

OPTIONSFILE=    ${PORT_DBDIR}/${PORTNAME}${PKGNAMESUFFIX}/options
SUB_FILES=  pkg-message

OPT?=-CX
FPCSRCDIR=  ${PORTNAME}-${PORTVERSION}

.include <bsd.port.pre.mk>

.if !defined(PKGNAMESUFFIX)
BUILDNAME=  ${ARCH}-freebsd
PLIST_SUB=  PORTVERSION=${PORTVERSION} \
        BUILDNAME=${BUILDNAME}
DISTFILES+= ${DISTNAME:S/$/.bin/}${EXTRACT_SUFX}:bin
MAKE_ENV+=  PP=${WRKDIR}/${PORTNAME}-${PORTVERSION:S/$/.bin/}/lib/${PORTNAME}/${PORTVERSION}/ppc386 \
        FPCMAKE=${WRKDIR}/${PORTNAME}-${PORTVERSION:S/$/.bin/}/bin/fpcmake \
        FPCTARGET=${BUILDNAME} \
        OPT="${OPT}" \
        BSDHIER=1

MAN1=   bin2obj.1 \
    data2inc.1 \
    delp.1 \
    fd2pascal.1 \
    fp.1 \
    fpc.1 \
    fpcmake.1 \
    fpdoc.1 \
    fprcp.1 \
    grab_vcsa.1 \
    h2pas.1 \
    h2paspp.1 \
    makeskel.1 \
    plex.1 \
    postw32.1 \
    ppc386.1 \
    ppcarm.1 \
    ppcppc.1 \
    ppcsparc.1 \
    ppcx64.1 \
    ppdep.1 \
    ppudump.1 \
    ppufiles.1 \
    ppumove.1 \
    ptop.1 \
    pyacc.1 \
    rstconv.1 \
    unitdiff.1
MAN5=   fpc.cfg.5 fpcmake.5 ptop.cfg.5

do-extract:
# unpack binary distribution
    @${MKDIR} ${WRKDIR}
    @${TAR} xfz ${_DISTDIR}/${DISTNAME:S/$/.bin/}${EXTRACT_SUFX} --directory \
        ${WRKDIR}
# unpack source distribution
    @cd ${WRKDIR} && \
        ${GZIP_CMD} -dc ${_DISTDIR}/${DISTNAME:S/$/.source/}${EXTRACT_SUFX} \
            | ${TAR} xf - ${FPCSRCDIR}/compiler ${FPCSRCDIR}/rtl ${FPCSRCDIR}/utils/fpcm

do-build:
# build fpc compiler
    @cd ${WRKDIR}/${FPCSRCDIR}/compiler && ${GMAKE} cycle ${MAKE_ENV}
# build fpcmake
    @cd ${WRKDIR}/${FPCSRCDIR}/utils/fpcm && ${GMAKE} ${MAKE_ENV}

do-install:
    # Installing fpc compiler
    @cd ${WRKDIR}/${FPCSRCDIR}/rtl && ${GMAKE} install ${MAKE_ENV}
        # Installing fpc runtime
    @cd ${WRKDIR}/${FPCSRCDIR}/compiler && ${GMAKE} install ${MAKE_ENV}
    # Installng fpcmake
    @@cd ${WRKDIR}/${FPCSRCDIR}/utils/fpcm && ${GMAKE} install ${MAKE_ENV}
    # Installing manpages
    ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}-${PORTVERSION:S/$/.bin/}/man/man1/* ${MAN1PREFIX}/man/man1
    ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}-${PORTVERSION:S/$/.bin/}/man/man5/* ${MAN1PREFIX}/man/man5

post-install:
    if [ -e "${PREFIX}/bin/ppc386" ]; then ${RM} -f "${PREFIX}/bin/ppc386"; fi
    ${LN} -s "${PREFIX}/lib/fpc/${PORTVERSION}/ppc386" "${PREFIX}/bin"
    ${SH} "${PREFIX}/lib/fpc/${PORTVERSION}/samplecfg" "${PREFIX}/lib/fpc/${PORTVERSION}" "${PREFIX}/etc"
    @if [ ! -f ${PREFIX}/etc/fpc.cfg ]; then \
        ${CP} ${PREFIX}/etc/fpc.cfg.sample ${PREFIX}/etc/fpc.cfg; \
    fi
    @${CAT} ${PKGMESSAGE}

.else
.include "${MASTERDIR}/Makefile.units"
.endif
.include <bsd.port.post.mk>