summaryrefslogtreecommitdiff
path: root/mk/rte.lib.mk
diff options
context:
space:
mode:
authorIntel <intel.com>2013-09-18 12:00:00 +0200
committerThomas Monjalon <thomas.monjalon@6wind.com>2013-10-09 15:46:49 +0200
commit4d3d79e7a5c66239df2e2d2304e8e351074b8c7d (patch)
tree439893e8fd2322961e553c40def6a30f6c9db76d /mk/rte.lib.mk
parente25e4d7ef16b8aa84de7b0c93c48260b68c86fbe (diff)
downloaddpdk-4d3d79e7a5c66239df2e2d2304e8e351074b8c7d.zip
dpdk-4d3d79e7a5c66239df2e2d2304e8e351074b8c7d.tar.gz
dpdk-4d3d79e7a5c66239df2e2d2304e8e351074b8c7d.tar.xz
mk: combined library
Allow to merge all libraries (shared or static) into one. Signed-off-by: Intel
Diffstat (limited to 'mk/rte.lib.mk')
-rw-r--r--mk/rte.lib.mk34
1 files changed, 34 insertions, 0 deletions
diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
index f56df5c..30136b4 100644
--- a/mk/rte.lib.mk
+++ b/mk/rte.lib.mk
@@ -76,6 +76,24 @@ O_TO_S_DO = @set -e; \
$(O_TO_S) && \
echo $(O_TO_S_CMD) > $(call exe2cmd,$(@))
+ifeq ($(RTE_BUILD_SHARED_LIB),n)
+O_TO_C = $(AR) crus $(LIB_ONE) $(OBJS-y)
+O_TO_C_STR = $(subst ','\'',$(O_TO_C)) #'# fix syntax highlight
+O_TO_C_DISP = $(if $(V),"$(O_TO_C_STR)"," AR_C $(@)")
+O_TO_C_DO = @set -e; \
+ $(lib_dir) \
+ $(copy_obj)
+else
+O_TO_C = $(LD) -z muldefs -share $(OBJS-y) -o $(LIB_ONE)
+O_TO_C_STR = $(subst ','\'',$(O_TO_C)) #'# fix syntax highlight
+O_TO_C_DISP = $(if $(V),"$(O_TO_C_STR)"," LD_C $(@)")
+O_TO_C_DO = @set -e; \
+ $(lib_dir) \
+ $(copy_obj)
+endif
+
+copy_obj = cp -f $(OBJS-y) $(RTE_OUTPUT)/build/lib;
+lib_dir = [ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib;
-include .$(LIB).cmd
#
@@ -96,6 +114,14 @@ $(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
$(depfile_missing),\
$(depfile_newer)),\
$(O_TO_S_DO))
+ifeq ($(RTE_BUILD_COMBINE_LIBS),y)
+ $(if $(or \
+ $(file_missing),\
+ $(call cmdline_changed,$(O_TO_C_STR)),\
+ $(depfile_missing),\
+ $(depfile_newer)),\
+ $(O_TO_C_DO))
+endif
else
$(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
@[ -d $(dir $@) ] || mkdir -p $(dir $@)
@@ -111,6 +137,14 @@ $(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
$(depfile_missing),\
$(depfile_newer)),\
$(O_TO_A_DO))
+ifeq ($(RTE_BUILD_COMBINE_LIBS),y)
+ $(if $(or \
+ $(file_missing),\
+ $(call cmdline_changed,$(O_TO_C_STR)),\
+ $(depfile_missing),\
+ $(depfile_newer)),\
+ $(O_TO_C_DO))
+endif
endif
#