]> rtime.felk.cvut.cz Git - omk.git/blobdiff - snippets/linux
Name of included Makefile.omk can by changed via MAKEFILE_OMK variable.
[omk.git] / snippets / linux
index faa9b66abba2dc2aebc6cee22dec14d779d54583..f8689a15f09104e07a9e976e1b17bc9704d5866e 100644 (file)
@@ -23,6 +23,8 @@
 #
 # LINUX_DIR        .. location of Linux kernel sources
 # RTL_DIR          .. location of RT-Linux sources
+# CFLAGS           .. C compiler flags
+# CXXFLAGS         .. C++ compiler flags
 
 # Hack to check RT-Linux rules
 #LINUX_DIR := /home/cvs/ocera/ocera-build/kernel/linux
 #CONFIG_RTLINUX = y
 #OCERA_DIR := $(shell ( cd -L $(MAKERULES_DIR)/../../.. ; pwd -L ) )
 
-#CFLAGS += -ggdb
-CFLAGS += -O2 
-CFLAGS += -Wall
-#CXXFLAGS += -ggdb
-CXXFLAGS += -O2
-CXXFLAGS += -Wall
+# Assign default values to CFLAGS variable. If the variable is defined
+# earlier (i.g. in config.omk), it is not overriden here.
+CFLAGS ?= -O2 -Wall
+CXXFLAGS ?= -O2 -Wall
 
 
 CPPFLAGS  += -I $(USER_INCLUDE_DIR)
@@ -210,7 +210,7 @@ USER_SOURCES += $$($(1)_SOURCES)
 
 $(2)/$(1)$(3): $$($(1)_OBJS)
        @$(QUIET_CMD_ECHO) "  LINK    $$@"
-       $(Q) $$(shell if [ -z "$$(filter %.cc,$$($(1)_SOURCES:%.cxx=%.cc))" ] ; then echo $$(CC) ; else echo $$(CXX) ; fi) \
+       $(Q) $$(if $$(filter %.cc,$$($(1)_SOURCES:%.cxx=%.cc)),$$(CC),$$(CXX)) \
          $$($(1)_OBJS) $$($(1)_LIBS:%=-l%) $$(LOADLIBES) $$(LDFLAGS) -Wl,-Map,$(USER_OBJS_DIR)/$(1).exe.map -o $$@
        @echo "$(2)/$(1)$(3): \\" >$(USER_OBJS_DIR)/$(1).exe.d
        @sed -n -e 's/^LOAD \(.*\)$$$$/  \1  \\/p' $(USER_OBJS_DIR)/$(1).exe.map  >>$(USER_OBJS_DIR)/$(1).exe.d
@@ -362,6 +362,7 @@ KERN_AR = $(AR)
 endif
 ifeq ($(LINUX_QUOTE_MODNAME),y)
 KERN_MQ=\"
+KERN_KBUILD_MODNAME=-D"KBUILD_MODNAME=((THIS_MODULE)?(THIS_MODULE)->name:NULL)"
 endif
 endif # CONFIG_RTLINUX
 
@@ -400,7 +401,8 @@ define COMPILE_c_o_kern_template
 
 $(2): $(1) $(LOCAL_CONFIG_H)
        @$(QUIET_CMD_ECHO) "  CC [K]  $$@"
-       $(Q) if $$(c_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \
+       $(Q) if $$(c_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) $(KERN_KBUILD_MODNAME) \
+       -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \
        -o $$@ -c $$< ; \
        then mv -f "$$@.d.tmp" "$$@.d" ; \
        else rm -f "$$@.d.tmp" ; exit 1; \
@@ -413,7 +415,8 @@ define COMPILE_cc_o_kern_template
 
 $(2): $(1) $(LOCAL_CONFIG_H)
        @$(QUIET_CMD_ECHO) "  CXX [K] $$@"
-       $(Q) if $$(cc_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \
+       $(Q) if $$(cc_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) $(KERN_KBUILD_MODNAME) \
+       -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \
        -o $$@ -c $$< ; \
        then mv -f "$$@.d.tmp" "$$@.d" ; \
        else rm -f "$$@.d.tmp" ; exit 1; \
@@ -465,7 +468,7 @@ $(2)/$(1)$(KERN_LINK_SUFFIX): $$($(1)_OBJS)
        @echo "$(2)/$(1)$(KERN_LINK_SUFFIX): \\" >$(KERN_OBJS_DIR)/$(1).mod.d
        @sed -n -e 's/^LOAD \(.*\)$$$$/  \1  \\/p' $(KERN_OBJS_DIR)/$(1).mod.map  >>$(KERN_OBJS_DIR)/$(1).mod.d
        @echo >>$(KERN_OBJS_DIR)/$(1).mod.d
-       @if [ "$(KERN_EXE_SUFFIX)" == ".ko" ] ; then \
+       @if [ "$(KERN_EXE_SUFFIX)" = ".ko" ] ; then \
          echo $(1) >>$(KERN_MODPOST_DIR)/module-changes ; \
          echo $(1) >>$(KERN_MODPOST_DIR)/$(1).mod.stamp ; \
        fi