xref: /freebsd/contrib/bmake/unit-tests/include-main.mk (revision 148ee84570001f46b7b667c86573d378101c3801)
1*148ee845SSimon J. Gerraty# $NetBSD: include-main.mk,v 1.9 2023/06/01 20:56:35 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
89f45a3c8SSimon 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)
14*148ee845SSimon J. Gerraty# expect+1: main-before-ok
15956e45f6SSimon J. Gerraty.  info main-before-ok
1649caa483SSimon J. Gerraty.else
17956e45f6SSimon J. Gerraty.  warning main-before-fail(${.INCLUDEDFROMFILE})
1849caa483SSimon J. Gerraty.endif
1949caa483SSimon J. Gerraty
20956e45f6SSimon J. Gerraty.for i in once
21dba7b0efSSimon J. Gerraty.  if !defined(.INCLUDEDFROMFILE)
22*148ee845SSimon J. Gerraty# expect+1: main-before-for-ok
23956e45f6SSimon J. Gerraty.    info main-before-for-ok
24956e45f6SSimon J. Gerraty.  else
25956e45f6SSimon J. Gerraty.    warning main-before-for-fail(${.INCLUDEDFROMFILE})
26956e45f6SSimon J. Gerraty.  endif
27956e45f6SSimon J. Gerraty.endfor
28956e45f6SSimon J. Gerraty
294fde40d9SSimon J. Gerraty.include "include-sub.inc"
3049caa483SSimon J. Gerraty
3149caa483SSimon J. Gerraty.if !defined(.INCLUDEDFROMFILE)
32*148ee845SSimon J. Gerraty# expect+1: main-after-ok
33956e45f6SSimon J. Gerraty.  info main-after-ok
3449caa483SSimon J. Gerraty.else
35956e45f6SSimon J. Gerraty.  warning main-after-fail(${.INCLUDEDFROMFILE})
3649caa483SSimon J. Gerraty.endif
3749caa483SSimon J. Gerraty
38956e45f6SSimon J. Gerraty.for i in once
39dba7b0efSSimon J. Gerraty.  if !defined(.INCLUDEDFROMFILE)
40*148ee845SSimon J. Gerraty# expect+1: main-after-for-ok
41956e45f6SSimon J. Gerraty.    info main-after-for-ok
42956e45f6SSimon J. Gerraty.  else
43956e45f6SSimon J. Gerraty.    warning main-after-for-fail(${.INCLUDEDFROMFILE})
44956e45f6SSimon J. Gerraty.  endif
45956e45f6SSimon J. Gerraty.endfor
46956e45f6SSimon J. Gerraty
47956e45f6SSimon J. Gerratyall:	# nothing
48