1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-26 00:55:14 +00:00
freebsd-ports/graphics/cairo/Makefile
Tijl Coosemans aad09bc5e2 When linking a library libA with a library libB using libtool, if libB.la
exists, libtool will add all libraries libB.la refers to (dependency_libs
field) to the linker command line and store them in the dependency_libs
field of libA.la.  So everything that subsequently links with libA will also
link to these extra libraries.  This causes too much overlinking.

This commit modifies Mk/Uses/libtool.mk so it empties the dependency_libs
field in .la libraries during staging.  However, because .la libraries have
very limited use when dependency_libs is empty it makes sense to completely
remove them during staging.

So with this commit USES=libtool is modified to remove .la libraries and a
new form (USES=libtool:keepla) is introduced in case they need to be kept
(dependency_libs is still emptied).

PORTREVISION is bumped on all ports with USES=libtool that install .la
libraries.  Most ports are also changed to add :keepla because .la
libraries have to be kept around as long as there are dependent ports with
.la libraries that refer to them in their dependency_libs field.  In most
cases :keepla can be removed again as soon as all dependent ports that
install .la libraries have some form of USES=libtool added to their
Makefile.

PR:		ports/188759
Exp-run:	bdrewery
Approved by:	portmgr (bdrewery)
2014-04-23 13:25:16 +00:00

98 lines
2.4 KiB
Makefile

# Created by: Michael Johnson <ahze@FreeBSD.org>
# $FreeBSD$
# $MCom: ports/graphics/cairo/Makefile,v 1.101 2010/10/29 15:40:04 kwm Exp $
PORTNAME= cairo
PORTVERSION= 1.10.2
PORTREVISION= 10
PORTEPOCH?= 2
CATEGORIES= graphics
MASTER_SITES= http://cairographics.org/releases/
MAINTAINER= gnome@FreeBSD.org
COMMENT= Vector graphics library with cross-device output support
.if !defined(REFERENCE_PORT)
LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2 \
libpng15.so:${PORTSDIR}/graphics/png \
libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --with-html-dir=${DOCSDIR} \
--disable-directfb \
--enable-tee
USES= libtool:keepla pathfix pkgconfig
USE_XORG= pixman
USE_GNOME= referencehack
USE_LDCONFIG= yes
INSTALL_TARGET= install-strip
CPPFLAGS+= ${PTHREAD_CFLAGS}
LDFLAGS+= ${PTHREAD_LIBS}
OPTIONS_DEFINE= OPENGL XCB GLIB X11
OPTIONS_DEFAULT= XCB GLIB X11
XCB_DESC= Enable XCB (X C-language Binding) Support
GLIB_DESC= Enable GObject Functions Feature
.include <bsd.port.pre.mk>
.if ${ARCH} == "arm"
BROKEN= Does not compile on arm
.endif
.if ${PORT_OPTIONS:MX11}
USE_XORG+= xrender
PLIST_SUB+= X11=""
.else
CONFIGURE_ARGS+=--disable-xlib
PLIST_SUB+= X11="@comment "
.endif
.if ${PORT_OPTIONS:MOPENGL}
USE_GL= gl
USE_XORG+= glproto:both dri2proto:both
CONFIGURE_ARGS+= --enable-gl
PLIST_SUB+= GL=""
.else
CONFIGURE_ARGS+= --disable-gl
PLIST_SUB+= GL="@comment "
.endif
.if ${PORT_OPTIONS:MXCB}
BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/xcb-renderutil.pc:${PORTSDIR}/x11/xcb-util-renderutil
RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/xcb-renderutil.pc:${PORTSDIR}/x11/xcb-util-renderutil
CONFIGURE_ARGS+= --enable-xcb
# this option exposes a bug --enable-xlib-xcb=auto
PLIST_SUB+= XCB=""
.else
CONFIGURE_ARGS+= --disable-xcb
PLIST_SUB+= XCB="@comment "
.endif
.if ${PORT_OPTIONS:MGLIB}
USE_GNOME+= glib20
PLIST_SUB+= GLIB=""
.else
CONFIGURE_ARGS+= --enable-gobject=no
PLIST_SUB+= GLIB="@comment "
.endif
post-patch:
@${REINPLACE_CMD} -e '/test/s/==/=/g' \
-e '/LIBS/s/-lrt//' \
${WRKSRC}/configure
@${REINPLACE_CMD} -e 's|-lcairo|-lcairo ${PTHREAD_LIBS}|' \
${WRKSRC}/src/*.pc.in
@${REINPLACE_CMD} -e '/@CAIRO_HAS_PNG_FUNCTIONS_TRUE@.*=/d' \
${WRKSRC}/Makefile.in
.if ${PORT_OPTIONS:MOPENGL}
@${REINPLACE_CMD} 's|@CAIRO_CFLAGS@|-I$$(top_srcdir)/src/glew &|' \
${WRKSRC}/src/Makefile.in
.endif
.include <bsd.port.post.mk>
.endif