aboutsummaryrefslogtreecommitdiffstats
path: root/lang/ocaml/Makefile
blob: 5406f9e951dad27efde6d5afd5e45656c99f6c11 (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
# New ports collection makefile for:    ocaml
# Date created:     24 December 1996
# Whom:         Kiriyama Kazuhiko <kiri@kiri.toba-cmt.ac.jp>
#
# $FreeBSD$
#

PORTNAME=   ocaml
PORTVERSION=    3.08.2
CATEGORIES= lang
MASTER_SITES=   http://caml.inria.fr/distrib/${DISTNAME:R}/ \
        ftp://ftp.inria.fr/INRIA/caml-light/${DISTNAME:R}/ \
        ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/caml-light/${DISTNAME:R}/
PKGNAMESUFFIX=  ${SFX}

MAINTAINER?=    eugos@gmx.net
COMMENT?=   The Objective Caml compiler and programming environment

.if defined(WITHOUT_X11)
PLIST_SUB+= X11="@comment " TK="@comment "
WITHOUT_TK= yes
SFX=        -nox11
CONFLICTS=  ocaml-[0-9]* ocaml-notk-*
.else
PLIST_SUB+= X11=""
USE_XLIB=   yes
.if defined(WITHOUT_TK)
PLIST_SUB+= TK="@comment "
SFX=        -notk
CONFLICTS=  ocaml-[0-9]* ocaml-nox11-*
.else
PLIST_SUB+= TK=""
CONFLICTS=  ocaml-nox11-* ocaml-notk-*

BUILD_DEPENDS+= ${LOCALBASE}/include/tcl8.4:${PORTSDIR}/lang/tcl84 \
        ${LOCALBASE}/include/tk8.4:${PORTSDIR}/x11-toolkits/tk84
LIB_DEPENDS+=   tk84.1:${PORTSDIR}/x11-toolkits/tk84
.endif
.endif

USE_BZIP2=  yes
HAS_CONFIGURE=  yes
ALL_TARGET= world.opt

MAN1=       ocamlcp.1 ocamldep.1 ocamldebug.1 ocamldoc.1 ocamlopt.1 \
        ocamlrun.1 ocamlyacc.1 ocamlmktop.1 ocaml.1 ocamlc.1 \
        ocamllex.1 ocamlprof.1 camlp4.1
MANN=       Arg.n Array.n ArrayLabels.n Bigarray.Array1.n \
        Bigarray.Array2.n Bigarray.Array3.n Bigarray.Genarray.n \
        Bigarray.n Buffer.n Callback.n CamlinternalOO.n Char.n \
        Complex.n Digest.n Filename.n Format.n Gc.n Genlex.n \
        Hashtbl.HashedType.n Hashtbl.Make.n Hashtbl.S.n Hashtbl.n \
        Int32.n Int64.n Lazy.n Lexing.n List.n ListLabels.n \
        Map.Make.n Map.OrderedType.n Map.S.n Map.n Marshal.n \
        MoreLabels.Hashtbl.HashedType.n MoreLabels.Hashtbl.Make.n \
        MoreLabels.Hashtbl.S.n MoreLabels.Hashtbl.n \
        MoreLabels.Map.Make.n MoreLabels.Map.OrderedType.n \
        MoreLabels.Map.S.n MoreLabels.Map.n MoreLabels.Set.Make.n \
        MoreLabels.Set.OrderedType.n MoreLabels.Set.S.n \
        MoreLabels.Set.n MoreLabels.n Nativeint.n Num.n Obj.n Oo.n \
        Parsing.n Pervasives.LargeFile.n Pervasives.n Printexc.n \
        Printf.n Queue.n Random.n Random.State.n Scanf.Scanning.n \
        Scanf.n Set.Make.n Set.OrderedType.n Set.S.n Set.n Sort.n \
        Stack.n StdLabels.Array.n StdLabels.List.n StdLabels.String.n \
        StdLabels.n Str.n Stream.n String.n StringLabels.n Sys.n \
        Unix.LargeFile.n Unix.n Weak.Make.n Weak.S.n Weak.n
MLINKS=     ocamlc.1 ocamlc.opt.1 ocamlopt.1 ocamlopt.opt.1 \
        camlp4.1 camlp4o.1 camlp4.1 camlp4r.1 camlp4.1 mkcamlp4.1 \
        camlp4.1 camlp4o.opt.1 camlp4.1 camlp4r.opt.1 \
        camlp4.1 ocpp.1

CONFIGURE_ARGS= -prefix ${PREFIX} -with-pthread

.if !defined(WITHOUT_X11)
CONFIGURE_ARGS+=    -x11include ${X11BASE}/include -x11lib ${X11BASE}/lib
.if defined(WITHOUT_TK)
CONFIGURE_ARGS+=    -no-tk
.else
CONFIGURE_ARGS+=    -tkdefs "-I${LOCALBASE}/include/tcl8.4 -I${LOCALBASE}/include/tk8.4"
.endif
.endif

.include <bsd.port.pre.mk>

.if ${ARCH} != "i386"
PLIST_SUB+= PROF="@comment "
.else
PLIST_SUB+= PROF=""
.endif

.if ${ARCH} == "sparc64"
BROKEN=     "Does not compile on sparc64"
.endif

post-install:
    @${TOUCH} ${PREFIX}/lib/ocaml/ocamldoc/custom/.keep
.if !defined(WITHOUT_TK)
    @${MKDIR} ${EXAMPLESDIR}
    @${MKDIR} ${EXAMPLESDIR}/labltk
    @${MKDIR} ${EXAMPLESDIR}/camltk
    @${MKDIR} ${EXAMPLESDIR}/camltk/images
    @cd ${WRKSRC}/otherlibs/labltk/examples_labltk; \
        ${INSTALL_DATA} * ${EXAMPLESDIR}/labltk
    @${CP} -r ${WRKSRC}/otherlibs/labltk/examples_camltk/* \
        ${EXAMPLESDIR}/camltk
.endif
.for prog in camlp4o.opt camlp4r.opt ocamlc.opt ocamldep.opt ocamldoc.opt \
        ocamllex.opt ocamlopt.opt ocamlrun ocamlyacc
    @${STRIP_CMD} ${PREFIX}/bin/${prog}
.endfor

.include <bsd.port.post.mk>