pkgsrc-Changes archive

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

CVS commit: pkgsrc/devel/gprbuild



Module Name:    pkgsrc
Committed By:   wiz
Date:           Tue Mar 12 17:50:13 UTC 2024

Added Files:
        pkgsrc/devel/gprbuild: DESCR Makefile PLIST buildlink3.mk distinfo
            version.mk
        pkgsrc/devel/gprbuild/files: buildlink.cgpr
        pkgsrc/devel/gprbuild/patches: patch-Makefile patch-bootstrap.sh
            patch-deps_xmlada_Makefile.in patch-gpr_gpr.gpr
            patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb
            patch-gpr_src_gpr_imports.c patch-gprbuild.gpr

Log Message:
devel/gprbuild: import gprbuild-24.0.0

Packaged for wip by Dmytro Kazankov.

GPRbuild build system

GPRbuild is an advanced build system designed to help automate the construction
of multi-language systems.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/gprbuild/DESCR \
    pkgsrc/devel/gprbuild/Makefile pkgsrc/devel/gprbuild/PLIST \
    pkgsrc/devel/gprbuild/buildlink3.mk pkgsrc/devel/gprbuild/distinfo \
    pkgsrc/devel/gprbuild/version.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/gprbuild/files/buildlink.cgpr
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/gprbuild/patches/patch-Makefile \
    pkgsrc/devel/gprbuild/patches/patch-bootstrap.sh \
    pkgsrc/devel/gprbuild/patches/patch-deps_xmlada_Makefile.in \
    pkgsrc/devel/gprbuild/patches/patch-gpr_gpr.gpr \
    pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb \
    pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr_imports.c \
    pkgsrc/devel/gprbuild/patches/patch-gprbuild.gpr

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

Added files:

Index: pkgsrc/devel/gprbuild/DESCR
diff -u /dev/null pkgsrc/devel/gprbuild/DESCR:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/DESCR Tue Mar 12 17:50:12 2024
@@ -0,0 +1,4 @@
+GPRbuild build system
+
+GPRbuild is an advanced build system designed to help automate the construction
+of multi-language systems.
Index: pkgsrc/devel/gprbuild/Makefile
diff -u /dev/null pkgsrc/devel/gprbuild/Makefile:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/Makefile      Tue Mar 12 17:50:12 2024
@@ -0,0 +1,88 @@
+# $NetBSD: Makefile,v 1.1 2024/03/12 17:50:12 wiz Exp $
+
+.include "version.mk"
+
+DISTNAME=      gprbuild-${GPRBUILD_VERSION}
+CATEGORIES=    devel
+MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=AdaCore/}
+GITHUB_TAG=    v${PKGVERSION_NOREV}
+
+HOMEPAGE=      https://github.com/AdaCore/gprbuild
+COMMENT=       GPRbuild 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
+
+HAS_CONFIGURE= yes
+
+GCC_REQD+=     13
+
+OBJDIR=                ${WRKDIR}/build
+BOOTSTRAPDIR=  ${WRKDIR}/bootstrap
+CGPRDIR=       ${WRKDIR}
+
+# 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}
+CONFIGURE_ARGS+=       SOURCE_DIR=${WRKSRC}
+
+BUILD_DIRS=            ${OBJDIR}
+MAKE_FILE=             ${WRKSRC}/Makefile
+BUILD_MAKE_FLAGS=      GPRBUILD_OPTIONS='--config=${CGPRDIR}/buildlink.cgpr -aP ${WRKDIR}/.buildlink/share/gpr'
+
+INSTALL_DIRS=          ${OBJDIR}
+INSTALL_MAKE_FLAGS=    GPRBUILD_OPTIONS='--config=${CGPRDIR}/buildlink.cgpr -aP ${WRKDIR}/.buildlink/share/gpr'
+INSTALL_MAKE_FLAGS+=   GPRINSTALL_OPTIONS='--config=${CGPRDIR}/buildlink.cgpr -aP ${WRKDIR}/.buildlink/share/gpr'
+
+SUBST_CLASSES+=                        buildlink
+SUBST_STAGE.buildlink=         post-configure
+SUBST_FILES.buildlink=         ../buildlink.cgpr
+SUBST_MESSAGE.buildlink=       Set work directory path in config project
+SUBST_VARS.buildlink=          WRKDIR
+
+GENERATE_PLIST+= \
+       cd ${DESTDIR}${PREFIX} && \
+       ${FIND} bin libexec share \( -type f -or -type l \) -print | ${SORT};
+
+.include "../../mk/bsd.prefs.mk"
+
+pre-configure:
+       ${RUN} ${CP} ${PKGDIR}/files/buildlink.cgpr ${CGPRDIR}/
+       ${RUN} ${MKDIR} ${OBJDIR}
+
+post-configure:
+       ${RUN} cd ${WRKSRC}/deps/xmlada \
+       && set -x ; env ${CONFIGURE_ENV} \
+       ./configure \
+           --prefix=${WRKDIR}/.buildlink
+
+pre-build:
+# Bootstrap build
+       ${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
+# 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} all install GPROPTS='--config=${CGPRDIR}/buildlink.cgpr'
+
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/devel/gprbuild/PLIST
diff -u /dev/null pkgsrc/devel/gprbuild/PLIST:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/PLIST Tue Mar 12 17:50:12 2024
@@ -0,0 +1,174 @@
+@comment $NetBSD: PLIST,v 1.1 2024/03/12 17:50:12 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/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
Index: pkgsrc/devel/gprbuild/buildlink3.mk
diff -u /dev/null pkgsrc/devel/gprbuild/buildlink3.mk:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/buildlink3.mk Tue Mar 12 17:50:12 2024
@@ -0,0 +1,17 @@
+# $NetBSD: buildlink3.mk,v 1.1 2024/03/12 17:50:12 wiz Exp $
+
+BUILDLINK_TREE+=       gprbuild
+
+.if !defined(GPRBUILD_BUILDLINK3_MK)
+GPRBUILD_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gprbuild+=       gprbuild>=24
+BUILDLINK_ABI_DEPENDS.gprbuild+=       gprbuild>=24.0.0
+BUILDLINK_PKGSRCDIR.gprbuild=          ../../devel/gprbuild
+BUILDLINK_DEPMETHOD.gprbuild?=         build
+
+BUILDLINK_FILES.gprbuild+=     bin/gpr* libexec/gprbuild/* share/gpr/* share/gprbuild/*
+
+.endif
+
+BUILDLINK_TREE+=       -gprbuild
Index: pkgsrc/devel/gprbuild/distinfo
diff -u /dev/null pkgsrc/devel/gprbuild/distinfo:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/distinfo      Tue Mar 12 17:50:12 2024
@@ -0,0 +1,18 @@
+$NetBSD: distinfo,v 1.1 2024/03/12 17:50:12 wiz Exp $
+
+BLAKE2s (AdaCore-gprconfig_kb-v24.0.0.tar.gz) = e39c1e70b80923db53f0e6c4687536fcbfdc951209a34dc039423f9cc31319fa
+SHA512 (AdaCore-gprconfig_kb-v24.0.0.tar.gz) = 1bd28b7eba57a8952635f3fb61e06278935c31ed196182e19e9e8c2ffa3edbccea5a9b97b3f5a3c820e7c3f5b6878d87f7b42d66a7f57e083d0b56cb91a6eb84
+Size (AdaCore-gprconfig_kb-v24.0.0.tar.gz) = 43010 bytes
+BLAKE2s (AdaCore-xmlada-v24.0.0.tar.gz) = a02dae17a91d326f06fc85e9b69ee5bfe181ab97ca3f7e3a846b71bc5928b643
+SHA512 (AdaCore-xmlada-v24.0.0.tar.gz) = 4e6773a5fdf9b6ebb5afca913d77aba9f697768f28ef9b23b9277aa4ea4ce09de4e53655dd5559e2326ff847327adb53fa6b776775aa923100a2624df415c97d
+Size (AdaCore-xmlada-v24.0.0.tar.gz) = 1053363 bytes
+BLAKE2s (gprbuild-24.0.0.tar.gz) = d8279a6ae9f2df9fa76fa5eccb9d58a39f0a71cf27773ed140f2e20f93778e12
+SHA512 (gprbuild-24.0.0.tar.gz) = 09da4d54f2f151e9f9453e1a459533e2373eb5d4c51831be2bf90964ebcf653752de2f8b271c77f7b599f62146516fc60258ec3c96779fa2b52cd52979c6bd03
+Size (gprbuild-24.0.0.tar.gz) = 959615 bytes
+SHA1 (patch-Makefile) = 2feb8ed77093d88d70163366206ab4e4a716614a
+SHA1 (patch-bootstrap.sh) = f314016c046426d3f2a40013a9332cf433a4196a
+SHA1 (patch-deps_xmlada_Makefile.in) = 98632303e6829b0540abeca6a5a7cd427b455adf
+SHA1 (patch-gpr_gpr.gpr) = 28c7779f044db45b1daa029833c39e9c818fa061
+SHA1 (patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb) = d0acc610cce5a2a24b00efa196a658cbfd0afe77
+SHA1 (patch-gpr_src_gpr_imports.c) = 945eefee50b198695ade7a4b88d4f87dd50f7925
+SHA1 (patch-gprbuild.gpr) = 557472a3b1fca73e14434b8ecd614e4fdfa726be
Index: pkgsrc/devel/gprbuild/version.mk
diff -u /dev/null pkgsrc/devel/gprbuild/version.mk:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/version.mk    Tue Mar 12 17:50:12 2024
@@ -0,0 +1,3 @@
+# $NetBSD: version.mk,v 1.1 2024/03/12 17:50:12 wiz Exp $
+
+GPRBUILD_VERSION:=     24.0.0

Index: pkgsrc/devel/gprbuild/files/buildlink.cgpr
diff -u /dev/null pkgsrc/devel/gprbuild/files/buildlink.cgpr:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/files/buildlink.cgpr  Tue Mar 12 17:50:13 2024
@@ -0,0 +1,143 @@
+configuration project default is
+   for Target use "x86_64-netbsd";
+   for Canonical_Target use "x86_64-netbsd";
+   for Inherit_Source_Path ("C++") use ("C");
+   for Inherit_Source_Path ("Asm_Cpp") use ("Asm");
+   for Default_Language use "Ada";
+   
+   for Archive_Builder  use ("ar", "cr");
+   for Archive_Builder_Append_Option use ("q");
+   for Archive_Indexer  use ("ranlib");
+   for Archive_Suffix   use ".a";
+   
+   for Symbolic_Link_Supported use "true";
+   for Library_Major_Minor_Id_Supported use "true";
+   for Library_Builder  use "@WRKDIR@/.buildlink/libexec/gprbuild/gprlib";
+   for Library_Support  use "full";
+   for Shared_Library_Prefix use "lib";
+   for Shared_Library_Minimum_Switches use ("-shared");
+   for Library_Version_Switches use ("-Wl,-soname,");
+
+   for Shared_Library_Suffix use ".so";
+   for Library_Auto_Init_Supported use "true";
+   for Run_Path_Option  use ("-Wl,-z,origin,-rpath,");
+   for Run_Path_Origin use "$ORIGIN";
+   for Library_Encapsulated_Supported use "true";
+   for Library_Encapsulated_Options use ("-shared", "-static-libgcc");
+   
+   for Toolchain_Version ("Ada") use "GNAT 13.2.0";
+   for Runtime_Dir       ("Ada") use "@WRKDIR@/.buildlink/gcc13-gnat/lib/gcc/x86_64--netbsd/13.2.0";
+
+   package Builder is
+      for Executable_Suffix use "";
+   end Builder;
+
+   package Compiler is
+      for Driver                   ("Ada") use "@WRKDIR@/.gcc/bin/gcc";
+      for Driver              ("C") use "@WRKDIR@/.gcc/bin/gcc";
+      for Driver              ("C++") use "@WRKDIR@/.gcc/bin/g++";
+      for Language_Kind            ("Ada") use "unit_based";
+      for Dependency_Kind          ("Ada") use "ALI_File";
+      for Leading_Required_Switches        ("Ada") use
+      ("-c", "-x", "ada", "-gnatA")
+             & Compiler'Leading_Required_Switches ("Ada");
+
+      for Mapping_File_Switches    ("Ada") use ("-gnatem=");
+      for Mapping_Spec_Suffix      ("Ada") use "%s";
+      for Mapping_Body_Suffix      ("Ada") use "%b";
+      for Config_File_Switches     ("Ada") use ("-gnatec=");
+      for Include_Path_File     ("Ada") use "ADA_PRJ_INCLUDE_FILE";
+      
+      for Multi_Unit_Switches ("Ada") use ("-gnateI");
+      for Multi_Unit_Object_Separator ("Ada") use "~";
+      for Config_Body_File_Name ("Ada") use
+           "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"");";
+      for Config_Spec_File_Name ("Ada") use
+           "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"");";
+      for Config_Body_File_Name_Index ("Ada") use
+           "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"", Index => %i);";
+      for Config_Spec_File_Name_Index ("Ada") use
+           "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"", Index => %i);";
+      for Config_Body_File_Name_Pattern ("Ada") use
+           "pragma Source_File_Name_Project " &
+           "  (Body_File_Name  => ""*%b""," &
+           "   Casing          => %c," &
+           "   Dot_Replacement => ""%d"");";
+      for Config_Spec_File_Name_Pattern ("Ada") use
+           "pragma Source_File_Name_Project " &
+           "  (Spec_File_Name  => ""*%s""," &
+           "   Casing          => %c," &
+           "   Dot_Replacement => ""%d"");";
+      for Config_File_Unique    ("Ada") use "False";
+      for Leading_Required_Switches ("Ada") use
+        Compiler'Leading_Required_Switches ("Ada") & ("--RTS=@WRKDIR@/.buildlink/gcc13-gnat/lib/gcc/x86_64--netbsd/13.2.0");
+        
+      for Leading_Required_Switches   ("C") use
+         ("-c", "-x", "c") & Compiler'Leading_Required_Switches ("C");
+      for Include_Switches_Via_Spec   ("C") use ("cc1", "-I");
+      for Max_Command_Line_Length use "8192";
+      for Response_File_Format    ("C") use "GCC_GNU";
+      for Dependency_Switches ("C") use ("-MMD", "-MF", "");
+      for PIC_Option ("C") use ("-fPIC");
+      
+      for Leading_Required_Switches   ("C++") use
+        ("-c", "-x", "c++") &
+        Compiler'Leading_Required_Switches ("C++");
+      for Dependency_Switches ("C++") use ("-MMD", "-MF", "");
+      for Include_Switches_Via_Spec ("C++") use ("cc1plus", "-I");
+      for Max_Command_Line_Length use "8192";
+      for Response_File_Format    ("C++") use "GCC_GNU";
+      for PIC_Option      ("C++") use ("-fPIC");
+   end Compiler;
+
+   package Naming is
+      for Spec_Suffix ("Ada") use ".ads";
+      for Body_Suffix ("Ada") use ".adb";
+
+      for Body_Suffix ("Asm") use ".s";
+      for Body_Suffix ("Asm2") use ".asm";
+      for Body_Suffix ("Asm_Cpp") use ".S";
+
+      for Body_Suffix ("C") use ".c";
+      for Spec_Suffix ("C") use ".h";
+
+      for Spec_Suffix ("C++") use ".hh";
+      for Body_Suffix ("C++") use ".cpp";
+
+      for Body_Suffix ("Fortran") use ".f";
+
+      for Casing use "lowercase";
+      for Dot_Replacement use "-";
+   end Naming;
+
+   package Binder is
+      for Objects_Path_File     ("Ada") use "ADA_PRJ_OBJECTS_FILE";
+      for Driver         ("Ada") use
+          "@WRKDIR@/.buildlink/libexec/gprbuild/gprbind";
+      for Required_Switches ("Ada") use
+        Binder'Required_Switches ("Ada") & ("--RTS=@WRKDIR@/.buildlink/gcc13-gnat/lib/gcc/x86_64--netbsd/13.2.0");
+   end Binder;
+   
+   package Linker is
+      for Map_File_Option         use "-Wl,-Map,";
+      for Driver use Compiler'Driver ("Ada");
+      for Driver use Compiler'Driver ("C++");
+      for Response_File_Format use "GNU";
+      for Max_Command_Line_Length use "8192";
+   end Linker;
+
+   package Clean is
+      for Source_Artifact_Extensions ("Ada") use (".dg", ".rep");
+      for Object_Artifact_Extensions ("Ada") use (".s", ".ci", ".gcno", ".su");
+
+      for Source_Artifact_Extensions ("C")   use (".gli");
+      for Object_Artifact_Extensions ("C")   use (".s", "ci", ".gcno", ".su");
+
+      for Source_Artifact_Extensions ("C++") use (".gli");
+      for Object_Artifact_Extensions ("C++") use (".s", "ci", ".gcno", ".su");
+      --  Remove the files generated by gnatinspect (in the context of GPS)
+      for Artifacts_In_Object_Dir use Clean'Artifacts_In_Object_Dir
+         & ("gnatinspect.*");
+   end Clean;
+   
+end default;

Index: pkgsrc/devel/gprbuild/patches/patch-Makefile
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-Makefile:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-Makefile        Tue Mar 12 17:50:13 2024
@@ -0,0 +1,48 @@
+$NetBSD: patch-Makefile,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Make it possible to set install parameters, fix install parameters
+
+--- Makefile.orig      2023-10-09 21:31:11.000000000 +0300
++++ Makefile   2023-12-26 15:07:17.160442141 +0200
+@@ -45,6 +45,7 @@
+ GTARGET=--target=$(TARGET)
+ endif
+ 
++GPRINSTALL_OPTIONS=
+ INSTALLER=$(LIB_INSTALLER)
+ EXEC_INSTALLER=$(INSTALLER) -XBUILD=${BUILD}
+ 
+@@ -72,13 +73,13 @@
+ 
+ # 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) \
+@@ -86,7 +87,7 @@
+ 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
Index: pkgsrc/devel/gprbuild/patches/patch-bootstrap.sh
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-bootstrap.sh:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-bootstrap.sh    Tue Mar 12 17:50:13 2024
@@ -0,0 +1,26 @@
+$NetBSD: patch-bootstrap.sh,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Fix out-of-tree bootstrap build and fix link time warning on NetBSD
+
+--- bootstrap.sh.orig  2023-10-09 21:31:11.000000000 +0300
++++ bootstrap.sh       2024-03-12 11:02:08.865606070 +0200
+@@ -90,13 +90,16 @@
+ 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
++elif [ "$UName" = "NetBS" ]
++then
++      ln ${srcdir}/${PutUsage}__netbsd.adb ${srcdir}/${PutUsage}.adb
+ else
+-      ln -s $PWD/${PutUsage}__unix.adb ${PutUsage}.adb
++      ln -s ${srcdir}/${PutUsage}__unix.adb ${srcdir}/${PutUsage}.adb
+ fi
+ 
+ # Build
Index: pkgsrc/devel/gprbuild/patches/patch-deps_xmlada_Makefile.in
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-deps_xmlada_Makefile.in:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-deps_xmlada_Makefile.in Tue Mar 12 17:50:13 2024
@@ -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}
Index: pkgsrc/devel/gprbuild/patches/patch-gpr_gpr.gpr
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-gpr_gpr.gpr:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-gpr_gpr.gpr     Tue Mar 12 17:50:13 2024
@@ -0,0 +1,16 @@
+$NetBSD: patch-gpr_gpr.gpr,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Fix link time warning on NetBSD
+
+--- gpr/gpr.gpr.orig   2023-10-09 21:31:11.000000000 +0300
++++ gpr/gpr.gpr        2024-03-12 10:52:35.183409588 +0200
+@@ -87,7 +87,8 @@
+              for Body ("GPR.Jobserver") use "gpr-jobserver__win.adb";
+          when "UNIX" =>
+              for Body ("GPR.Util.Put_Resource_Usage")
+-               use "gpr-util-put_resource_usage__unix.adb";
++--               use "gpr-util-put_resource_usage__unix.adb";
++               use "gpr-util-put_resource_usage__netbsd.adb";
+       end case;
+    end Naming;
+
Index: pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb     Tue Mar 12 17:50:13 2024
@@ -0,0 +1,127 @@
+$NetBSD: patch-gpr_src_gpr-util-put__resource__usage____netbsd.adb,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Fix warning at link stage on NetBSD, it is a modified gpr/src/gpr-util-put_resource_usage__unix.adb file
+
+--- /dev/null  2024-03-11 16:30:59.689872070 +0200
++++ gpr/src/gpr-util-put_resource_usage__netbsd.adb    2024-03-11 16:30:59.725273095 +0200
+@@ -0,0 +1,120 @@
++------------------------------------------------------------------------------
++--                                                                          --
++--                           GPR PROJECT MANAGER                            --
++--                                                                          --
++--                     Copyright (C) 2022-2023, AdaCore                     --
++--                                                                          --
++-- This library is free software;  you can redistribute it and/or modify it --
++-- under terms of the  GNU General Public License  as published by the Free --
++-- Software  Foundation;  either version 3,  or (at your  option) any later --
++-- version. This library is distributed in the hope that it will be useful, --
++-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
++-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE.                            --
++--                                                                          --
++-- As a special exception under Section 7 of GPL version 3, you are granted --
++-- additional permissions described in the GCC Runtime Library Exception,   --
++-- version 3.1, as published by the Free Software Foundation.               --
++--                                                                          --
++-- You should have received a copy of the GNU General Public License and    --
++-- a copy of the GCC Runtime Library Exception along with this program;     --
++-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
++-- <http://www.gnu.org/licenses/>.                                          --
++--                                                                          --
++------------------------------------------------------------------------------
++
++pragma Warnings (Off, "is an internal GNAT unit");
++with GNAT.Sockets.Thin_Common;
++pragma Warnings (On, "is an internal GNAT unit");
++
++separate (GPR.Util)
++procedure Put_Resource_Usage (Filename : String) is
++   package STC renames GNAT.Sockets.Thin_Common;
++
++   type Rusage is record
++      ru_utime    : STC.Timeval;  -- user time used
++      ru_stime    : STC.Timeval;  -- system time used
++      ru_maxrss   : Long_Integer; -- maximum resident set size
++      ru_ixrss    : Long_Integer; -- integral shared memory size
++      ru_idrss    : Long_Integer; -- integral unshared data size
++      ru_isrss    : Long_Integer; -- integral unshared stack size
++      ru_minflt   : Long_Integer; -- page reclaims
++      ru_majflt   : Long_Integer; -- page faults
++      ru_nswap    : Long_Integer; -- swaps
++      ru_inblock  : Long_Integer; -- block input operations
++      ru_oublock  : Long_Integer; -- block output operations
++      ru_msgsnd   : Long_Integer; -- messages sent
++      ru_msgrcv   : Long_Integer; -- messages received
++      ru_nsignals : Long_Integer; -- signals received
++      ru_nvcsw    : Long_Integer; -- voluntary context switches
++      ru_nivcsw   : Long_Integer; -- involuntary context switches
++   end record with Convention => C;
++
++   Log : File_Type;
++
++   RUSAGE_SELF     : constant := 0;
++   RUSAGE_CHILDREN : constant := -1;
++   RUSAGE_THREAD   : constant := 1;
++
++   procedure Print (Who : Integer);
++
++   -----------
++   -- Print --
++   -----------
++
++   procedure Print (Who : Integer) is
++      Usage : Rusage;
++      Longs : array (1 .. 14) of Long_Integer
++        with Import, Convention => C, Address => Usage.ru_maxrss'Address;
++
++      procedure Print (This : STC.Timeval);
++
++      function Getrusage (Who : Integer; usage : out Rusage) return Integer
++        with Import, Convention => C, External_Name => "__netbsd_getrusage";
++
++      -----------
++      -- Print --
++      -----------
++
++      procedure Print (This : STC.Timeval) is
++
++         function No_1st_Space (S : String) return String is
++           (if S /= "" and then S (S'First) = ' '
++            then S (S'First + 1 .. S'Last) else S);
++
++         Uimg : constant String := No_1st_Space (This.Tv_Usec'Img);
++      begin
++         Put (Log, This.Tv_Sec'Img);
++         Put (Log, '.');
++         if Uimg'Length < 6 then
++            Put (Log, (1 .. 6 - Uimg'Length => '0'));
++         end if;
++         Put (Log, Uimg);
++      end Print;
++
++   begin
++      if Getrusage (Who, Usage) /= 0 then
++         Put_Line (Log, "error: " & GNAT.OS_Lib.Errno_Message);
++         return;
++      end if;
++
++      Print (Usage.ru_utime);
++      Print (Usage.ru_stime);
++
++      for L of Longs loop
++         Put (Log, L'Img);
++      end loop;
++
++      New_Line (Log);
++
++      pragma Assert (Longs (Longs'Last)'Address = Usage.ru_nivcsw'Address);
++   end Print;
++
++begin
++   Create (Log, Out_File, Filename);
++
++   Print (RUSAGE_THREAD);
++   Print (RUSAGE_SELF);
++   Print (RUSAGE_CHILDREN);
++
++   Close (Log);
++end Put_Resource_Usage;
Index: pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr_imports.c
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr_imports.c:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-gpr_src_gpr_imports.c   Tue Mar 12 17:50:13 2024
@@ -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;
Index: pkgsrc/devel/gprbuild/patches/patch-gprbuild.gpr
diff -u /dev/null pkgsrc/devel/gprbuild/patches/patch-gprbuild.gpr:1.1
--- /dev/null   Tue Mar 12 17:50:13 2024
+++ pkgsrc/devel/gprbuild/patches/patch-gprbuild.gpr    Tue Mar 12 17:50:13 2024
@@ -0,0 +1,16 @@
+$NetBSD: patch-gprbuild.gpr,v 1.1 2024/03/12 17:50:13 wiz Exp $
+
+Remove redundant file from install list
+
+--- gprbuild.gpr.orig  2023-10-09 21:31:11.000000000 +0300
++++ gprbuild.gpr       2023-12-26 17:54:25.847810172 +0200
+@@ -165,7 +165,8 @@
+                when "Windows_NT" =>
+                   for Artifacts ("bin") use ("src/gprinstall.exe.manifest");
+                when "UNIX" =>
+-                  for Artifacts (".") use ("doinstall");
++--                  for Artifacts (".") use ("doinstall");
++                  null;
+             end case;
+ 
+          when "internal" =>



Home | Main Index | Thread Index | Old Index