]> rtime.felk.cvut.cz Git - omk.git/blobdiff - snippets/rtems.omk
Prevent GNU linker synthetic LOAD map statements to propagate to dependencies.
[omk.git] / snippets / rtems.omk
index c5ea7d6d06e619f6607cda7780cf2e45946fdf60..97e007527f84845e551df7ad2c54426dfcdba21f 100644 (file)
 # xxx_EMBEDTARFILES .. list of source subdirectories which are embedded as tar files to the application
 # xxx_EXPORTSYMBOLS .. if "y" then include symbol table in the application for dlopen functionality
 
+# Output variables:
+# OBJ_EXT - extension of object files
+# LIB_EXT - extension of library files
+# LIB_PREF - prefix for library files
+# ASM_EXT - extension of assembler sources
+
 include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
 include $(RTEMS_CUSTOM)
 include $(CONFIG.CC)
@@ -33,7 +39,6 @@ USER_BUILD_DIR   := $(MAKERULES_DIR)/$(BUILD_DIR_NAME)/user
 
 LOCAL_BUILD_DIR  = $(USER_OBJS_DIR)
 
-
 DEFAULT_INCLUDES = -I $(PROJECT_INCLUDE)
 
 CPPFLAGS  += -I $(USER_INCLUDE_DIR)
@@ -51,6 +56,11 @@ LOADLIBES += $(lib_LOADLIBES:%=-l%)
 
 SOLIB_PICFLAGS += -shared -fpic
 
+OBJ_EXT = .o
+LIB_EXT = .a
+LIB_PREF = lib
+ASM_EXT = .S
+
 ifndef RELATIVE_DIR
 RELATIVE_DIR := $(SOURCES_DIR:$(MAKERULES_DIR)%=%)
 endif
@@ -212,12 +222,9 @@ $(2)/$(1): $$($(1)_OBJS)
                -S $(1)-symbol-table.c -o $(1)-symbol-table.o $(1).prelink || exit 1 ; \
          $$($(1)_LDCOMMAND) $(1)-symbol-table.o $$(LOADLIBES) $$($(1)_LIBS:%=-l%) -o $(2)/$(1) || exit 1 ; \
        fi
-
-#@echo "$(2)/$(1): \\" >$(USER_OBJS_DIR)/$(1).exe.d
-#@$(SED4OMK) -n -e 's/^LOAD \(.*\)$$$$/  \1  \\/p' $(USER_OBJS_DIR)/$(1).exe.map  >>$(USER_OBJS_DIR)/$(1).exe.d
-#@echo >>$(USER_OBJS_DIR)/$(1).exe.d
-#-Wl,-Map,$(USER_OBJS_DIR)/$(1).exe.map
-# FIXME: Why the map file was commented out?
+       @echo "$(2)/$(1): \\" >$(USER_OBJS_DIR)/$(1).exe.d
+       @$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$|  \1  \&|p' $(USER_OBJS_DIR)/$(1).exe.map|tr '&' '\134' | grep -v '^  linker [^ ]'  >>$(USER_OBJS_DIR)/$(1).exe.d
+       @echo >>$(USER_OBJS_DIR)/$(1).exe.d
 endef
 
 # Rules for other output formats (can be specified by OUTPUT_FORMATS)