# $NetBSD: Makefile,v 1.142 2024/04/07 07:35:27 wiz Exp $ DISTNAME= qtbase-everywhere-opensource-src-${QTVERSION} PKGNAME= qt5-qtbase-${QTVERSION} PKGREVISION= 2 COMMENT= C++ X GUI toolkit .include "../../x11/qt5-qtbase/Makefile.common" HAS_CONFIGURE= yes CONFIGURE_ARGS+= -prefix "${QTPREFIX}" CONFIGURE_ARGS+= -I "${PREFIX}/include" CONFIGURE_ARGS+= -L "${PREFIX}/lib" CONFIGURE_ARGS+= -opensource -confirm-license CONFIGURE_ARGS+= -sysconfdir "${PKG_SYSCONFDIR}/xdg" CONFIGURE_ARGS+= -accessibility CONFIGURE_ARGS+= -icu CONFIGURE_ARGS+= -libproxy CONFIGURE_ARGS+= -openssl-linked CONFIGURE_ARGS+= -nomake examples CONFIGURE_ARGS+= -nomake tests CONFIGURE_ARGS+= -no-pch CONFIGURE_ARGS+= -no-sql-db2 CONFIGURE_ARGS+= -no-sql-ibase CONFIGURE_ARGS+= -no-sql-mysql CONFIGURE_ARGS+= -no-sql-oci CONFIGURE_ARGS+= -no-sql-odbc CONFIGURE_ARGS+= -no-sql-psql CONFIGURE_ARGS+= -no-sql-sqlite2 CONFIGURE_ARGS+= -no-sql-tds CONFIGURE_ARGS+= -no-strip CONFIGURE_ARGS+= -no-tslib CONFIGURE_ARGS+= -no-vulkan CONFIGURE_ARGS+= -no-use-gold-linker CONFIGURE_ARGS+= -pkg-config CONFIGURE_ARGS+= -release CONFIGURE_ARGS+= -shared CONFIGURE_ARGS+= -system-harfbuzz CONFIGURE_ARGS+= -system-libjpeg CONFIGURE_ARGS+= -system-libpng CONFIGURE_ARGS+= -system-pcre CONFIGURE_ARGS+= -system-sqlite CONFIGURE_ARGS+= -system-zlib CONFIGURE_ARGS+= -system-doubleconversion CONFIGURE_ARGS+= -system-libmd4c .if defined(MAKE_JOBS) . if !defined(MAKE_JOBS_SAFE) || ${MAKE_JOBS_SAFE:U:tl} != no CONFIGURE_ENV+= MAKEFLAGS=-j${MAKE_JOBS} . endif .endif .include "../../mk/bsd.prefs.mk" .if ${OPSYS} != "Darwin" CONFIGURE_ARGS+= -fontconfig QMAKE_CONF= qmake.conf . if ${OPSYS} != "SunOS" && \ (${MACHINE_ARCH} == i386 || ${MACHINE_ARCH} == x86_64) CONFIGURE_ARGS+= -reduce-relocations . endif .else CONFIGURE_ARGS+= -no-rpath # avoid @rpath in dylibs QMAKE_CONF= qmake.conf.mac .endif PLIST_VARS+= egl .include "../../mk/compiler.mk" QMAKE_LFLAGS_GCSECTIONS?= -Wl,--gc-sections QMAKE_LFLAGS_RELEASE?= -Wl,-O1 .if ${OPSYS} == "SunOS" QMAKE_LFLAGS_GCSECTIONS= -Wl,-z,ignore QMAKE_LFLAGS_RELEASE= . if !empty(PKGSRC_COMPILER:Mgcc) || !empty(PKGSRC_COMPILER:Mclang) . if ${ABI:U} == "64" CONFIGURE_ARGS+= -platform solaris-g++-64 . else CONFIGURE_ARGS+= -platform solaris-g++ . endif . else . if ${ABI:U} == "64" CONFIGURE_ARGS+= -platform solaris-cc-64 . else CONFIGURE_ARGS+= -platform solaris-cc . endif . endif NETWORK_LIBS= -lsocket -lnsl .elif ${OPSYS} == "Interix" CONFIGURE_ARGS+= -platform interix-g++ CFLAGS+= -I/usr/local/include/bind LDFLAGS+= -L/usr/local/lib/bind -lbind BUILDLINK_PASSTHRU_DIRS+= /usr/local/include/bind /usr/local/lib/bind SYS_LIBS= -lbind -ldb -ldl .elif ${OPSYS} == "DragonFly" CONFIGURE_ARGS+= -platform freebsd-g++ LDFLAGS+= -lexecinfo .elif ${OPSYS} == "Darwin" QMAKE_LFLAGS_GCSECTIONS= -Wl,-dead_strip QMAKE_LFLAGS_RELEASE= CONFIGURE_ARGS+= -platform macx-clang CONFIGURE_ARGS+= -no-framework # pkgsrc has a patch to avoid using SDK, but the configure # logic gets confused if it can't find the header files # so give it a direct path to them if they aren't installed # in /usr/include . if !exists(/usr/include) CONFIGURE_ARGS+= -I ${OSX_SDK_PATH}/usr/include . endif . if exists(/usr/lib/libresolv.dylib) LDFLAGS+= -lresolv . endif # -lexecinfo is bundled in libc . if exists(${OSX_SDK_PATH}/usr/include/execinfo.h) BUILDLINK_TRANSFORM+= rm:-lexecinfo . endif .elif ${OPSYS} == "Linux" LDFLAGS+= -ldl .elif ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD" . if exists(/usr/lib/libexecinfo.so) LDFLAGS+= -lexecinfo . endif LDFLAGS.FreeBSD+= -lutil .endif REPLACE_PERL+= bin/fixqt4headers.pl REPLACE_PERL+= bin/syncqt.pl REPLACE_PERL+= mkspecs/features/data/unix/findclasslist.pl PTHREAD_OPTS+= require UNLIMIT_RESOURCES= datasize BUILDLINK_PASSTHRU_DIRS+= ${QTPREFIX} BUILD_TARGET= sub-src INSTALLATION_DIRS= ${QTPREFIX}/bin lib/pkgconfig INSTALL_ENV+= INSTALL_ROOT=${DESTDIR} CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/echoplugin/echoplugin.pro CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/echoplugin/plugin/plugin.pro CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/plugandpaint/plugandpaint.pro CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/plugandpaintplugins/basictools/basictools.pro CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/plugandpaintplugins/extrafilters/extrafilters.pro CHECK_INTERPRETER_SKIP+= qt5/examples/widgets/tools/styleplugin/plugin/plugin.pro CHECK_INTERPRETER_SKIP+= qt5/mkspecs/features/data/mac/objc_namespace.sh CHECK_INTERPRETER_SKIP+= qt5/mkspecs/features/uikit/device_destinations.sh CHECK_INTERPRETER_SKIP+= qt5/mkspecs/features/uikit/devices.py CHECK_INTERPRETER_SKIP+= qt5/mkspecs/macx-ios-clang/rename_main.sh SUBST_CLASSES+= opt SUBST_STAGE.opt= pre-configure SUBST_MESSAGE.opt= Removing some Qt5 default compiler flags. SUBST_FILES.opt= mkspecs/common/gcc-base.conf SUBST_SED.opt= -e 's,-O[s23],,' SUBST_CLASSES.SunOS+= vscript SUBST_STAGE.vscript= pre-configure SUBST_FILES.vscript= mkspecs/common/gcc-base-unix.conf SUBST_SED.vscript= -e '/QMAKE_LFLAGS_VERSION_SCRIPT/d' SUBST_CLASSES+= path SUBST_STAGE.path= pre-configure SUBST_MESSAGE.path= Add to default XDG path. SUBST_FILES.path= src/corelib/io/qstandardpaths_unix.cpp SUBST_VARS.path= PREFIX BROKEN_FILES= qt5/mkspecs/modules/qt_lib_bootstrap_private.pri BROKEN_FILES1= qt5/mkspecs/qmodule.pri PC_FILES= Qt5Concurrent.pc Qt5Core.pc \ Qt5Gui.pc Qt5Network.pc Qt5OpenGL.pc \ Qt5OpenGLExtensions.pc \ Qt5PrintSupport.pc Qt5Sql.pc Qt5Test.pc \ Qt5Widgets.pc Qt5Xml.pc .if ${OPSYS} == "Linux" QMAKE_EXTRA= QMAKE_PLATFORM += linux .elif ${OPSYS} == "NetBSD" QMAKE_EXTRA= QMAKE_PLATFORM += netbsd .elif ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" QMAKE_EXTRA= QMAKE_PLATFORM += freebsd .elif ${OPSYS} == "OpenBSD" QMAKE_EXTRA= QMAKE_PLATFORM += openbsd .elif ${OPSYS} == "SunOS" QMAKE_EXTRA= QMAKE_PLATFORM += solaris .else QMAKE_EXTRA= .endif COMPILER= gcc .if !empty(PKGSRC_COMPILER:Mclang) COMPILER+= clang llvm .endif pre-configure: ${SED} -e 's:@PREFIX@:${PREFIX}:g' \ -e 's:@X11BASE@:${X11BASE}:g' \ -e 's:@COMPILER@:${COMPILER:Q}:g' \ -e 's:@CC@:${CC:Q}:g' \ -e 's:@CXX@:${CXX:Q}:g' \ -e 's:@LDFLAGS@:${LDFLAGS:Q}:g' \ -e 's:@CFLAGS@:${CFLAGS:Q}:g' \ -e 's:@CXXFLAGS@:${CXXFLAGS:Q}:g' \ -e 's:@NETWORK_LIBS@:${NETWORK_LIBS:Q}:g' \ -e 's:@SYS_LIBS@:${SYS_LIBS:Q}:g' \ -e 's:@LEX@:${LEX}:g' \ -e 's:@YACC@:${TOOLS_CMDLINE_YACC:Q}:g' \ -e 's:@AR@:${AR:Q}:g' \ -e 's:@MKDIR@:${MKDIR}:g' \ -e 's:@LIBQT@:${LIBQT:Q}:g' \ -e 's:@PTHREAD_LDFLAGS@:${PTHREAD_LDFLAGS:Q}:g' \ -e 's:@PTHREAD_LIBS@:${PTHREAD_LIBS:Q}:g' \ -e 's:@COMPILER_RPATH_FLAG@:${COMPILER_RPATH_FLAG}:g' \ -e 's:@QMAKE_RANLIB@:${RANLIB}:g' \ -e 's:@QMAKE_EXTRA@:${QMAKE_EXTRA:Q}:g' \ -e 's:@QMAKE_LFLAGS_GCSECTIONS@:${QMAKE_LFLAGS_GCSECTIONS:Q}:g' \ -e 's:@QMAKE_LFLAGS_RELEASE@:${QMAKE_LFLAGS_RELEASE:Q}:g' \ ${FILESDIR}/${QMAKE_CONF} > ${WRKSRC}/qmake.conf for dir in ${WRKSRC}/mkspecs/*; do \ cp ${WRKSRC}/qmake.conf $${dir}; \ rm -f $${dir}/*.orig; \ done ${RM} -f ${WRKSRC}/mkspecs/features/mac/default_pre.prf ${RM} -f ${WRKSRC}/mkspecs/features/mac/default_post.prf .include "options.mk" post-install: .for i in ${PC_FILES} cd ${DESTDIR}${PREFIX}/lib/pkgconfig && \ ${LN} -f -s ${QTPREFIX}/lib/pkgconfig/${i} ${i} .endfor cd ${WRKSRC} && env ${MAKE_ENV} ${INSTALL_ENV} \ ${MAKE_PROGRAM} install_mkspecs # The pri file has WRKSRC in it. ${SED} -e 's,${WRKSRC}/bin/qmake,${QTDIR}/bin/qmake,g' \ ${DESTDIR}${PREFIX}/${BROKEN_FILES} \ > ${DESTDIR}${PREFIX}/${BROKEN_FILES}.1 ${MV} -f ${DESTDIR}${PREFIX}/${BROKEN_FILES}.1 \ ${DESTDIR}${PREFIX}/${BROKEN_FILES} ${SED} -e 's,PKG_CONFIG_EXECUTABLE = .*,PKG_CONFIG_EXECUTABLE = ${TOOLS_PATH.pkg-config},' \ ${DESTDIR}${PREFIX}/${BROKEN_FILES1} \ > ${DESTDIR}${PREFIX}/${BROKEN_FILES1}.1 ${MV} -f ${DESTDIR}${PREFIX}/${BROKEN_FILES1}.1 \ ${DESTDIR}${PREFIX}/${BROKEN_FILES1} .include "../../archivers/zstd/buildlink3.mk" .include "../../converters/libiconv/buildlink3.mk" .include "../../databases/sqlite3/buildlink3.mk" .include "../../devel/gettext-lib/buildlink3.mk" .include "../../devel/glib2/buildlink3.mk" .include "../../devel/pcre2/buildlink3.mk" .include "../../devel/zlib/buildlink3.mk" .include "../../fonts/harfbuzz/buildlink3.mk" .include "../../graphics/freetype2/buildlink3.mk" .include "../../graphics/png/buildlink3.mk" .include "../../math/double-conversion/buildlink3.mk" .include "../../security/openssl/buildlink3.mk" .include "../../textproc/icu/buildlink3.mk" .include "../../textproc/md4c/buildlink3.mk" .include "../../www/libproxy/buildlink3.mk" .if ${OPSYS} != "Darwin" .include "../../fonts/fontconfig/buildlink3.mk" .include "../../graphics/glu/buildlink3.mk" . if !empty(MESALIB_SUPPORTS_EGL:Myes) PLIST.egl= yes . endif . if !empty(MESALIB_SUPPORTS_DRI:Myes) CONFIGURE_ARGS+= -kms .include "../../x11/libdrm/buildlink3.mk" . endif BUILDLINK_API_DEPENDS.libxcb+= libxcb>=1.11 .include "../../x11/libxcb/buildlink3.mk" .include "../../x11/xcb-util/buildlink3.mk" .include "../../x11/xcb-util-image/buildlink3.mk" .include "../../x11/xcb-util-keysyms/buildlink3.mk" .include "../../x11/xcb-util-renderutil/buildlink3.mk" .include "../../x11/xcb-util-wm/buildlink3.mk" .include "../../x11/libSM/buildlink3.mk" .include "../../x11/libX11/buildlink3.mk" .include "../../x11/libXext/buildlink3.mk" .include "../../x11/libXcursor/buildlink3.mk" .include "../../x11/libXft/buildlink3.mk" .include "../../x11/libXi/buildlink3.mk" .include "../../x11/libXmu/buildlink3.mk" .include "../../x11/libXrandr/buildlink3.mk" .include "../../x11/libXrender/buildlink3.mk" .include "../../x11/libxkbcommon/buildlink3.mk" .endif .include "../../mk/jpeg.buildlink3.mk" .include "../../mk/pthread.buildlink3.mk" .include "../../mk/bsd.pkg.mk"