diff options
Diffstat (limited to '')
-rw-r--r-- | src/kmk/testcase-2ndtargetexp.kmk | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/kmk/testcase-2ndtargetexp.kmk b/src/kmk/testcase-2ndtargetexp.kmk new file mode 100644 index 0000000..1e19a8b --- /dev/null +++ b/src/kmk/testcase-2ndtargetexp.kmk @@ -0,0 +1,68 @@ +# $Id: testcase-2ndtargetexp.kmk 2413 2010-09-11 17:43:04Z bird $ +## @file +# kBuild - testcase for the 2nd target expansion feature. +# + +# +# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx@anduin.net> +# +# This file is part of kBuild. +# +# kBuild is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# kBuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with kBuild. If not, see <http://www.gnu.org/licenses/> +# +# + +DEPTH = ../.. +include $(PATH_KBUILD)/header.kmk + +# +# Enable it. +# +.SECONDTARGETEXPANSION: + + +# +# This is expanded immediately. +# +foo1 = foo1 +$(foo1): + $(if $(eq $@,foo1),$(ECHO) "foo1 works",$(ECHO) "foo1 is busted @=$@"; exit 1) + +# Mostly for making sure the ifeq test works below. +flush_command_recoding := 1 # see record_waiting_files() in read.c +ifeq ($(strip $(commands foo1)),) +$(error No commands for foo1: $(commands foo1)) +endif + + +# +# This is expanded in the 2nd round. +# +$$(foo2): + $(if $(eq $@,foo2),$(ECHO) "foo2 works",$(ECHO) "foo2 is busted @=$@"; exit 1) + +# Check that a $(foo2) file exists. +flush_command_recoding := 1 # see record_waiting_files() in read.c +# $ (info $$(foo2) commands: $(commands $$(foo2))) +ifeq ($(strip $(commands $$(foo2))),) +$(error No commands for $$(foo2): $(commands $$(foo2))) +endif + + +all_recursive: foo1 foo2 + $(ECHO) "2nd target expansion passes smoke testing" + +# define this last +foo2 = foo2 + |