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