From c47048a68eec6838c87e5cde5fddc7e7500b7742 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Thu, 7 Jan 2016 22:37:30 -0800
Subject: [PATCH] libtool: do not use jlibtool

jlibtool is hardcoded to be used but we need to use
our libtool, so fix the makfiles to make it compatible
with our libtool.

Upstream-Status: Inappropriate [embedded specific]

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
 Make.inc.in        |  3 ++-
 scripts/boiler.mk  |  2 ++
 scripts/install.mk | 14 +++++++-------
 scripts/libtool.mk | 22 +++++++++++++++-------
 4 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/Make.inc.in b/Make.inc.in
index 6d5cc1c343..7944aa7143 100644
--- a/Make.inc.in
+++ b/Make.inc.in
@@ -57,6 +57,7 @@ CPPFLAGS	= @CPPFLAGS@
 LIBPREFIX	= @LIBPREFIX@
 EXEEXT		= @EXEEXT@
 
+LIBTOOL		= @LIBTOOL@
 ACLOCAL		= @ACLOCAL@
 AUTOCONF	= @AUTOCONF@
 AUTOHEADER	= @AUTOHEADER@
@@ -168,7 +169,7 @@ ANALYZE.c       := @clang_path@
 #
 ifeq "$(USE_SHARED_LIBS)" "yes"
 	TESTBINDIR = ./$(BUILD_DIR)/bin/local
-	TESTBIN    =  FR_LIBRARY_PATH=./build/lib/.libs $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR)
+	TESTBIN    =  FR_LIBRARY_PATH=./build/lib/.libs $(LIBTOOL) --quiet --mode=execute $(TESTBINDIR)
 else
 	TESTBINDIR = ./$(BUILD_DIR)/bin
 	TESTBIN    = ./$(BUILD_DIR)/bin
diff --git a/scripts/boiler.mk b/scripts/boiler.mk
index 9d70104747..a882e5ce2b 100644
--- a/scripts/boiler.mk
+++ b/scripts/boiler.mk
@@ -271,6 +271,7 @@ define COMPILE_C_CMDS
 	$(Q)$(ECHO) CC $<
 	$(Q)$(strip ${COMPILE.c} -o $@ -c -MD ${CPPFLAGS} ${CFLAGS} ${SRC_CFLAGS} ${INCDIRS} \
 	    $(addprefix -I, ${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} $<)
+	${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
 endef
 else
 #
@@ -286,6 +287,7 @@ define COMPILE_C_CMDS
 	$(Q)cppcheck --enable=style -q ${CHECKFLAGS} $(filter -isystem%,${SRC_CFLAGS}) \
 	     $(filter -I%,${SRC_CFLAGS}) $(filter -D%,${SRC_CFLAGS}) ${INCDIRS} \
 	     $(addprefix -I,${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} --suppress=variableScope --suppress=invalidscanf $<
+	${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
 endef
 endif
 
diff --git a/scripts/install.mk b/scripts/install.mk
index 916411563b..e38c1ed697 100644
--- a/scripts/install.mk
+++ b/scripts/install.mk
@@ -46,7 +46,7 @@ define ADD_INSTALL_RULE.exe
     install: $${${1}_INSTALLDIR}/$(notdir ${1})
 
     # Install executable ${1}
-    $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
+    $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
 	@$(ECHO) INSTALL ${1}
 	$(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/bin/${1} $${${1}_INSTALLDIR}/
 	$(Q)$${${1}_POSTINSTALL}
@@ -65,7 +65,7 @@ define ADD_INSTALL_RULE.a
     install: $${${1}_INSTALLDIR}/$(notdir ${1})
 
     # Install static library ${1}
-    $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} ${1} | $${${1}_INSTALLDIR}
+    $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} ${1} | $${${1}_INSTALLDIR}
 	@$(ECHO) INSTALL ${1}
 	$(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
 	$(Q)$${${1}_POSTINSTALL}
@@ -87,9 +87,9 @@ define ADD_INSTALL_RULE.la
     install: $${${1}_INSTALLDIR}/$(notdir ${1})
 
     # Install libtool library ${1}
-    $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
+    $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
 	@$(ECHO) INSTALL ${1}
-	$(Q)$${PROGRAM_INSTALL} -c -m 755 $${LOCAL_FLAGS_MIN} $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
+	$(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
 	$(Q)$${${1}_POSTINSTALL}
 
 endef
@@ -107,7 +107,7 @@ define ADD_INSTALL_RULE.man
     install: ${2}/$(notdir ${1})
 
     # Install manual page ${1}
-    ${2}/$(notdir ${1}): ${JLIBTOOL} ${1} | ${2}
+    ${2}/$(notdir ${1}): ${LIBTOOL} ${1} | ${2}
 	@$(ECHO) INSTALL $(notdir ${1})
 	$(Q)$${PROGRAM_INSTALL} -c -m 644 ${1} ${2}/
 
@@ -122,9 +122,9 @@ endef
 define ADD_INSTALL_RULE.dir
     # Install directory
     .PHONY: ${1}
-    ${1}: ${JLIBTOOL}
+    ${1}: ${LIBTOOL}
 	@$(ECHO) INSTALL -d -m 755 ${1}
-	$(Q)$${PROGRAM_INSTALL} -d -m 755 ${1}
+	$(Q)$${INSTALL} -d -m 755 ${1}
 endef
 
 
diff --git a/scripts/libtool.mk b/scripts/libtool.mk
index 64c2fe0804..05ed2292f0 100644
--- a/scripts/libtool.mk
+++ b/scripts/libtool.mk
@@ -33,7 +33,7 @@ JLIBTOOL := ${BUILD_DIR}/make/jlibtool
 
 # Add a rule to build jlibtool BEFORE any other targets.  This
 # means that we can use it to build the later targets.
-all install: ${JLIBTOOL}
+all install: ${LIBTOOL}
 
 # Note that we need to use a compilation rule that does NOT
 # include referencing ${LIBTOOL}, as we don't have a jlibtool
@@ -51,7 +51,7 @@ jlibtool_clean:
 
 # Tell GNU Make to use this value, rather than anything specified
 # on the command line.
-override LIBTOOL := ${JLIBTOOL}
+#override LIBTOOL := ${JLIBTOOL}
 
 # When using libtool, it produces a '.libs' directory.  Ensure that it
 # is removed on "make clean", too.
@@ -65,11 +65,19 @@ clean: .libs_clean
 # Re-define compilers and linkers
 #
 OBJ_EXT = lo
-COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
-COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
-LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
-LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
-PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
+ifeq "${LIBTOOL}" "JLIBTOOL"
+    COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
+    COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
+    LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
+    LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
+    PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
+else
+    COMPILE.c = ${LIBTOOL} --mode=compile --tag=CC ${CC}
+    COMPILE.cxx = ${LIBTOOL} --mode=compile --tag=CC ${CXX}
+    LINK.c = ${LIBTOOL} --mode=link --tag=CC ${CC} -module -export-dynamic
+    LINK.cxx = ${LIBTOOL} --mode=link --tag=CC ${CXX} -module -export-dynamic
+    PROGRAM_INSTALL = ${LIBTOOL} --mode=install ${INSTALL}
+endif
 
 
 # LIBTOOL_ENDINGS - Given a library ending in ".a" or ".so", replace that
-- 
2.25.1

