###### CONFIGURATION ###### ### List of applications to be build APPLICATIONS = ex01 ### Note: to override the search path for the xeno-config script, use "make XENO=..." ### List of modules to be build MODULES = ex01 ### Note: to override the kernel source path, use "make KSRC=..." ###### USER SPACE BUILD (no change required normally) ###### ifeq ($(KERNELRELEASE),) ifneq ($(APPLICATIONS),) ### Default Xenomai installation path XENO ?= /usr/xenomai XENOCONFIG=$(shell PATH=$(XENO):$(XENO)/bin:$(PATH) which xeno-config 2>/dev/null) ### Sanity check ifeq ($(XENOCONFIG),) all:: @echo ">>> Invoke make like this: \"make XENO=/path/to/xeno-config\" <<<" @echo endif CC=$(shell $(XENOCONFIG) --cc) CFLAGS=$(shell $(XENOCONFIG) --xeno-cflags) $(MY_CFLAGS) LDFLAGS=$(shell $(XENOCONFIG) --xeno-ldflags) $(MY_LDFLAGS) -lnative # This includes the library path of given Xenomai into the binary to make live # easier for beginners if Xenomai's libs are not in any default search path. LDFLAGS+=-Xlinker -rpath -Xlinker $(shell $(XENOCONFIG) --libdir) LDFLAGS+= -lrtdk all:: $(APPLICATIONS) clean:: $(RM) $(APPLICATIONS) *.o endif endif ###### SPECIAL TARGET RULES ###### rtprint: rtprint.c $(CC) $(CFLAGS) $? $(LDFLAGS) -lrtdk -o $@ ###### KERNEL MODULE BUILD (no change required normally) ###### ifneq ($(MODULES),) ### Default to sources of currently running kernel KSRC ?= /lib/modules/$(shell uname -r)/build OBJS := ${patsubst %, %.o, $(MODULES)} CLEANMOD := ${patsubst %, .%*, $(MODULES)} PWD := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) ### Kernel 2.6 ifeq ($(findstring 2.6,$(KSRC)),2.6) obj-m := $(OBJS) EXTRA_CFLAGS := -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/posix $(ADD_CFLAGS) all:: $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules ### Kernel 2.4 else ARCH ?= $(shell uname -i) INCLUDE := -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/compat -I$(KSRC)/include/xenomai/posix CFLAGS += $(shell $(MAKE) -s -C $(KSRC) CC=$(CC) ARCH=$(ARCH) SUBDIRS=$(PWD) modules) $(INCLUDE) all:: $(OBJS) endif ## Target for capturing 2.4 module CFLAGS modules: @echo "$(CFLAGS)" clean:: $(RM) $(CLEANMOD) *.o *.ko *.mod.c Module*.symvers $(RM) -R .tmp* endif