summaryrefslogtreecommitdiffstats
path: root/src/kmk/testcase-2ndtargetexp.kmk
diff options
context:
space:
mode:
Diffstat (limited to 'src/kmk/testcase-2ndtargetexp.kmk')
-rw-r--r--src/kmk/testcase-2ndtargetexp.kmk68
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
+