source: project/chicken/branches/prerelease/scripts/makedist.scm @ 13859

Last change on this file since 13859 was 13859, checked in by felix winkelmann, 11 years ago

merged trunk rev. 13858 (not including srandom change)

File size: 1.6 KB
Line 
1;;;; makedist.scm - Make distribution tarballs
2
3
4(define *release* #f)
5
6(load-relative "tools.scm")
7
8(set! *verbose* #t)
9
10(define BUILDVERSION (with-input-from-file "buildversion" read))
11
12(define *platform* 
13  (let ((sv (symbol->string (software-version))))
14    (cond ((string-match ".*bsd" sv) "bsd")
15          (else
16           (case (build-platform)
17             ((mingw32) 
18              (if (string=? (getenv "MSYSTEM") "MINGW32")
19                  "mingw-msys"
20                  "mingw32"))
21             ((msvc) "msvc")
22             (else sv))))))
23
24(define *make* "make")
25
26(define (release full?)
27  (let* ((files (read-lines "distribution/manifest"))
28         (distname (conc "chicken-" BUILDVERSION)) 
29         (distfiles (map (cut prefix distname <>) files)) 
30         (tgz (conc distname ".tar.gz")))
31    (run (rm -fr ,distname ,tgz))
32    (create-directory distname)
33    (for-each
34     (lambda (d)
35       (let ((d (path distname d)))
36         (unless (file-exists? d)
37           (print "creating " d)
38           (create-directory d))))
39     (delete-duplicates (filter-map prefix files) string=?))
40    (let ((missing '()))
41      (for-each
42       (lambda (f)
43         (if (-e f)
44             (run (cp -p ,(qs f) ,(qs (path distname f))))
45             (set! f (cons f missing))))
46       files)
47      (unless (null? missing)
48        (warning "files missing" missing) ) )
49    (run (tar cfz ,(conc distname ".tar.gz") ,distname))
50    (run (rm -fr ,distname)) ) )
51
52(define *makeargs*
53  (simple-args
54   (command-line-arguments)
55   (lambda _
56     (print "usage: makedist [--release] [--make=PROGRAM] [--platform=PLATFORM] MAKEOPTION ...")
57     (exit 1))) )
58
59(run (,*make* -f ,(conc "Makefile." *platform*) distfiles ,@*makeargs*))
60(release *release*)
Note: See TracBrowser for help on using the repository browser.