aboutsummaryrefslogtreecommitdiffstats
path: root/lang/mtasc/Makefile
blob: f0a54aebdb853eb94ec31366f2b649d4155789fe (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
# New ports collection makefile for:    mtasc
# Date created:     2008-09-06
# Whom:         Marcin Cieslak <saper@SYSTEM.PL>
#
# $FreeBSD$
#

PORTNAME=   mtasc
PORTVERSION=    1.14
PORTREVISION=   1
CATEGORIES= lang www
MASTER_SITES=   LOCAL/chinsan

MAINTAINER= saper@saper.info
COMMENT=    Motion-Twin ActionScript 2 Compiler

BUILD_DEPENDS=  ${LOCALBASE}/lib/ocaml/site-lib/extlib/IO.cmi:${PORTSDIR}/devel/ocaml-extlib

USE_OCAML=  yes
USE_OCAML_FINDLIB=yes

OCAMLLEX?=  ${LOCALBASE}/bin/ocamllex
OCAMLOPT?=  ${LOCALBASE}/bin/ocamlopt

ZLIB_OPTS=  -cclib "${WRKSRC}/extc/extc_stubs.o" -cclib -lz extc.mli extc.ml
SWFLIB_INC= -I ${WRKSRC}/extc -I ${WRKSRC}/swflib
SWFLIB_FILES=   as3.mli as3code.ml as3parse.ml swf.ml swfZip.ml actionScript.ml \
        swfParser.ml
MTASC_OBJ=  expr.cmx lexer.cmx parser.cmx typer.cmx class.cmx plugin.cmx\
        genSwf.cmx main.cmx

MAN1=       mtasc.1

WRKSRC=     ${WRKDIR}/ocaml

.if !defined(NOPORTDATA)
PORTDATA=   std std8
.endif

.include <bsd.port.pre.mk>

do-build:
    (cd ${WRKSRC}/extc && \
        ${OCAMLOPT} ${WRKSRC}/extc/extc_stubs.c  && \
        ${OCAMLOPT} -a -o extc.cmxa ${ZLIB_OPTS} )
    (cd ${WRKSRC}/swflib && \
        ${OCAMLFIND} ocamlopt -package extlib \
            -a -o swflib.cmxa ${SWFLIB_INC} ${SWFLIB_FILES} )
    (cd ${WRKSRC}/mtasc && \
        ${OCAMLLEX} lexer.mll && \
        ${OCAMLOPT} -c expr.ml lexer.ml && \
        ${OCAMLOPT} -c -pp camlp4o parser.ml && \
        ${OCAMLFIND} ocamlopt -package extlib -c ${SWFLIB_INC} \
                  typer.ml class.ml plugin.ml \
                  genSwf.ml main.ml )
    (cd ${WRKSRC}/mtasc && \
        ${OCAMLFIND} ocamlopt -package extlib -linkpkg \
            -o ${WRKSRC}/mtasc-bin \
            ${WRKSRC}/extc/extc.cmxa \
            ${WRKSRC}/swflib/swflib.cmxa \
            ${MTASC_OBJ} )

do-install:
    ${INSTALL_PROGRAM} ${WRKSRC}/mtasc-bin  ${PREFIX}/bin/mtasc
.if !defined(NOPORTDATA)
    @${MKDIR} ${DATADIR}
    (cd ${WRKSRC}/mtasc && ${FIND} ${PORTDATA} -type f | ${CPIO} -pdmu ${DATADIR})
    @${FIND} ${DATADIR} -type d -exec ${CHMOD} 555 {} \;
    @${FIND} ${DATADIR} -type f -exec ${CHMOD} 444 {} \;
.endif
.if !defined(NO_INSTALL_MANPAGES)
    ${INSTALL_MAN} ${WRKSRC}/mtasc/doc/mtasc.1 ${PREFIX}/man/man1
.endif
.if !defined(NOPORTDOCS)
    @${MKDIR} ${DOCSDIR}
    ${INSTALL_DATA} ${WRKSRC}/mtasc/doc/*.txt ${DOCSDIR}
.endif
.if !defined(NOPORTEXAMPLES)
    @${MKDIR} ${EXAMPLESDIR}
    ${INSTALL_DATA} ${WRKSRC}/mtasc/doc/HelloWorld.as ${EXAMPLESDIR}
.endif

.include <bsd.port.post.mk>