freebsd-ports/Mk/bsd.qt.mk

326 lines
9.6 KiB
Makefile

#-*- mode: Makefile; tab-width: 4; -*-
# ex:ts=4
#
# $FreeBSD$
#
# Variables:
# QT_NONSTANDARD - Suppress modification of configure and make environment.
# QT_DIST - Package being built is part of the Qt distribution.
#
# Global switches (add this to /etc/make.conf):
# WITH_KDE_PHONON - If set, standalone phonon will be used instead of Qt.
# Required for KDE 4.4.0
# QT4_OPTIONS - A list of options, can be CUPS, NAS and/or QGTKSTYLE.
# If set, Qt will be built with support for:
# - Common UNIX Printing System (CUPS)
# - Network Audio System (NAS)
# - Qt style that renders using GTK (QGTKSTYLE)
.if !defined(_POSTMKINCLUDED) && !defined(Qt_Pre_Include)
Qt_Include_MAINTAINER= kde@FreeBSD.org
Qt_Pre_Include= bsd.qt.mk
.if !defined(QT_NONSTANDARD)
CONFIGURE_ARGS+=--with-qt-includes=${QT_INCDIR} \
--with-qt-libraries=${QT_LIBDIR} \
--with-extra-libs=${LOCALBASE}/lib \
--with-extra-includes=${LOCALBASE}/include
CONFIGURE_ENV+= MOC="${MOC}" UIC="${UIC}" CPPFLAGS="${CPPFLAGS} ${QTCPPFLAGS}" LIBS="${QTCFGLIBS}" \
QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" QTDIR="${QT_PREFIX}"
MAKE_ENV+= QMAKESPEC="${QMAKESPEC}"
.endif # !defined(QT_NONSTANDARD)
.if defined(QT_DIST)
MD5_FILE= ${PORTSDIR}/devel/qt4/distinfo
MASTER_SITES= ${MASTER_SITE_QT}
DISTNAME= qt-everywhere-opensource-src-${QT4_VERSION}
DIST_SUBDIR= KDE
#CONFLICTS+= Currently there are no conflicts \o/
CONFIGURE_ARGS+=-fast -platform ${QMAKESPEC} \
-L${PREFIX}/${QT_LIBDIR_REL} \
-qt-gif -system-libjpeg -system-libpng \
-system-libmng -system-libtiff -system-zlib \
-opensource -confirm-license \
-no-pch \
-prefix ${PREFIX} \
-bindir ${PREFIX}/bin \
-libdir ${PREFIX}/${QT_LIBDIR_REL} \
-docdir ${PREFIX}/share/doc/qt4 \
-headerdir ${PREFIX}/${QT_INCDIR_REL} \
-plugindir ${PREFIX}/${QT_PLUGINDIR_REL} \
-datadir ${PREFIX}/share/qt4 \
-translationdir ${PREFIX}/share/qt4/translations \
-sysconfdir ${PREFIX}/etc/xdg \
-examplesdir ${PREFIX}/share/examples/qt4/examples \
-demosdir ${PREFIX}/share/examples/qt4/demos
PLIST_SUB+= SHLIB_VER=${QT4_VERSION} \
SHLIB_SHVER=${QT4_VERSION:C/.[0-9]+$//}
.if defined(PACKAGE_BUILDING)
CONFIGURE_ARGS+=-no-mmx -no-3dnow -no-sse -no-sse2
.endif #defined(PACKAGE_BUILDING)
# .if defined(PORTNAME) && ${PORTNAME} != "xmlpatterns"
# CONFIGURE_ARGS+=-no-exceptions
# .endif
.if defined(WANT_QT_DEBUG) || defined(WITH_DEBUG)
CONFIGURE_ARGS+=-debug
PLIST_SUB+= DEBUG=""
.else
CONFIGURE_ARGS+=-release -no-separate-debug-info
PLIST_SUB+= DEBUG="@comment "
.endif
.if defined(WANT_QT_VERBOSE_CONFIGURE)
CONFIGURE_ARGS+=-verbose
.endif
.endif #defined(QT_DIST)
QT_INCDIR_REL= include/qt4
QT_LIBDIR_REL= lib/qt4
QT_PLUGINDIR_REL= lib/qt4/plugins
PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \
QT_LIBDIR_REL=${QT_LIBDIR_REL} \
QT_PLUGINDIR_REL=${QT_PLUGINDIR_REL}
QT_PREFIX?= ${LOCALBASE}
QT_INCDIR?= ${QT_PREFIX}/${QT_INCDIR_REL}
QT_LIBDIR?= ${QT_PREFIX}/${QT_LIBDIR_REL}
QT_PLUGINDIR?= ${QT_PREFIX}/${QT_PLUGINDIR_REL}
MOC?= ${QT_PREFIX}/bin/moc-qt4
UIC?= ${QT_PREFIX}/bin/uic-qt4
RCC?= ${QT_PREFIX}/bin/rcc
QMAKE?= ${QT_PREFIX}/bin/qmake-qt4
QMAKESPEC?= ${QT_PREFIX}/share/qt4/mkspecs/freebsd-g++
QMAKEFLAGS+= QMAKE_CC="${CC}" QMAKE_CXX="${CXX}" QMAKE_LINK_SHLIB="${CXX}" \
QMAKE_LINK="${CXX}" QMAKE_CFLAGS="${CFLAGS}" \
QMAKE_CXXFLAGS="${CXXFLAGS}" \
QMAKE_CFLAGS_THREAD="${PTHREAD_CFLAGS}" \
QMAKE_LFLAGS_THREAD="${PTHREAD_LIBS}"
.if ${OSVERSION} < 700042 && ${ARCH} == "amd64"
QTCPPFLAGS?= -fno-gcse
.else
QTCPPFLAGS?=
.endif
QTCGFLIBS?=
.endif # !defined(_POSTMKINCLUDED) && !defined(Qt_Pre_Include)
#
# QT4 version
# Don't forget to update ${PORTSDIR}/devel/qt4/files/patch-configure !
#
QT4_VERSION?= 4.6.1
_QT_COMPONENTS_ALL= accessible assistant assistant-adp assistantclient \
clucene codecs-cn codecs-jp codecs-kr codecs-tw corelib \
dbus demo designer doc help help-tools gui iconengines imageformats \
inputmethods linguist l10n makeqpf moc multimedia network \
opengl pixeltool porting phonon phonon-gst qdbusviewer qdoc3 \
qmake qt3support qtconfig qtestlib qvfb rcc script scripttools \
sql sql-ibase sql-mysql sql-odbc sql-pgsql sql-sqlite2 sql-sqlite3 \
svg uic uic3 webkit xml xmlpatterns xmlpatterns-tool
accessible_PORT= accessibility/qt4-accessible
accessible_DEPENDS= ${QT_PLUGINDIR}/accessible/libqtaccessiblewidgets.so
assistant_PORT= devel/qt4-assistant
assistant_DEPENDS= ${QT_PREFIX}/bin/assistant-qt4
assistant-adp_PORT= devel/qt4-assistant-adp
assistant-adp_DEPENDS= ${QT_PREFIX}/bin/assistant_adp
assistantclient_PORT= devel/qt4-libqtassistantclient
assistantclient_DEPENDS= ${QT_LIBDIR}/libQtAssistantClient.so
clucene_PORT= textproc/qt4-clucene
clucene_DEPENDS= ${QT_LIBDIR}/libQtCLucene.so
codecs-cn_PORT= chinese/qt4-codecs-cn
codecs-cn_DEPENDS= ${QT_PLUGINDIR}/codecs/libqcncodecs.so
codecs-jp_PORT= japanese/qt4-codecs-jp
codecs-jp_DEPENDS= ${QT_PLUGINDIR}/codecs/libqjpcodecs.so
codecs-kr_PORT= korean/qt4-codecs-kr
codecs-kr_DEPENDS= ${QT_PLUGINDIR}/codecs/libqkrcodecs.so
codecs-tw_PORT= chinese/qt4-codecs-tw
codecs-tw_DEPENDS= ${QT_PLUGINDIR}/codecs/libqtwcodecs.so
corelib_PORT= devel/qt4-corelib
corelib_DEPENDS= ${QT_LIBDIR}/libQtCore.so
dbus_PORT= devel/dbus-qt4
dbus_DEPENDS= ${QT_LIBDIR}/libQtDBus.so
demo_PORT= misc/qt4-qtdemo
demo_DEPENDS= ${QT_PREFIX}/bin/qtdemo
designer_PORT= devel/qt4-designer
designer_DEPENDS= ${QT_PREFIX}/bin/designer-qt4
doc_PORT= misc/qt4-doc
doc_DEPENDS= qt4-doc>=4
gui_PORT= x11-toolkits/qt4-gui
gui_DEPENDS= ${QT_LIBDIR}/libQtGui.so
help_PORT= devel/qt4-help
help_DEPENDS= ${QT_LIBDIR}/libQtHelp.so
help-tools_PORT= devel/qt4-help-tools
help-tools_DEPENDS= ${QT_PREFIX}/bin/qhelpgenerator
iconengines_PORT= graphics/qt4-iconengines
iconengines_DEPENDS= ${QT_PLUGINDIR}/iconengines/libqsvgicon.so
imageformats_PORT= graphics/qt4-imageformats
imageformats_DEPENDS= ${QT_PLUGINDIR}/imageformats/libqjpeg.so
inputmethods_PORT= x11/qt4-inputmethods
inputmethods_DEPENDS= ${QT_PLUGINDIR}/inputmethods/libqimsw-multi.so
linguist_PORT= devel/qt4-linguist
linguist_DEPENDS= ${QT_PREFIX}/bin/linguist-qt4
l10n_PORT= misc/qt4-l10n
l10n_DEPENDS= qt4-l10n>=4
makeqpf_PORT= devel/qt4-makeqpf
makeqpf_DEPENDS= ${QT_PREFIX}/bin/makeqpf-qt4
moc_PORT= devel/qt4-moc
moc_DEPENDS= ${MOC}
multimedia_PORT= multimedia/qt4-multimedia
multimedia_DEPENDS= ${QT_LIBDIR}/libQtMultimedia.so
network_PORT= net/qt4-network
network_DEPENDS= ${QT_LIBDIR}/libQtNetwork.so
opengl_PORT= x11/qt4-opengl
opengl_DEPENDS= ${QT_LIBDIR}/libQtOpenGL.so
pixeltool_PORT= graphics/qt4-pixeltool
pixeltool_DEPENDS= ${QT_PREFIX}/bin/pixeltool
.if defined(WITH_KDE_PHONON)
phonon_PORT= multimedia/phonon
.else
phonon_PORT= multimedia/qt4-phonon
.endif
phonon_DEPENDS= ${QT_LIBDIR}/libphonon.so
.if defined(WITH_KDE_PHONON)
phonon-gst_PORT= multimedia/phonon-gstreamer
.else
phonon-gst_PORT= multimedia/qt4-phonon-gst
.endif
phonon-gst_DEPENDS= ${QT_PLUGINDIR}/phonon_backend/libphonon_gstreamer.so
porting_PORT= devel/qt4-porting
porting_DEPENDS= ${QT_PREFIX}/bin/qt3to4
qdbusviewer_PORT= devel/qt4-qdbusviewer
qdbusviewer_DEPENDS= ${QT_PREFIX}/bin/qdbusviewer
qdoc3_PORT= devel/qt4-qdoc3
qdoc3_DEPENDS= ${QT_PREFIX}/bin/qdoc3
qmake_PORT= devel/qmake4
qmake_DEPENDS= ${QMAKE}
qt3support_PORT= devel/qt4-qt3support
qt3support_DEPENDS= ${QT_LIBDIR}/libQt3Support.so
qtconfig_PORT= misc/qt4-qtconfig
qtconfig_DEPENDS= ${QT_PREFIX}/bin/qtconfig-qt4
qtestlib_PORT= devel/qt4-qtestlib
qtestlib_DEPENDS= ${QT_LIBDIR}/libQtTest.so
qvfb_PORT= devel/qt4-qvfb
qvfb_DEPENDS= ${QT_PREFIX}/bin/qvfb-qt4
rcc_PORT= devel/qt4-rcc
rcc_DEPENDS= ${RCC}
script_PORT= devel/qt4-script
script_DEPENDS= ${QT_LIBDIR}/libQtScript.so
scripttools_PORT= devel/qt4-scripttools
scripttools_DEPENDS= ${QT_LIBDIR}/libQtScriptTools.so
sql_PORT= databases/qt4-sql
sql_DEPENDS= ${QT_LIBDIR}/libQtSql.so
sql-ibase_PORT= databases/qt4-ibase-plugin
sql-ibase_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlibase.so
sql-mysql_PORT= databases/qt4-mysql-plugin
sql-mysql_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlmysql.so
sql-odbc_PORT= databases/qt4-odbc-plugin
sql-odbc_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlodbc.so
sql-pgsql_PORT= databases/qt4-pgsql-plugin
sql-pgsql_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlpsql.so
sql-sqlite2_PORT= databases/qt4-sqlite-plugin
sql-sqlite2_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlite2.so
sql-sqlite3_PORT= databases/qt4-sqlite3-plugin
sql-sqlite3_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlite.so
svg_PORT= graphics/qt4-svg
svg_DEPENDS= ${QT_LIBDIR}/libQtSvg.so
uic_PORT= devel/qt4-uic
uic_DEPENDS= ${UIC}
uic3_PORT= devel/qt4-uic3
uic3_DEPENDS= ${QT_PREFIX}/bin/uic3
webkit_PORT= www/qt4-webkit
webkit_DEPENDS= ${QT_LIBDIR}/libQtWebKit.so
xml_PORT= textproc/qt4-xml
xml_DEPENDS= ${QT_LIBDIR}/libQtXml.so
xmlpatterns_PORT= textproc/qt4-xmlpatterns
xmlpatterns_DEPENDS= ${QT_LIBDIR}/libQtXmlPatterns.so
xmlpatterns-tool_PORT= textproc/qt4-xmlpatterns-tool
xmlpatterns-tool_DEPENDS= ${QT_PREFIX}/bin/xmlpatterns
.if defined(_POSTMKINCLUDED) && !defined(Qt_Post_Include)
Qt_Post_Include= bsd.qt.mk
.for component in ${_QT_COMPONENTS_ALL}
${component}_BUILD_DEPENDS?= ${${component}_DEPENDS}:${PORTSDIR}/${${component}_PORT}
${component}_RUN_DEPENDS?= ${${component}_DEPENDS}:${PORTSDIR}/${${component}_PORT}
${component}_build_BUILD_DEPENDS?= ${${component}_BUILD_DEPENDS}
${component}_run_RUN_DEPENDS?= ${${component}_RUN_DEPENDS}
_QT_COMPONENTS_ALL_SUFFIXED+= ${component} ${component}_build ${component}_run
.endfor
.if defined(QT_COMPONENTS)
. for component in ${QT_COMPONENTS:O:u}
. if ${_QT_COMPONENTS_ALL_SUFFIXED:M${component}}!= ""
BUILD_DEPENDS+= ${${component}_BUILD_DEPENDS}
RUN_DEPENDS+= ${${component}_RUN_DEPENDS}
. else
IGNORE= can't be installed: unknown Qt 4 component '${component}'
. endif
. endfor
.endif
.endif