]> rtime.felk.cvut.cz Git - omk.git/commitdiff
Support target specific flags also for libraries
authorMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 22 Nov 2013 16:41:21 +0000 (17:41 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 22 Nov 2013 16:41:21 +0000 (17:41 +0100)
snippets/linux.omk
tests/libraries
tests/shlibs

index 3b2595f55960a89dc69e5ff44ccb466430c9a37c..48f6dba8477d9f0d9620b69aebefdaf4c968a774 100644 (file)
@@ -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; \
index aedccee45aa46512f9b9f83978a4b368b637f91b..25efc35b05c78a692b8271a2732700056201d122 100755 (executable)
@@ -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' <<EOF
+#if SYM != 123
+#error SYM value is wrong
+#endif
+EOF
+cat > 'Makefile.omk' <<EOF # OMK manual includes this file - do not modify it
+lib_LIBRARIES = mylib
+mylib_SOURCES = lib.c
+mylib_CFLAGS = -DSYM=123
+EOF
+WVPASS make
index 9adc3e72dc320dd541e7899511334906de4376ea..4b800f85601b806d8ea7205e79677ae029e60473 100755 (executable)
@@ -44,3 +44,16 @@ test_LIBS = a b
 EOF
 needs_valid_CC
 WVPASS make
+
+WVSTART "Dynamic library with specific CFLAGS"
+cat > 'lib.c' <<EOF
+#if SYM != 123
+#error SYM value is wrong
+#endif
+EOF
+cat > 'Makefile.omk' <<EOF # OMK manual includes this file - do not modify it
+shared_LIBRARIES = mylib
+mylib_SOURCES = lib.c
+mylib_CFLAGS = -DSYM=123
+EOF
+WVPASS make