From ca54517a66460ac64138e7a8944209f5c6b62ced Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Sat, 1 Apr 2023 00:34:13 +0200 Subject: [PATCH] Ensure that OBJ_EXT, LIB_EXT, LIB_PREF and ASM_EXT is defined for all targets. Signed-off-by: Pavel Pisa --- snippets/cmetric.omk | 4 ++-- snippets/linux.omk | 12 ++++++++++++ snippets/rtems.omk | 12 +++++++++++- snippets/sources-list.omk | 2 +- snippets/sysless.omk | 4 ++-- snippets/vxworks.omk | 10 ++++++++++ 6 files changed, 38 insertions(+), 6 deletions(-) diff --git a/snippets/cmetric.omk b/snippets/cmetric.omk index f44cd02..0b31bab 100644 --- a/snippets/cmetric.omk +++ b/snippets/cmetric.omk @@ -34,9 +34,9 @@ library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS)) $(foreach cmetrh,$(cmetric_include_HEADERS),$(eval $(call COMPILE_c_o_template,\ $(SOURCES_DIR)/$($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES),\ - $($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES:%.c=%.o),))) + $($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES:%.c=%$(OBJ_EXT)),))) $(foreach cmetrh,$(cmetric_include_HEADERS),$(eval $(call CMETRIC_o_h_template,\ - $($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES:%.c=%.o),\ + $($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES:%.c=%$(OBJ_EXT)),\ $(addprefix $(USER_INCLUDE_DIR)/,$(cmetrh))))) GEN_HEADERS+=$(cmetric_include_HEADERS:%=$(USER_INCLUDE_DIR)/%) diff --git a/snippets/linux.omk b/snippets/linux.omk index 657bc65..e5017be 100644 --- a/snippets/linux.omk +++ b/snippets/linux.omk @@ -23,6 +23,13 @@ # OMK_CPPFLAGS .. C preprocessor flags # LDFLAGS .. linker flags for programs linking +# Output variables: +# OBJ_EXT - extension of object files +# LIB_EXT - extension of library files +# SOLIB_EXT - extension of dynamically linked libraries +# LIB_PREF - prefix for library files +# ASM_EXT - extension of assembler sources + BUILD_DIR_NAME = _build COMPILED_DIR_NAME = _compiled ifndef GROUP_DIR_NAME @@ -75,6 +82,11 @@ else SOLIB_PICFLAGS += -fpic endif +OBJ_EXT = .o +LIB_EXT = .a +LIB_PREF = lib +ASM_EXT = .S + #vpath %.c $(SOURCES_DIR) #vpath %.cc $(SOURCES_DIR) #vpath %.cxx $(SOURCES_DIR) diff --git a/snippets/rtems.omk b/snippets/rtems.omk index c5ea7d6..83c78eb 100644 --- a/snippets/rtems.omk +++ b/snippets/rtems.omk @@ -15,6 +15,12 @@ # 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 diff --git a/snippets/sources-list.omk b/snippets/sources-list.omk index cfb6704..222911e 100644 --- a/snippets/sources-list.omk +++ b/snippets/sources-list.omk @@ -46,7 +46,7 @@ sources-list-pass-local: @$(foreach h,$(renamed_include_HEADERS),echo '$(h)'|$(SED4OMK) -e 's|\(.*\)->.*|$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))\1|' >> "$(SOURCES_LIST).tmp";) @$(foreach bin,$(lib_LIBRARIES) $(shared_LIBRARIES) $(bin_PROGRAMS) $(test_PROGRAMS) $(utils_PROGRAMS) \ $(kernel_LIBRARIES) $(rtlinux_LIBRARIES) $(kernel_MODULES),\ - $(foreach src,$(filter-out %.o,$($(bin)_SOURCES)),echo "$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))$(src)" >> "$(SOURCES_LIST).tmp";)) + $(foreach src,$(filter-out %$(OBJ_EXT),$($(bin)_SOURCES)),echo "$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))$(src)" >> "$(SOURCES_LIST).tmp";)) ############ TAGS ########### diff --git a/snippets/sysless.omk b/snippets/sysless.omk index 1545cd5..8edaff3 100644 --- a/snippets/sysless.omk +++ b/snippets/sysless.omk @@ -135,7 +135,7 @@ $(foreach src,$(filter %.cc,$(SOURCES)),$(eval $(call COMPILE_cc_o_template,$(SO $(foreach src,$(filter %.cxx,$(SOURCES)),$(eval $(call COMPILE_cc_o_template,$(SOURCES_DIR)/$(src),$(src:%.cxx=%$(OBJ_EXT)),))) $(foreach src,$(filter %$(ASM_EXT),$(SOURCES)),$(eval $(call COMPILE_S_o_template,$(SOURCES_DIR)/$(src),$(src:%$(ASM_EXT)=%$(OBJ_EXT)),))) $(foreach src,$(filter %.s,$(SOURCES)),$(eval $(call COMPILE_S_o_template,$(SOURCES_DIR)/$(src),$(src:%.s=%$(OBJ_EXT)),))) -$(foreach src,$(filter %.c,$(GEN_SOURCES)),$(eval $(call COMPILE_c_o_template,$(src),$(src:%.c=%.o),))) +$(foreach src,$(filter %.c,$(GEN_SOURCES)),$(eval $(call COMPILE_c_o_template,$(src),$(src:%.c=%$(OBJ_EXT)),))) $(foreach src,$(filter %.c,$(SOLIB_SOURCES)),$(eval $(call COMPILE_c_o_template,$(SOURCES_DIR)/$(src),$(src:%.c=%.lo),$(SOLIB_PICFLAGS)))) $(foreach src,$(filter %.cc,$(SOLIB_SOURCES)),$(eval $(call COMPILE_cc_o_template,$(SOURCES_DIR)/$(src),$(src:%.cc=%.lo),$(SOLIB_PICFLAGS)))) @@ -262,7 +262,7 @@ include-pass-local: clean-local:: - $(Q)rm -f $(USER_OBJS_DIR)/*.o $(USER_OBJS_DIR)/*.lo \ + $(Q)rm -f $(USER_OBJS_DIR)/*$(OBJ_EXT) $(USER_OBJS_DIR)/*.lo \ $(USER_OBJS_DIR)/*.d \ $(USER_OBJS_DIR)/*.map \ $(LOCAL_CONFIG_H:%=$(USER_OBJS_DIR)/%) diff --git a/snippets/vxworks.omk b/snippets/vxworks.omk index 69feaec..f2cd5b8 100644 --- a/snippets/vxworks.omk +++ b/snippets/vxworks.omk @@ -13,6 +13,12 @@ # xxx_LIBS .. list of specific target libraries # INCLUDES .. additional include directories and defines for user-space +# 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 + ifndef WRENV $(error WRENV is not defined in config.target) endif @@ -70,6 +76,10 @@ ADDED_C++FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OMK_CPPFLAGS) \ export ADDED_CFLAGS ADDED_C++FLAGS +OBJ_EXT = .o +LIB_EXT = .a +LIB_PREF = lib +ASM_EXT = .S USER_SOURCES2OBJS = .o/.c .o/.cc .o/.cxx .o/.o -- 2.39.2