History log of /freebsd-current/share/mk/bsd.progs.mk
Revision Date Author Comments
# 4ea5e107 27-Dec-2023 VexedUXR <ahmadkhalifa570@gmail.com>

<bsd.progs.mk>: Allow using SRCS for common sources

Instead of having to do:

PROGS= program1 program2
SRCS.program1= program1.c common.c
SRCS.program2= program2.c common.c

This can now be done instead:

PROGS= program1 program2
SRCS= common.c
SRCS.program1= program1.c
SRCS.program2= program2.c

This shouldn't effect any existing projects using <bsd.progs.mk>.

Reviewed by: imp, sjg
Pull Request: https://github.com/freebsd/freebsd-src/pull/766


# 6647af9b 04-Nov-2023 Simon J. Gerraty <sjg@FreeBSD.org>

bsd.progs.mk must pass META_XTRAS to gendirdeps.mk

The indirection used by bsd.progs.mk is setting META_XTRAS
means the value needs to be passed in the environment to
gendirdeps.mk, as any expansion before then will be empty.

Remove a now misleading comment from bsd.progs.mk
before it includes bsd.prog.mk

Update gendirdeps.mk to accommodate this.

Reviewed by: stevek


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 7bc797e3 02-Aug-2021 Alex Richardson <arichardson@FreeBSD.org>

Add build system support for ASAN+UBSAN instrumentation

This adds two new options WITH_ASAN/WITH_UBSAN that can be set to
enable instrumentation of all binaries with AddressSanitizer and/or
UndefinedBehaviourSanitizer. This current patch is almost sufficient
to get a complete buildworld with sanitizer instrumentation but in
order to actually build and boot a system it depends on a few more
follow-up commits.

Reviewed By: brooks, kib, markj
Differential Revision: https://reviews.freebsd.org/D31043


# 7fa2f2a6 06-Jan-2021 Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>

Rename NO_WERROR -> MK_WERROR=no

As suggested in D27598. This also supports MK_WERROR.clang=no and
MK_WERROR.gcc=no to support the existing NO_WERROR.<compiler> uses.

Reviewed By: brooks
Differential Revision: https://reviews.freebsd.org/D27601


# 5d0866bc 04-Sep-2019 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Build common sources before recursed PROGS_TARGETS as well when building.

MFC after: 2 weeks
Sponsored by: DellEMC


# 4fc7bd05 10-Jun-2019 Bryan Drewery <bdrewery@FreeBSD.org>

DPSRCS need to be built before recursing.

MFC after: 2 weeks
Sponsored by: DellEMC


# 1c50bec8 30-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

Allow programs to set `NO_SHARED` on a per-PROG basis

This is particularly useful when installing programs for tests that need to be
linked statically, e.g., mini-me from capsicum-test, which is linked statically
to avoid the dynamic library lookup in the upstream project.

Reviewed by: emaste
Approved by: emaste (mentor)
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D19756


# b89cf12c 29-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

PROG_OVERRIDE_VARS should override default values if specified

The behavior prior to this change would not override default values if set in
`bsd.own.mk`, or (in the more general case) globally before `bsd.progs.mk` was
included. This affected `bsd.test.mk` as well, since it consumes
`bsd.progs.mk`.

Some examples of this failing behavior are as follows:

* `BINMODE` defaults to 0555 per `bsd.own.mk`. If someone wanted to set the
`BINMODE` to `NOBINMODE` (0444) for `prog`, for example, like
`BINMODE.prog= ${NOBINMODE}`, `bsd.progs.mk` would not honor the per-PROG
setting.
* An application, `prog`, does not build at `WARNS?= 6`. Before this change,
setting to a lower `WARNS` value, e.g., `WARNS.prog= 3`, would have been
impossible, requiring that `prog` be built from another directory,
the global `WARNS` be lowered, or a per-PROG value needing to be set
across the board. None of the above workarounds is desirable.

This change unbreaks variables defined in `PROG_OVERRIDE_VARS` which have
defaults set before `bsd.progs.mk` is included, by setting them to their
defined values if set on a per-PROG basis.

Reviewed by: asomers
Approved by: emaste (mentor)
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D19755


# 0eb97cca 29-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

Allow users to override CSTD/CXXSTD on a per-prog basis

The current logic for CSTD/CXXSTD requires homogenity as far as the
supported C/C++ standards, which is a sensible default. However, when
dealing with differing versions of C++, some code may compile with C++11, but
not C++17 (for instance). So in order to avoid having people convert over their
code to the new standard, give the users the ability to specify the standard on
a per-program basis.

This will allow a user to override the supporting standard for a set of
programs, mixing C++11 with C++14 (for instance).

Reviewed by: asomers
Apprved by: emaste (mentor)
MFC after: 1 month
MFC with: r345708
Differential Revision: https://reviews.freebsd.org/D19738


# bdbf3440 29-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

Revert r345706: the third time will be the charm

When a review is closed via Phabricator it updates the patch attached to the
review. I downloaded the raw patch from Phabricator, applied it, and repeated
my mistake from r345704 by accident mixing content from D19732 and D19738.

For my own personal sanity, I will try not to mix reviews like this in the
future.

MFC after: 1 month
MFC with: r345706
Approved by: emaste (mentor, implicit)


# 760b1a81 29-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

Standardize `-std=c++* as `CXXSTD`

CXXSTD was added as the C++ analogue to CSTD.

CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`,
otherwise for older versions of g++.

This change standardizes the CXXSTD variable, originally added to
googletest.test.inc.mk as part of r345203.

As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`.

Notes:

This value is not sanity checked in bsd.sys.mk, however, given the two
most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is
likely to work with both toolchains. This method will be refined in the future
to support more variants of C++, as not all versions of clang++ and g++ (for
instance) support C++14, C++17, etc.

Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD.
Example:

Before this commit:
```
CXXFLAGS+= -std=c++14
```

After this commit:
```
CXXSTD= c++14
```

Reviewed by: asomers
Approved by: emaste (mentor)
MFC after: 1 month
MFC with: r345203, r345704, r345705
Relnotes: yes
Tested with: make tinderbox
Differential Revision: https://reviews.freebsd.org/D19732


# 752cabaa 29-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

Revert r345704

I accidentally committed code from two reviews. I will reintroduce the code to
bsd.progs.mk as part of a separate commit from r345704.

Approved by: emaste (mentor, implicit)
MFC after: 2 months
MFC with: r345704


# 9a41926b 29-Mar-2019 Enji Cooper <ngie@FreeBSD.org>

CXXSTD is the C++ analogue to CSTD.

CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`,
otherwise for older versions of g++.

This change standardizes the CXXSTD variable, originally added to
googletest.test.inc.mk as part of r345203.

As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`.

Notes:

This value is not sanity checked in bsd.sys.mk, however, given the two
most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is
likely to work with both toolchains. This method will be refined in the future
to support more variants of C++, as not all versions of clang++ and g++ (for
instance) support C++14, C++17, etc.

Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD.
Example:

Before this commit:
```
CXXFLAGS+= -std=c++14
```

After this commit:
```
CXXSTD= c++14
```

Reviewed by: asomers
Approved by: emaste (mentor)
MFC after: 1 month
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D19732


# c86ac319 17-Sep-2018 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Don't redundantly process DIRS.

Sponsored by: Dell EMC
Approved by: re (gjb)


# a2f16e53 10-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Add some missed OBJS_SRCS_FILTER from r323637.

Sponsored by: Dell EMC Isilon


# 13353986 24-Jul-2017 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Fix ESTALE errors on NFS while cleaning in directories with PROGS.

- Only recurse on cleanobj/cleandir if there is no .OBJDIR being used.
If we don't recurse then bsd.obj.mk will just rm -rf the OBJDIR dir.
- When recursing on cleanobj/cleandir don't remove dependfiles/dirs
redundantly from the child and main processes. Meaning '.depend', and
'tags', and '.depend.*' will now only be removed from the main
process.
- Stop recursing on 'cleandepend' since the main process can handle
removing all files via the default glob patterns in CLEANDEPENDFILES.
- This reverts r288201, by readding recursion on 'cleanobj', due to
r291635 changing how bsd.subdir.mk handles recursion.

This is primarily targeting ESTALE NFS errors from rm(1) during a
buildworld but is also a performance optimization as both issues fixed
were redundant anyway.

Reported by: cperciva, scottl
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# f59d3d55 09-May-2017 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS+META_MODE: Avoid rebuilding common sources when recursing.

This could be seen in lib/libkvm/tests where kvm_test_common.o was
a common dependency, but one of the recursed progs had a special
CFLAGS+= -I that changed the build command. This would cause
all recursed builds to rebuild while fighting over the meta file
and object file.

Reported by: Mark Millard
MFC after: 1 week
Sponsored by: Dell EMC Isilon


# 017ec330 11-Aug-2016 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Support INTERNALPROG.prog=yes to not install it.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# 423e350b 14-Apr-2016 Enji Cooper <ngie@FreeBSD.org>

Add DEBUG_FLAGS to PROG_VARS and STRIP to PROG_OVERRIDE_VARS

This will allow the variables [*] to be overridden on a per-PROG basis,
which is useful when controlling "stripping" behavior for some tests
that require debug symbols or to be unstripped

DEBUG_FLAGS (similar to CFLAGS) supports appending, whereas STRIP is
an override

*: Due to how STRIP is defined in bsd.own.mk (in addition to
bsd.lib.mk and bsd.prog.mk), and the fact that bsd.test.mk pulls in
bsd.own.mk first, overriding STRIP doesn't work today.

A follow up commit is pending to "rectify" this after additional
testing is done.

Discussed with: bdrewery
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# 5a8d10d7 31-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

We don't support DPLIBS.

Sponsored by: EMC / Isilon Storage Division


# 38551f8f 25-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

We don't have a CPPFLAGS, COPTS or CPUFLAGS.

Sponsored by: EMC / Isilon Storage Division


# 3cf3d039 08-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

DIRDEPS_BUILD+PROGS: Fix staging not respecting (BINDIR|PROGNAME)[._]${PROG}.

Observed in tests/sys/kern.

Sponsored by: EMC / Isilon Storage Division


# 3655b043 08-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Track child meta files.

This will allow Makefile.depend to properly capture all dependencies.
It is not 100% optimal but works. Other options would be to use *.meta
here which would include too much or to keep a Makefile.depend per PROG
and include it from the main Makefile.depend which would not be
straight forward.

Sponsored by: EMC / Isilon Storage Division


# 342863e7 26-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Move PROGS logic to proper place and remove redundant and unneeded logic.

- bsd.progs.mk is safe to include regardless of PROGS/PROGS_CXX/SCRIPTS
being set.
- bsd.progs.mk includes bsd.prog.mk always and will bring in
bsd.files.mk and bsd.obj.mk.
- DIRDEPS_BUILD: There's no need for _SKIP_BUILD or _SKIP_STAGING as the
PROGS were implicitly being built by the staging dependency anyway. This
was also preventing other objects from building if they were not part of
the staging sets.
- DIRDEPS_BUILD: This fixes PROGS without bsd.test.mk not staging.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# db74470b 26-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

DIRDEPS_BUILD: Fix some things building in MAKELEVEL0.

For PROGS this was recursing twice since MAKELEVEL0 is for 'dirdeps'
which then really builds in a sub-make.

Sponsored by: EMC / Isilon Storage Division


# 1fdc8e0e 24-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Only the main process will install INCS.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 62d89d81 24-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Remove the 'build one' optimization since it breaks 'build multiple'

Given PROG1 PROG2, 'make PROG1' would work but 'make PROG1 PROG2' would not.
Just build them as normal in a sub-make to avoid any issues.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# a65a0e56 24-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Only recurse on called targets like done for SUBDIR in r291635.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# dab13282 26-Jan-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Set a value for _RECURSING_PROGS for debugging.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# 8ffe95d6 25-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Follow-up r291338 to handle .d, .y and .l files better as well.

X-MFC-With: r291338
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# c3d4829e 25-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix the "common object" handling to not depend on ".o" if SRCS only contains
headers.

This resulted in 'don't know how to make .o.' errors after the changes in
r289286.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 6c40e2d6 15-Nov-2015 Enji Cooper <ngie@FreeBSD.org>

Add NO_WERROR and WARNS to PROG_OVERRIDE_VARS for bsd.prog.mk compatibility

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# d04fda6c 30-Oct-2015 Enji Cooper <ngie@FreeBSD.org>

Unbreak bsd.progs.mk with PROGS (but not PROGS_CXX) and when invoking the
"one of many" targets, e.g. `make hello_world`, where hello_world is a C
program

Tested with: PROGS and PROGS_CXX
MFC after: 1 week
X-MFC with: r289289
Sponsored by: EMC / Isilon Storage Division


# 5d6be39a 20-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix building in a directory with SUBDIRs and SUBDIR_PARALLEL.

The SUBDIR_PARALLEL feature uses a .for dir in ${SUBDIR} loop. The old code
here for recursing was setting SUBDIR= as a make *argument*. The SUBDIR=
replacement was not actually handled until after the .for loop was unrolled.
This could be seen with a '.info ${SUBDIR} ${dir}' inside of the loop which
showed an empty ${SUBDIR} and a set ${dir}. Setting NO_SUBIDR= before calling
${MAKE} as an *environment* variable handles the case fine and is a more
proper mechanism for disabling subdir handling.

This could be seen with 'make -C tests/sys/kern -j15 SUBDIR_PARALLEL=yes'.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# add9ac40 13-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix support for building a PROG_CXX, and PROG, directly.

For example in lib/atf/libatf-c++/tests/detail it is now possible to
run 'make application_test'. This was intended to worked for PROGS,
but lacked support for PROGS_CXX.

Also fix redefining the main PROG target to recurse. This isn't needed
since the main process is setting PROG/PROG_CXX to handle it directly
via bsd.prog.mk.

MFC after: 3 weeks
Sponsored by: EMC / Isilon Storage Division


# 3be00685 13-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Follow-up r288218 by ensuring common objects are built before recursing.

Some example where this is a problem:
lib/atf/libatf-c++/tests/Makefile:SRCS.${_T}= ${_T}.cpp test_helpers.cpp
lib/atf/libatf-c++/tests/detail/Makefile:SRCS.${_T}= ${_T}.cpp test_helpers.cpp
lib/atf/libatf-c/tests/Makefile:SRCS.${_T}= ${_T}.c test_helpers.c
lib/atf/libatf-c/tests/detail/Makefile:SRCS.${_T}= ${_T}.c test_helpers.c
lib/libpam/libpam/tests/Makefile:SRCS.${test} = ${test}.c ${COMMONSRC}

A similar change may be needed for FILES, SCRIPTS, or INCS, but for now stay
with just SRCS.

Reported by: rodrigc
MFC after: 3 weeks
X-MFC-With: r288218
Sponsored by: EMC / Isilon Storage Division


# 9b4f4918 09-Oct-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Add a new bsd.confs.mk similar to bsd.files.mk or bsd.incs.mk

It defines a CONFS variable for all files supposed to be installed as a
configuration file and handle as such


# 66788fee 25-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

PROGS: Let the parent run the children in parallel.

This seems to work fine.

MFC after: 3 weeks
Sponsored by: EMC / Isilon Storage Division


# e05c9e31 24-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Don't recurse with cleanobj.

bsd.obj.mk handles the needs fine. When an objdir exists it will
just rm -Rf the objdir. When it does not exist though it will
call 'clean' and 'cleandepend', which properly recurse in bsd.progs.mk.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 538c8eea 23-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Document bsd.progs.mk and add more variables overrides.

BINGRP BINMODE BINOWN LINKS MLINKS PROGNAME.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# abb02fa2 23-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix most cases of bsd.progs.mk running duplicate or missing commands.

This mostly fixes an interaction with bsd.test.mk with PROGS and SCRIPTS.
This was most notable with 'make clean' and 'make install', which r281055
and r272055 attempted to address but were inadequate.

It also addresses similar issues in bsd.progs.mk when not using bsd.test.mk.

This also fixes cases of NOT running commands in the parent when using
bsd.progs.mk:
- 'make clean' was not run for the main process for Makefiles which had both
FILES and SUBDIR but no PROGS or SCRIPTS. This usually was just a
leftover Kyuafile.auto. One such example is usr.bin/bmake/tests/sysmk/t1/2.
- 'make obj' was not running in the current directory with bsd.test.mk due
to early inclusion of bsd.subdir.mk. This was not really a problem due to
the SUBDIRS using 'mkdir -p' for their objdirs.

There were subtle bugs causing this wrong behavior:
1. bsd.progs.mk needs to set SCRIPTS to empty when recursing to avoid
the sub-makes from installing, cleaning or building the SCRIPTS;
only the parent make should be doing this. r281055 effectively did
the same but wasn't enough.
2. CLEANFILES may contain (especially from *.test.mk) files which only
the parent should clean, such as from FILES and SCRIPTS. To resolve
sub-makes also cleaning these, reset CLEANFILES and CLEANDIRS in the
children before including bsd.prog.mk. A tempting alternative would be
to only handle CLEANFILES in the parent but then the child bsd.prog.mk
CLEANFILES of per-PROGS wouldn't be setup.
3. bsd.subdir.mk was included too soon in bsd.test.mk. It needs to be
included after bsd.prog.mk as the SCRIPTS logic is short-circuitted if
'install:' is already defined (which bsd.subdir.mk does). There is
actually no need to include bsd.subdir.mk from bsd.test.mk as bsd.prog.mk
and bsd.obj.mk will do so in the proper order. The description in r257095
covers this for FILES and was fixed differently, though changing the
handling of target(install) in bsd.prog.mk may make sense after more
research.
4. bsd.progs.mk had extra logic to handle recursing SCRIPTS if PROGS was
empty, which isn't its business to be doing. SCRIPTS is handled fine
by bsd.prog.mk. This mostly reverts and reworks the fix in r259209 and
partially reverts r272055.
5. bsd.progs.mk has no need to depend 'all:' on SCRIPTS and FILES. These
are handled by bsd.prog.mk/bsd.files.mk fine. This also partially reverts
r272055.
6. bsd.progs.mk was not drop-in safe for bsd.prog.mk. Move the PROGS
check from r273186 to allow it to be used safely.

Specific tested cases:
SCRIPTS:no PROGS:no FILES:yes SUBDIR:yes
usr.bin/bmake/tests/sysmk/t1/2

SCRIPTS:yes PROGS:no FILES:yes SUBDIR:no
usr.bin/bmake/tests/sysmk/t1/2/1

SCRIPTS:yes PROGS:yes FILES:yes SUBDIR:yes
lib/libthr/tests

SCRIPTS:yes PROGS:no FILES:yes SUBDIR:no
usr.bin/yacc/tests
libexec/atf/atf-sh/tests

A full buildworld/installworld/clean comparison with mtree was also done.
The only relevant difference was the new fixed behavior of removing
Kyuafile.auto from the objdir in 'clean'.

Converting SCRIPTS to be a special case FILES group will make this less
fragile and is being explored.

One known remaining issue is 'cleandepend' removing the tags files for
every recursive call.

Note that the 'make clean' command runs for the CURDIR last, which can make
it appear to run multiple times when cleaning in tests/, but each command is
for a SUBDIR returning up the chain. This is purely bsd.subdir.mk behavior.

PR: 191055
PR: 191955
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# ab21b9ab 11-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Do not override variables on command line that build needs to change.

It is sufficient to explicitly set DEPENDFILE in env for each sub-make.


# f5374544 10-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Building on fmake is no longer possible so removed tests for bmake.


# 58073855 30-May-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Do not override variables on command line that build needs to change.

It is sufficient to explicitly set DEPENDFILE in env for each sub-make.


# 92f7db0f 13-Apr-2015 Enji Cooper <ngie@FreeBSD.org>

Revert r281055 as it breaks installing test scripts in the mixed PROGS/SCRIPT
case

Repro is as follows:

% sudo pkg install -y kyua
% sudo rm -Rf /usr/tests
% sudo make hier
% (cd lib/libthr/tests/; make obj; make depend; make all; sudo make install)
% (cd /usr/tests/lib/libthr; kyua list)

Failure seen in Jenkins build starting here:
https://jenkins.freebsd.org/job/FreeBSD_HEAD-tests2/927/

Pointyhat to: bapt


# ae9b09c6 03-Apr-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Do not install scripts multiple time when using bsd.progs.mk


# 579e668d 18-Mar-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Prevent targets being run twice for SCRIPTS


# 0f1f7f67 27-Dec-2014 Enji Cooper <ngie@FreeBSD.org>

Add LIBADD to PROG_VARS, similar to DPADD/LDADD


# 068ebf32 03-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Import proper fix for misc/49356 (/usr/include/atf-c/config.h) after atf-c/config.h
was removed from the build

Pointyhat to: me (again, for not running make delete-old after running test builds)


# 30175d76 30-Oct-2014 Julio Merino <jmmv@FreeBSD.org>

Use the right depend file for each program.

bsd.progs.mk generates a separate depend file for every program being
built, but then it does not properly tell each submake to use those
individual files. Properly propagate the depend file to use.

Discovered while preparing the update of atf to 0.21 and noticing that
the test programs were not being relinked to the new library.

This change is "make tinderbox" clean.


# cfcdd438 16-Oct-2014 Mark Johnston <markj@FreeBSD.org>

Don't define rules based on PROGS if PROGS is empty.

Reviewed by: sjg, ngie
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# c57b274d 10-Oct-2014 Enji Cooper <ngie@FreeBSD.org>

Add LDFLAGS to PROG_VARS so it can be overridden on a per-PROG basis

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# 68e69f73 23-Sep-2014 Enji Cooper <ngie@FreeBSD.org>

Improve bsd.progs.mk compatibility with bsd.prog.mk

1. Do not install FILES/SCRIPTS multiple times if PROGS is specified; this is
already handled via bsd.prog.mk when it's called recursively (PR: 191055,
191955).
2. Some variables, like BINDIR and PROGNAME, default to a value if unset
whereas others get appended to, like CFLAGS. Add support for the former case
(PR: 191056)
3. Make "checkdpadd" and "clean" available targets for recursive execution.

Reviewed by: marcel, sjg
Phabric: D822
PR: 191055, 191056, 191955
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# f4a4cdd1 10-Dec-2013 Julio Merino <jmmv@FreeBSD.org>

Make bsd.progs.mk work in directories with SCRIPTS but no PROGS.

This change fixes some cases where bsd.progs.mk would fail to handle
directories with SCRIPTS but no PROGS. In particular, "install" did
not handle such scripts nor dependent files when bsd.subdir.mk was
added to the mix.

This is "make tinderbox" clean.

Reviewed by: freebsd-testing
Approved by: rpaulo (mentor)


# 3bd40bb1 18-Nov-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Need to also test for defined(${v}_${PROG})


# b4ffe103 13-Nov-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Allow this to work with fmake
Based on patch from Garret Cooper.


# 628257b4 22-Apr-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Pass more variables to bsd.prog.mk and
only append to already defined variables.

Submitted by: Garrett Cooper


# 81e68641 07-Nov-2012 Simon J. Gerraty <sjg@FreeBSD.org>

Latest progs.mk from crufty.net for ATF

Approved by: marcel (mentor)


# c175365c 21-Oct-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add ATF to the build. This is may be a bit rought around the egdes,
but committing it helps to get everyone on the same page and makes
sure we make progress.

Tinderbox breakages that are the result of this commit are entirely
the committer's fault -- in other words: buildworld testing on amd64
only.

Credits follow:

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Sponsored by: Isilon Systems
Based on work by: keramida@
Thanks to: gnn@, mdf@, mlaier@, sjg@
Special thanks to: keramida@