Message ID | 20170324115527.26472-1-fathi.boudra@linaro.org |
---|---|
State | New |
Headers | show |
Fathi Boudra <fathi.boudra@linaro.org> writes: > diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile > index 205e4d10e085..714f1f7df04d 100644 > --- a/tools/testing/selftests/gpio/Makefile > +++ b/tools/testing/selftests/gpio/Makefile > @@ -1,23 +1,24 @@ > +CFLAGS += -O2 -g -std=gnu99 -Wall > +CFLAGS += -I../../../../include/uapi/ -I../../../../include/ Those are kernel headers, they *might* work in userspace but they're not designed to. Use the exported headers: CFLAGS += -I../../../../usr/include If they're not there, then the user can install them, or fall back to the system headers. > +CFLAGS += $(shell pkg-config --cflags mount) > +LDLIBS += $(shell pkg-config --libs mount) What if pkg-config isn't installed? cheers
On 28 March 2017 at 06:00, Michael Ellerman <mpe@ellerman.id.au> wrote: > Fathi Boudra <fathi.boudra@linaro.org> writes: >> diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile >> index 205e4d10e085..714f1f7df04d 100644 >> --- a/tools/testing/selftests/gpio/Makefile >> +++ b/tools/testing/selftests/gpio/Makefile >> @@ -1,23 +1,24 @@ >> +CFLAGS += -O2 -g -std=gnu99 -Wall >> +CFLAGS += -I../../../../include/uapi/ -I../../../../include/ > > Those are kernel headers, they *might* work in userspace but they're not > designed to. except some tests are using uapi and some others are using the generated headers inconsistently, so it looks like using uapi directly is allowed. Do you suggest to fix the tests to only use the exported headers consistently across selftests and add the dependency to headers_install when necessary? > Use the exported headers: > > CFLAGS += -I../../../../usr/include > > > If they're not there, then the user can install them, or fall back to > the system headers. > >> +CFLAGS += $(shell pkg-config --cflags mount) >> +LDLIBS += $(shell pkg-config --libs mount) > > What if pkg-config isn't installed? it gives an error (command not found) and gpio test will fail to build because it won't be able to find the headers or link to libmount library. > cheers
diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile index 205e4d10e085..714f1f7df04d 100644 --- a/tools/testing/selftests/gpio/Makefile +++ b/tools/testing/selftests/gpio/Makefile @@ -1,23 +1,24 @@ +CFLAGS += -O2 -g -std=gnu99 -Wall +CFLAGS += -I../../../../include/uapi/ -I../../../../include/ +CFLAGS += $(shell pkg-config --cflags mount) +LDLIBS += $(shell pkg-config --libs mount) TEST_PROGS := gpio-mockup.sh -TEST_FILES := gpio-mockup-sysfs.sh $(BINARIES) -BINARIES := gpio-mockup-chardev +TEST_PROGS_EXTENDED := gpio-mockup-chardev +TEST_FILES := gpio-mockup-sysfs.sh + +GPIODIR := ../../../gpio +GPIOOBJ := gpio-utils.o include ../lib.mk -all: $(BINARIES) +all: $(TEST_PROGS_EXTENDED) clean: - $(RM) $(BINARIES) - -CFLAGS += -O2 -g -std=gnu99 -Wall -I../../../../usr/include/ -LDLIBS += -lmount -I/usr/include/libmount - -$(BINARIES): ../../../gpio/gpio-utils.o ../../../../usr/include/linux/gpio.h - -../../../gpio/gpio-utils.o: - make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C ../../../gpio + $(RM) $(TEST_PROGS_EXTENDED) + $(MAKE) -C $(GPIODIR) clean -../../../../usr/include/linux/gpio.h: - make -C ../../../.. headers_install INSTALL_HDR_PATH=$(shell pwd)/../../../../usr/ +$(TEST_PROGS_EXTENDED): $(GPIODIR)/$(GPIOOBJ) +$(GPIODIR)/$(GPIOOBJ): + $(MAKE) -C $(GPIODIR)
* Fix hardcoded and misplaced libmount headers. Use pkg-config instead to figure out CFLAGS/LDLIBS, fixing also their value for cross-compilation. * Fix the clean target to clean up also gpio-utils. * Fix gpio-mockup-chardev installation by using TEST_PROGS_EXTENDED instead of BINARIES which is not supported by the top-level lib.mk. * Remove dependency to headers_install as we can simply use gpio.h from user space API directly. * Improve readibility: - introduce GPIODIR/GPIOOBJ variables - split CFLAGS on multiple lines Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org> --- tools/testing/selftests/gpio/Makefile | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) -- 2.11.0