friss created this revision.
friss added reviewers: aprantl, labath.
Herald added a project: LLDB.

I was working on cleaning up our on-device test runs last week, and as
a result I needed to update a lot of test Makefiles in the Swift
tree. I found it especailly annoying to update the build system of
tests that are building mutliple images (typically a shared
library).

The main reason is that you can't see what's (if anything) special
about the build from the main makefile. You always need to open
mutliple Makefiles. Another reason is the way you have to add a
special line to your clean rule to do the right thing, and you never
really know which arguments to pass.

Most of the secondary Makefiles we have are just a couple variable
definitions and then an include of Makefile.rules. This patch removes
most of the secondary Makefiles and replaces them with a direct
invocation of Makefile.rules in the main Makefile. The specificities
of each sub-build are listed right there on the recursive $(MAKE)
call. All the variables that matter are being passed automagically by
make as they have been passed on the command line. The only things you
need to specify are the variables customizating the Makefile.rules
logic for each image.

This patch also deals with the clean rules using this trick to avoid
having to duplicate the recursive invocation in a separate clean rule:

mylib clean::

  $(MAKE) -f $(MAKEFILE_RULES) ... $(MAKECMDGOALS)

The MAKECMDGOALS variable at the end contains the list of build goals
that have been passed on the command line. When it's empty, this
invocation just calls the default Makefile.rules rule which is what
you want. When "clean" is passed as a goal, the rule will be invoked
too and it is passed through MAKECMDGOALS invoking the appropriate
cleaning logic from Makefile.rules.

I really like the conciseness of this approach and the fact that
everything is visible in one place. What do others think?


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D68558

Files:
  lldb/packages/Python/lldbsuite/test/commands/expression/top-level/Makefile
  lldb/packages/Python/lldbsuite/test/commands/expression/top-level/dummy.mk
  lldb/packages/Python/lldbsuite/test/commands/target/create-deps/Makefile
  lldb/packages/Python/lldbsuite/test/commands/target/create-deps/a.mk
  lldb/packages/Python/lldbsuite/test/functionalities/exec/Makefile
  lldb/packages/Python/lldbsuite/test/functionalities/exec/secondprog.mk
  lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/Makefile
  lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/simple.mk
  lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile
  lldb/packages/Python/lldbsuite/test/functionalities/load_unload/a.mk
  lldb/packages/Python/lldbsuite/test/functionalities/load_unload/b.mk
  lldb/packages/Python/lldbsuite/test/functionalities/load_unload/c.mk
  lldb/packages/Python/lldbsuite/test/functionalities/load_unload/d.mk
  lldb/packages/Python/lldbsuite/test/functionalities/load_using_paths/Makefile
  lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/Makefile
  lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/a.mk
  lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/b.mk
  lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
  
lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk
  
lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk
  lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/Makefile
  
lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/create-empty-corefile.mk
  lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile
  lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk
  lldb/packages/Python/lldbsuite/test/make/Makefile.rules
  lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/svr4lib_a.mk
  
lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/svr4lib_b_quote.mk

Index: lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/svr4lib_b_quote.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/svr4lib_b_quote.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LIB_PREFIX := svr4lib
-
-DYLIB_NAME := $(LIB_PREFIX)_b\"
-DYLIB_CXX_SOURCES := $(LIB_PREFIX)_b_quote.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/svr4lib_a.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/svr4lib_a.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LIB_PREFIX := svr4lib
-
-DYLIB_NAME := $(LIB_PREFIX)_a
-DYLIB_CXX_SOURCES := $(LIB_PREFIX)_a.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/Makefile
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-server/libraries-svr4/Makefile
@@ -1,15 +1,19 @@
 LIB_PREFIX := svr4lib
-LD_EXTRAS := -L. -l$(LIB_PREFIX)_a -l$(LIB_PREFIX)_b\"
+LD_EXTRAS := -L. -lsvr4lib_a -lsvr4lib_b\"
 CXX_SOURCES := main.cpp
 USE_LIBDL := 1
 MAKE_DSYM := NO
 
-include Makefile.rules
+a.out: svr4lib_a svr4lib_b_quote
 
-a.out: $(LIB_PREFIX)_a $(LIB_PREFIX)_b_quote
+include Makefile.rules
 
-svr4lib_%:
-	$(MAKE) VPATH=$(SRCDIR) -I $(SRCDIR) -f "$(SRCDIR)/$(LIB_PREFIX)_$*.mk"
+svr4lib_a clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_NAME=svr4lib_a DYLIB_CXX_SOURCES=svr4lib_a.cpp \
+		DYLIB_ONLY=YES $(MAKECMDGOALS)
 
-clean::
-	$(MAKE) -f $(SRCDIR)/$(LIB_PREFIX)_a.mk clean
+svr4lib_b_quote clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_NAME=svr4lib_b\\\" DYLIB_CXX_SOURCES=svr4lib_b_quote.cpp \
+		DYLIB_ONLY=YES $(MAKECMDGOALS)
Index: lldb/packages/Python/lldbsuite/test/make/Makefile.rules
===================================================================
--- lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+++ lldb/packages/Python/lldbsuite/test/make/Makefile.rules
@@ -36,7 +36,8 @@
 
 SRCDIR := $(shell dirname $(firstword $(MAKEFILE_LIST)))
 BUILDDIR := $(shell pwd)
-THIS_FILE_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))
+MAKEFILE_RULES := $(lastword $(MAKEFILE_LIST))
+THIS_FILE_DIR := $(shell dirname $(MAKEFILE_RULES))
 LLDB_BASE_DIR := $(THIS_FILE_DIR)/../../../../../
 
 #----------------------------------------------------------------------
Index: lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/macosx/macabi/dylib.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-LEVEL = ../../make
-DYLIB_ONLY := YES
-DYLIB_NAME := $(BASENAME)
-DYLIB_C_SOURCES := $(DYLIB_NAME).c
-
-include $(LEVEL)/Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile
+++ lldb/packages/Python/lldbsuite/test/macosx/macabi/Makefile
@@ -8,11 +8,8 @@
 
 all: libfoo.dylib a.out
 
-lib%.dylib: %.c
-	$(MAKE) MAKE_DSYM=YES CC=$(CC) \
-		ARCH=$(ARCH) DSYMUTIL=$(DSYMUTIL) \
-		BASENAME=$(shell basename $< .c) \
-		TRIPLE=x86_64-apple-macosx10.15 SDKROOT=$(SDKROOT) \
-		VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/dylib.mk all
+libfoo.dylib clean:: foo.c \
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_NAME=foo DYLIB_C_SOURCES=foo.c
 
 include $(LEVEL)/Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/create-empty-corefile.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/create-empty-corefile.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-MAKE_DSYM := NO
-
-CXX_SOURCES := create-empty-corefile.cpp
-EXE = create-empty-corefile
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/Makefile
+++ lldb/packages/Python/lldbsuite/test/macosx/lc-note/kern-ver-str/Makefile
@@ -4,10 +4,8 @@
 
 all: a.out create-empty-corefile
 
-create-empty-corefile:
-	$(MAKE) VPATH=$(VPATH) -f $(SRCDIR)/create-empty-corefile.mk
-
-clean::
-	$(MAKE) -f create-empty-corefile.mk clean
+create-empty-corefile clean::
+	$(MAKE) -f $(MAKEFILE_RULES) EXE=create-empty-corefile \
+		C_SOURCES=create-empty-corefile.c $(MAKECMDGOALS)
 
 include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-DYLIB_NAME := TestExt
-DYLIB_ONLY := YES
-CFLAGS_EXTRAS = -I$(SRCDIR)/..
-LD_EXTRAS = -L. -lTest -lobjc -framework Foundation
-
-DYLIB_OBJC_SOURCES = TestExt/TestExt.m
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-DYLIB_NAME := Test
-DYLIB_ONLY := YES
-CFLAGS_EXTRAS = -I$(SRCDIR)/..
-LD_EXTRAS = -lobjc -framework Foundation
-
-DYLIB_OBJC_SOURCES = Test/Test.m
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
+++ lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
@@ -1,21 +1,22 @@
-LD_EXTRAS = -lobjc -framework Foundation
-
-include Makefile.rules
+LD_EXTRAS = -lobjc -framework Foundation -L. -lTest -lTestExt
+OBJC_SOURCES = main.m
 
 all: a.out
 
-libTest.dylib:	Test/Test.m
+a.out: libTest.dylib libTestExt.dylib
+
+libTest.dylib clean::	Test/Test.m
 	mkdir -p Test
-	$(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/Test/Test.mk all
+	$(MAKE) MAKE_DSYM=YES -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_NAME=Test DYLIB_OBJC_SOURCES=Test/Test.m \
+		LD_EXTRAS="-lobjc -framework Foundation" \
+		CFLAGS_EXTRAS=-I$(SRCDIR) $(MAKECMDGOALS)
 
-libTestExt.dylib: TestExt/TestExt.m
+libTestExt.dylib clean:: TestExt/TestExt.m
 	mkdir -p TestExt
-	$(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/TestExt/TestExt.mk all
+	$(MAKE) MAKE_DSYM=YES -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_NAME=TestExt DYLIB_OBJC_SOURCES=TestExt/TestExt.m \
+		LD_EXTRAS="-lobjc -framework Foundation -lTest -L." \
+		CFLAGS_EXTRAS=-I$(SRCDIR) $(MAKECMDGOALS)
 
-a.out: main.m libTest.dylib libTestExt.dylib
-	$(CC) $(LDFLAGS) -I$(SRCDIR) -L. -lTest -lTestExt -o a.out $<
-
-clean::
-	rm -rf libTest.dylib libTestExt.dylib a.out Test.o TestExt.o libTest.dylib.dSYM libTestExt.dylib.dSYM
-	$(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/Test/Test.mk clean
-	$(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/TestExt/TestExt.mk clean
+include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/b.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/b.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-DYLIB_NAME := b
-DYLIB_CXX_SOURCES := b.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/a.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/a.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-DYLIB_NAME := a
-DYLIB_CXX_SOURCES := a.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/Makefile
+++ lldb/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/Makefile
@@ -1,17 +1,15 @@
 LD_EXTRAS := -L. -l$(LIB_PREFIX)a -l$(LIB_PREFIX)b
 CXX_SOURCES := main.cpp
 
-include Makefile.rules
+a.out: liba libb
 
-.PHONY:
-a.out: lib_a lib_b
+include Makefile.rules
 
-lib_%:
-	$(MAKE) VPATH=$(VPATH) -f $(SRCDIR)/$*.mk
+liba clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_NAME=a DYLIB_CXX_SOURCES=a.cpp $(MAKECMDGOALS)
 
-hidden_lib_d:
-	$(MAKE) -C hidden
+libb clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_NAME=b DYLIB_CXX_SOURCES=b.cpp $(MAKECMDGOALS)
 
-clean::
-	$(MAKE) -f $(SRCDIR)/a.mk clean
-	$(MAKE) -f $(SRCDIR)/b.mk clean
Index: lldb/packages/Python/lldbsuite/test/functionalities/load_using_paths/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/load_using_paths/Makefile
+++ lldb/packages/Python/lldbsuite/test/functionalities/load_using_paths/Makefile
@@ -1,12 +1,11 @@
 CXX_SOURCES := main.cpp
 USE_LIBDL := 1
 
-include Makefile.rules
-
 all: hidden_lib a.out
 
-hidden_lib:
-	$(MAKE) VPATH=$(SRCDIR)/hidden -I $(SRCDIR)/hidden -C hidden -f $(SRCDIR)/hidden/Makefile
+include Makefile.rules
+
+hidden_lib clean::
+	$(MAKE) VPATH=$(SRCDIR)/hidden -C hidden -f $(MAKEFILE_RULES) \
+	DYLIB_ONLY=YES DYLIB_CXX_SOURCES=d.cpp DYLIB_NAME=loadunload
 
-clean::
-	$(MAKE) -I $(SRCDIR)/hidden -C hidden -f $(SRCDIR)/hidden/Makefile clean
Index: lldb/packages/Python/lldbsuite/test/functionalities/load_unload/d.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/load_unload/d.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LIB_PREFIX := loadunload_
-
-DYLIB_EXECUTABLE_PATH := $(CURDIR)
-
-DYLIB_NAME := $(LIB_PREFIX)d
-DYLIB_CXX_SOURCES := d.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/functionalities/load_unload/c.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/load_unload/c.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LIB_PREFIX := loadunload_
-
-DYLIB_NAME := $(LIB_PREFIX)c
-DYLIB_CXX_SOURCES := c.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/functionalities/load_unload/b.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/load_unload/b.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LIB_PREFIX := loadunload_
-
-DYLIB_NAME := $(LIB_PREFIX)b
-DYLIB_CXX_SOURCES := b.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/functionalities/load_unload/a.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/load_unload/a.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-LIB_PREFIX := loadunload_
-
-LD_EXTRAS := -L. -l$(LIB_PREFIX)b
-
-DYLIB_NAME := $(LIB_PREFIX)a
-DYLIB_CXX_SOURCES := a.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
-
-$(DYLIB_FILENAME): lib_b
-
-.PHONY lib_b:
-	$(MAKE) VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/b.mk
-
-clean::
-	$(MAKE) -I $(SRCDIR) -f $(SRCDIR)/b.mk clean
Index: lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile
+++ lldb/packages/Python/lldbsuite/test/functionalities/load_unload/Makefile
@@ -1,28 +1,35 @@
-LIB_PREFIX := loadunload_
-
-LD_EXTRAS := -L. -l$(LIB_PREFIX)d
+LD_EXTRAS := -L. -lloadunload_d
 CXX_SOURCES := main.cpp
 USE_LIBDL := 1
 
+a.out: lib_b lib_a lib_c lib_d hidden_lib_d
+
 include Makefile.rules
 
-a.out: lib_a lib_b lib_c lib_d hidden_lib_d install_name_tool
+lib_a:: lib_b
+
+lib_a clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_CXX_SOURCES=a.cpp DYLIB_NAME=loadunload_a \
+		LD_EXTRAS="-L. -lloadunload_b" $(MAKECMDGOALS)
+
+lib_b clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_CXX_SOURCES=b.cpp DYLIB_NAME=loadunload_b $(MAKECMDGOALS)
 
-lib_%:
-	$(MAKE) VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/$*.mk
+lib_c clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_CXX_SOURCES=c.cpp DYLIB_NAME=loadunload_c $(MAKECMDGOALS)
+
+lib_d clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_CXX_SOURCES=d.cpp DYLIB_NAME=loadunload_d $(MAKECMDGOALS)
 
-install_name_tool:
 ifeq ($(OS),Darwin)
+lib_d::
 	install_name_tool -id @executable_path/libloadunload_d.dylib libloadunload_d.dylib
 endif
 
-
-hidden_lib_d:
-	$(MAKE) VPATH=$(SRCDIR)/hidden -I $(SRCDIR)/hidden -C hidden -f $(SRCDIR)/hidden/Makefile
-
-clean::
-	$(MAKE) -f $(SRCDIR)/a.mk clean
-	$(MAKE) -f $(SRCDIR)/b.mk clean
-	$(MAKE) -f $(SRCDIR)/c.mk clean
-	$(MAKE) -f $(SRCDIR)/d.mk clean
-	$(MAKE) -I $(SRCDIR)/hidden -C hidden -f $(SRCDIR)/hidden/Makefile clean
+hidden_lib_d clean::
+	$(MAKE) VPATH=$(SRCDIR)/hidden -C hidden -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_CXX_SOURCES=d.cpp DYLIB_NAME=loadunload_d $(MAKECMDGOALS)
Index: lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/simple.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/simple.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-C_SOURCES := simple.c
-EXE = simple
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/Makefile
+++ lldb/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/Makefile
@@ -4,8 +4,6 @@
 
 include Makefile.rules
 
-simple:
-	$(MAKE) VPATH=$(VPATH) -f $(SRCDIR)/simple.mk
-
-clean::
-	$(MAKE) -f $(SRCDIR)/simple.mk clean
\ No newline at end of file
+simple clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		C_SOURCES=simple.c EXE=simple $(MAKECMDGOALS)
Index: lldb/packages/Python/lldbsuite/test/functionalities/exec/secondprog.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/exec/secondprog.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CXX_SOURCES := secondprog.cpp
-EXE = secondprog
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/functionalities/exec/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/exec/Makefile
+++ lldb/packages/Python/lldbsuite/test/functionalities/exec/Makefile
@@ -1,11 +1,9 @@
 CXX_SOURCES := main.cpp
 
-all: a.out secondprog
+all: secondprog
 
 include Makefile.rules
 
-secondprog:
-	$(MAKE) VPATH=$(VPATH) -f $(SRCDIR)/secondprog.mk
-
-clean::
-	$(MAKE) -f $(SRCDIR)/secondprog.mk clean
+secondprog clean:: secondprog.cpp
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		CXX_SOURCES=secondprog.cpp EXE=secondprog $(MAKECMDGOALS)
Index: lldb/packages/Python/lldbsuite/test/commands/target/create-deps/a.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/commands/target/create-deps/a.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LIB_PREFIX := load_
-
-DYLIB_NAME := $(LIB_PREFIX)a
-DYLIB_CXX_SOURCES := a.cpp
-DYLIB_ONLY := YES
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/commands/target/create-deps/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/commands/target/create-deps/Makefile
+++ lldb/packages/Python/lldbsuite/test/commands/target/create-deps/Makefile
@@ -1,14 +1,10 @@
-LIB_PREFIX := load_
-
-LD_EXTRAS := -L. -l$(LIB_PREFIX)a
+LD_EXTRAS := -L. -lload_a
 CXX_SOURCES := main.cpp
 
-include Makefile.rules
-
-a.out: lib_a
+a.out: libload_a
 
-lib_%:
-	$(MAKE) VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/$*.mk
+include Makefile.rules
 
-clean::
-	$(MAKE) -f $(SRCDIR)/a.mk clean
+libload_a clean::
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		DYLIB_ONLY=YES DYLIB_NAME=load_a DYLIB_CXX_SOURCES=a.cpp $(MAKECMDGOALS)
Index: lldb/packages/Python/lldbsuite/test/commands/expression/top-level/dummy.mk
===================================================================
--- lldb/packages/Python/lldbsuite/test/commands/expression/top-level/dummy.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CXX_SOURCES := dummy.cpp
-EXE := dummy
-
-include Makefile.rules
Index: lldb/packages/Python/lldbsuite/test/commands/expression/top-level/Makefile
===================================================================
--- lldb/packages/Python/lldbsuite/test/commands/expression/top-level/Makefile
+++ lldb/packages/Python/lldbsuite/test/commands/expression/top-level/Makefile
@@ -1,11 +1,10 @@
 CXX_SOURCES := main.cpp test.cpp
 
-include Makefile.rules
+all: dummy
 
-a.out: dummy
+include Makefile.rules
 
-dummy:
-	$(MAKE) VPATH=$(VPATH) -I $(SRCDIR) -f $(SRCDIR)/dummy.mk
+dummy clean:: dummy.cpp
+	$(MAKE) -f $(MAKEFILE_RULES) \
+		CXX_SOURCES=dummy.cpp EXE=dummy $(MAKECMDGOALS)
 
-clean::
-	$(MAKE) VPATH=$(VPATH) -I $(SRCDIR) -f $(SRCDIR)/dummy.mk clean
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to