summaryrefslogtreecommitdiff
path: root/mk
AgeCommit message (Collapse)AuthorFilesLines
2022-12-15options.description: Add QT6triaxx1-0/+1
2022-12-09mk/compiler/ccache.mk: Use ccache3gdt1-2/+10
The update to ccache4 caused a large increase in dependencies, breaking builds using e.g. "PKGSRC_COMPILER=ccache gcc", and the pre-update discussion of consequences and how to deal with it did not occur. The right long-term solution is to have a variable to select which ccache is used, and per-version circular dependency lists, accomoding both those who wish to use ccache 3 on low-resource machines and those who wish to use ccache 4. With 20224 branch manager hat on, I don't want to deal with ccache instability (or any instability at all now that we are past 12/1), so I have set ccache.mk to depend on ccache3, the status quo ante argumentum. Note that if one has any ccache installed, it will be used, so people that want to use ccache4 can just install it and then flip on "PKGSRC_COMPILER=ccache gcc".
2022-12-06mk: Use gcc12 for gfortran on Darwin/aarch64.jperkin1-1/+5
2022-12-02mk: allow oracle-jdk17 for NetBSD/x86_64wiz1-1/+2
2022-12-02mk: Switch Darwin/Linux default to oracle-jdk17.jperkin1-4/+7
2022-12-02mk: Add support for oracle-jdk17.jperkin1-3/+15
2022-11-28check-files.mk: fix execution when CHECK_FILES_STRICT=yesgutteridge1-3/+3
Commit r. 1.2044 "mk: Don't define DO_NADA to true." of bsd.pkg.mk caused the checks executed when CHECK_FILES_STRICT=yes is set to fail (e.g., "/bin/sh: -c: line 1: syntax error near unexpected token `;'"). (The pre-existing coding style that uses "true;" rather than a bare ":" instead has been retained, in case there is an obscure (?) reason for that approach.)
2022-11-24mk: Remove XXX comment.jperkin1-2/+1
The reason why BUILDLINK_FILES_CMD does not use "pkg_info -qL" instead of "pkg_info -f" is that -qL returns the full path of the files, whereas -f already strips the prefix, so using -qL would not provide any advantage, for example we would still need to call sed to remove the prefix.
2022-11-24mk: Switch previous to use "|| ${TRUE}" instead.jperkin1-2/+2
The intent here is to simply ensure that the filter pipeline returns true, and there's no need to fork an external process to do that.
2022-11-24mk: Fix buildlink3 of builtin packages like sqlite3 under NetBSDryoon1-2/+2
I have not investegated deeper yet, inputmethod/uim builds fine with this change. Revert removing cat.
2022-11-24mk: Revert override-tools performance change.jperkin1-29/+24
Unfortunately Linux appears to have a much smaller limit on the number of arguments allowed, so while this change was absolutely fine on many other platforms, on Linux it fails with: bmake[1]: exec(/bin/bash) failed (Argument list too long) It will hopefully be possible to rearchitect the change in a different way to avoid this, while still retaining most of the performance win.
2022-11-23mk: Improve override-tools performance.jperkin1-24/+29
Use bmake loop expansion to create all of the tools within the same shell instance rather than spawning a new one for each, as well as aliases and executable suffixes. Saves over 100 execs per build.
2022-11-23mk: Only add obsolete GCC_REQD if required.jperkin1-5/+11
Each GCC_REQD entry has an associated cost as it invokes pkg_admin to see if it's suitable, so only add 2.8.0 and 3.0 when absolutely necessary.
2022-11-23mk: Minor performance improvement for error-check.jperkin1-6/+12
Avoid running rm/cat/mv on non-existent or zero-length files.
2022-11-23mk: Miscellaneous performance improvements.jperkin11-51/+61
Inline ${RUN} calls where appropriate. Call mkdir directly rather than via a shell when invoked as a single command. Avoid unnecessary mkdir calls.
2022-11-23mk: plist performance improvements.jperkin1-12/+15
Inline ${RUN} calls where appropriate. Avoid useless use of cat(1).
2022-11-23mk: Remove unnecessary execs in various show targets.jperkin1-13/+16
2022-11-23mk: Only create GNU missing wrappers when needed.jperkin3-8/+12
There is no point creating wrappers that warn about missing particular autoconf, automake, and intltool commands if we aren't using GNU configure at all. Saves around 140 execs for every package without GNU_CONFIGURE=yes.
2022-11-23mk: Cache unprivileged user/group command output.jperkin1-1/+4
2022-11-23mk: Cache _UNAME_V on SunOS.jperkin1-1/+4
2022-11-23mk: check performance improvements.jperkin11-69/+67
Inline ${RUN} calls where appropriate. Avoid useless use of cat(1). Avoid unnecessary calls to rm. Use xargs(1) to reduce number of calls to egrep, previously it was called once per file. The last change in particular can have huge performance improvements, for example saving around 5,000 execs during the build of ansible-core, and significantly reducing the build and system times.
2022-11-23mk: Limit buildlink message to PKG_DEBUG_LEVEL > 0.jperkin1-1/+3
ECHO_BUILDLINK_MSG only echos something if PKG_DEBUG_LEVEL > 0 anyway, so previously we were invoking a shell for each buildlink3 dependency to do precisely nothing.
2022-11-23mk: pkginstall performance improvements.jperkin1-125/+103
Inline ${RUN} calls where appropriate. Use builtin "test -s" instead of our custom awk script when testing single files for zero size. Avoid unnecessary calls to mkdir and rm. Improve logic of certain targets that would previously perform some work, only to later remove it if a certain condition failed. Saves around 100 execs per build.
2022-11-23mk: install performance improvements.jperkin2-26/+33
Inline ${RUN} calls where appropriate. Only call mkdir and rm when necessary. Remove useless use of cat(1). Saves at least 12 execs per build, but often a lot more depending on the number of files that were not stripped or had CTF conversion applied.
2022-11-23mk: pkgformat performance improvements.jperkin5-148/+157
Inline ${RUN} calls where appropriate. Only call mkdir when necessary. Remove useless use of cat(1). Avoid unnecessary expr(1). Use bmake loop expansion. Avoid unnecessary temporary files. Saves around 50 execs per build.
2022-11-23mk: buildlink3 performance improvements.jperkin1-27/+28
Inline commands into the same ${RUN} where appropriate. Use a single mkdir for multiple directories rather than a command per directory. Test for the directory before calling mkdir where it may already exist to avoid an unnecessary exec. Remove useless use of cat(1). Saves around 20 execs per build.
2022-11-23mk: Improve BUILDLINK_PREFIX performance.jperkin1-4/+2
Just query LOCALBASE from the package rather than relying on sed to parse the output of "pkg_info -qp". Also remove a pointless 'true' line.
2022-11-23mk: Don't define DO_NADA to true.jperkin3-7/+7
Ironically, DO_NADA was not doing nothing, it was invoking shells simply to run true. Now that we are actually doing nothing, we're saving around 160 shell execs per build!
2022-11-23mk: Improve cwrapper generation performance.jperkin1-21/+29
Use bmake loop expansion and inline commands to handle wrapper generation in just a single shell per-wrapper. Saves at least around 100 execs per package, with some packages and platforms saving even more depending on the number of transformations performed.
2022-11-23mk: Improve pbulk-index performance.jperkin1-18/+22
Avoid forking a new shell for every 'echo' command, and use bmake loop expansion to handle MULTI_VERSION section by a single shell. Reduces the number of shells invoked during the scan phase by over 200,000, reducing system time and speeding up scan times.
2022-11-23mk: Improve makevars generation performance.jperkin1-20/+11
Ironically, for something that was designed to improve performance, the way the previous version of this worked actually made builds slower! Use bmake loop expansions, remove useless use of cat, and reduce ${RUN} calls to not only simplify the code but make it significantly faster.
2022-11-22mk/platform: Remove old SunOS --rpath transformation.jperkin1-4/+1
This is already handled in cwrappers, if necessary.
2022-11-22mk/tools: Don't ever use GNU false instead of builtin.jperkin1-5/+1
2022-11-22mk/tools: Avoid print(1) when using bash on SunOS.jperkin1-1/+16
bash does not have a print builtin, and on SunOS there is a /usr/bin/print which is found by the libtool configure script (which has also made its way into lots of third-party packages) and used for printing strings. Create a broken print wrapper so that this is not found and the printf builtin is used instead, significantly improving performance.
2022-11-22mk/tools: Switch to pwd builtin on SunOS.jperkin1-2/+2
pkgsrc switched to using /bin/pwd back in 2003 due to some undocumented errors in buildlink2, but I don't see any failures with this in bulk builds and it avoids a large number of unnecessary execs. Limited to SunOS for now as that's all I've tested, but other platforms are more than welcome to follow suit.
2022-11-22mk/tools: Sync comments with reality.jperkin1-5/+4
2022-11-21mk: Remove generic SunOS linker argument removals.jperkin1-15/+1
While these were useful in helping many packages to build out of the box, it ended up resulting in some packages installing broken configuration files as their configure tests for supported flags were passing. For example, ruby packages were shipping an rbconfig.rb with LDFLAGS containing -Wl,--no-as-needed, resulting in any ruby software built outside of pkgsrc that required a compiler always failing.
2022-11-16mk: Avoid egrep/fgrep wrappers when using GNU grep.jperkin1-4/+7
A recent GNU grep release has started to add obnoxious warnings when calling egrep/fgrep, so use grep with -E or -F flags respectively to avoid them.
2022-11-15Also buildlink libatomic for mipsel and mipseb (32-bit ports)..he1-1/+3
2022-11-14Also update MASTER_SITE_MOZILLAadam1-3/+3
2022-11-14mk: fix mozilla master sitewiz1-3/+3
Reported by Mike Pumford on pkgsrc-users
2022-11-03mk: Skip many more CTF and debug files by default.jperkin2-4/+18
Leave CTF_FILES_SKIP and STRIP_FILES_SKIP purely for packages to set any additional paths to skip.
2022-11-03mk: Support PKGSRC_CONFIG_SITE.jperkin1-2/+2
Allows users to specify a suitably sanitised and tested CONFIG_SITE file, while retaining the default behaviour of ignoring CONFIG_SITE to avoid surprises.
2022-11-02Darwin.mk: require latest Xcode on Ventura to build with native SDKtnn1-3/+2
2022-10-27Darwin.mk: add macOS Venturatnn1-1/+3
2022-10-27mk/pkgconfig-builtin.mk: Adjust introductory commentgdt1-2/+2
2022-10-25mk: Document the jemalloc option.jperkin1-0/+1
2022-10-25Add description for ps (PostScript) option.prlw11-0/+1
2022-10-25bsd.pkg.clean.mk: Fix "clean-depends" on NetBSD using amd(8)tron1-2/+2
On a NetBSD system using "pkgsrc" mounted via automounter the path to the dependency directories ends up as an absolute path. Prepending "../.." to it creates an invalid path to the directory. Avoid this by executing two separate "cd" commands.
2022-10-24Handle PostgreSQL 15.xadam1-3/+12