1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-15 08:10:17 +02:00

Add proper --help' and --version' for `guile-tools compile'.

* configure.ac: Produce `meta/guile-tools'.

* meta/Makefile.am (EXTRA_DIST): Add `guile-tools.in'.
  (bin_SCRIPTS): Remove `guile-tools'.

* meta/uninstalled-env.in (PATH): Add "${top_builddir}/meta".

* module/scripts/compile.scm (%options): Add `--version'.
  (parse-args): Show the offending option name upon error.
  (show-version): New.
  (compile): Use `%guile-bug-report-address'.
This commit is contained in:
Ludovic Courtès 2009-08-15 12:53:59 +02:00
parent acf04ab462
commit 54b38caf19
6 changed files with 29 additions and 7 deletions

1
.gitignore vendored
View file

@ -113,3 +113,4 @@ INSTALL
/GRTAGS /GRTAGS
/GSYMS /GSYMS
/GTAGS /GTAGS
/meta/guile-tools

View file

@ -1546,6 +1546,7 @@ AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile])
AC_CONFIG_FILES([meta/guile], [chmod +x meta/guile]) AC_CONFIG_FILES([meta/guile], [chmod +x meta/guile])
AC_CONFIG_FILES([meta/uninstalled-env], [chmod +x meta/uninstalled-env]) AC_CONFIG_FILES([meta/uninstalled-env], [chmod +x meta/uninstalled-env])
AC_CONFIG_FILES([meta/gdb-uninstalled-guile], [chmod +x meta/gdb-uninstalled-guile]) AC_CONFIG_FILES([meta/gdb-uninstalled-guile], [chmod +x meta/gdb-uninstalled-guile])
AC_CONFIG_FILES([meta/guile-tools], [chmod +x meta/guile-tools])
AC_CONFIG_FILES([libguile/guile-snarf], AC_CONFIG_FILES([libguile/guile-snarf],
[chmod +x libguile/guile-snarf]) [chmod +x libguile/guile-snarf])
AC_CONFIG_FILES([libguile/guile-doc-snarf], AC_CONFIG_FILES([libguile/guile-doc-snarf],

View file

@ -20,10 +20,11 @@
## write to the Free Software Foundation, Inc., 51 Franklin Street, ## write to the Free Software Foundation, Inc., 51 Franklin Street,
## Fifth Floor, Boston, MA 02110-1301 USA ## Fifth Floor, Boston, MA 02110-1301 USA
bin_SCRIPTS=guile-config guile-tools bin_SCRIPTS = guile-config
EXTRA_DIST= $(bin_SCRIPTS) \ EXTRA_DIST= $(bin_SCRIPTS) \
guile.m4 ChangeLog-2008 \ guile.m4 ChangeLog-2008 \
guile-2.0.pc.in guile-2.0-uninstalled.pc.in guile-2.0.pc.in guile-2.0-uninstalled.pc.in \
guile-tools.in
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = guile-2.0.pc pkgconfig_DATA = guile-2.0.pc

View file

@ -25,6 +25,12 @@ exec guile $GUILE_FLAGS -e '(@@ (guile-tools) main)' -s "$0" "$@"
(define-module (guile-tools)) (define-module (guile-tools))
;; Hack to provide scripts with the bug-report address.
(module-define! the-scm-module
'%guile-bug-report-address
"@PACKAGE_BUGREPORT@")
;; We can't import srfi-1, unfortunately, as we are used early in the ;; We can't import srfi-1, unfortunately, as we are used early in the
;; boot process, before the srfi-1 shlib is built. ;; boot process, before the srfi-1 shlib is built.

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# Copyright (C) 2003, 2006, 2008 Free Software Foundation # Copyright (C) 2003, 2006, 2008, 2009 Free Software Foundation
# #
# This file is part of GUILE. # This file is part of GUILE.
# #
@ -112,6 +112,7 @@ export PKG_CONFIG_PATH
# handle PATH (no clobber) # handle PATH (no clobber)
PATH="${top_builddir}/libguile:${PATH}" PATH="${top_builddir}/libguile:${PATH}"
PATH="${top_srcdir}/meta:${PATH}" PATH="${top_srcdir}/meta:${PATH}"
PATH="${top_builddir}/meta:${PATH}"
export PATH export PATH
exec "$@" exec "$@"

View file

@ -48,6 +48,10 @@
(list (option '(#\h "help") #f #f (list (option '(#\h "help") #f #f
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'help? #t result))) (alist-cons 'help? #t result)))
(option '("version") #f #f
(lambda (opt name arg result)
(show-version)
(exit 0)))
(option '(#\L "load-path") #t #f (option '(#\L "load-path") #t #f
(lambda (opt name arg result) (lambda (opt name arg result)
@ -90,7 +94,7 @@
options." options."
(args-fold args %options (args-fold args %options
(lambda (opt name arg result) (lambda (opt name arg result)
(format (current-error-port) "~A: unrecognized option" opt) (format (current-error-port) "~A: unrecognized option" name)
(exit 1)) (exit 1))
(lambda (file result) (lambda (file result)
(let ((input-files (assoc-ref result 'input-files))) (let ((input-files (assoc-ref result 'input-files)))
@ -102,6 +106,13 @@ options."
(load-path) (load-path)
(warnings unsupported-warning)))) (warnings unsupported-warning))))
(define (show-version)
(format #t "compile (GNU Guile) ~A~%" (version))
(format #t "Copyright (C) 2009 Free Software Foundation, Inc.
License LGPLv3+: GNU LGPL version 3 or later <http://gnu.org/licenses/lgpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.~%"))
(define (show-warning-help) (define (show-warning-help)
(format #t "The available warning types are:~%~%") (format #t "The available warning types are:~%~%")
(for-each (lambda (wt) (for-each (lambda (wt)
@ -143,7 +154,8 @@ Compile each Guile source file FILE into a Guile object.
Note that autocompilation will be turned off. Note that autocompilation will be turned off.
Report bugs to <guile-user@gnu.org>.~%") Report bugs to <~A>.~%"
%guile-bug-report-address)
(exit 0))) (exit 0)))
(set! %load-path (append load-path %load-path)) (set! %load-path (append load-path %load-path))