build: fix out-of-tree build
Signed-off-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
diff --git a/Makefile b/Makefile
index 71efca4..297f8e7 100644
--- a/Makefile
+++ b/Makefile
@@ -176,7 +176,7 @@
if git describe >/dev/null 2>&1; then \
git describe > "$@"; \
else \
- cp VERSION "$@"; \
+ cp $(top_srcdir)/VERSION "$@"; \
fi
$(INSTALL_DIR)/Version: Version
diff --git a/testcases/kernel/include/lib.mk b/testcases/kernel/include/lib.mk
index 624134b..c193ca3 100644
--- a/testcases/kernel/include/lib.mk
+++ b/testcases/kernel/include/lib.mk
@@ -16,10 +16,13 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
-KERNEL_DIR := $(top_srcdir)/testcases/kernel
+KERNEL_SRCDIR := $(abs_top_srcdir)/testcases/kernel
+LIBKERNTEST_SRCDIR := $(KERNEL_SRCDIR)/lib
+
+KERNEL_DIR := $(abs_top_builddir)/testcases/kernel
LIBKERNTEST_DIR := $(KERNEL_DIR)/lib
LIBKERNTEST := $(KERNEL_DIR)/libkerntest.a
-CPPFLAGS += $(NUMA_CPPFLAGS) -I$(KERNEL_DIR)/include
+CPPFLAGS += $(NUMA_CPPFLAGS) -I$(KERNEL_SRCDIR)/include
LDLIBS += $(NUMA_LIBS) -lkerntest -lltp
LDFLAGS += -L$(LIBKERNTEST_DIR)
@@ -27,11 +30,11 @@
mkdir -p "$@"
$(LIBKERNTEST): $(LIBKERNTEST_DIR)
- $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" all
+ $(MAKE) -C $^ -f "$(LIBKERNTEST_SRCDIR)/Makefile" all
MAKE_DEPS += $(LIBKERNTEST)
trunk-clean:: | lib-clean
lib-clean:: $(LIBKERNTEST_DIR)
- $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" clean
+ $(MAKE) -C $^ -f "$(LIBKERNTEST_SRCDIR)/Makefile" clean
diff --git a/testcases/kernel/lib/Makefile b/testcases/kernel/lib/Makefile
index db094e8..c4af8df 100644
--- a/testcases/kernel/lib/Makefile
+++ b/testcases/kernel/lib/Makefile
@@ -22,7 +22,7 @@
include $(top_srcdir)/include/mk/env_pre.mk
-CPPFLAGS += $(NUMA_CPPFLAGS) -I../include
+CPPFLAGS += $(NUMA_CPPFLAGS) -I$(abs_srcdir)/../include
INTERNAL_LIB := libkerntest.a
include $(top_srcdir)/include/mk/lib.mk
diff --git a/testcases/kernel/mem/include/libmem.mk b/testcases/kernel/mem/include/libmem.mk
index fdf38a1..7ebcf05 100644
--- a/testcases/kernel/mem/include/libmem.mk
+++ b/testcases/kernel/mem/include/libmem.mk
@@ -16,11 +16,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
-MEM_DIR := $(top_srcdir)/testcases/kernel/mem
+MEM_SRCDIR := $(top_srcdir)/testcases/kernel/mem
+LIBMEM_SRCDIR := $(MEM_SRCDIR)/lib
+
+MEM_DIR := $(top_builddir)/testcases/kernel/mem
LIBMEM_DIR := $(MEM_DIR)/lib
LIBMEM := $(LIBMEM_DIR)/libmem.a
FILTER_OUT_DIRS := $(LIBMEM_DIR)
-CFLAGS += -I$(MEM_DIR)/include
+CFLAGS += -I$(MEM_SRCDIR)/include
LDLIBS += $(NUMA_LIBS) -lmem -lltp
LDFLAGS += -L$(LIBMEM_DIR)
@@ -28,13 +31,13 @@
mkdir -p "$@"
$(LIBMEM): $(LIBMEM_DIR)
- $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" all
+ $(MAKE) -C $^ -f "$(LIBMEM_SRCDIR)/Makefile" all
MAKE_DEPS += $(LIBMEM)
trunk-clean:: | lib-clean
lib-clean:: $(LIBMEM_DIR)
- $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" clean
+ $(MAKE) -C $^ -f "$(LIBMEM_SRCDIR)/Makefile" clean
include $(top_srcdir)/testcases/kernel/include/lib.mk
diff --git a/testcases/kernel/mem/lib/Makefile b/testcases/kernel/mem/lib/Makefile
index 6bc5863..d4624e9 100644
--- a/testcases/kernel/mem/lib/Makefile
+++ b/testcases/kernel/mem/lib/Makefile
@@ -20,7 +20,7 @@
include $(top_srcdir)/include/mk/env_pre.mk
-CFLAGS += -I../include
+CPPFLAGS += -I$(abs_srcdir)/../include
INTERNAL_LIB := libmem.a
include $(top_srcdir)/testcases/kernel/include/lib.mk
diff --git a/testcases/network/rpc/basic_tests/rpc01/Makefile b/testcases/network/rpc/basic_tests/rpc01/Makefile
index 68ea85e..7815cbb 100644
--- a/testcases/network/rpc/basic_tests/rpc01/Makefile
+++ b/testcases/network/rpc/basic_tests/rpc01/Makefile
@@ -32,7 +32,7 @@
LIBSRCS := $(abs_srcdir)/librpc01.c
INTERNAL_LIB := librpc01.a
-LDFLAGS += -L$(abs_srcdir)
+LDFLAGS += -L$(abs_builddir)
LDLIBS += -lrpc01
MAKE_TARGETS := rpc1 rpc_server
diff --git a/utils/Makefile b/utils/Makefile
index 58cec7c..aa052e6 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -28,18 +28,16 @@
FILTER_OUT_DIRS := $(FFSBDIR)
FFSB := $(FFSBDIR)/ffsb
-$(FFSB): $(FFSBDIR)
- cd $^; ./configure
- $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" all
- cp $(FFSBDIR)/ffsb ffsb
+$(FFSB): $(abs_srcdir)/$(FFSBDIR)
+ mkdir -p $(FFSBDIR)
+ cd $(FFSBDIR) && "$^/configure" && $(MAKE) top_srcdir="$^" all
trunk-all: $(FFSB)
trunk-clean:: | ffsb-clean
-ffsb-clean:: $(FFSBDIR)
- $(MAKE) -C $^ -f "$(abs_srcdir)/$^/Makefile" clean
- rm -rf ffsb
+ffsb-clean:: $(abs_srcdir)/$(FFSBDIR)
+ cd $(FFSBDIR); $(MAKE) top_srcdir="$^" clean
include $(top_srcdir)/include/mk/generic_trunk_target.mk