45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Scheme
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Scheme
		
	
	
	
| ;; Package definition for the installation library itself.
 | |
| 
 | |
| ;; Template for scsh-install-pkg script, must be plugged with the
 | |
| ;; directory containing the Scheme code.
 | |
| (define scsh-install-pkg-template #<<END
 | |
| #!/bin/sh
 | |
| exec scsh -le ~a/load.scm -o install-lib -e install-main -s "$0" "$@"
 | |
| !#
 | |
| 
 | |
| END
 | |
| )
 | |
| 
 | |
| (define-package "install-lib" (1 1 0)
 | |
|   ((options (bindir "Destination directory for executables" "<dir>" #t #f #f
 | |
|                     ,identity ,identity)))
 | |
| 
 | |
|   (let ((bindir (get-option-value 'bindir)))
 | |
|     (if (not bindir)
 | |
|         (display-error-and-exit
 | |
|          "no binary directory specified (use --bindir option)."))
 | |
| 
 | |
|     ;; Install "package" part (doc & Scheme code)
 | |
|     (install-file "doc/install-lib.pdf" 'doc "pdf")
 | |
|     (install-files '("scheme/install-lib.scm"
 | |
|                      "scheme/install-lib-version.scm"
 | |
|                      "scheme/install-lib-module.scm")
 | |
|                    'scheme)
 | |
|     (write-to-load-script
 | |
|      `((config)
 | |
|        (load ,(absolute-file-name "install-lib-module.scm"
 | |
|                                   (get-directory 'scheme #f)))
 | |
|        (user)))
 | |
| 
 | |
|     ;; Install "program" part (scsh-install-pkg script).
 | |
|     (if (or (get-option-value 'dry-run) (get-option-value 'verbose))
 | |
|         (format #t "creating scsh-install-pkg script in ~a\n" bindir))
 | |
| 
 | |
|     (if (not (get-option-value 'dry-run))
 | |
|         (begin
 | |
|           (create-directory&parents bindir #o755)
 | |
|           (call-with-output-file (absolute-file-name "scsh-install-pkg" bindir)
 | |
|             (lambda (port)
 | |
|               (format port scsh-install-pkg-template (get-directory 'base #f))
 | |
|               (set-file-mode port #o755)))))))
 |