Home | History | Annotate | Line # | Download | only in unit-tests
      1 # $NetBSD: varmod-path.mk,v 1.4 2023/05/10 15:53:32 rillig Exp $
      2 #
      3 # Tests for the :P variable modifier, which looks up the path for a given
      4 # target.
      5 #
      6 # The phony target does not have a corresponding path, therefore ... oops,
      7 # as of 2020-08-23 it is nevertheless resolved to a path.  This is probably
      8 # unintended.
      9 #
     10 # In this test, the real target is located in a subdirectory, and its full
     11 # path is returned.  If it had been in the current directory, the difference
     12 # between its path and its name would not be visible.
     13 #
     14 # The enoent target does not exist, therefore the plain name of the target
     15 # is returned.
     16 
     17 .MAIN: all
     18 
     19 _!=	rm -rf varmod-path.subdir
     20 _!=	mkdir varmod-path.subdir
     21 _!=	> varmod-path.subdir/varmod-path.phony
     22 _!=	> varmod-path.subdir/varmod-path.real
     23 
     24 # To have an effect, this .PATH declaration must be processed after the
     25 # directory has been created.
     26 .PATH: varmod-path.subdir
     27 
     28 varmod-path.phony: .PHONY
     29 varmod-path.real:
     30 
     31 all: varmod-path.phony varmod-path.real
     32 	@echo ${varmod-path.phony:P}
     33 	@echo ${varmod-path.real:P}
     34 	@echo ${varmod-path.enoent:P}
     35 
     36 .END:
     37 	@rm -rf varmod-path.subdir
     38