add configuration for a distribution name suffix
The suffix is intended for OS variants, such as "precise" for a Linux variant that is build with Ubuntu 12.04 (Precise Pangolin). original commit: c413c28e70b7ebccef91eb914d26136e5ea7103b
This commit is contained in:
parent
4c47b057fd
commit
eb48ea6e1f
|
@ -70,8 +70,10 @@
|
|||
;; defaults to `server' command-line argument
|
||||
;; #:dist-name <string> --- the distribution name; defaults to the
|
||||
;; `dist-name' command-line argument
|
||||
;; #:dist-dir <string> --- the distribution's installation directory;
|
||||
;; defaults to `dist-dir' command-line argument
|
||||
;; #:dist-dir <string*> --- the distribution's installation directory;
|
||||
;; defaults to `dist-dir' command-line argument
|
||||
;; #:dist-suffix <string*> --- a suffix for the installer's name, usually
|
||||
;; used for an OS variant; defaults to ""
|
||||
;; #:max-vm <real> --- max number of VMs allowed to run with this
|
||||
;; machine, counting the machine; defaults to 1
|
||||
;; #:port <integer> --- ssh port for the client; defaults to 22
|
||||
|
@ -135,6 +137,7 @@
|
|||
[(#:pkgs) (and (list? val) (andmap simple-string? val))]
|
||||
[(#:dist-name) (string? val)]
|
||||
[(#:dist-dir) (simple-string? val)]
|
||||
[(#:dist-suffix) (simple-string? val)]
|
||||
[(#:max-vm) (real? val)]
|
||||
[(#:server) (simple-string? val)]
|
||||
[(#:host) (simple-string? val)]
|
||||
|
@ -353,15 +356,16 @@
|
|||
(define (q s)
|
||||
(~a "\"" s "\""))
|
||||
|
||||
(define (client-args server pkgs dist-name dist-dir)
|
||||
(define (client-args server pkgs dist-name dist-dir dist-suffix)
|
||||
(~a " SERVER=" server
|
||||
" PKGS=" (q pkgs)
|
||||
" DIST_NAME=" (q dist-name)
|
||||
" DIST_DIR=" dist-dir
|
||||
" DIST_SUFFIX=" (q dist-suffix)
|
||||
" RELEASE_MODE=" (if release? "--release" (q ""))))
|
||||
|
||||
(define (unix-build c host port user server repo clean?
|
||||
pkgs dist-name dist-dir)
|
||||
pkgs dist-name dist-dir dist-suffix)
|
||||
(define dir (or (get-opt c '#:dir)
|
||||
"build/plt"))
|
||||
(define (sh . args)
|
||||
|
@ -378,12 +382,12 @@
|
|||
"git pull")
|
||||
(sh "cd " (q dir) " ; "
|
||||
"make -j " j " client"
|
||||
(client-args server pkgs dist-name dist-dir)
|
||||
(client-args server pkgs dist-name dist-dir dist-suffix)
|
||||
" CORE_CONFIGURE_ARGS=" (q (apply ~a #:separator " "
|
||||
(get-opt c '#:configure null))))))
|
||||
|
||||
(define (windows-build c host port user server repo clean?
|
||||
pkgs dist-name dist-dir)
|
||||
pkgs dist-name dist-dir dist-suffix)
|
||||
(define dir (or (get-opt c '#:dir)
|
||||
"build\\plt"))
|
||||
(define bits (or (get-opt c '#:bits) 64))
|
||||
|
@ -403,7 +407,7 @@
|
|||
(cmd "cd " (q dir)
|
||||
" && \"c:\\Program Files" (if (= bits 64) " (x86)" "") "\\Microsoft Visual Studio 9.0\\vc\\vcvarsall.bat\""
|
||||
" " vc
|
||||
" && nmake win32-client" (client-args server pkgs dist-name dist-dir))))
|
||||
" && nmake win32-client" (client-args server pkgs dist-name dist-dir dist-suffix))))
|
||||
|
||||
(define (client-build c)
|
||||
(define host (or (get-opt c '#:host)
|
||||
|
@ -419,6 +423,7 @@
|
|||
default-dist-name))
|
||||
(define dist-dir (or (get-opt c '#:dist-dir)
|
||||
default-dist-dir))
|
||||
(define dist-suffix (get-opt c '#:dist-suffix ""))
|
||||
(define repo (or (get-opt c '#:repo)
|
||||
(~a "http://" server ":9440/.git")))
|
||||
(define clean? (let ([v (get-opt c '#:clean? 'none)])
|
||||
|
@ -429,7 +434,7 @@
|
|||
[(unix) unix-build]
|
||||
[else windows-build])
|
||||
c host port user server repo clean?
|
||||
pkgs dist-name dist-dir))
|
||||
pkgs dist-name dist-dir dist-suffix))
|
||||
|
||||
;; ----------------------------------------
|
||||
|
||||
|
|
|
@ -108,7 +108,10 @@
|
|||
(system*/show hdiutil "detach" mnt)
|
||||
(delete-directory mnt))
|
||||
|
||||
(define (installer-dmg human-name dir-name)
|
||||
(define dmg-name (format "bundle/~a-~a.dmg" dir-name (system-library-subpath #f)))
|
||||
(define (installer-dmg human-name dir-name dist-suffix)
|
||||
(define dmg-name (format "bundle/~a-~a~a.dmg"
|
||||
dir-name
|
||||
(system-library-subpath #f)
|
||||
dist-suffix))
|
||||
(make-dmg human-name "bundle/racket" dmg-name bg-image)
|
||||
dmg-name)
|
||||
|
|
|
@ -397,14 +397,14 @@ SectionEnd
|
|||
(parameterize ([current-directory "bundle"])
|
||||
(system* makensis "/V3" "installer.nsi")))
|
||||
|
||||
(define (installer-exe human-name dir-name release?)
|
||||
(define (installer-exe human-name dir-name release? dist-suffix)
|
||||
(define makensis (or (find-executable-path "makensis.exe")
|
||||
(try-exe "c:\\Program Files\\NSIS\\makensis.exe")
|
||||
(try-exe "c:\\Program Files (x86)\\NSIS\\makensis.exe")
|
||||
(error 'installer-exe "cannot find \"makensis.exe\"")))
|
||||
(define platform (let-values ([(base name dir?) (split-path (system-library-subpath #f))])
|
||||
(path->string name)))
|
||||
(define exe-path (format "bundle/~a-~a-win32.exe" dir-name platform))
|
||||
(define exe-path (format "bundle/~a-~a-win32~a.exe" dir-name platform dist-suffix))
|
||||
(nsis-generate exe-path
|
||||
human-name
|
||||
(version)
|
||||
|
|
|
@ -69,8 +69,11 @@
|
|||
(system/show "chmod" "+x" dest)
|
||||
(delete-file tmp-tgz))
|
||||
|
||||
(define (installer-sh human-name dir-name release?)
|
||||
(define sh-path (format "bundle/~a-~a.sh" dir-name (system-library-subpath #f)))
|
||||
(define (installer-sh human-name dir-name release? dist-suffix)
|
||||
(define sh-path (format "bundle/~a-~a~a.sh"
|
||||
dir-name
|
||||
(system-library-subpath #f)
|
||||
dist-suffix))
|
||||
(generate-installer-sh "bundle/racket" sh-path
|
||||
dir-name human-name
|
||||
release?)
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
(define release? #f)
|
||||
(define upload-to #f)
|
||||
|
||||
(define-values (short-human-name human-name dir-name)
|
||||
(define-values (short-human-name human-name dir-name dist-suffix)
|
||||
(command-line
|
||||
#:once-each
|
||||
[("--release") "Create a release installer"
|
||||
|
@ -18,18 +18,21 @@
|
|||
[("--upload") url "Upload installer"
|
||||
(set! upload-to url)]
|
||||
#:args
|
||||
(human-name dir-name)
|
||||
(human-name dir-name dist-suffix)
|
||||
(values human-name
|
||||
(format "~a v~a" human-name (version))
|
||||
(if release?
|
||||
dir-name
|
||||
(format "~a-~a" dir-name (version))))))
|
||||
(format "~a-~a" dir-name (version)))
|
||||
(if (string=? dist-suffix "")
|
||||
""
|
||||
(string-append "-" dist-suffix)))))
|
||||
|
||||
(define installer-file
|
||||
(case (system-type)
|
||||
[(unix) (installer-sh human-name dir-name release?)]
|
||||
[(macosx) (installer-dmg human-name dir-name)]
|
||||
[(windows) (installer-exe short-human-name dir-name release?)]))
|
||||
[(unix) (installer-sh human-name dir-name release? dist-suffix)]
|
||||
[(macosx) (installer-dmg human-name dir-name dist-suffix)]
|
||||
[(windows) (installer-exe short-human-name dir-name release? dist-suffix)]))
|
||||
|
||||
(call-with-output-file*
|
||||
(build-path "bundle" "installer.txt")
|
||||
|
|
Loading…
Reference in New Issue
Block a user