Import bmake-20240309
Intersting/relevant changes since bmake-20240108
ChangeLog since bmake-20240108
2024-03-10 Simon J Gerraty <sjg@beast.crufty.net>
* boot-strap: tests can take a long time; use a cookie to
skip them if bmake has not been updated since tests last
ran successfully.
* Makefile: Cygwin handles MANTARGET man
* unit-tests/Makefile: set BROKEN_TESTS for Cygwin
2024-03-09 Simon J Gerraty <sjg@beast.crufty.net>
* VERSION (_MAKE_VERSION): 20240309
Merge with NetBSD make, pick up
o set .ERROR_EXIT to the exit status of .ERROR_TARGET
this allows a .ERROR target to ignore the case of
.ERROR_EXIT==6 which just means that the build actually
failed somewhere else.
2024-03-04 Simon J Gerraty <sjg@beast.crufty.net>
* VERSION (_MAKE_VERSION): 20240303
* var.c: on IRIX we need both inttypes.h and stdint.h
2024-03-01 Simon J Gerraty <sjg@beast.crufty.net>
* VERSION (_MAKE_VERSION): 20240301
Merge with NetBSD make, pick up
o export variables with value from target scope
when appropriate.
2024-02-12 Simon J Gerraty <sjg@beast.crufty.net>
* VERSION (_MAKE_VERSION): 20240212
Merge with NetBSD make, pick up
o remove unneeded conditional-compilation toggles
INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
GMAKEEXPORT NO_REGEX and SUNSHCMD
* configure.in: add check for regex.h
* var.c: replace use of NO_REGEX with HAVE_REGEX_H
2024-02-04 Simon J Gerraty <sjg@beast.crufty.net>
* VERSION (_MAKE_VERSION): 20240204
Merge with NetBSD make, pick up
o var.c: fix some lint (-dL) mode parsing issues
2024-02-02 Simon J Gerraty <sjg@beast.crufty.net>
* VERSION: (_MAKE_VERSION): 20240202
Merge with NetBSD make, pick up
o make.1: note that arg to :D and :U can be empty
o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no
mk/ChangeLog since bmake-20240108
2024-03-09 Simon J Gerraty <sjg@beast.crufty.net>
* install-mk (MK_VERSION): 20240309
* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
want to save the .ERROR_META_FILE
2024-02-20 Simon J Gerraty <sjg@beast.crufty.net>
* install-mk (MK_VERSION): 20240220
* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
do not set .MAIN: dirdeps in sys.dirdeps.mk
dirdeps-targets.mk will do that for top-level builds
and init.mk will do it for others.
This allows a Makefile which has no need of 'dirdeps' to
set .MAIN for itself and "just work".
2024-02-18 Simon J Gerraty <sjg@beast.crufty.net>
* bsd.*.mk: for makefiles that get a bsd. symlink,
use _this in multiple inclusion tags since .PARSEFILE will not
DTRT when such a makefile is included directly by Makefile and
automatically (without bsd. prefix).
Since we cannot guarantee that our sys.mk will be used, we provide
a default _this in each makefile that gets a bsd. prefix such that
the value is the same regardless of bsd. prefix.
* subdir.mk: drop the !target guard on $SUBDIR_TARGETS
2024-02-12 Simon J Gerraty <sjg@beast.crufty.net>
* install-mk (MK_VERSION): 20240212
* SPDX-License-Identifier: BSD-2-Clause
Add SPDX-License-Identifier to inidicate that I consider
my copyright on any of these makefiles equivalent to BSD-2-Clause
* autoconf.mk: allow for configure.ac as currently recommended
* subdir.mk: support @auto
which is replaced with each subdir that
has a [Mm]akefile.
* subdir.mk: include local.subdir.mk if it exists.
* subdir.mk: rework to handle .WAIT
2024-02-11 Simon J Gerraty <sjg@beast.crufty.net>
* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.
2024-02-10 Simon J Gerraty <sjg@beast.crufty.net>
* prog.mk: treat empty SRCS the same as undefined
2024-02-02 Simon J Gerraty <sjg@beast.crufty.net>
* Avoid undefined errors in lint (-dL) mode
* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)
2024-01-28 Simon J Gerraty <sjg@beast.crufty.net>
* install-mk (MK_VERSION): 20240128
* FILES: add ccm.dep.mk for C++ modules
add suffixes.mk for common location for generic SUFFIX rules.
* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
replace OBJ_EXTENSIONS with OBJ_SUFFIXES
* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
and update style (spaces around = etc)
* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
setting OBJS
* meta2deps.py: handle multiple ./ embedded in path better.
2024-03-14 02:14:41 +00:00
|
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
#
|
|
|
|
# $Id: scripts.mk,v 1.5 2024/02/17 17:26:57 sjg Exp $
|
2017-05-10 22:40:27 +00:00
|
|
|
#
|
|
|
|
# @(#) Copyright (c) 2006, Simon J. Gerraty
|
|
|
|
#
|
|
|
|
# This file is provided in the hope that it will
|
|
|
|
# be of use. There is absolutely NO WARRANTY.
|
|
|
|
# Permission to copy, redistribute or otherwise
|
2020-09-05 16:11:04 +00:00
|
|
|
# use this file is hereby granted provided that
|
2017-05-10 22:40:27 +00:00
|
|
|
# the above copyright notice and this notice are
|
2020-09-05 16:11:04 +00:00
|
|
|
# left intact.
|
|
|
|
#
|
2017-05-10 22:40:27 +00:00
|
|
|
# Please send copies of changes and bug-fixes to:
|
|
|
|
# sjg@crufty.net
|
|
|
|
#
|
2013-01-31 16:44:23 +00:00
|
|
|
|
|
|
|
.include <init.mk>
|
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
SCRIPTSGROUPS ?= SCRIPTS
|
|
|
|
SCRIPTSGROUPS := ${SCRIPTSGROUPS:O:u}
|
2013-01-31 16:44:23 +00:00
|
|
|
|
|
|
|
SCRIPTSDIR?= ${BINDIR}
|
|
|
|
SCRIPTSOWN?= ${BINOWN}
|
|
|
|
SCRIPTSGRP?= ${BINGRP}
|
|
|
|
SCRIPTSMODE?= ${BINMODE}
|
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
SCRIPTS_INSTALL_OWN?= -o ${SCRIPTSOWN} -g ${SCRIPTSGRP}
|
|
|
|
SCRIPTS_COPY ?= -C
|
|
|
|
|
2013-01-31 16:44:23 +00:00
|
|
|
# how we get script name from src
|
|
|
|
SCRIPTSNAME_MOD?=T:R
|
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
.if !target(buildfiles)
|
|
|
|
.for group in ${SCRIPTSGROUPS}
|
|
|
|
buildfiles: ${${group}}
|
|
|
|
.endfor
|
|
|
|
.endif
|
|
|
|
buildfiles:
|
|
|
|
realbuild: buildfiles
|
2013-01-31 16:44:23 +00:00
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
.for group in ${SCRIPTSGROUPS}
|
|
|
|
.if !empty(${group}) && defined(${group}DIR)
|
|
|
|
.if ${group} != "SCRIPTS"
|
|
|
|
${group}_INSTALL_OWN ?= ${SCRIPTS_INSTALL_OWN}
|
2013-01-31 16:44:23 +00:00
|
|
|
.endif
|
2017-05-10 22:40:27 +00:00
|
|
|
# incase we are staging
|
|
|
|
STAGE_DIR.${group} ?= ${STAGE_OBJTOP}${${group}DIR}
|
2013-01-31 16:44:23 +00:00
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
.for script in ${${group}:O:u}
|
|
|
|
${group}_INSTALL_OWN.${script:T} ?= ${${group}_INSTALL_OWN}
|
|
|
|
${group}DIR.${script:T} ?= ${${group}DIR_${script:T}:U${${group}DIR}}
|
|
|
|
script_mkdir_list += ${${group}DIR.${script:T}}
|
2013-01-31 16:44:23 +00:00
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
${group}NAME.${script} ?= ${${group}NAME_${script:T}:U${script:${SCRIPTSNAME_MOD}}}
|
|
|
|
.if ${${group}NAME.${script}:T} != ${script:T}
|
|
|
|
STAGE_AS_SETS += ${group}
|
|
|
|
STAGE_AS_${script} = ${${group}NAME.${script:T}}
|
|
|
|
stage_as.${group}: ${script}
|
2013-01-31 16:44:23 +00:00
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
installscripts: installscripts.${group}.${script:T}
|
|
|
|
installscripts.${group}.${script:T}: ${script} script_mkdirs
|
|
|
|
${INSTALL} ${SCRIPTS_COPY} ${${group}_INSTALL_OWN.${script:T}} \
|
|
|
|
-m ${SCRIPTSMODE} ${.ALLSRC:Nscript_mkdirs} ${DESTDIR}${${group}DIR}/${${group}NAME.${script:T}}
|
2013-01-31 16:44:23 +00:00
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
.else
|
|
|
|
STAGE_SETS += ${group}
|
|
|
|
stage_files.${group}: ${script}
|
|
|
|
installscripts.${group}: ${script}
|
|
|
|
installscripts: installscripts.${group}
|
2013-01-31 16:44:23 +00:00
|
|
|
.endif
|
|
|
|
|
2017-05-10 22:40:27 +00:00
|
|
|
.endfor # script
|
|
|
|
|
|
|
|
installscripts.${group}: script_mkdirs
|
|
|
|
${INSTALL} ${SCRIPTS_COPY} ${${group}_INSTALL_OWN} -m ${SCRIPTSMODE} \
|
|
|
|
${.ALLSRC:Nscript_mkdirs:O:u} ${DESTDIR}${${group}DIR}
|
|
|
|
|
|
|
|
.endif # !empty
|
|
|
|
.endfor # group
|
|
|
|
|
|
|
|
script_mkdirs:
|
|
|
|
@for d in ${script_mkdir_list:O:u}; do \
|
|
|
|
test -d ${DESTDIR}$$d || \
|
|
|
|
${INSTALL} -d ${SCRIPTS_INSTALL_OWN} -m 775 ${DESTDIR}$$d; \
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
beforeinstall:
|
|
|
|
installscripts:
|
|
|
|
realinstall: installscripts
|
|
|
|
.ORDER: beforeinstall installscripts
|
2013-01-31 16:44:23 +00:00
|
|
|
|