aboutsummaryrefslogblamecommitdiff
path: root/textproc/xmlada/Makefile
blob: f24e7704a9a9d6aced83010a41aa4870248bee70 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                              
           

                      
                      
                        
 
                                 

                                                      
                     
 





                       











                                                               
 

                    

                                                       
 













                                                                              





                                                  



























                                                                             































                                                               

                   



                                                          







































                                                                         

                      
# Created by: John Marino <marino@FreeBSD.org>
# $FreeBSD$

PORTNAME=	xmlada
PORTVERSION=	17.0.0
CATEGORIES=	textproc

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Adacore XML suite for the Ada language

LICENSE=	GPLv3

USES=		ada:run
USE_GITHUB=	yes
GH_ACCOUNT=	AdaCore
GH_PROJECT=	xmlada
GH_TAGNAME=	1184d97

MAKE_ARGS+=	PROCESSORS=${MAKE_JOBS_NUMBER} \
		LIBVER=${PORTVERSION}
ALL_TARGET=	schema/lib/static/libxmlada_schema.a \
		schema/lib/relocatable/libxmlada_schema.so
PLIST_SUB+=	LIBVER=${PORTVERSION}
MAKEFILE=	Makefile.bsd
PORTDOCS=	*
DUNICODE=	${WRKSRC}/unicode/dummy_unicode.adb
DINPSRC=	${WRKSRC}/input_sources/dummy_input_sources.adb
DSAX=		${WRKSRC}/sax/dummy_sax.adb
DDOM=		${WRKSRC}/dom/dummy_dom.adb
DSCHEMA=	${WRKSRC}/schema/dummy_schema.adb

OPTIONS_DEFINE=	DOCS

DOCS_BUILD_DEPENDS=	sphinx-build:textproc/py-sphinx
DOCS_ALL_TARGET=	gen-docs

FIND1=	cd ${WRKSRC}/unicode && ${FIND} -s * \( -name "unicode*.ad[bs]" \
	-a ! -name "unicode.ads" \) -exec ${PRINTF} ', "%s"' {} \;
FIND2=	cd ${WRKSRC}/input_sources && ${FIND} -s * \( -name "input*.ad[bs]" \
	-a ! -name "input_sources.ads" \) -exec ${PRINTF} ', "%s"' {} \;
FIND3=	cd ${WRKSRC}/sax && \
	${FIND} -s * -name "sax-*.ad[bs]" -exec ${PRINTF} ', "%s"' {} \;
FIND4=	cd ${WRKSRC}/dom && \
	${FIND} -s * -name "dom-*.ad[bs]" -exec ${PRINTF} ', "%s"' {} \;
FIND5=	cd ${WRKSRC}/schema && ${FIND} -s * \( -name "schema*.ad[bs]" \
	-a ! -name "schema.ads" \) -depth 0 -maxdepth 0 \
	-exec ${PRINTF} ', "%s"' {} \;

post-patch: dummy-unicode dummy-input_sources dummy-sax dummy-dom dummy-schema
	@${CP} ${FILESDIR}/Makefile.bsd ${WRKSRC}
	@${MKDIR} ${WRKSRC}/sax/obj/relocatable
	@${MKDIR} ${WRKSRC}/sax/obj/static
	@${MKDIR} ${WRKSRC}/sax/lib/relocatable
	@${MKDIR} ${WRKSRC}/sax/lib/static
	@${MKDIR} ${WRKSRC}/schema/obj/relocatable
	@${MKDIR} ${WRKSRC}/schema/obj/static
	@${SED} -e '/^with/d' -e 's|@ZONE@|unicode|' \
		-e "s|@FILES@|`${FIND1}`|" \
		-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
		> ${WRKSRC}/distrib/xmlada_unicode.gpr
	@${SED} -e 's|@DEPENDS@|unicode|' -e 's|@ZONE@|input_sources|' \
		-e "s|@FILES@|`${FIND2}`|" \
		-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
		> ${WRKSRC}/distrib/xmlada_input_sources.gpr
	@${SED} -e 's|@DEPENDS@|input_sources|' -e 's|@ZONE@|sax|' \
		-e "s|@FILES@|`${FIND3}`|" \
		-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
		> ${WRKSRC}/distrib/xmlada_sax.gpr
	@${SED} -e 's|@DEPENDS@|sax|' -e 's|@ZONE@|dom|' \
		-e "s|@FILES@|`${FIND4}`|" \
		-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
		> ${WRKSRC}/distrib/xmlada_dom.gpr
	@${SED} -e 's|@DEPENDS@|dom|' -e 's|@ZONE@|schema|' \
		-e "s|@FILES@|`${FIND5}`|" \
		-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
		> ${WRKSRC}/distrib/xmlada_schema.gpr
	# Since we want to pull in all 5 libs, we only need to specify schema
	${REINPLACE_CMD} -e '/unicode/d' ${WRKSRC}/distrib/xmlada.gpr

do-install:
	${MKDIR} ${STAGEDIR}${PREFIX}/include/xmlada \
		${STAGEDIR}${PREFIX}/lib/gnat \
		${STAGEDIR}${PREFIX}/lib/xmlada/relocatable \
		${STAGEDIR}${PREFIX}/lib/xmlada/static \
		${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/dom/*.ad[bs] \
		${WRKSRC}/input_sources/*.ad[bs] \
		${WRKSRC}/sax/*.ad[bs] \
		${WRKSRC}/schema/*.ad[bs] \
		${WRKSRC}/unicode/*.ad[bs] \
		${STAGEDIR}${PREFIX}/include/xmlada
	${RM} ${STAGEDIR}${PREFIX}/include/xmlada/dummy_*.adb
	${INSTALL_DATA} ${WRKSRC}/dom/obj/relocatable/*.ali \
		${WRKSRC}/input_sources/obj/relocatable/*.ali \
		${WRKSRC}/sax/obj/relocatable/*.ali \
		${WRKSRC}/schema/obj/relocatable/*.ali \
		${WRKSRC}/unicode/obj/relocatable/*.ali \
		${WRKSRC}/dom/lib/relocatable/* \
		${WRKSRC}/input_sources/lib/relocatable/* \
		${WRKSRC}/sax/lib/relocatable/* \
		${WRKSRC}/schema/lib/relocatable/* \
		${WRKSRC}/unicode/lib/relocatable/* \
		${STAGEDIR}${PREFIX}/lib/xmlada/relocatable
	${INSTALL_DATA} ${WRKSRC}/dom/obj/static/*.ali \
		${WRKSRC}/input_sources/obj/static/*.ali \
		${WRKSRC}/sax/obj/static/*.ali \
		${WRKSRC}/schema/obj/static/*.ali \
		${WRKSRC}/unicode/obj/static/*.ali \
		${WRKSRC}/dom/lib/static/* \
		${WRKSRC}/input_sources/lib/static/* \
		${WRKSRC}/sax/lib/static/* \
		${WRKSRC}/schema/lib/static/* \
		${WRKSRC}/unicode/lib/static/* \
		${STAGEDIR}${PREFIX}/lib/xmlada/static
	${INSTALL_DATA} ${WRKSRC}/distrib/xml*.gpr \
		${STAGEDIR}${PREFIX}/lib/gnat

do-install-DOCS-on:
	(cd ${WRKSRC}/docs/_build/html && \
		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
	${RM} -r ${STAGEDIR}${DOCSDIR}/_sources \
		${STAGEDIR}${DOCSDIR}/.buildinfo

dummy-unicode:
	@${GREP} ^package ${WRKSRC}/unicode/unicode-*.ads | \
		${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DUNICODE}
	@${ECHO} 'procedure dummy_unicode is' >> ${DUNICODE}
	@${ECHO} 'begin' >> ${DUNICODE}
	@${ECHO} '   null;' >> ${DUNICODE}
	@${ECHO} 'end dummy_unicode;' >> ${DUNICODE}

dummy-input_sources:
	@${GREP} ^package ${WRKSRC}/input_sources/input_sources-*.ads | \
		${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DINPSRC}
	@${ECHO} 'procedure dummy_input_sources is' >> ${DINPSRC}
	@${ECHO} 'begin' >> ${DINPSRC}
	@${ECHO} '   null;' >> ${DINPSRC}
	@${ECHO} 'end dummy_input_sources;' >> ${DINPSRC}

dummy-sax:
	@${GREP} ^package ${WRKSRC}/sax/sax-*.ads | \
		${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DSAX}
	@${ECHO} 'procedure dummy_sax is' >> ${DSAX}
	@${ECHO} 'begin' >> ${DSAX}
	@${ECHO} '   null;' >> ${DSAX}
	@${ECHO} 'end dummy_sax;' >> ${DSAX}

dummy-dom:
	@${GREP} ^package ${WRKSRC}/dom/dom-*.ads | \
		${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DDOM}
	@${ECHO} 'procedure dummy_dom is' >> ${DDOM}
	@${ECHO} 'begin' >> ${DDOM}
	@${ECHO} '   null;' >> ${DDOM}
	@${ECHO} 'end dummy_dom;' >> ${DDOM}

dummy-schema:
	@${GREP} ^package ${WRKSRC}/schema/schema-*.ads | \
		${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DSCHEMA}
	@${ECHO} 'procedure dummy_schema is' >> ${DSCHEMA}
	@${ECHO} 'begin' >> ${DSCHEMA}
	@${ECHO} '   null;' >> ${DSCHEMA}
	@${ECHO} 'end dummy_schema;' >> ${DSCHEMA}

.include <bsd.port.mk>