xref: /freebsd/contrib/bmake/unit-tests/include-main.mk (revision 9f45a3c8c82ffead7044ae836d9257113c630d3b)
1*9f45a3c8SSimon J. Gerraty# $NetBSD: include-main.mk,v 1.7 2022/01/08 23:41:43 rillig Exp $
249caa483SSimon J. Gerraty#
3956e45f6SSimon J. Gerraty# Until 2020-09-05, the .INCLUDEDFROMFILE magic variable did not behave
449caa483SSimon J. Gerraty# as described in the manual page.
549caa483SSimon J. Gerraty#
649caa483SSimon J. Gerraty# The manual page says that it is the "filename of the file this Makefile
7956e45f6SSimon J. Gerraty# was included from", while before 2020-09-05 it was the "filename in which
8*9f45a3c8SSimon J. Gerraty# the latest .include happened". See parse.c, function SetParseFile.
949caa483SSimon J. Gerraty#
10956e45f6SSimon J. Gerraty# Since 2020-09-05, the .INCLUDEDFROMDIR and .INCLUDEDFROMFILE variables
11956e45f6SSimon J. Gerraty# properly handle nested includes and even .for loops.
1249caa483SSimon J. Gerraty
1349caa483SSimon J. Gerraty.if !defined(.INCLUDEDFROMFILE)
14956e45f6SSimon J. Gerraty.  info main-before-ok
1549caa483SSimon J. Gerraty.else
16956e45f6SSimon J. Gerraty.  warning main-before-fail(${.INCLUDEDFROMFILE})
1749caa483SSimon J. Gerraty.endif
1849caa483SSimon J. Gerraty
19956e45f6SSimon J. Gerraty.for i in once
20dba7b0efSSimon J. Gerraty.  if !defined(.INCLUDEDFROMFILE)
21956e45f6SSimon J. Gerraty.    info main-before-for-ok
22956e45f6SSimon J. Gerraty.  else
23956e45f6SSimon J. Gerraty.    warning main-before-for-fail(${.INCLUDEDFROMFILE})
24956e45f6SSimon J. Gerraty.  endif
25956e45f6SSimon J. Gerraty.endfor
26956e45f6SSimon J. Gerraty
2749caa483SSimon J. Gerraty.include "include-sub.mk"
2849caa483SSimon J. Gerraty
2949caa483SSimon J. Gerraty.if !defined(.INCLUDEDFROMFILE)
30956e45f6SSimon J. Gerraty.  info main-after-ok
3149caa483SSimon J. Gerraty.else
32956e45f6SSimon J. Gerraty.  warning main-after-fail(${.INCLUDEDFROMFILE})
3349caa483SSimon J. Gerraty.endif
3449caa483SSimon J. Gerraty
35956e45f6SSimon J. Gerraty.for i in once
36dba7b0efSSimon J. Gerraty.  if !defined(.INCLUDEDFROMFILE)
37956e45f6SSimon J. Gerraty.    info main-after-for-ok
38956e45f6SSimon J. Gerraty.  else
39956e45f6SSimon J. Gerraty.    warning main-after-for-fail(${.INCLUDEDFROMFILE})
40956e45f6SSimon J. Gerraty.  endif
41956e45f6SSimon J. Gerraty.endfor
42956e45f6SSimon J. Gerraty
43956e45f6SSimon J. Gerratyall:	# nothing
44