--- a/config/Make.project.rules
+++ b/config/Make.project.rules
@@ -58,7 +58,7 @@
 E                       := $(if $(V),@:,@echo)
 
 # $(call install-data,$1=filename,$2=srcdir,$3=destdist)
-install-data            = $(INSTALL) $2/$1 $(DESTDIR)$3/$1; $(CHMOD) a+r $(DESTDIR)$(3)/$(1)
+install-data            = $(INSTALL) -m 644 $2/$1 $(DESTDIR)$3/$1; $(CHMOD) a+r $(DESTDIR)$(3)/$(1)
 
 #
 # $(call install-data-files,$1=files,$2=$srcdir,$3=$destdir,$4=target,$5=text-output)
--- a/cpp/Makefile
+++ b/cpp/Makefile
@@ -40,4 +40,4 @@
 $(call make-projects,$(projects),make-cpp-test-project)
 
 install:: | $(DESTDIR)$(install_configdir)
-	$(Q)$(INSTALL) $(lang_srcdir)/config/templates.xml $(DESTDIR)$(install_configdir)
+	$(Q)$(call install-data,templates.xml,$(lang_srcdir)/config,$(install_configdir))
--- a/php/Makefile
+++ b/php/Makefile
@@ -48,11 +48,11 @@
 
 install:: | $(DESTDIR)$(install_phpdir)
 	$(E) "Installing generated code"
-	$(Q)$(INSTALL) lib/Glacier2.php  lib/IceBox.php  lib/IceGrid.php lib/IcePatch2.php lib/IceStorm.php $(DESTDIR)$(install_phpdir)
+	$(Q)$(INSTALL) -m 644 lib/Glacier2.php  lib/IceBox.php  lib/IceGrid.php lib/IcePatch2.php lib/IceStorm.php $(DESTDIR)$(install_phpdir)
 ifeq ($(USE_NAMESPACES),no)
-	$(Q)$(INSTALL) lib/Ice_no_ns.php $(DESTDIR)$(install_phpdir)/Ice.php
+	$(Q)$(INSTALL) -m 644 lib/Ice_no_ns.php $(DESTDIR)$(install_phpdir)/Ice.php
 else
-	$(Q)$(INSTALL) lib/Ice_ns.php $(DESTDIR)$(install_phpdir)/Ice.php
+	$(Q)$(INSTALL) -m 644 lib/Ice_ns.php $(DESTDIR)$(install_phpdir)/Ice.php
 endif
 
 $(eval $(call make-php-package,$(slicedir),lib,Ice))
--- a/python/python/Makefile
+++ b/python/python/Makefile
@@ -35,8 +35,8 @@
 
 install:: | $(DESTDIR)$(install_pythondir)/Ice
 	$(E) "Installing generated code"
-	$(Q)$(INSTALL) Ice/__init__.py $(DESTDIR)$(install_pythondir)/Ice
-	$(Q)$(INSTALL) Ice/IceFuture.py $(DESTDIR)$(install_pythondir)/Ice
+	$(Q)$(INSTALL) -m 644 Ice/__init__.py $(DESTDIR)$(install_pythondir)/Ice
+	$(Q)$(INSTALL) -m 644 Ice/IceFuture.py $(DESTDIR)$(install_pythondir)/Ice
 
 install:: | $(DESTDIR)$(install_pythondir)/Glacier2
-	$(Q)$(INSTALL) Glacier2/__init__.py $(DESTDIR)$(install_pythondir)/Glacier2
+	$(Q)$(INSTALL) -m 644 Glacier2/__init__.py $(DESTDIR)$(install_pythondir)/Glacier2
--- a/ruby/Makefile
+++ b/ruby/Makefile
@@ -38,7 +38,7 @@
 
 install:: | $(DESTDIR)$(install_rubydir)
 	$(E) "Installing generated code"
-	$(Q)$(INSTALL) $(lang_srcdir)/ruby/*.rb $(DESTDIR)$(install_rubydir)
+	$(Q)$(INSTALL) -m 644 $(lang_srcdir)/ruby/*.rb $(DESTDIR)$(install_rubydir)
 
 $(eval $(call make-ruby-package,$(slicedir),$(lang_srcdir)/ruby,Ice))
 $(eval $(call make-ruby-package,$(slicedir),$(lang_srcdir)/ruby,Glacier2))
