;;;; Compile the BLOWFISH option.
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../ffi")
- (lambda ()
- (load "make")))
- (compile-file "blowfish" '() (->environment '(runtime)))
- (cref/generate-constructors "blowfish")))
\ No newline at end of file
+(for-each load-option '(cref ffi))
+
+(compile-file "blowfish" '() (->environment '(runtime)))
+
+(cref/generate-constructors "blowfish")
\ No newline at end of file
;;;; Compile the GDBM option.
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../ffi")
- (lambda ()
- (load "make")))
- (compile-file "gdbm" '() (->environment '(runtime)))
- (cref/generate-constructors "gdbm")))
\ No newline at end of file
+(for-each load-option '(cref ffi))
+
+(compile-file "gdbm" '() (->environment '(runtime)))
+
+(cref/generate-constructors "gdbm")
\ No newline at end of file
;;;; IMAIL mail reader: compilation
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../sos")
- (lambda ()
- (load "load")))
- (with-working-directory-pathname (merge-pathnames "../star-parser")
- (lambda ()
- (load "load")))
- (with-working-directory-pathname (merge-pathnames "../edwin")
- (lambda ()
- (load "make")))
- (for-each (lambda (filename)
+(for-each load-option '(cref sos *parser))
+
+(for-each (lambda (filename)
(compile-file filename '() (->environment '(edwin))))
- '("imail-browser"
- "imail-core"
- "imail-file"
- "imail-imap"
- "imail-mime"
- "imail-rmail"
- "imail-summary"
- "imail-top"
- "imail-umail"
- "imail-util"
- "imap-response"
- "imap-syntax"))
- (cref/generate-constructors "imail")))
\ No newline at end of file
+ '("imail-browser"
+ "imail-core"
+ "imail-file"
+ "imail-imap"
+ "imail-mime"
+ "imail-rmail"
+ "imail-summary"
+ "imail-top"
+ "imail-umail"
+ "imail-util"
+ "imap-response"
+ "imap-syntax"))
+
+(cref/generate-constructors "imail")
\ No newline at end of file
;;;; Compile the MCRYPT option.
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../ffi")
- (lambda ()
- (load "make")))
- (compile-file "mcrypt" '() (->environment '(runtime)))
- (cref/generate-constructors "mcrypt")))
\ No newline at end of file
+(for-each load-option '(cref ffi))
+
+(compile-file "mcrypt" '() (->environment '(runtime)))
+
+(cref/generate-constructors "mcrypt")
\ No newline at end of file
;;;; Compile the PGSQL option.
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../ffi")
- (lambda ()
- (load "make")))
- (compile-file "pgsql" '() (->environment '()))
- (cref/generate-constructors "pgsql")))
\ No newline at end of file
+(for-each load-option '(cref ffi))
+
+(compile-file "pgsql" '() (->environment '()))
+
+(cref/generate-constructors "pgsql")
\ No newline at end of file
|#
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../edwin")
- (lambda ()
- (load "make")))
- (for-each (lambda (filename)
- (compile-file filename '() (->environment '(edwin))))
- '("x11-screen"
- "x11-key"
- "x11-command"))
- (cref/generate-constructors "x11-screen")))
\ No newline at end of file
+(parameterize ((param:suppress-loading-message? #t))
+ (for-each load-option '(cref x11 edwin)))
+
+(if (name->package '(edwin screen x11-screen))
+ (error "The (edwin screen x11-screen) package already exists."))
+(let ((package-set (package-set-pathname "x11-screen")))
+ (if (not (file-modification-time<? "x11-screen.pkg" package-set))
+ (cref/generate-trivial-constructor "x11-screen"))
+ (construct-packages-from-file (fasload package-set)))
+
+(compile-file "x11-screen" '() (->environment '(edwin screen x11-screen)))
+(compile-file "x11-key" '() (->environment '(edwin x11-keys)))
+(compile-file "x11-command" '() (->environment '(edwin x11-commands)))
+
+(cref/generate-constructors "x11-screen")
\ No newline at end of file
|#
-(load-option 'cref)
-(with-working-directory-pathname (directory-pathname (current-load-pathname))
- (lambda ()
- (with-working-directory-pathname (merge-pathnames "../ffi")
- (lambda ()
- (load "make")))
- (for-each (let ((env (->environment '(runtime))))
- (lambda (filename)
- (compile-file filename '() env)))
- '("x11"
- "x11-base"
- "x11-color"
- "x11-graphics"
- "x11-device"
- "x11-terminal"))
- (cref/generate-constructors "x11")))
\ No newline at end of file
+(for-each load-option '(cref ffi))
+
+(for-each (let ((env (->environment '(runtime))))
+ (lambda (filename)
+ (compile-file filename '() env)))
+ '("x11"
+ "x11-base"
+ "x11-color"
+ "x11-graphics"
+ "x11-device"
+ "x11-terminal"))
+
+(cref/generate-constructors "x11")
\ No newline at end of file