aboutsummaryrefslogtreecommitdiff
path: root/devel/frama-c/Makefile
blob: f8ee8f372463d032c436013629e69e088e0a049c (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
# Created by: b.f. <bf@FreeBSD.org>

PORTNAME=	frama-c
DISTVERSIONPREFIX=	Phosphorus-
DISTVERSION=	20170501
PORTREVISION=	1
CATEGORIES=	devel lang
MASTER_SITES=	http://frama-c.com/download/

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Extensible platform for source-code analysis of C

LICENSE=	LGPL21

BROKEN=		fails to build

BUILD_DEPENDS=	${LOCALBASE}/lib/ocaml/ocamlgraph/graph.a:math/ocaml-ocamlgraph \
	    ${LOCALBASE}/lib/ocaml/site-lib/zarith/zarith.a:math/ocaml-zarith
RUN_DEPENDS=	${LOCALBASE}/lib/ocaml/ocamlgraph/graph.a:math/ocaml-ocamlgraph \
	    ${LOCALBASE}/lib/ocaml/site-lib/zarith/zarith.a:math/ocaml-zarith
LIB_DEPENDS=	libgmp.so:math/gmp \
	    libfreetype.so:print/freetype2 \
	    libfontconfig.so:x11-fonts/fontconfig

USES=		gettext-runtime gmake gnome localbase pathfix pkgconfig
USE_OCAML=	yes
USE_GNOME=	atk cairo gdkpixbuf2 glib20 gtk20 gtksourceview2 \
	    libartlgpl2 libgnomecanvas pango

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--with-cpp="${FRAMAC_DEFAULT_CPP}" --disable-e_acsl
MAKE_ENV+=	FRAMAC_LIBDIR="${FRAMAC_LIBDIR}" \
	    FRAMAC_DATADIR="${FRAMAC_DATADIR}" \
	    STAGEDIR="${STAGEDIR}"

FRAMAC_DEFAULT_CPP?=	${CPP} -C -I${DATADIR}/libc -I.
FRAMAC_LIBDIR=		${PREFIX}/lib/${PORTNAME}
FRAMAC_DATADIR=		${DATADIR}

post-patch:
	@cd ${WRKSRC}/tests; ${MKDIR} aorai report wp wp_acsl wp_bts \
	wp_engine wp_hoare wp_plugin wp_runtime wp_store wp_typed
	@${REINPLACE_CMD} -e 's|@make |@${MAKE_CMD} |' \
			${WRKSRC}/src/plugins/*/Makefile.in
	@${REINPLACE_CMD} \
		-e 's|$$(CP)|${INSTALL_DATA}|' \
		-e 's|add_prefix|addprefix|' \
			${WRKSRC}/share/Makefile.plugin.template
	@${REINPLACE_CMD} \
		-e 's|$$(CP)|${INSTALL_DATA}|' \
		-e 's|add_prefix|addprefix|' \
			${WRKSRC}/share/Makefile.common
	@${REINPLACE_CMD} \
		-e '\|$$(CP) $$(TARGETS|s|$$(CP)|${INSTALL_DATA}|' \
		-e '\|$$(CP) frama-c|s|$$(CP)|${INSTALL_SCRIPT}|' \
			${WRKSRC}/share/Makefile.dynamic
	@${REINPLACE_CMD} \
		-e '\|$$(CP) $$(TARGETS|s|$$(CP)|${INSTALL_DATA}|' \
		-e '\|$$(CP) frama-c|s|$$(CP)|${INSTALL_SCRIPT}|' \
			${WRKSRC}/share/Makefile.common
	@${REINPLACE_CMD} -e '\|^# Installation|,\|^# File headers|{ \
		\|_LIBDIR|s|(FRAMAC_LIBDIR)|(DESTDIR)$$(FRAMAC_LIBDIR)|; \
		\|_PLUGINDIR|s|(FRAMAC_PLUGINDIR)|(DESTDIR)$$(FRAMAC_PLUGINDIR)|; \
		\|$$(CP).*bin|s|$$(CP)|${INSTALL_SCRIPT}|; \
		\|$$(CP).*man/|s|$$(CP)|${INSTALL_MAN}|; \
		s|$$(CP)|${INSTALL_DATA}|; }' \
			${WRKSRC}/Makefile

post-install:
	${CHMOD} u+w ${STAGEDIR}${PREFIX}/bin/*
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
	${CHMOD} u-w ${STAGEDIR}${PREFIX}/bin/*
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/plugins/gui/*.cmxs
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/plugins/top/*.cmxs

check regression-test test: build
	@cd ${WRKSRC}; ${SETENV} ${MAKE_ENV:NCPP=*} \
	CPP="${CPP} -C -I${WRKSRC}/share/libc -I." \
	${MAKE_CMD} ${MAKE_ARGS} oracles fulltests

.include <bsd.port.mk>