Commit 927d85c6 authored by Adam Wujek's avatar Adam Wujek 💬

always use absolute paths for submodules in Makefiles

It is not trivial to handle passing relative and absolute paths between
Makefiles.
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent 052ae6ec
# include parent_common.mk for buildsystem's defines
# use absolute path for REPO_PARENT
REPO_PARENT=$(shell /bin/pwd)/..
CURDIR:=$(shell /bin/pwd)
REPO_PARENT=$(CURDIR)/..
-include $(REPO_PARENT)/parent_common.mk
.PHONY: all clean modules install modules_install clean_all
......@@ -27,14 +28,25 @@ gitmodules:
# pathnames, and thus won't build elsewhere. We have it as a submodule to
# find needed headers to build kernel code.
#
FMC_BUS ?= fmc-bus
ZIO ?= zio
SPEC_SW ?= spec-sw
SVEC_SW ?= svec-sw
# Use the absolute path so it can be used by submodule
CURDIR ?= $(shell pwd)
FMC_BUS ?= $(CURDIR)/fmc-bus
export FMC_BUS
ZIO ?= $(CURDIR)/zio
ZIO_VERSION = $(shell cd $(ZIO); git describe --always --dirty --long --tags)
export ZIO_VERSION
SPEC_SW ?= $(CURDIR)/spec-sw
# FMC_BUS_ABS, ZIO_ABS, SPEC_SW_ABS and SVEC_SW_ABS has to be absolut path,
# due to beeing passed to the Kbuild
FMC_BUS_ABS ?= $(abspath $(FMC_BUS) )
ZIO_ABS ?= $(abspath $(ZIO) )
SPEC_SW_ABS ?= $(abspath $(SPEC_SW) )
SVEC_SW_ABS ?= $(abspath $(SVEC_SW) )
export FMC_BUS_ABS
export ZIO_ABS
export SPEC_SW_ABS
export SVEC_SW_ABS
SUBMOD = $(FMC_BUS) $(ZIO) $(SPEC_SW)
prereq:
......
CONFIG_FMC_ADC_SVEC ?= CONFIG_VME
KBUILD_EXTRA_SYMBOLS := \
$(ZIO)/Module.symvers \
$(FMC_BUS)/kernel/Module.symvers
$(ZIO_ABS)/Module.symvers \
$(FMC_BUS_ABS)/kernel/Module.symvers
# For this CSM_VERSION, please see ohwr.org/csm documentation
ifdef CONFIG_CSM_VERSION
......@@ -13,12 +13,12 @@ endif
# The library includes <sdb.h>, so point -I directtly there
# include our header before to avoid conflicts with the kernel
LINUXINCLUDE := -I$(FMC_BUS)/kernel/include $(LINUXINCLUDE)
LINUXINCLUDE := -I$(FMC_BUS_ABS)/kernel/include $(LINUXINCLUDE)
ccflags-y += -DGIT_VERSION=\"$(GIT_VERSION)\" \
-I$(ZIO)/include \
-I$(SPEC_SW)/kernel \
-I$(SVEC_SW)/kernel \
-I$(ZIO_ABS)/include \
-I$(SPEC_SW_ABS)/kernel \
-I$(SVEC_SW_ABS)/kernel \
-I$(src)
ccflags-$(CONFIG_FMC_ADC_DEBUG) += -DDEBUG
......
# include parent_common.mk for buildsystem's defines
# use absolute path for REPO_PARENT
REPO_PARENT=$(shell /bin/pwd)/../..
CURDIR:=$(shell /bin/pwd)
REPO_PARENT=$(CURDIR)/../..
-include $(REPO_PARENT)/parent_common.mk
LINUX ?= /lib/modules/$(shell uname -r)/build
ZIO ?= ../zio
FMC_BUS ?= ../fmc-bus
ZIO ?= ../zio
SPEC_SW ?= ../spec-sw
SVEC_SW ?= ../svec-sw
export ZIO
export FMC_BUS
export SPEC_SW
export SVEC_SW
# FMC_BUS_ABS, ZIO_ABS, SPEC_SW_ABS and SVEC_SW_ABS has to be absolut path,
# due to beeing passed to the Kbuild
FMC_BUS_ABS ?= $(abspath $(FMC_BUS) )
ZIO_ABS ?= $(abspath $(ZIO) )
SPEC_SW_ABS ?= $(abspath $(SPEC_SW) )
SVEC_SW_ABS ?= $(abspath $(SVEC_SW) )
GIT_VERSION = $(shell git describe --always --dirty --long --tags)
export GIT_VERSION
ZIO_VERSION = $(shell cd $(ZIO); git describe --always --dirty --long --tags)
ZIO_VERSION = $(shell cd $(ZIO_ABS); git describe --always --dirty --long --tags)
export ZIO_VERSION
all modules:
$(MAKE) -C $(LINUX) M=$(shell /bin/pwd) modules
$(MAKE) -C $(LINUX) M=$(CURDIR) FMC_BUS_ABS=$(FMC_BUS_ABS) \
ZIO_ABS=$(ZIO_ABS) SPEC_SW_ABS=$(SPEC_SW_ABS) \
SVEC_SW_ABS=$(SVEC_SW_ABS) modules
install modules_install:
$(MAKE) -C $(LINUX) M=$(shell /bin/pwd) modules_install
install modules_install: modules
$(MAKE) -C $(LINUX) M=$(CURDIR) modules_install
# be able to run the "clean" rule even if $(LINUX) is not valid
clean:
......
......@@ -10,6 +10,7 @@ REPO_PARENT=../..
-include $(REPO_PARENT)/parent_common.mk
ZIO ?= ../zio
ZIO_ABS ?= $(abspath $(ZIO) )
LIB = libfmcadc.a
LOBJ := route.o
......@@ -19,7 +20,7 @@ LOBJ += config-zio.o
LOBJ += buffer-zio.o
LOBJ += lib.o
LOBJ += fmc-adc-100m14b4cha.o
CFLAGS = -Wall -ggdb -O2 -I../kernel -I$(ZIO)/include $(EXTRACFLAGS)
CFLAGS = -Wall -ggdb -O2 -I../kernel -I$(ZIO_ABS)/include $(EXTRACFLAGS)
LDFLAGS = -L. -lfmcadc
CC ?= $(CROSS_COMPILE)gcc
......
......@@ -11,8 +11,9 @@ DESTDIR ?= /usr/local
LIBADC = ../lib/
ZIO ?= ../zio
ZIO_ABS ?= $(abspath $(ZIO) )
CFLAGS = -Wall -g -ggdb -I$(LIBADC) -I$(ZIO)/include -I../kernel $(EXTRACFLAGS)
CFLAGS = -Wall -g -ggdb -I$(LIBADC) -I$(ZIO_ABS)/include -I../kernel $(EXTRACFLAGS)
LDFLAGS = -L$(LIBADC) -lfmcadc -lpthread -lrt
DEMOS := fald-simple-acq fald-acq fald-trg-cfg
......
......@@ -7,11 +7,13 @@
REPO_PARENT=../..
-include $(REPO_PARENT)/parent_common.mk
ZIO ?= ../zio
ZIO_ABS ?= $(abspath $(ZIO) )
# user-space tools for spec-fine-delay
M = $(shell /bin/pwd)/../kernel
M = ../kernel
DESTDIR ?= /usr/local
CFLAGS += -I$(M) -I$(ZIO)/include -Wno-trigraphs -Wall -ggdb -O2 $(EXTRACFLAGS)
CFLAGS += -I$(M) -I$(ZIO_ABS)/include -Wno-trigraphs -Wall -ggdb -O2 $(EXTRACFLAGS)
CC ?= $(CROSS_COMPILE)gcc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment