From: Michal Sojka Date: Fri, 22 Nov 2013 16:41:21 +0000 (+0100) Subject: Support target specific flags also for libraries X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/commitdiff_plain/d5e8b0105eeaf293d22a28a47ed5026fb3231ca2 Support target specific flags also for libraries --- diff --git a/snippets/linux.omk b/snippets/linux.omk index 3b2595f..48f6dba 100644 --- a/snippets/linux.omk +++ b/snippets/linux.omk @@ -231,7 +231,7 @@ TARGET_SOURCES = $($(1)_SOURCES) $($(1)_GEN_SOURCES) $(TARGET_IDL_SOURCES) TARGET_SOURCES_ABS = $($(1)_SOURCES:%=$(SOURCES_DIR)/%) $($(1)_GEN_SOURCES) $(TARGET_IDL_SOURCES) TARGET_OBJ_PREFIX = $(if $($(1)_CFLAGS)$($(1)_CXXFLAGS)$($(1)_CPPFLAGS),$(1)-,) TARGET_OBJS = $(sort $(addprefix $(TARGET_OBJ_PREFIX),$(addsuffix .o,$(basename $(notdir $(TARGET_SOURCES)))))) -TARGET_LOBJS = $(sort $(addsuffix .lo,$(basename $(notdir $(TARGET_SOURCES))))) +TARGET_LOBJS = $(sort $(addprefix $(TARGET_OBJ_PREFIX),$(addsuffix .lo,$(basename $(notdir $(TARGET_SOURCES)))))) TARGET_IDLS = $($(1)_SERVER_IDL) $($(1)_CLIENT_IDL) $($(1)_IDL) TARGET_CFLAGS = $(if $($(1)_CFLAGS),$($(1)_CFLAGS),$(AM_CFLAGS)) TARGET_CXXFLAGS = $(if $($(1)_CXXFLAGS),$($(1)_CXXFLAGS),$(AM_CXXFLAGS)) @@ -273,8 +273,11 @@ define LIBRARY_template $(foreach idl,$(TARGET_IDLS),$(call COMPILE_idl_template,$(SOURCES_DIR)/$(idl),$(idl:%.idl=%))) -$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.o) +$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.o,$(TARGET_OBJ_PREFIX)) +$(USER_LIB_DIR)/lib$(1).a: AM_CFLAGS=$(TARGET_CFLAGS) +$(USER_LIB_DIR)/lib$(1).a: AM_CXXFLAGS=$(TARGET_CXXFLAGS) +$(USER_LIB_DIR)/lib$(1).a: AM_CPPFLAGS=$(TARGET_CPPFLAGS) $(USER_LIB_DIR)/lib$(1).a: $(TARGET_OBJS) @$(QUIET_CMD_ECHO) " AR $$@" $(Q) $(AR) rcs $$@ $$^ @@ -288,11 +291,15 @@ define SOLIB_template $(foreach idl,$(TARGET_IDLS),$(call COMPILE_idl_template,$(SOURCES_DIR)/$(idl),$(idl:%.idl=%))) -$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.lo) +$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.lo,$(TARGET_OBJ_PREFIX)) .PHONY: $(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar -$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: AM_CFLAGS += $(SOLIB_PICFLAGS) -$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: AM_CXXFLAGS += $(SOLIB_PICFLAGS) +$(2)/$(1)$(3): AM_CFLAGS=$(TARGET_CFLAGS) +$(2)/$(1)$(3): AM_CXXFLAGS=$(TARGET_CXXFLAGS) +$(2)/$(1)$(3): AM_CPPFLAGS=$(TARGET_CPPFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: AM_CFLAGS = $(TARGET_CFLAGS) $(SOLIB_PICFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: AM_CXXFLAGS = $(TARGET_CXXFLAGS) $(SOLIB_PICFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: AM_CPPFLAGS = $(TARGET_CPPFLAGS) $(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: $(TARGET_LOBJS) $(Q)echo '$(1)_objslo += $$$$(addprefix $(USER_OBJS_DIR)/,$$^)' > $$@.tmp; \ echo '$(1)_libs += $$($(1)_LIBS) $$(lib_LOADLIBES)' >> $$@.tmp; \ diff --git a/tests/libraries b/tests/libraries index aedccee..25efc35 100755 --- a/tests/libraries +++ b/tests/libraries @@ -43,3 +43,16 @@ case $OMK_RULES in linux) WVPASS test -f _compiled/lib/libmylib.a ;; esac WVPASS make -C app + +WVSTART "Static library with specific CFLAGS" +cat > 'lib.c' < 'Makefile.omk' < 'lib.c' < 'Makefile.omk' <