For PR528:
* Consolidate all "install" usage to the install program/script found by
  autoconf which includes the autoconf/install-sh script if necessary
* Change Makefile.rules to not use the -D flag to install but use the
  MKDIR command as necessary.
* Change Makefile.rules to differentiate between installation of executable
  files and regular data files to get the permission modes correct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20294 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Makefile.rules b/Makefile.rules
index 92f49d5..b020ca9 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -305,7 +305,6 @@
   C.Flags += -v
   CXX.Flags += -v
   LD.Flags += -v
-  Install.Flags += -v
   VERBOSE := 1
 endif
 
@@ -363,7 +362,8 @@
                 $(CompileCommonOpts)
 LTInstall     = $(LIBTOOL) $(LibTool.Flags) --mode=install $(INSTALL) \
 		$(Install.Flags)
-Install       = $(INSTALL) $(Install.Flags)
+ProgInstall   = $(INSTALL) $(Install.Flags) -m 0755 
+DataInstall   = $(INSTALL) $(Install.Flags) -m 0644
 Burg          = $(BURG) -I $(PROJ_SRC_DIR)
 TableGen      = $(TBLGEN) -I $(PROJ_SRC_DIR)
 Archive       = $(AR) $(AR.Flags)
@@ -530,9 +530,9 @@
 	$(Echo) Installing Configuration Files To $(PROJ_etcdir)
 	$(Verb)for file in $(CONFIG_FILES); do \
           if test -f $(PROJ_OBJ_DIR)/$${file} ; then \
-            $(Install) -m 0644 $(PROJ_OBJ_DIR)/$${file} $(PROJ_etcdir) ; \
+            $(DataInstall) $(PROJ_OBJ_DIR)/$${file} $(PROJ_etcdir) ; \
           elif test -f $(PROJ_SRC_DIR)/$${file} ; then \
-            $(Install) -m 0644 $(PROJ_SRC_DIR)/$${file} $(PROJ_etcdir) ; \
+            $(DataInstall) $(PROJ_SRC_DIR)/$${file} $(PROJ_etcdir) ; \
           else \
             $(ECHO) Error: cannot find config file $${file}. ; \
           fi \
@@ -594,7 +594,7 @@
 
 $(DestModule): $(ModuleDestDir) $(Module) 
 	$(Echo) Installing $(BuildMode) Bytecode Module $(DestModule)
-	$(Verb) $(Install) -D $(Module) $@
+	$(Verb) $(ProgInstall) $(Module) $(DestModule)
 
 uninstall-local::
 	$(Echo) Uninstalling $(BuildMode) Bytecode Module $(DestModule)
@@ -708,7 +708,7 @@
 
 $(DestBytecodeLib): $(BytecodeDestDir) $(LibName.BCA) 
 	$(Echo) Installing $(BuildMode) Bytecode Archive $(DestBytecodeLib)
-	$(Verb) $(Install) -D $(LibName.BCA) $@
+	$(Verb) $(ProgInstall) $(LibName.BCA) $(DestBytecodeLib)
 
 uninstall-local::
 	$(Echo) Uninstalling $(BuildMode) Bytecode Archive $(DestBytecodeLib)
@@ -902,7 +902,7 @@
 
 $(DestTool): $(PROJ_bindir) $(ToolBuildPath)
 	$(Echo) Installing $(BuildMode) $(DestTool)
-	$(Verb) $(Install) -D $(ToolBuildPath) $(DestTool)
+	$(Verb) $(ProgInstall) $(ToolBuildPath) $(DestTool)
 
 uninstall-local::
 	$(Echo) Uninstalling $(BuildMode) $(DestTool)
@@ -1465,17 +1465,22 @@
 install-local::
 	$(Echo) Installing include files
 	$(Verb) $(MKDIR) $(PROJ_includedir)
-	$(Verb) if [ -d "$(PROJ_SRC_ROOT)/include" ] ; then \
+	$(Verb) if test -d "$(PROJ_SRC_ROOT)/include" ; then \
 	  cd $(PROJ_SRC_ROOT)/include && \
 	  for  hdr in `find . -type f '!' '(' -name '*~' -o -name '.cvsignore' \
 	      -o -name '.#*' -o -name '*.in' ')' -print | grep -v CVS ` ; do \
-	    $(Install) -D -m 0644 $$hdr $(PROJ_includedir)/$$hdr ; \
+	    instdir=`dirname "$(PROJ_includedir)/$$hdr"` ; \
+	    if test \! -d "$$instdir" ; then \
+	      $(EchoCmd) Making install directory $$instdir ; \
+	      $(MKDIR) $$instdir ;\
+	    fi ; \
+	    $(DataInstall) $$hdr $(PROJ_includedir)/$$hdr ; \
 	  done ; \
 	fi
-	$(Verb) if [ -d "$(PROJ_OBJ_ROOT)/include" ] ; then \
+	$(Verb) if test -d "$(PROJ_OBJ_ROOT)/include" ; then \
 	  cd $(PROJ_OBJ_ROOT)/include && \
 	  for hdr in `find . -type f -print` ; do \
-	    $(Install) -D -m 0644 $$hdr $(PROJ_includedir)/$$hdr ; \
+	    $(DataInstall) $$hdr $(PROJ_includedir)/$$hdr ; \
 	  done ; \
 	fi