OpenBSD CVS

CVS log for src/share/mk/bsd.dep.mk


[BACK] Up to [local] / src / share / mk

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.25 / (download) - annotate - [select for diffs], Sat Jan 8 17:05:30 2022 UTC (2 years, 4 months ago) by patrick
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, HEAD
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored)

Use ${.ALLSRC:M*.y} instead of ${.IMPSRC} as the input file for yacc,
to fix a bug where ${.IMPSRC} (aka $<) is used in a context where it
is not neccessarily defined by OpenBSD make.  This would sometime show
up trying to build libpcap with the following error message:

Using $< in a non-suffix rule context is a GNUmake idiom (<bsd.dep.mk>:47)

The issue is with the rule for the grammar.h file that is generated
by yacc from grammar.c. You can easily reproduce the bug with the
following steps:

- build libpcap from scratch: cd src/lib/libpcap && make clean all
- remove the generated grammar.h file: rm obj*/grammar.h
- build libpcap again (incremental build): make

In normal builds this does not trigger as grammar.h is implicitly
generated by the rule for grammar.c and when make checks for
dependencies it simply finds grammar.h uptodate. However, incremental
or parallel builds might decide to make grammar.h from grammar.y.

Now, why is this only a problem for grammar.h but not for grammar.c?
The answer to this question is burried deeply in OpenBSD's mk files.

The snippet in bsd.dep.mk that triggers the error is a single rule
statement that generates foo.c and foo.h from foo.y with a call to
yacc -d. The rule is generated with a loop, i.e. it is not a prefix
rule. However, a prefix rule context is required for the use of
${.IMPSRC} aka $<. For the .c file such a prefix rule is provided by
bsd.sys.mk and this rule is in scope when make evaluates the yacc rule.
However, for .h file generation from a .y file there is no such prefix
rule defined in any of the Makefiles. Even if it were the .h suffix is
missing from .SUFFIXES and the rule would not be considered.

The obvious way to fix this would be to use $f instead of ${.IMPSRC}.
However, this does not work as $f is then missing the path prefix and
yacc won't find it if an obj directory is used. This is probably the
reason for the use of ${.IMPSRC} in the first place.

Committing on behalf of ehrhardt@
"I like the diff" deraadt@
ok guenther@

Revision 1.24 / (download) - annotate - [select for diffs], Tue Oct 17 19:31:56 2017 UTC (6 years, 7 months ago) by naddy
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

remove the remaining references to .depend files since nothing creates them
any longer; ok espie@ deraadt@

Revision 1.23 / (download) - annotate - [select for diffs], Sat Aug 12 00:03:15 2017 UTC (6 years, 9 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.22: +2 -2 lines
Diff to previous 1.22 (colored)

Let DFLAGS been added to by the per-directory Makefile

ok espie@

Revision 1.22 / (download) - annotate - [select for diffs], Mon Jul 10 07:59:00 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.21: +8 -1 lines
Diff to previous 1.21 (colored)

re-add unintentionally removed cleandir part that rm tags from the .CURDIR

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jul 9 14:04:50 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.20: +12 -1 lines
Diff to previous 1.20 (colored)

have bsd.prog.mk/bsd.lib.mk generate .y -> .c/.h rules without intermediate
files. This fixes up parallel builds in the default case.
FreeBSD does something similar.

okay millert@

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jul 5 13:30:01 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.19: +7 -4 lines
Diff to previous 1.19 (colored)

based on florian@'s observation and guenther@'s work in kernel makefiles.
don't include .d files during obj and cleanup, because those files might
be utterly bogus following an untimely reboot.

This allows cleaning stuff up without needing to manually remove those
files.

okay millert@, kettenis@

Revision 1.19 / (download) - annotate - [select for diffs], Tue Jul 4 00:59:11 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.18: +10 -4 lines
Diff to previous 1.18 (colored)

let BUILDFIRST just build first, using the same trick guenther@ did in
kernel Makefiles (thank you!), also add lex and yacc generated files to
that list.

Let those lex/yacc variables be defined for bsd.lib.mk as well.

Complete the SRCS -> OBJS hints with the library dependency

This should fix most dependency problems.

Commit now, so that people can check if something else is still amiss.
krw@ agrees

Revision 1.18 / (download) - annotate - [select for diffs], Mon Jul 3 15:11:02 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.17: +5 -1 lines
Diff to previous 1.17 (colored)

re-add dependencies from SRCS to corresponding OBJS.
the old mkdep run did walk the SRCS list and write those as a side-effect.

Without this, bsd.prog.mk .SUFFIXES order will have OBJS depend on the
wrong src file.

Causes of the alpha/stand/bootxx breakage.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Jul 3 07:54:18 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 (colored)

explicitly pass -MD -MP in DFLAGS, so that even if CFLAGS are forced
on the command line, things will still work

Revision 1.16 / (download) - annotate - [select for diffs], Sat Jul 1 14:41:54 2017 UTC (6 years, 10 months ago) by espie
Branch: MAIN
Changes since 1.15: +17 -41 lines
Diff to previous 1.15 (colored)

effectively kill depend as an independant target (there are a few corners
where a separate depend step is still needed, mostly gcc3 and mesa).

Use of BUILDFIRST is mostly enough to make sure important stuff is built
first.

Otherwise, this makes use of -M* compiler options to generate dependencies
on the fly.  There is a bit of behind-the-scene for targets with several
steps (like yacc and/or libraries) and the compiler needs extra hand-holding
with assembler files (don't know why, don't care).

Idea based on guenther@'s initial kernel work, loads of input from
drahn, aoyama, tb, etc.

okay tb@

"why wait" deraadt@

Revision 1.15 / (download) - annotate - [select for diffs], Fri Jun 16 10:20:52 2017 UTC (6 years, 11 months ago) by espie
Branch: MAIN
Changes since 1.14: +7 -1 lines
Diff to previous 1.14 (colored)

introduce a BUILDFIRST/BUILDAFTER mechanism:
record every standard component built in bsd.lib.mk/bsd.prog.mk in BUILDAFTER
and have BUILDAFTER depend on BUILDFIRST, thus making possible to build
some stuff early without relying on "make depend"

okay tb@ millert@

Revision 1.14 / (download) - annotate - [select for diffs], Sun Jun 4 12:25:19 2017 UTC (6 years, 11 months ago) by espie
Branch: MAIN
Changes since 1.13: +6 -6 lines
Diff to previous 1.13 (colored)

pass better arguments to mkdep.
- some std= parameters are actually critical, -std=c++11 makes a huge
difference for clang.
- explicitly ask mkdep to run the C++ compiler for C++ code, as again,
some compilers will see the difference.

(this should allow us to repair make depend under src/gnu/usr.bin/clang)

okay kettenis@

Revision 1.13 / (download) - annotate - [select for diffs], Wed May 31 07:48:04 2017 UTC (6 years, 11 months ago) by anton
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12 (colored)

Drop -t option from ctags call.

The option has been deprecated for almost 7 years by now.

ok tb@

Revision 1.12 / (download) - annotate - [select for diffs], Sun Sep 4 00:34:29 2016 UTC (7 years, 8 months ago) by patrick
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.11: +4 -3 lines
Diff to previous 1.11 (colored)

Treat .cpp files as C++ source code in make depend.

ok deraadt@ jca@ jsg@ millert@

Revision 1.11 / (download) - annotate - [select for diffs], Mon Oct 15 11:14:38 2012 UTC (11 years, 7 months ago) by espie
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7, OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored)

old stuff:
- moved to realdepend with success, finish the old subdirdepend.
- .LIBS: doesn't mean anything any more, and it had broken semantics
when it meant something anyways.

okay millert@

Revision 1.10 / (download) - annotate - [select for diffs], Fri Aug 31 11:46:09 2012 UTC (11 years, 8 months ago) by espie
Branch: MAIN
Changes since 1.9: +4 -4 lines
Diff to previous 1.9 (colored)

use subdir realtarget => target recursion (for subdir.mk .USE macro)
will scrap the subdirdepend case later.

okay millert@

Revision 1.9 / (download) - annotate - [select for diffs], Sat Mar 27 03:47:59 2010 UTC (14 years, 1 month ago) by oga
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

pass -d -t to the default ``make tags'' flags.

note that this does not affect sys (which already uses those flags) and libc
(which has its own special target for them). just other uses of
bsd.{prog,lib,dep}.mk.

"I suppose" deraadt@, "yes, we want that" marco@

From Toni Mueller, thanks!

Revision 1.8 / (download) - annotate - [select for diffs], Mon Mar 24 16:39:13 2008 UTC (16 years, 1 month ago) by espie
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7, OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5, OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 (colored)

check for emptiness of SRCS, since make warns otherwise.

okay deraadt@

Revision 1.7 / (download) - annotate - [select for diffs], Sat Nov 3 15:14:32 2007 UTC (16 years, 6 months ago) by espie
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3
Changes since 1.6: +6 -3 lines
Diff to previous 1.6 (colored)

unmess make depend: make sure stuff is built in the correct order.

Revision 1.6 / (download) - annotate - [select for diffs], Fri Jun 30 19:00:29 2006 UTC (17 years, 10 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_2_BASE, OPENBSD_4_2, OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored)

generate deps for yacc and lex, and clean stuff generated by these;
ok deraadt@

Revision 1.5 / (download) - annotate - [select for diffs], Thu Aug 7 11:24:03 2003 UTC (20 years, 9 months ago) by espie
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9, OPENBSD_3_8_BASE, OPENBSD_3_8, OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6, OPENBSD_3_5_BASE, OPENBSD_3_5, OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.4: +13 -11 lines
Diff to previous 1.4 (colored)

trivial clean-up: indent tests and mark phony targets.

Revision 1.4 / (download) - annotate - [select for diffs], Tue Jun 9 19:29:45 1998 UTC (25 years, 11 months ago) by downsj
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3, OPENBSD_3_2_BASE, OPENBSD_3_2, OPENBSD_3_1_BASE, OPENBSD_3_1, OPENBSD_3_0_BASE, OPENBSD_3_0, OPENBSD_2_9_BASE, OPENBSD_2_9, OPENBSD_2_8_BASE, OPENBSD_2_8, OPENBSD_2_7_BASE, OPENBSD_2_7, OPENBSD_2_6_BASE, OPENBSD_2_6, OPENBSD_2_5_BASE, OPENBSD_2_5, OPENBSD_2_4_BASE, OPENBSD_2_4
Changes since 1.3: +1 -1 lines
Diff to previous 1.3 (colored)

Add CTAGS, with a full pathname, and use it.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Mar 5 11:12:37 1996 UTC (28 years, 2 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_2_3_BASE, OPENBSD_2_3, OPENBSD_2_2_BASE, OPENBSD_2_2, OPENBSD_2_1_BASE, OPENBSD_2_1, OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.2: +2 -1 lines
Diff to previous 1.2 (colored)

Labeling style changed ($OpenBSD$).
POSTINSTALL added to the <bsd.lkm.mk> (see bsd.README for details).

Revision 1.2 / (download) - annotate - [select for diffs], Sun Feb 25 19:02:32 1996 UTC (28 years, 2 months ago) by mickey
Branch: MAIN
Changes since 1.1: +1 -1 lines
Diff to previous 1.1 (colored)

Added <bsd.lkm.mk> file. Correspondent changes made to the bsd.README.
All the rest changed to be $OpenBSD$.
Dedicated to Suzi Quatro (she must be alive still, so best wishes to here).

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Wed Oct 18 08:44:46 1995 UTC (28 years, 7 months ago) by deraadt
CVS Tags: netbsd_1_1
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

initial import of NetBSD tree

Revision 1.1 / (download) - annotate - [select for diffs], Wed Oct 18 08:44:46 1995 UTC (28 years, 7 months ago) by deraadt
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.