Xenomai Makefile in QTCreator integrieren

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
flambert
Beiträge: 9
Registriert: 23. April 2010 15:05

Xenomai Makefile in QTCreator integrieren

Beitrag von flambert »

Hallo zusammen,

Ich muss zugeben ich bin bei der ganzen Makefile-Sache noch ein blutiger Anfänger. Ich habe ein Beispiel zu Xenomai's Posix Skin und ein dazugehöriges Makefile. Das Makefile sieht folgendermassen aus:

Code: Alles auswählen

###### CONFIGURATION ######

### List of applications to be build
APPLICATIONS = satch

### Note: to override the search path for the xeno-config script, use "make XENO=..."


### List of modules to be build
MODULES = satch

### Note: to override the kernel source path, use "make KSRC=..."

all::

satch: satch.c


###### 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=-DCONSUMER $(shell $(XENOCONFIG) --posix-cflags) $(APP_CFLAGS)

LDFLAGS=$(shell $(XENOCONFIG) --posix-ldflags) $(APP_LDFLAGS)

# 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)

all:: $(APPLICATIONS)

clean::
    $(RM) $(APPLICATIONS) *.o

endif
endif



###### 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
PATCHLEVEL:=$(shell sed 's/PATCHLEVEL = \(.*\)/\1/;t;d' $(KSRC)/Makefile)
ifeq ($(PATCHLEVEL),6)

obj-m        := $(OBJS)
EXTRA_CFLAGS := -DPRODUCER -I$(KSRC)/include/xenomai -I$(KSRC)/include/xenomai/posix $(ADD_CFLAGS)

all::
    $(MAKE) -C $(KSRC) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) SUBDIRS=$(PWD) modules
    $(RM) *.o

### 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 Module.markers modules.order
    $(RM) -R .tmp*
    $(RM) .runinfo

endif

Hat irgendwer die leiseste Ahnung wie ich das Makefile auf die "Projekte"-Seite vom QtCreator (4.6.2) übertrage?

Gruß,
flambert
Antworten