~ chicken-core (chicken-5) 2a3f46e5146fe9b8e35c4f6f5ce240d2776852c8


commit 2a3f46e5146fe9b8e35c4f6f5ce240d2776852c8
Author:     felix <felix@p.callcc.org>
AuthorDate: Tue Oct 16 13:34:42 2018 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Mon Oct 22 10:56:44 2018 +0200

    Use installation program and options from build system for egg installation
    
    Instead of hardcoding the install(1) program and options in chicken-install,
    use the associated values from default.make/chicken-config.h.
    
    Signed-off-by: Peter Bex <peter@more-magic.net>
    Signed-off-by: felix <felix@call-with-current-continuation.org>

diff --git a/defaults.make b/defaults.make
index 9ffaa31a..5cba3170 100644
--- a/defaults.make
+++ b/defaults.make
@@ -408,12 +408,21 @@ endif
 	$(call echo, >>, $@,#ifndef C_TARGET_RC_COMPILER)
 	$(call echo, >>, $@,# define C_TARGET_RC_COMPILER "$(TARGET_RC_COMPILER)")
 	$(call echo, >>, $@,#endif)
+	$(call echo, >>, $@,#ifndef C_TARGET_INSTALL_PROGRAM)
+	$(call echo, >>, $@,# define C_TARGET_INSTALL_PROGRAM "$(INSTALL_PROGRAM)")
+	$(call echo, >>, $@,#endif)
 	$(call echo, >>, $@,#ifndef C_TARGET_CFLAGS)
 	$(call echo, >>, $@,# define C_TARGET_CFLAGS "$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)")
 	$(call echo, >>, $@,#endif)
 	$(call echo, >>, $@,#ifndef C_TARGET_LDFLAGS)
 	$(call echo, >>, $@,# define C_TARGET_LDFLAGS "$(TARGET_LINKER_OPTIONS) $(TARGET_LINKER_OPTIMIZATION_OPTIONS)")
 	$(call echo, >>, $@,#endif)
+	$(call echo, >>, $@,#ifndef C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS)
+	$(call echo, >>, $@,# define C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS "$(INSTALL_PROGRAM_EXECUTABLE_OPTIONS)")
+	$(call echo, >>, $@,#endif)
+	$(call echo, >>, $@,#ifndef C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS)
+	$(call echo, >>, $@,# define C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS "$(INSTALL_PROGRAM_FILE_OPTIONS)")
+	$(call echo, >>, $@,#endif)
 	$(call echo, >>, $@,#ifndef C_TARGET_FEATURES)
 	$(call echo, >>, $@,# define C_TARGET_FEATURES "$(TARGET_FEATURES)")
 	$(call echo, >>, $@,#endif)
diff --git a/egg-compile.scm b/egg-compile.scm
index 9c1b9f82..52b4bded 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -77,14 +77,12 @@
     ((windows) "mkdir")))
 
 (define (install-executable-command platform)
-  (case platform
-    ((unix) "install -m755")
-    ((windows) "copy /y")))
+  (string-append default-install-program " "
+		 default-install-program-executable-flags))
 
 (define (install-file-command platform)
-  (case platform
-    ((unix) "install -m644")
-    ((windows) "copy /y")))
+  (string-append default-install-program " "
+		 default-install-program-data-flags))
 
 (define (remove-file-command platform)
   (case platform
diff --git a/egg-environment.scm b/egg-environment.scm
index f27ea097..00de063a 100644
--- a/egg-environment.scm
+++ b/egg-environment.scm
@@ -46,8 +46,11 @@ EOF
 
 (define default-cc (foreign-value "C_TARGET_CC" c-string))
 (define default-cxx (foreign-value "C_TARGET_CXX" c-string))
+(define default-install-program (foreign-value "C_TARGET_INSTALL_PROGRAM" c-string))
 (define default-cflags (foreign-value "C_TARGET_CFLAGS" c-string))
 (define default-ldflags (foreign-value "C_TARGET_LDFLAGS" c-string))
+(define default-install-program-executable-flags (foreign-value "C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS" c-string))
+(define default-install-program-data-flags (foreign-value "C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS" c-string))
 (define default-libs (foreign-value "C_TARGET_MORE_LIBS" c-string))
 (define default-libdir (foreign-value "C_TARGET_LIB_HOME" c-string))
 (define default-runlibdir (foreign-value "C_TARGET_RUN_LIB_HOME" c-string))
Trap