From: Fathi Boudra fathi.boudra@linaro.org
This patch cleans up the Makefile by restructuring a couple of things, namely: 1) change explicit paths in targets for variables 2) substitute a variable (BINARIES) for another, part of the selftests build system (TEST_PROGS_EXTENDED) 3) proper cleaning up of the EXTRA objects
The resulting Makefile is much more readable and manageable.
Signed-off-by: Fathi Boudra fathi.boudra@linaro.org Signed-off-by: Daniel Díaz daniel.diaz@linaro.org --- tools/testing/selftests/gpio/Makefile | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile index 4665cdb..a4a01ec8 100644 --- a/tools/testing/selftests/gpio/Makefile +++ b/tools/testing/selftests/gpio/Makefile @@ -1,28 +1,26 @@ # SPDX-License-Identifier: GPL-2.0
+CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ +LDLIBS += -lmount -I/usr/include/libmount + TEST_PROGS := gpio-mockup.sh -TEST_FILES := gpio-mockup-sysfs.sh $(BINARIES) -BINARIES := gpio-mockup-chardev -EXTRA_PROGS := ../gpiogpio-event-mon ../gpiogpio-hammer ../gpiolsgpio -EXTRA_DIRS := ../gpioinclude/ -EXTRA_OBJS := ../gpiogpio-event-mon-in.o ../gpiogpio-event-mon.o -EXTRA_OBJS += ../gpiogpio-hammer-in.o ../gpiogpio-utils.o ../gpiolsgpio-in.o -EXTRA_OBJS += ../gpiolsgpio.o +TEST_FILES := gpio-mockup-sysfs.sh +TEST_PROGS_EXTENDED := gpio-mockup-chardev + +GPIODIR := ../../../gpio +GPIOOBJ := gpio-utils.o
include ../lib.mk
-all: $(BINARIES) +all: $(TEST_PROGS_EXTENDED)
override define CLEAN - $(RM) $(BINARIES) $(EXTRA_PROGS) $(EXTRA_OBJS) - $(RM) -r $(EXTRA_DIRS) + $(RM) $(TEST_PROGS_EXTENDED) + $(MAKE) -C $(GPIODIR) clean endef
-CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ -LDLIBS += -lmount -I/usr/include/libmount - -$(BINARIES):| khdr -$(BINARIES): ../../../gpio/gpio-utils.o +$(TEST_PROGS_EXTENDED):| khdr +$(TEST_PROGS_EXTENDED): $(GPIODIR)/$(GPIOOBJ)
-../../../gpio/gpio-utils.o: - make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C ../../../gpio +$(GPIODIR)/$(GPIOOBJ): + $(MAKE) -C $(GPIODIR)
When simply running `make' from the selftests top dir, this error shows up:
cc -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid gpio-mockup-chardev.c ../../../gpio/gpio-utils.o -lmount -o gpio-mockup-chardev cc: error: ../../../gpio/gpio-utils.o: No such file or directory <builtin>: recipe for target 'gpio-mockup-chardev' failed make[1]: *** [gpio-mockup-chardev] Error 1
because the output directory is set to "selftests/gpio" and all binaries built from ../../../gpio/ end up there. In fact, they appear as, exempli gratia: * gpiogpio-event-mon * gpiogpio-hammer * gpioinclude/ * gpiolsgpio which is wrong, as it's missing a directory separator somewhere.
This patch sets straight the output directory when building ../../../gpio/ so that binaries don't cross paths.
Signed-off-by: Daniel Díaz daniel.diaz@linaro.org --- tools/testing/selftests/gpio/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile index a4a01ec8..4664842 100644 --- a/tools/testing/selftests/gpio/Makefile +++ b/tools/testing/selftests/gpio/Makefile @@ -7,7 +7,7 @@ TEST_PROGS := gpio-mockup.sh TEST_FILES := gpio-mockup-sysfs.sh TEST_PROGS_EXTENDED := gpio-mockup-chardev
-GPIODIR := ../../../gpio +GPIODIR := $(realpath ../../../gpio) GPIOOBJ := gpio-utils.o
include ../lib.mk @@ -16,11 +16,11 @@ all: $(TEST_PROGS_EXTENDED)
override define CLEAN $(RM) $(TEST_PROGS_EXTENDED) - $(MAKE) -C $(GPIODIR) clean + $(MAKE) -C $(GPIODIR) OUTPUT=$(GPIODIR)/ clean endef
$(TEST_PROGS_EXTENDED):| khdr $(TEST_PROGS_EXTENDED): $(GPIODIR)/$(GPIOOBJ)
$(GPIODIR)/$(GPIOOBJ): - $(MAKE) -C $(GPIODIR) + $(MAKE) OUTPUT=$(GPIODIR)/ -C $(GPIODIR)
Hello!
On Fri, 7 Sep 2018 at 09:35, Daniel Díaz daniel.diaz@linaro.org wrote:
From: Fathi Boudra fathi.boudra@linaro.org
This patch cleans up the Makefile by restructuring a couple of things, namely:
- change explicit paths in targets for variables
- substitute a variable (BINARIES) for another, part of the selftests build system (TEST_PROGS_EXTENDED)
- proper cleaning up of the EXTRA objects
The resulting Makefile is much more readable and manageable.
Signed-off-by: Fathi Boudra fathi.boudra@linaro.org Signed-off-by: Daniel Díaz daniel.diaz@linaro.org
tools/testing/selftests/gpio/Makefile | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile index 4665cdb..a4a01ec8 100644 --- a/tools/testing/selftests/gpio/Makefile +++ b/tools/testing/selftests/gpio/Makefile @@ -1,28 +1,26 @@ # SPDX-License-Identifier: GPL-2.0
+CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ +LDLIBS += -lmount -I/usr/include/libmount
TEST_PROGS := gpio-mockup.sh -TEST_FILES := gpio-mockup-sysfs.sh $(BINARIES) -BINARIES := gpio-mockup-chardev -EXTRA_PROGS := ../gpiogpio-event-mon ../gpiogpio-hammer ../gpiolsgpio -EXTRA_DIRS := ../gpioinclude/ -EXTRA_OBJS := ../gpiogpio-event-mon-in.o ../gpiogpio-event-mon.o -EXTRA_OBJS += ../gpiogpio-hammer-in.o ../gpiogpio-utils.o ../gpiolsgpio-in.o -EXTRA_OBJS += ../gpiolsgpio.o +TEST_FILES := gpio-mockup-sysfs.sh +TEST_PROGS_EXTENDED := gpio-mockup-chardev
+GPIODIR := ../../../gpio +GPIOOBJ := gpio-utils.o
include ../lib.mk
-all: $(BINARIES) +all: $(TEST_PROGS_EXTENDED)
override define CLEAN
$(RM) $(BINARIES) $(EXTRA_PROGS) $(EXTRA_OBJS)
$(RM) -r $(EXTRA_DIRS)
$(RM) $(TEST_PROGS_EXTENDED)
$(MAKE) -C $(GPIODIR) clean
endef
-CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ -LDLIBS += -lmount -I/usr/include/libmount
-$(BINARIES):| khdr -$(BINARIES): ../../../gpio/gpio-utils.o +$(TEST_PROGS_EXTENDED):| khdr +$(TEST_PROGS_EXTENDED): $(GPIODIR)/$(GPIOOBJ)
-../../../gpio/gpio-utils.o:
make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C ../../../gpio
+$(GPIODIR)/$(GPIOOBJ):
$(MAKE) -C $(GPIODIR)
-- 2.7.4
Ping on this series.
Greetings!
Daniel Díaz daniel.diaz@linaro.org
On 10/02/2018 02:48 PM, Daniel Díaz wrote:
Hello!
On Fri, 7 Sep 2018 at 09:35, Daniel Díaz daniel.diaz@linaro.org wrote:
From: Fathi Boudra fathi.boudra@linaro.org
This patch cleans up the Makefile by restructuring a couple of things, namely:
- change explicit paths in targets for variables
- substitute a variable (BINARIES) for another, part of the selftests build system (TEST_PROGS_EXTENDED)
- proper cleaning up of the EXTRA objects
The resulting Makefile is much more readable and manageable.
Signed-off-by: Fathi Boudra fathi.boudra@linaro.org Signed-off-by: Daniel Díaz daniel.diaz@linaro.org
tools/testing/selftests/gpio/Makefile | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile index 4665cdb..a4a01ec8 100644 --- a/tools/testing/selftests/gpio/Makefile +++ b/tools/testing/selftests/gpio/Makefile @@ -1,28 +1,26 @@ # SPDX-License-Identifier: GPL-2.0
+CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ +LDLIBS += -lmount -I/usr/include/libmount
TEST_PROGS := gpio-mockup.sh -TEST_FILES := gpio-mockup-sysfs.sh $(BINARIES) -BINARIES := gpio-mockup-chardev -EXTRA_PROGS := ../gpiogpio-event-mon ../gpiogpio-hammer ../gpiolsgpio -EXTRA_DIRS := ../gpioinclude/ -EXTRA_OBJS := ../gpiogpio-event-mon-in.o ../gpiogpio-event-mon.o -EXTRA_OBJS += ../gpiogpio-hammer-in.o ../gpiogpio-utils.o ../gpiolsgpio-in.o -EXTRA_OBJS += ../gpiolsgpio.o +TEST_FILES := gpio-mockup-sysfs.sh +TEST_PROGS_EXTENDED := gpio-mockup-chardev
+GPIODIR := ../../../gpio +GPIOOBJ := gpio-utils.o
include ../lib.mk
-all: $(BINARIES) +all: $(TEST_PROGS_EXTENDED)
override define CLEAN
$(RM) $(BINARIES) $(EXTRA_PROGS) $(EXTRA_OBJS)
$(RM) -r $(EXTRA_DIRS)
$(RM) $(TEST_PROGS_EXTENDED)
$(MAKE) -C $(GPIODIR) clean
endef
-CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ -LDLIBS += -lmount -I/usr/include/libmount
-$(BINARIES):| khdr -$(BINARIES): ../../../gpio/gpio-utils.o +$(TEST_PROGS_EXTENDED):| khdr +$(TEST_PROGS_EXTENDED): $(GPIODIR)/$(GPIOOBJ)
-../../../gpio/gpio-utils.o:
make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C ../../../gpio
+$(GPIODIR)/$(GPIOOBJ):
$(MAKE) -C $(GPIODIR)
-- 2.7.4
Ping on this series.
Thanks for the ping. I will queue these up for 4.20-rc1.
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org