pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

gprbuild: update to 25.0.0nb1



Module Name:	pkgsrc-wip
Committed By:	Dmytro Kazankov <dmytro.kazankov%gmail.com@localhost>
Pushed By:	dkazankov
Date:		Wed Feb 12 19:56:13 2025 +0200
Changeset:	47860c1c0f311a07fafab293b3e5bf3cffab503f

Added Files:
	gprbuild/DESCR
	gprbuild/Makefile
	gprbuild/PLIST
	gprbuild/buildlink3.mk
	gprbuild/distinfo
	gprbuild/gprbuild.mk
	gprbuild/patches/patch-Makefile
	gprbuild/patches/patch-bootstrap.sh
	gprbuild/patches/patch-deps_gprconfig__kb_db_linker.xml
	gprbuild/patches/patch-deps_xmlada_Makefile.in
	gprbuild/patches/patch-gpr_gpr.gpr
	gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____unix.adb
	gprbuild/patches/patch-gpr_src_gpr-version.ads
	gprbuild/patches/patch-gpr_src_gpr_imports.c
	gprbuild/patches/patch-gprbuild.gpr

Log Message:
gprbuild: update to 25.0.0nb1

* Simplify Makefile and buildlink3.mk
* Patch knowledge database to fix child package link time warning

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=47860c1c0f311a07fafab293b3e5bf3cffab503f

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 gprbuild/DESCR                                     |   4 +
 gprbuild/Makefile                                  |  89 +++++++++++
 gprbuild/PLIST                                     | 175 +++++++++++++++++++++
 gprbuild/buildlink3.mk                             |  40 +++++
 gprbuild/distinfo                                  |  20 +++
 gprbuild/gprbuild.mk                               |  71 +++++++++
 gprbuild/patches/patch-Makefile                    |  79 ++++++++++
 gprbuild/patches/patch-bootstrap.sh                |  23 +++
 .../patches/patch-deps_gprconfig__kb_db_linker.xml |  18 +++
 gprbuild/patches/patch-deps_xmlada_Makefile.in     |  16 ++
 gprbuild/patches/patch-gpr_gpr.gpr                 |  15 ++
 ...r_src_gpr-util-put__resource__usage____unix.adb |  15 ++
 gprbuild/patches/patch-gpr_src_gpr-version.ads     |  28 ++++
 gprbuild/patches/patch-gpr_src_gpr_imports.c       |  22 +++
 gprbuild/patches/patch-gprbuild.gpr                |  15 ++
 15 files changed, 630 insertions(+)

diffs:
diff --git a/gprbuild/DESCR b/gprbuild/DESCR
new file mode 100644
index 0000000000..cb2756c313
--- /dev/null
+++ b/gprbuild/DESCR
@@ -0,0 +1,4 @@
+GPRbuild build system
+
+GPRbuild is an advanced build system designed to help automate the construction
+of multi-language systems.
diff --git a/gprbuild/Makefile b/gprbuild/Makefile
new file mode 100644
index 0000000000..2e17ada706
--- /dev/null
+++ b/gprbuild/Makefile
@@ -0,0 +1,89 @@
+# $NetBSD: Makefile,v 1.5 2025/02/09 13:33:26 wiz Exp $
+
+DISTNAME=	gprbuild-25.0.0
+PKGREVISION=	1
+CATEGORIES=	devel
+MASTER_SITES=	${MASTER_SITE_GITHUB:=AdaCore/}
+GITHUB_TAG=	v${PKGVERSION_NOREV}
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://github.com/AdaCore/gprbuild
+COMMENT=	Build system for Ada
+LICENSE=	gnu-gpl-v3
+
+USE_LANGUAGES=	c ada
+
+GITHUB_SUBMODULES+=	AdaCore	xmlada	${GITHUB_TAG}	deps/xmlada
+GITHUB_SUBMODULES+=	AdaCore	gprconfig_kb	${GITHUB_TAG}	deps/gprconfig_kb
+
+USE_TOOLS+=	gmake
+
+MKPIE_SUPPORTED=	no
+RELRO_SUPPORTED=	no
+
+HAS_CONFIGURE=	yes
+
+GCC_REQD+=	13
+
+OBJDIR=		${WRKDIR}/build
+BOOTSTRAPDIR=	${WRKDIR}/bootstrap
+
+GPR_PROJECT_PATH=	${WRKDIR}/.buildlink/share/gpr
+
+# environment for bootstrap build
+PREBUILD_ENV=	${CONFIGURE_ENV}
+PREBUILD_ENV+=	CC=${CC}
+PREBUILD_ENV+=	CFLAGS=${CFLAGS:M:Q}
+PREBUILD_ENV+=	GNATMAKE=${GMKPATH}
+
+CONFIGURE_DIRS=		${OBJDIR}
+CONFIG_SHELL=		${MAKE_PROGRAM} -f
+CONFIGURE_SCRIPT=	${WRKSRC}/Makefile
+CONFIGURE_ARGS=		setup
+CONFIGURE_ARGS+=	prefix=${DESTDIR}${PREFIX} SOURCE_DIR=${WRKSRC} ENABLE_SHARED=yes
+
+BUILD_DIRS=		${OBJDIR}
+MAKE_FILE=		${WRKSRC}/Makefile
+BUILD_MAKE_FLAGS=	GPRBUILD_OPTIONS='-aP ${GPR_PROJECT_PATH}'
+
+INSTALL_DIRS=		${OBJDIR}
+INSTALL_MAKE_FLAGS+=	GPRINSTALL_OPTIONS='-aP ${GPR_PROJECT_PATH}'
+
+SUBST_CLASSES+=			fixver
+SUBST_STAGE.fixver=		pre-configure
+SUBST_FILES.fixver=		deps/xmlada/configure
+SUBST_MESSAGE.fixver=		Fix version in configure
+SUBST_SED.fixver=		-e 's,18.0w,25.0w,g'
+
+GENERATE_PLIST+= \
+	cd ${DESTDIR}${PREFIX} && \
+	${FIND} bin libexec share \( -type f -or -type l \) -print | ${SORT};
+
+.include "../../mk/bsd.prefs.mk"
+
+post-extract:
+	${RUN} ${MKDIR} ${OBJDIR}
+
+pre-configure:
+# Bootstrap build. Moved here because configure script of gprbuild uses gprbuild itself.
+	${RUN} ${MKDIR} ${BOOTSTRAPDIR}
+	${RUN} cd ${BOOTSTRAPDIR} \
+	&& set -x ; env ${PREBUILD_ENV} \
+	${SHELL} ${WRKSRC}/bootstrap.sh \
+	    --prefix=${WRKDIR}/.buildlink \
+	    --srcdir=${WRKSRC} \
+	    --with-xmlada=${WRKSRC}/deps/xmlada \
+	    --with-kb=${WRKSRC}/deps/gprconfig_kb
+
+pre-build:
+# Xmlada's configure uses gprbuild. So we configure it here.
+	${RUN} cd ${WRKSRC}/deps/xmlada \
+	&& set -x ; env ${CONFIGURE_ENV} \
+	./configure \
+	    --prefix=${WRKDIR}/.buildlink
+# Build xmlada with bootstrapped gprbuild. It then will be used in normal build.
+	${RUN} cd ${WRKSRC}/deps/xmlada \
+	&& set -x ; env ${MAKE_ENV} \
+	${MAKE_PROGRAM} static-pic install-static-pic
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/gprbuild/PLIST b/gprbuild/PLIST
new file mode 100644
index 0000000000..c1ba86e88e
--- /dev/null
+++ b/gprbuild/PLIST
@@ -0,0 +1,175 @@
+@comment $NetBSD: PLIST,v 1.2 2025/02/08 14:14:49 wiz Exp $
+bin/gprbuild
+bin/gprclean
+bin/gprconfig
+bin/gprinstall
+bin/gprls
+bin/gprname
+bin/gprslave
+libexec/gprbuild/gprbind
+libexec/gprbuild/gprlib
+share/examples/gprbuild/Makefile
+share/examples/gprbuild/ada_cpp/Makefile
+share/examples/gprbuild/ada_cpp/animals.gpr
+share/examples/gprbuild/ada_cpp/except.gpr
+share/examples/gprbuild/ada_cpp/src1/ada_main.adb
+share/examples/gprbuild/ada_cpp/src1/call_cpp.adb
+share/examples/gprbuild/ada_cpp/src1/call_cpp.ads
+share/examples/gprbuild/ada_cpp/src1/cpp_main.cpp
+share/examples/gprbuild/ada_cpp/src1/cpp_routine.cpp
+share/examples/gprbuild/ada_cpp/src1/cpp_routine.h
+share/examples/gprbuild/ada_cpp/src2/animals.adb
+share/examples/gprbuild/ada_cpp/src2/animals.ads
+share/examples/gprbuild/ada_cpp/src2/animals.h
+share/examples/gprbuild/ada_cpp/src2/animals_c.cc
+share/examples/gprbuild/ada_cpp/src2/animals_interfaces.ads
+share/examples/gprbuild/ada_cpp/src2/main.adb
+share/examples/gprbuild/ada_f77/Makefile
+share/examples/gprbuild/ada_f77/ess.f
+share/examples/gprbuild/ada_f77/fm.gpr
+share/examples/gprbuild/ada_f77/ft.gpr
+share/examples/gprbuild/ada_f77/src/fm-interfac.adb
+share/examples/gprbuild/ada_f77/src/fm-interfac.ads
+share/examples/gprbuild/ada_f77/src/fm-locks.adb
+share/examples/gprbuild/ada_f77/src/fm-locks.ads
+share/examples/gprbuild/ada_f77/src/fm-protected_queue.adb
+share/examples/gprbuild/ada_f77/src/fm-protected_queue.ads
+share/examples/gprbuild/ada_f77/src/fm-system_dependant.adb
+share/examples/gprbuild/ada_f77/src/fm-system_dependant.ads
+share/examples/gprbuild/ada_f77/src/fm-tuple_manager.adb
+share/examples/gprbuild/ada_f77/src/fm-tuple_manager.ads
+share/examples/gprbuild/ada_f77/src/fm-types.ads
+share/examples/gprbuild/ada_f77/src/fm.adb
+share/examples/gprbuild/ada_f77/src/fm.ads
+share/examples/gprbuild/extended_projects/Makefile
+share/examples/gprbuild/extended_projects/new_ada_main.gpr
+share/examples/gprbuild/extended_projects/new_ada_src/ada_main.adb
+share/examples/gprbuild/extended_projects/new_common_subsystem.gpr
+share/examples/gprbuild/extended_projects/new_util_src/c_lib.ads
+share/examples/gprbuild/extended_projects/new_util_src/lib2.c
+share/examples/gprbuild/first_steps/Makefile
+share/examples/gprbuild/first_steps/ada_main.gpr
+share/examples/gprbuild/first_steps/ada_src/ada_main.adb
+share/examples/gprbuild/first_steps/c_main.gpr
+share/examples/gprbuild/first_steps/c_src/c_main.c
+share/examples/gprbuild/first_steps/util_src/ada_lib.adb
+share/examples/gprbuild/first_steps/util_src/ada_lib.ads
+share/examples/gprbuild/first_steps/util_src/c_lib.ads
+share/examples/gprbuild/first_steps/util_src/lib.c
+share/examples/gprbuild/first_steps/util_src/lib.h
+share/examples/gprbuild/libraries/Makefile
+share/examples/gprbuild/libraries/ada_main.adb
+share/examples/gprbuild/libraries/c_main.c
+share/examples/gprbuild/libraries/dynamic_lib.gpr
+share/examples/gprbuild/libraries/extern_lib.gpr
+share/examples/gprbuild/libraries/lib_src/ada_lib.adb
+share/examples/gprbuild/libraries/lib_src/ada_lib.ads
+share/examples/gprbuild/libraries/lib_src/c_lib.ads
+share/examples/gprbuild/libraries/lib_src/lib.c
+share/examples/gprbuild/libraries/lib_src/lib.h
+share/examples/gprbuild/libraries/main0.gpr
+share/examples/gprbuild/libraries/main1.gpr
+share/examples/gprbuild/libraries/main2.gpr
+share/examples/gprbuild/libraries/main3.gpr
+share/examples/gprbuild/libraries/main4.gpr
+share/examples/gprbuild/libraries/sa_lib.gpr
+share/examples/gprbuild/libraries/static_lib.gpr
+share/examples/gprbuild/matrix/Makefile
+share/examples/gprbuild/matrix/matrix.gpr
+share/examples/gprbuild/matrix/src/initmat.c
+share/examples/gprbuild/matrix/src/main.adb
+share/examples/gprbuild/matrix/src/multmat.f
+share/examples/gprbuild/namings/Makefile
+share/examples/gprbuild/namings/_print2.ada
+share/examples/gprbuild/namings/_print3.adb
+share/examples/gprbuild/namings/main.adb
+share/examples/gprbuild/namings/my_routine.c1
+share/examples/gprbuild/namings/my_routine2.c1
+share/examples/gprbuild/namings/namings.gpr
+share/examples/gprbuild/namings/src1/main.adb
+share/examples/gprbuild/namings/util-case1.ada
+share/examples/gprbuild/namings/util-case2.ada
+share/examples/gprbuild/namings/util.ads
+share/examples/gprbuild/scenarios/Makefile
+share/examples/gprbuild/scenarios/general_lib.gpr
+share/examples/gprbuild/scenarios/main.gpr
+share/examples/gprbuild/subsystems/Makefile
+share/examples/gprbuild/subsystems/ada_main.gpr
+share/examples/gprbuild/subsystems/ada_src/ada_main.adb
+share/examples/gprbuild/subsystems/attribute_sharing.gpr
+share/examples/gprbuild/subsystems/c_main.gpr
+share/examples/gprbuild/subsystems/c_src/c_main.c
+share/examples/gprbuild/subsystems/common_subsystem.gpr
+share/examples/gprbuild/subsystems/util_src/ada_lib.adb
+share/examples/gprbuild/subsystems/util_src/ada_lib.ads
+share/examples/gprbuild/subsystems/util_src/c_lib.ads
+share/examples/gprbuild/subsystems/util_src/lib.c
+share/examples/gprbuild/subsystems/util_src/lib.h
+share/gpr/_default.gpr
+share/gpr/manifests/gprbuild
+share/gprconfig/0_default.xml
+share/gprconfig/aamp.xml
+share/gprconfig/aamp_compilers.xml
+share/gprconfig/aarch64-vx7.xml
+share/gprconfig/aarch64-vx7r2.xml
+share/gprconfig/arm-vx6.xml
+share/gprconfig/arm-vx7.xml
+share/gprconfig/arm-vx7r2.xml
+share/gprconfig/asis.xml
+share/gprconfig/asm.xml
+share/gprconfig/baselined.xml
+share/gprconfig/bin_img.xml
+share/gprconfig/c.xml
+share/gprconfig/clean.xml
+share/gprconfig/compilers-arm-vx7.xml
+share/gprconfig/compilers-asis.xml
+share/gprconfig/compilers-baselined.xml
+share/gprconfig/compilers-e500v2-vx6.xml
+share/gprconfig/compilers-e500v2-vx653.xml
+share/gprconfig/compilers-e500v2-vx7.xml
+share/gprconfig/compilers-e500v2-vx7r2.xml
+share/gprconfig/compilers-ppc-vx653.xml
+share/gprconfig/compilers-ppc-vx7.xml
+share/gprconfig/compilers-ppc-vx7r2.xml
+share/gprconfig/compilers-ppc64-vx7.xml
+share/gprconfig/compilers-ppc64-vx7r2.xml
+share/gprconfig/compilers-vxworks.xml
+share/gprconfig/compilers-x86-vx7.xml
+share/gprconfig/compilers-x86_64-vx7.xml
+share/gprconfig/compilers.xml
+share/gprconfig/cpp.xml
+share/gprconfig/cross.xml
+share/gprconfig/e500v2-vx6.xml
+share/gprconfig/e500v2-vx653.xml
+share/gprconfig/e500v2-vx7.xml
+share/gprconfig/e500v2-vx7r2.xml
+share/gprconfig/env.ent
+share/gprconfig/fallback_targets.xml
+share/gprconfig/fortran.xml
+share/gprconfig/gnat.xml
+share/gprconfig/gprconfig.xsd
+share/gprconfig/linker.xml
+share/gprconfig/morello-vx7r2.xml
+share/gprconfig/nocompiler.xml
+share/gprconfig/ppc-vx6.xml
+share/gprconfig/ppc-vx653.xml
+share/gprconfig/ppc-vx7.xml
+share/gprconfig/ppc-vx7r2.xml
+share/gprconfig/ppc64-vx7.xml
+share/gprconfig/ppc64-vx7r2.xml
+share/gprconfig/shortcuts.ent
+share/gprconfig/targetset.xml
+share/gprconfig/tricore-compilers.xml
+share/gprconfig/tricore-configuration.xml
+share/gprconfig/tricore-target.xml
+share/gprconfig/vx6.ent
+share/gprconfig/vx653.ent
+share/gprconfig/vx7.ent
+share/gprconfig/vxworks.ent
+share/gprconfig/vxworks.xml
+share/gprconfig/windres.xml
+share/gprconfig/x86-vx6.xml
+share/gprconfig/x86-vx7.xml
+share/gprconfig/x86-vx7r2.xml
+share/gprconfig/x86_64-vx7.xml
+share/gprconfig/x86_64-vx7r2.xml
diff --git a/gprbuild/buildlink3.mk b/gprbuild/buildlink3.mk
new file mode 100644
index 0000000000..bdc079b489
--- /dev/null
+++ b/gprbuild/buildlink3.mk
@@ -0,0 +1,40 @@
+# $NetBSD: buildlink3.mk,v 1.4 2025/02/09 13:33:26 wiz Exp $
+
+BUILDLINK_TREE+=	gprbuild
+
+.if !defined(GPRBUILD_BUILDLINK3_MK)
+GPRBUILD_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gprbuild+=	gprbuild>=24.0.0
+BUILDLINK_PKGSRCDIR.gprbuild=		../../wip/gprbuild
+BUILDLINK_DEPMETHOD.gprbuild?=		build
+
+# GPRbuild does similar things in its own way
+BUILDLINK_AUTO_VARS.gprbuild=	no
+BUILDLINK_AUTO_DIRS.gprbuild=	no
+
+BUILDLINK_FILES.gprbuild=	bin/gpr* libexec/gprbuild/*
+BUILDLINK_FILES.gprbuild+=	share/gpr/_default.gpr share/gpr/manifests/gprbuild
+BUILDLINK_FILES.gprbuild+=	share/gprconfig/*
+
+BUILDLINK_CONTENTS_FILTER.gprbuild=	\
+	${EGREP} '(bin/gpr.*|libexec/gprbuild/gpr.*|share/gpr/.*\.gpr$$|share/gpr/manifests/.*|share/gprconfig/.*)'
+
+TARGET_LIBDIR.gprbuild=	${PREFIX}/lib
+
+# Buildlinked libraries search path
+GPR_PROJECT_PATH?=	${BUILDLINK_DIR}/share/gpr
+CONFIGURE_ENV+=		GPR_PROJECT_PATH=${GPR_PROJECT_PATH:Q}
+MAKE_ENV+=		GPR_PROJECT_PATH=${GPR_PROJECT_PATH:Q}
+INSTALL_ENV+=		GPR_PROJECT_PATH=${GPR_PROJECT_PATH:Q}
+
+LDFLAGS+=	${COMPILER_RPATH_FLAG}'$$$$ORIGIN'
+
+GPRBUILD_OPTIONS?=	-eL -R -largs $${LDFLAGS} -gargs
+GPRINSTALL_OPTIONS?=	#empty
+BUILD_MAKE_FLAGS+=	GPRBUILD_OPTIONS=${GPRBUILD_OPTIONS:Q}
+INSTALL_MAKE_FLAGS+=	GPRINSTALL_OPTIONS=${GPRINSTALL_OPTIONS:Q}
+
+.endif
+
+BUILDLINK_TREE+=	-gprbuild
diff --git a/gprbuild/distinfo b/gprbuild/distinfo
new file mode 100644
index 0000000000..a7936099d3
--- /dev/null
+++ b/gprbuild/distinfo
@@ -0,0 +1,20 @@
+$NetBSD: distinfo,v 1.4 2025/02/08 14:14:49 wiz Exp $
+
+BLAKE2s (AdaCore-gprconfig_kb-v25.0.0.tar.gz) = eb32df0aa23a0ba4c8bcc88a580a06887ff7b12efc87bb0eac9b4d292ec548a6
+SHA512 (AdaCore-gprconfig_kb-v25.0.0.tar.gz) = afc1754efdf6e3cbff9752a182cd063f83965c6a13e53930a14f806a46e3cbfb0afed8f8e11b098986227f27a1a67b45d22369adaa39a5dc1f2a8cc494f789e8
+Size (AdaCore-gprconfig_kb-v25.0.0.tar.gz) = 44165 bytes
+BLAKE2s (AdaCore-xmlada-v25.0.0.tar.gz) = c7e2b06977998dadbde002a6b80a75d3921860f20946c02a983a2048ade6e987
+SHA512 (AdaCore-xmlada-v25.0.0.tar.gz) = c57db78e3afd20862c3275d3d0874ada1748e98df06a76841cb3dca3686b29c7693835a591ca5789dca2d3d6ba9677c9082df94857e180e0758a5b77fafc40c0
+Size (AdaCore-xmlada-v25.0.0.tar.gz) = 1082553 bytes
+BLAKE2s (gprbuild-25.0.0.tar.gz) = e9462a136fe46fd9e62e7ba602f746275a41347098f273e90b41cd89c46ce386
+SHA512 (gprbuild-25.0.0.tar.gz) = eb2d7072194323cae90acd0c8683eeb6a806ef6ff2ed4d3496e8b94c5b63dae8a428ec428a3610b380df7e122d7a00d9e9634ef06b5369b165536c99209602ce
+Size (gprbuild-25.0.0.tar.gz) = 940774 bytes
+SHA1 (patch-Makefile) = 62aaca338e57df5c6ae5f008df078b991e9ebfdd
+SHA1 (patch-bootstrap.sh) = 0f8fa38605225385975291a4d62d22a77762813f
+SHA1 (patch-deps_gprconfig__kb_db_linker.xml) = 6fdc8e78ba3651eae37a132fff8e53ad988b2a71
+SHA1 (patch-deps_xmlada_Makefile.in) = 98632303e6829b0540abeca6a5a7cd427b455adf
+SHA1 (patch-gpr_gpr.gpr) = 321bce32cb8af1821e2e6b6b8d6ca75194410a0b
+SHA1 (patch-gpr_src_gpr-util-put__resource__usage____unix.adb) = c134d5aad0b90da41eef03cd2e5d98e2f14611fb
+SHA1 (patch-gpr_src_gpr-version.ads) = 40deea3a0eb6cf6a3fda3ed8ed898d4daabe0423
+SHA1 (patch-gpr_src_gpr_imports.c) = 945eefee50b198695ade7a4b88d4f87dd50f7925
+SHA1 (patch-gprbuild.gpr) = e943f95bd4681e3cfde3e1782e9ec2efd9cdf181
diff --git a/gprbuild/gprbuild.mk b/gprbuild/gprbuild.mk
new file mode 100644
index 0000000000..aa67ba0a82
--- /dev/null
+++ b/gprbuild/gprbuild.mk
@@ -0,0 +1,71 @@
+# $NetBSD: gprbuild.mk,v 1.3 2025/02/09 13:33:26 wiz Exp $
+#
+# This Makefile fragment supports building using the GPRbuild tool.
+#
+# Package-settable variables:
+#
+# GPRBUILD_PROJECT_FILE
+#	The path to the project file that is processed by GPRbuild and GPRInstall executables.
+#	Default: MAKE_FILE
+#
+# GPRBUILD_ENV
+#	The shell environment that is exported to the GPRbuild process.
+#	Default: MAKE_ENV
+#
+# GPRBUILD_ARGS
+#	Arguments to pass to GPRbuild during build.
+#	Default: -j0 -p
+#
+# BUILD_DIRS
+#	Directories in which to build.
+#	Default: WRKSRC
+#
+# GPRINSTALL_ENV
+#	The shell environment that is exported to the GPRinstall process.
+#	Default: INSTALL_ENV
+#
+# GPRINSTALL_ARGS
+#	Arguments to pass to GPRinstall during installation:
+#	Default: --mode=usage -p --prefix=${DESTDIR}${PREFIX}
+#
+# INSTALL_DIRS
+#	Directories relative in which to run the 'install' step.
+#	Default: WRKSRC
+
+.include "../../devel/gprbuild/buildlink3.mk"
+
+GPRBUILD_PROJECT_FILE?=	${MAKE_FILE}
+GPRBUILD_ENV?=		${MAKE_ENV}
+GPRINSTALL_ENV?=	${INSTALL_ENV}
+GPRINSTALL_ENV+=	${GPRBUILD_ENV}
+
+GPRBUILD_ARGS?=		-j0 -p ${GPRBUILD_OPTIONS}
+GPRINSTALL_ARGS?=	--mode=usage -p --prefix=${DESTDIR}${PREFIX} ${GPRINSTALL_OPTIONS}
+
+GPRBUILD_TOOL=		gprbuild
+GPRINSTALL_TOOL=	gprinstall
+
+do-build: gprbuild-build
+do-install: gprbuild-install
+
+.if !target(gprbuild-build)
+.PHONY: gprbuild-build
+gprbuild-build:
+	for dir in ${BUILD_DIRS}; do \
+	    set -e; \
+	    cd $$dir && \
+		${PKGSRC_SETENV} ${GPRBUILD_ENV} \
+		${GPRBUILD_TOOL} ${GPRBUILD_ARGS} -P ${GPRBUILD_PROJECT_FILE}; \
+	done
+.endif
+
+.if !target(gprbuild-install)
+.PHONY: gprbuild-install
+gprbuild-install:
+	for dir in ${INSTALL_DIRS}; do \
+	    set -e; \
+	    cd $$dir && \
+		${PKGSRC_SETENV} ${GPRINSTALL_ENV} \
+		${GPRINSTALL_TOOL} ${GPRINSTALL_ARGS} -P ${GPRBUILD_PROJECT_FILE}; \
+	done
+.endif
diff --git a/gprbuild/patches/patch-Makefile b/gprbuild/patches/patch-Makefile
new file mode 100644
index 0000000000..51e144c6c6
--- /dev/null
+++ b/gprbuild/patches/patch-Makefile
@@ -0,0 +1,79 @@
+$NetBSD: patch-Makefile,v 1.3 2025/02/08 14:14:49 wiz Exp $
+
+Make it possible to set install parameters
+Fix install parameters
+Fix ENABLE_SHARED position
+
+--- Makefile.orig	2024-10-07 15:45:16.000000000 +0300
++++ Makefile
+@@ -34,9 +34,6 @@
+ SOURCE_DIR    := $(shell dirname "$(MAKEFILE_LIST)")
+ LIB_DIR       = lib/
+ 
+-# Load current setup if any
+--include makefile.setup
+-
+ # target options for cross-build
+ ifeq ($(HOST),$(TARGET))
+ GTARGET=
+@@ -45,6 +42,13 @@
+ GTARGET=--target=$(TARGET)
+ endif
+ 
++ENABLE_SHARED := $(shell gprbuild $(GTARGET) -c -q -p \
++	-P$(MAKEPREFIX)config/test_shared 2>/dev/null && echo "yes")
++
++# Load current setup if any
++-include makefile.setup
++
++GPRINSTALL_OPTIONS=
+ INSTALLER=$(LIB_INSTALLER)
+ EXEC_INSTALLER=$(INSTALLER) -XBUILD=${BUILD}
+ 
+@@ -61,32 +65,29 @@
+ MAKEPREFIX=$(SOURCE_DIR)/
+ endif
+ 
+-ENABLE_SHARED := $(shell gprbuild $(GTARGET) -c -q -p \
+-	-P$(MAKEPREFIX)config/test_shared 2>/dev/null && echo "yes")
+-
+ ifeq ($(ENABLE_SHARED), yes)
+    LIBGPR_TYPES=static shared static-pic
+ else
+-   LIBGPR_TYPES=static
++   LIBGPR_TYPES=static static-pic
+ endif
+ 
+ # Make sure Windows's "OS" environment variable does not cause
+ # confusion for cross-Linux builds.
+-LIBGPR_OS = $(if $(findstring linux,$(TARGET)),-XOS=UNIX)
++LIBGPR_OS = $(if $(or $(findstring linux,$(TARGET)),$(findstring bsd,$(TARGET))),-XOS=UNIX)
+ 
+ # Used to pass extra options to GPRBUILD, like -d for instance
+ GPRBUILD_OPTIONS=
+ 
+ BUILDER=gprbuild -p -m $(GTARGET) $(RBD) -j${PROCESSORS} -XBUILD=${BUILD} ${GPRBUILD_OPTIONS}
+-LIB_INSTALLER=gprinstall -p -f --target=$(TARGET) $(RBD) "--prefix=${prefix}"
++LIB_INSTALLER=gprinstall -p -f $(GTARGET) $(RBD) "--prefix=${prefix}" ${GPRINSTALL_OPTIONS}
+ CLEANER=gprclean -q $(RBD)
+ 
+ GPRBUILD_BUILDER=$(BUILDER) $(GPRBUILD_GPR) \
+-	-XLIBRARY_TYPE=static -XXMLADA_BUILD=static
++	-XLIBRARY_TYPE=static-pic -XXMLADA_BUILD=static-pic
+ LIBGPR_BUILDER=$(BUILDER) $(GPR_GPR) $(LIBGPR_OS)
+ LIBGPR_INSTALLER=$(LIB_INSTALLER) $(GPR_GPR) $(LIBGPR_OS) -XBUILD=${BUILD} \
+ 	--install-name=gpr \
+-	--build-var=LIBRARY_TYPE --build-var=GPR_BUILD $(GTARGET)
++	--build-var=LIBRARY_TYPE --build-var=GPR_BUILD
+ LIBGPR_UNINSTALLER=$(LIB_INSTALLER) $(GPR_GPR) $(LIBGPR_OS) --install-name=gpr --uninstall
+ 
+ #########
+@@ -127,7 +128,7 @@
+ install:
+ 	$(EXEC_INSTALLER) --mode=usage --install-name=gprbuild \
+ 		-XINSTALL_MODE=nointernal $(GPRBUILD_GPR)
+-	$(EXEC_INSTALLER) --target=$(TARGET) --mode=usage  --install-name=gprbuild \
++	$(EXEC_INSTALLER) --mode=usage  --install-name=gprbuild \
+ 		-XINSTALL_MODE=internal $(GPRBUILD_GPR)
+ 
+ complete: all install libgpr.install.static
diff --git a/gprbuild/patches/patch-bootstrap.sh b/gprbuild/patches/patch-bootstrap.sh
new file mode 100644
index 0000000000..ab93af090b
--- /dev/null
+++ b/gprbuild/patches/patch-bootstrap.sh
@@ -0,0 +1,23 @@
+$NetBSD: patch-bootstrap.sh,v 1.3 2025/02/08 14:14:49 wiz Exp $
+
+Fix out-of-tree bootstrap build
+
+--- bootstrap.sh.orig	2023-10-09 21:31:11.000000000 +0300
++++ bootstrap.sh	2024-08-09 10:47:46.065852328 +0300
+@@ -90,13 +90,13 @@
+ UName=`uname | cut -b -5`
+ PutUsage=gpr/src/gpr-util-put_resource_usage
+ 
+-rm -f ${PutUsage}.adb
++rm -f ${srcdir}/${PutUsage}.adb
+ 
+ if [ "$UName" = "CYGWI" ] || [ "$UName" = "MINGW" ]
+ then
+-	cp ${PutUsage}__null.adb ${PutUsage}.adb
++	cp ${srcdir}/${PutUsage}__null.adb ${srcdir}/${PutUsage}.adb
+ else
+-	ln -s $PWD/${PutUsage}__unix.adb ${PutUsage}.adb
++	ln -s ${srcdir}/${PutUsage}__unix.adb ${srcdir}/${PutUsage}.adb
+ fi
+ 
+ # Build
diff --git a/gprbuild/patches/patch-deps_gprconfig__kb_db_linker.xml b/gprbuild/patches/patch-deps_gprconfig__kb_db_linker.xml
new file mode 100644
index 0000000000..ea4fa6502a
--- /dev/null
+++ b/gprbuild/patches/patch-deps_gprconfig__kb_db_linker.xml
@@ -0,0 +1,18 @@
+$NetBSD: patch-deps_gprconfig__kb_db_linker.xml,v 1.0 2025/02/12 11:00:00 dkazankov Exp $
+
+Fix link time lto plugin warning
+
+--- deps/gprconfig_kb/db/linker.xml.orig	2024-09-09 17:54:27.000000000 +0300
++++ deps/gprconfig_kb/db/linker.xml
+@@ -1000,9 +1000,9 @@
+       <target name="^cuda$" />
+     </targets>
+     <config>
+-   for Archive_Builder  use ("ar", "cr");
++   for Archive_Builder  use ("gcc-ar", "cr");
+    for Archive_Builder_Append_Option use ("q");
+-   for Archive_Indexer  use ("ranlib");
++   for Archive_Indexer  use ("gcc-ranlib");
+    for Archive_Suffix   use ".a";
+     </config>
+   </configuration>
diff --git a/gprbuild/patches/patch-deps_xmlada_Makefile.in b/gprbuild/patches/patch-deps_xmlada_Makefile.in
new file mode 100644
index 0000000000..cb49e05638
--- /dev/null
+++ b/gprbuild/patches/patch-deps_xmlada_Makefile.in
@@ -0,0 +1,16 @@
+$NetBSD: patch-deps_xmlada_Makefile.in,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Make possible install params
+
+--- deps/xmlada/Makefile.in.orig	2023-09-07 14:33:41.000000000 +0300
++++ deps/xmlada/Makefile.in	2023-12-26 11:37:39.332465731 +0200
+@@ -34,7 +34,8 @@
+ MODULES=unicode input_sources sax dom schema
+ MODULE_INSTALL=${MODULES:%=%_inst}
+ 
+-GPROPTS=-XXMLADA_BUILD_MODE=${MODE} -XPROCESSORS=${PROCESSORS}
++GPROPTS=
++GPROPTS+=-XXMLADA_BUILD_MODE=${MODE} -XPROCESSORS=${PROCESSORS}
+ 
+ ifeq (${HOST},${TARGET})
+ IPREFIX=${DESTDIR}${prefix}
diff --git a/gprbuild/patches/patch-gpr_gpr.gpr b/gprbuild/patches/patch-gpr_gpr.gpr
new file mode 100644
index 0000000000..0fc4508009
--- /dev/null
+++ b/gprbuild/patches/patch-gpr_gpr.gpr
@@ -0,0 +1,15 @@
+$NetBSD: patch-gpr_gpr.gpr,v 1.4 2025/02/08 14:14:49 wiz Exp $
+
+Fix name conflict with grpc - same as linux distros
+
+--- gpr/gpr.gpr.orig	2023-10-09 21:31:11.000000000 +0300
++++ gpr/gpr.gpr	2024-05-07 16:34:34.759672549 +0300
+@@ -38,7 +38,7 @@
+ 
+    for Source_Dirs use ("src");
+ 
+-   for Library_Name use "gpr";
++   for Library_Name use "gnatprj";
+    for Object_Dir use "libobj/" & Bld & "/" & Gnat_Lib_Type;
+    for Library_Dir use "lib/" & Bld & "/" & Gnat_Lib_Type;
+ 
diff --git a/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____unix.adb b/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____unix.adb
new file mode 100644
index 0000000000..f9ab35af62
--- /dev/null
+++ b/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____unix.adb
@@ -0,0 +1,15 @@
+$NetBSD: patch-gpr_src_gpr-util-put__resource__usage____unix.adb,v 1.2 2025/02/08 14:14:49 wiz Exp $
+
+Fix warning at link stage on NetBSD
+
+--- gpr/src/gpr-util-put_resource_usage__unix.adb.orig	2023-10-09 21:31:11.000000000 +0300
++++ gpr/src/gpr-util-put_resource_usage__unix.adb	2024-05-07 10:36:42.700699231 +0300
+@@ -69,7 +69,7 @@
+       procedure Print (This : STC.Timeval);
+ 
+       function Getrusage (Who : Integer; usage : out Rusage) return Integer
+-        with Import, Convention => C;
++        with Import, Convention => C, External_Name => "__netbsd_getrusage";
+ 
+       -----------
+       -- Print --
diff --git a/gprbuild/patches/patch-gpr_src_gpr-version.ads b/gprbuild/patches/patch-gpr_src_gpr-version.ads
new file mode 100644
index 0000000000..d3b82490dd
--- /dev/null
+++ b/gprbuild/patches/patch-gpr_src_gpr-version.ads
@@ -0,0 +1,28 @@
+$NetBSD: patch-gpr_src_gpr-version.ads,v 1.3 2025/02/08 14:14:49 wiz Exp $
+
+Fix incorrect version reporting
+
+--- gpr/src/gpr-version.ads.orig	2023-10-09 21:31:11.000000000 +0300
++++ gpr/src/gpr-version.ads	2024-03-19 14:10:13.533689309 +0200
+@@ -30,17 +30,17 @@
+ 
+ package GPR.Version is
+ 
+-   Gpr_Version : constant String := "18.0w";
++   Gpr_Version : constant String := "25.0w";
+    --  Static string identifying this version
+ 
+-   Date : constant String := "19940713";
++   Date : constant String := "20241126";
+ 
+-   Current_Year : constant String := "2016";
++   Current_Year : constant String := "2024";
+ 
+    type Gnat_Build_Type is (Gnatpro, FSF, GPL);
+    --  See Get_Gnat_Build_Type below for the meaning of these values
+ 
+-   Build_Type : constant Gnat_Build_Type := Gnatpro;
++   Build_Type : constant Gnat_Build_Type := FSF;
+    --  Kind of GNAT Build:
+    --
+    --    FSF
diff --git a/gprbuild/patches/patch-gpr_src_gpr_imports.c b/gprbuild/patches/patch-gpr_src_gpr_imports.c
new file mode 100644
index 0000000000..a50d7d7791
--- /dev/null
+++ b/gprbuild/patches/patch-gpr_src_gpr_imports.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-gpr_src_gpr_imports.c,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Add support for NetBSD (same as for FreeBSD) and fix getrusage() warning at linking stage
+
+--- gpr/src/gpr_imports.c.orig	2023-10-09 21:31:11.000000000 +0300
++++ gpr/src/gpr_imports.c	2023-12-21 19:52:58.220771312 +0200
+@@ -64,6 +64,15 @@
+ char __gnat_shared_libgcc_default = STATIC;
+ const char *__gnat_default_libgcc_subdir = "lib";
+ 
++#elif defined(__NetBSD__)
++int __gnat_link_max = 8192;
++char __gnat_shared_libgcc_default = STATIC;
++const char *__gnat_default_libgcc_subdir = "lib";
++#include "sys/resource.h"
++int __netbsd_getrusage(int who, struct rusage *rusage) {
++    return getrusage(who, rusage);
++}
++
+ #elif defined (__APPLE__)
+ int __gnat_link_max = 262144;
+ char __gnat_shared_libgcc_default = SHARED;
diff --git a/gprbuild/patches/patch-gprbuild.gpr b/gprbuild/patches/patch-gprbuild.gpr
new file mode 100644
index 0000000000..89fb2cd9ce
--- /dev/null
+++ b/gprbuild/patches/patch-gprbuild.gpr
@@ -0,0 +1,15 @@
+$NetBSD: patch-gprbuild.gpr,v 1.3 2025/02/08 14:14:49 wiz Exp $
+
+Remove redundant file from install list
+
+--- gprbuild.gpr.orig	2023-10-09 21:31:11.000000000 +0300
++++ gprbuild.gpr	2024-05-07 15:26:53.971304204 +0300
+@@ -165,7 +165,7 @@
+                when "Windows_NT" =>
+                   for Artifacts ("bin") use ("src/gprinstall.exe.manifest");
+                when "UNIX" =>
+-                  for Artifacts (".") use ("doinstall");
++                  null;
+             end case;
+ 
+          when "internal" =>


Home | Main Index | Thread Index | Old Index