None of these files are used in our build, nor do I really believe
anyone is going to read them. Many were new with the "sourceware_binutils-2_10-branch_anoncvs_20000512" import. Others have been around since 2.8.1.
This commit is contained in:
parent
666c9ef376
commit
b2875e6dda
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=61841
@ -1,573 +0,0 @@
|
||||
;;; ============ NOTE WELL! =============
|
||||
;;;
|
||||
;;; You only need to use this file if you're using a version of Emacs
|
||||
;;; prior to 20.1 to work on GDB. The only difference between this
|
||||
;;; and the standard add-log.el provided with 19.34 is that it
|
||||
;;; generates dates using the terser format used by Emacs 20. This is
|
||||
;;; the format recommended for use in GDB ChangeLogs.
|
||||
;;;
|
||||
;;; To use this code, you should create a directory `~/elisp', save the code
|
||||
;;; below in `~/elisp/add-log.el', and then put something like this in
|
||||
;;; your `~/.emacs' file, to tell Emacs where to find it:
|
||||
;;;
|
||||
;;; (setq load-path
|
||||
;;; (cons (expand-file-name "~/elisp")
|
||||
;;; load-path))
|
||||
;;;
|
||||
;;; If you want, you can also byte-compile it --- it'll run a little
|
||||
;;; faster, and use a little less memory. (Not that those matter much for
|
||||
;;; this file.) To do that, after you've saved the text as
|
||||
;;; ~/elisp/add-log.el, bring it up in Emacs, and type
|
||||
;;;
|
||||
;;; C-u M-x byte-compile-file
|
||||
;;;
|
||||
;;; --- Jim Blandy
|
||||
|
||||
;;; add-log.el --- change log maintenance commands for Emacs
|
||||
|
||||
;; Copyright (C) 1985, 1986, 1988, 1993, 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Keywords: maint
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation; either version 2, or (at your option)
|
||||
;; any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This facility is documented in the Emacs Manual.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defvar change-log-default-name nil
|
||||
"*Name of a change log file for \\[add-change-log-entry].")
|
||||
|
||||
(defvar add-log-current-defun-function nil
|
||||
"\
|
||||
*If non-nil, function to guess name of current function from surrounding text.
|
||||
\\[add-change-log-entry] calls this function (if nil, `add-log-current-defun'
|
||||
instead) with no arguments. It returns a string or nil if it cannot guess.")
|
||||
|
||||
;;;###autoload
|
||||
(defvar add-log-full-name nil
|
||||
"*Full name of user, for inclusion in ChangeLog daily headers.
|
||||
This defaults to the value returned by the `user-full-name' function.")
|
||||
|
||||
;;;###autoload
|
||||
(defvar add-log-mailing-address nil
|
||||
"*Electronic mail address of user, for inclusion in ChangeLog daily headers.
|
||||
This defaults to the value of `user-mail-address'.")
|
||||
|
||||
(defvar change-log-font-lock-keywords
|
||||
'(("^[SMTWF].+" . font-lock-function-name-face) ; Date line.
|
||||
("^\t\\* \\([^ :\n]+\\)" 1 font-lock-comment-face) ; File name.
|
||||
("(\\([^)\n]+\\)):" 1 font-lock-keyword-face)) ; Function name.
|
||||
"Additional expressions to highlight in Change Log mode.")
|
||||
|
||||
(defvar change-log-mode-map nil
|
||||
"Keymap for Change Log major mode.")
|
||||
(if change-log-mode-map
|
||||
nil
|
||||
(setq change-log-mode-map (make-sparse-keymap))
|
||||
(define-key change-log-mode-map "\M-q" 'change-log-fill-paragraph))
|
||||
|
||||
(defun change-log-name ()
|
||||
(or change-log-default-name
|
||||
(if (eq system-type 'vax-vms)
|
||||
"$CHANGE_LOG$.TXT"
|
||||
(if (or (eq system-type 'ms-dos) (eq system-type 'windows-nt))
|
||||
"changelo"
|
||||
"ChangeLog"))))
|
||||
|
||||
;;;###autoload
|
||||
(defun prompt-for-change-log-name ()
|
||||
"Prompt for a change log name."
|
||||
(let* ((default (change-log-name))
|
||||
(name (expand-file-name
|
||||
(read-file-name (format "Log file (default %s): " default)
|
||||
nil default))))
|
||||
;; Handle something that is syntactically a directory name.
|
||||
;; Look for ChangeLog or whatever in that directory.
|
||||
(if (string= (file-name-nondirectory name) "")
|
||||
(expand-file-name (file-name-nondirectory default)
|
||||
name)
|
||||
;; Handle specifying a file that is a directory.
|
||||
(if (file-directory-p name)
|
||||
(expand-file-name (file-name-nondirectory default)
|
||||
(file-name-as-directory name))
|
||||
name))))
|
||||
|
||||
;;;###autoload
|
||||
(defun find-change-log (&optional file-name)
|
||||
"Find a change log file for \\[add-change-log-entry] and return the name.
|
||||
|
||||
Optional arg FILE-NAME specifies the file to use.
|
||||
If FILE-NAME is nil, use the value of `change-log-default-name'.
|
||||
If 'change-log-default-name' is nil, behave as though it were 'ChangeLog'
|
||||
\(or whatever we use on this operating system).
|
||||
|
||||
If 'change-log-default-name' contains a leading directory component, then
|
||||
simply find it in the current directory. Otherwise, search in the current
|
||||
directory and its successive parents for a file so named.
|
||||
|
||||
Once a file is found, `change-log-default-name' is set locally in the
|
||||
current buffer to the complete file name."
|
||||
;; If user specified a file name or if this buffer knows which one to use,
|
||||
;; just use that.
|
||||
(or file-name
|
||||
(setq file-name (and change-log-default-name
|
||||
(file-name-directory change-log-default-name)
|
||||
change-log-default-name))
|
||||
(progn
|
||||
;; Chase links in the source file
|
||||
;; and use the change log in the dir where it points.
|
||||
(setq file-name (or (and buffer-file-name
|
||||
(file-name-directory
|
||||
(file-chase-links buffer-file-name)))
|
||||
default-directory))
|
||||
(if (file-directory-p file-name)
|
||||
(setq file-name (expand-file-name (change-log-name) file-name)))
|
||||
;; Chase links before visiting the file.
|
||||
;; This makes it easier to use a single change log file
|
||||
;; for several related directories.
|
||||
(setq file-name (file-chase-links file-name))
|
||||
(setq file-name (expand-file-name file-name))
|
||||
;; Move up in the dir hierarchy till we find a change log file.
|
||||
(let ((file1 file-name)
|
||||
parent-dir)
|
||||
(while (and (not (or (get-file-buffer file1) (file-exists-p file1)))
|
||||
(progn (setq parent-dir
|
||||
(file-name-directory
|
||||
(directory-file-name
|
||||
(file-name-directory file1))))
|
||||
;; Give up if we are already at the root dir.
|
||||
(not (string= (file-name-directory file1)
|
||||
parent-dir))))
|
||||
;; Move up to the parent dir and try again.
|
||||
(setq file1 (expand-file-name
|
||||
(file-name-nondirectory (change-log-name))
|
||||
parent-dir)))
|
||||
;; If we found a change log in a parent, use that.
|
||||
(if (or (get-file-buffer file1) (file-exists-p file1))
|
||||
(setq file-name file1)))))
|
||||
;; Make a local variable in this buffer so we needn't search again.
|
||||
(set (make-local-variable 'change-log-default-name) file-name)
|
||||
file-name)
|
||||
|
||||
;;;###autoload
|
||||
(defun add-change-log-entry (&optional whoami file-name other-window new-entry)
|
||||
"Find change log file and add an entry for today.
|
||||
Optional arg (interactive prefix) non-nil means prompt for user name and site.
|
||||
Second arg is file name of change log. If nil, uses `change-log-default-name'.
|
||||
Third arg OTHER-WINDOW non-nil means visit in other window.
|
||||
Fourth arg NEW-ENTRY non-nil means always create a new entry at the front;
|
||||
never append to an existing entry."
|
||||
(interactive (list current-prefix-arg
|
||||
(prompt-for-change-log-name)))
|
||||
(or add-log-full-name
|
||||
(setq add-log-full-name (user-full-name)))
|
||||
(or add-log-mailing-address
|
||||
(setq add-log-mailing-address user-mail-address))
|
||||
(if whoami
|
||||
(progn
|
||||
(setq add-log-full-name (read-input "Full name: " add-log-full-name))
|
||||
;; Note that some sites have room and phone number fields in
|
||||
;; full name which look silly when inserted. Rather than do
|
||||
;; anything about that here, let user give prefix argument so that
|
||||
;; s/he can edit the full name field in prompter if s/he wants.
|
||||
(setq add-log-mailing-address
|
||||
(read-input "Mailing address: " add-log-mailing-address))))
|
||||
(let ((defun (funcall (or add-log-current-defun-function
|
||||
'add-log-current-defun)))
|
||||
paragraph-end entry)
|
||||
|
||||
(setq file-name (expand-file-name (find-change-log file-name)))
|
||||
|
||||
;; Set ENTRY to the file name to use in the new entry.
|
||||
(and buffer-file-name
|
||||
;; Never want to add a change log entry for the ChangeLog file itself.
|
||||
(not (string= buffer-file-name file-name))
|
||||
(setq entry (if (string-match
|
||||
(concat "^" (regexp-quote (file-name-directory
|
||||
file-name)))
|
||||
buffer-file-name)
|
||||
(substring buffer-file-name (match-end 0))
|
||||
(file-name-nondirectory buffer-file-name))))
|
||||
|
||||
(if (and other-window (not (equal file-name buffer-file-name)))
|
||||
(find-file-other-window file-name)
|
||||
(find-file file-name))
|
||||
(or (eq major-mode 'change-log-mode)
|
||||
(change-log-mode))
|
||||
(undo-boundary)
|
||||
(goto-char (point-min))
|
||||
(let ((heading (format "%s %s <%s>"
|
||||
(format-time-string "%Y-%m-%d")
|
||||
add-log-full-name
|
||||
add-log-mailing-address)))
|
||||
(if (looking-at (regexp-quote heading))
|
||||
(forward-line 1)
|
||||
(insert heading "\n\n")))
|
||||
|
||||
;; Search only within the first paragraph.
|
||||
(if (looking-at "\n*[^\n* \t]")
|
||||
(skip-chars-forward "\n")
|
||||
(forward-paragraph 1))
|
||||
(setq paragraph-end (point))
|
||||
(goto-char (point-min))
|
||||
|
||||
;; Now insert the new line for this entry.
|
||||
(cond ((re-search-forward "^\\s *\\*\\s *$" paragraph-end t)
|
||||
;; Put this file name into the existing empty entry.
|
||||
(if entry
|
||||
(insert entry)))
|
||||
((and (not new-entry)
|
||||
(let (case-fold-search)
|
||||
(re-search-forward
|
||||
(concat (regexp-quote (concat "* " entry))
|
||||
;; Don't accept `foo.bar' when
|
||||
;; looking for `foo':
|
||||
"\\(\\s \\|[(),:]\\)")
|
||||
paragraph-end t)))
|
||||
;; Add to the existing entry for the same file.
|
||||
(re-search-forward "^\\s *$\\|^\\s \\*")
|
||||
(goto-char (match-beginning 0))
|
||||
;; Delete excess empty lines; make just 2.
|
||||
(while (and (not (eobp)) (looking-at "^\\s *$"))
|
||||
(delete-region (point) (save-excursion (forward-line 1) (point))))
|
||||
(insert "\n\n")
|
||||
(forward-line -2)
|
||||
(indent-relative-maybe))
|
||||
(t
|
||||
;; Make a new entry.
|
||||
(forward-line 1)
|
||||
(while (looking-at "\\sW")
|
||||
(forward-line 1))
|
||||
(while (and (not (eobp)) (looking-at "^\\s *$"))
|
||||
(delete-region (point) (save-excursion (forward-line 1) (point))))
|
||||
(insert "\n\n\n")
|
||||
(forward-line -2)
|
||||
(indent-to left-margin)
|
||||
(insert "* " (or entry ""))))
|
||||
;; Now insert the function name, if we have one.
|
||||
;; Point is at the entry for this file,
|
||||
;; either at the end of the line or at the first blank line.
|
||||
(if defun
|
||||
(progn
|
||||
;; Make it easy to get rid of the function name.
|
||||
(undo-boundary)
|
||||
(insert (if (save-excursion
|
||||
(beginning-of-line 1)
|
||||
(looking-at "\\s *$"))
|
||||
""
|
||||
" ")
|
||||
"(" defun "): "))
|
||||
;; No function name, so put in a colon unless we have just a star.
|
||||
(if (not (save-excursion
|
||||
(beginning-of-line 1)
|
||||
(looking-at "\\s *\\(\\*\\s *\\)?$")))
|
||||
(insert ": ")))))
|
||||
|
||||
;;;###autoload
|
||||
(defun add-change-log-entry-other-window (&optional whoami file-name)
|
||||
"Find change log file in other window and add an entry for today.
|
||||
Optional arg (interactive prefix) non-nil means prompt for user name and site.
|
||||
Second arg is file name of change log. \
|
||||
If nil, uses `change-log-default-name'."
|
||||
(interactive (if current-prefix-arg
|
||||
(list current-prefix-arg
|
||||
(prompt-for-change-log-name))))
|
||||
(add-change-log-entry whoami file-name t))
|
||||
;;;###autoload (define-key ctl-x-4-map "a" 'add-change-log-entry-other-window)
|
||||
|
||||
;;;###autoload
|
||||
(defun change-log-mode ()
|
||||
"Major mode for editing change logs; like Indented Text Mode.
|
||||
Prevents numeric backups and sets `left-margin' to 8 and `fill-column' to 74.
|
||||
New log entries are usually made with \\[add-change-log-entry] or \\[add-change-log-entry-other-window].
|
||||
Each entry behaves as a paragraph, and the entries for one day as a page.
|
||||
Runs `change-log-mode-hook'."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(indented-text-mode)
|
||||
(setq major-mode 'change-log-mode
|
||||
mode-name "Change Log"
|
||||
left-margin 8
|
||||
fill-column 74
|
||||
indent-tabs-mode t
|
||||
tab-width 8)
|
||||
(use-local-map change-log-mode-map)
|
||||
;; Let each entry behave as one paragraph:
|
||||
;; We really do want "^" in paragraph-start below: it is only the lines that
|
||||
;; begin at column 0 (despite the left-margin of 8) that we are looking for.
|
||||
(set (make-local-variable 'paragraph-start) "\\s *$\\|\f\\|^\\sw")
|
||||
(set (make-local-variable 'paragraph-separate) "\\s *$\\|\f\\|^\\sw")
|
||||
;; Let all entries for one day behave as one page.
|
||||
;; Match null string on the date-line so that the date-line
|
||||
;; is grouped with what follows.
|
||||
(set (make-local-variable 'page-delimiter) "^\\<\\|^\f")
|
||||
(set (make-local-variable 'version-control) 'never)
|
||||
(set (make-local-variable 'adaptive-fill-regexp) "\\s *")
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(change-log-font-lock-keywords t))
|
||||
(run-hooks 'change-log-mode-hook))
|
||||
|
||||
;; It might be nice to have a general feature to replace this. The idea I
|
||||
;; have is a variable giving a regexp matching text which should not be
|
||||
;; moved from bol by filling. change-log-mode would set this to "^\\s *\\s(".
|
||||
;; But I don't feel up to implementing that today.
|
||||
(defun change-log-fill-paragraph (&optional justify)
|
||||
"Fill the paragraph, but preserve open parentheses at beginning of lines.
|
||||
Prefix arg means justify as well."
|
||||
(interactive "P")
|
||||
(let ((end (save-excursion (forward-paragraph) (point)))
|
||||
(beg (save-excursion (backward-paragraph)(point)))
|
||||
(paragraph-start (concat paragraph-start "\\|\\s *\\s(")))
|
||||
(fill-region beg end justify)))
|
||||
|
||||
(defvar add-log-current-defun-header-regexp
|
||||
"^\\([A-Z][A-Z_ ]*[A-Z_]\\|[-_a-zA-Z]+\\)[ \t]*[:=]"
|
||||
"*Heuristic regexp used by `add-log-current-defun' for unknown major modes.")
|
||||
|
||||
;;;###autoload
|
||||
(defun add-log-current-defun ()
|
||||
"Return name of function definition point is in, or nil.
|
||||
|
||||
Understands C, Lisp, LaTeX (\"functions\" are chapters, sections, ...),
|
||||
Texinfo (@node titles), Perl, and Fortran.
|
||||
|
||||
Other modes are handled by a heuristic that looks in the 10K before
|
||||
point for uppercase headings starting in the first column or
|
||||
identifiers followed by `:' or `=', see variable
|
||||
`add-log-current-defun-header-regexp'.
|
||||
|
||||
Has a preference of looking backwards."
|
||||
(condition-case nil
|
||||
(save-excursion
|
||||
(let ((location (point)))
|
||||
(cond ((memq major-mode '(emacs-lisp-mode lisp-mode scheme-mode
|
||||
lisp-interaction-mode))
|
||||
;; If we are now precisely at the beginning of a defun,
|
||||
;; make sure beginning-of-defun finds that one
|
||||
;; rather than the previous one.
|
||||
(or (eobp) (forward-char 1))
|
||||
(beginning-of-defun)
|
||||
;; Make sure we are really inside the defun found, not after it.
|
||||
(if (and (looking-at "\\s(")
|
||||
(progn (end-of-defun)
|
||||
(< location (point)))
|
||||
(progn (forward-sexp -1)
|
||||
(>= location (point))))
|
||||
(progn
|
||||
(if (looking-at "\\s(")
|
||||
(forward-char 1))
|
||||
(forward-sexp 1)
|
||||
(skip-chars-forward " '")
|
||||
(buffer-substring (point)
|
||||
(progn (forward-sexp 1) (point))))))
|
||||
((and (memq major-mode '(c-mode c++-mode c++-c-mode objc-mode))
|
||||
(save-excursion (beginning-of-line)
|
||||
;; Use eq instead of = here to avoid
|
||||
;; error when at bob and char-after
|
||||
;; returns nil.
|
||||
(while (eq (char-after (- (point) 2)) ?\\)
|
||||
(forward-line -1))
|
||||
(looking-at "[ \t]*#[ \t]*define[ \t]")))
|
||||
;; Handle a C macro definition.
|
||||
(beginning-of-line)
|
||||
(while (eq (char-after (- (point) 2)) ?\\) ;not =; note above
|
||||
(forward-line -1))
|
||||
(search-forward "define")
|
||||
(skip-chars-forward " \t")
|
||||
(buffer-substring (point)
|
||||
(progn (forward-sexp 1) (point))))
|
||||
((memq major-mode '(c-mode c++-mode c++-c-mode objc-mode))
|
||||
(beginning-of-line)
|
||||
;; See if we are in the beginning part of a function,
|
||||
;; before the open brace. If so, advance forward.
|
||||
(while (not (looking-at "{\\|\\(\\s *$\\)"))
|
||||
(forward-line 1))
|
||||
(or (eobp)
|
||||
(forward-char 1))
|
||||
(beginning-of-defun)
|
||||
(if (progn (end-of-defun)
|
||||
(< location (point)))
|
||||
(progn
|
||||
(backward-sexp 1)
|
||||
(let (beg tem)
|
||||
|
||||
(forward-line -1)
|
||||
;; Skip back over typedefs of arglist.
|
||||
(while (and (not (bobp))
|
||||
(looking-at "[ \t\n]"))
|
||||
(forward-line -1))
|
||||
;; See if this is using the DEFUN macro used in Emacs,
|
||||
;; or the DEFUN macro used by the C library.
|
||||
(if (condition-case nil
|
||||
(and (save-excursion
|
||||
(end-of-line)
|
||||
(while (= (preceding-char) ?\\)
|
||||
(end-of-line 2))
|
||||
(backward-sexp 1)
|
||||
(beginning-of-line)
|
||||
(setq tem (point))
|
||||
(looking-at "DEFUN\\b"))
|
||||
(>= location tem))
|
||||
(error nil))
|
||||
(progn
|
||||
(goto-char tem)
|
||||
(down-list 1)
|
||||
(if (= (char-after (point)) ?\")
|
||||
(progn
|
||||
(forward-sexp 1)
|
||||
(skip-chars-forward " ,")))
|
||||
(buffer-substring (point)
|
||||
(progn (forward-sexp 1) (point))))
|
||||
(if (looking-at "^[+-]")
|
||||
(get-method-definition)
|
||||
;; Ordinary C function syntax.
|
||||
(setq beg (point))
|
||||
(if (and (condition-case nil
|
||||
;; Protect against "Unbalanced parens" error.
|
||||
(progn
|
||||
(down-list 1) ; into arglist
|
||||
(backward-up-list 1)
|
||||
(skip-chars-backward " \t")
|
||||
t)
|
||||
(error nil))
|
||||
;; Verify initial pos was after
|
||||
;; real start of function.
|
||||
(save-excursion
|
||||
(goto-char beg)
|
||||
;; For this purpose, include the line
|
||||
;; that has the decl keywords. This
|
||||
;; may also include some of the
|
||||
;; comments before the function.
|
||||
(while (and (not (bobp))
|
||||
(save-excursion
|
||||
(forward-line -1)
|
||||
(looking-at "[^\n\f]")))
|
||||
(forward-line -1))
|
||||
(>= location (point)))
|
||||
;; Consistency check: going down and up
|
||||
;; shouldn't take us back before BEG.
|
||||
(> (point) beg))
|
||||
(let (end middle)
|
||||
;; Don't include any final newline
|
||||
;; in the name we use.
|
||||
(if (= (preceding-char) ?\n)
|
||||
(forward-char -1))
|
||||
(setq end (point))
|
||||
(backward-sexp 1)
|
||||
;; Now find the right beginning of the name.
|
||||
;; Include certain keywords if they
|
||||
;; precede the name.
|
||||
(setq middle (point))
|
||||
(forward-word -1)
|
||||
;; Ignore these subparts of a class decl
|
||||
;; and move back to the class name itself.
|
||||
(while (looking-at "public \\|private ")
|
||||
(skip-chars-backward " \t:")
|
||||
(setq end (point))
|
||||
(backward-sexp 1)
|
||||
(setq middle (point))
|
||||
(forward-word -1))
|
||||
(and (bolp)
|
||||
(looking-at "struct \\|union \\|class ")
|
||||
(setq middle (point)))
|
||||
(buffer-substring middle end)))))))))
|
||||
((memq major-mode
|
||||
'(TeX-mode plain-TeX-mode LaTeX-mode;; tex-mode.el
|
||||
plain-tex-mode latex-mode;; cmutex.el
|
||||
))
|
||||
(if (re-search-backward
|
||||
"\\\\\\(sub\\)*\\(section\\|paragraph\\|chapter\\)" nil t)
|
||||
(progn
|
||||
(goto-char (match-beginning 0))
|
||||
(buffer-substring (1+ (point));; without initial backslash
|
||||
(progn
|
||||
(end-of-line)
|
||||
(point))))))
|
||||
((eq major-mode 'texinfo-mode)
|
||||
(if (re-search-backward "^@node[ \t]+\\([^,\n]+\\)" nil t)
|
||||
(buffer-substring (match-beginning 1)
|
||||
(match-end 1))))
|
||||
((eq major-mode 'perl-mode)
|
||||
(if (re-search-backward "^sub[ \t]+\\([^ \t\n]+\\)" nil t)
|
||||
(buffer-substring (match-beginning 1)
|
||||
(match-end 1))))
|
||||
((eq major-mode 'fortran-mode)
|
||||
;; must be inside function body for this to work
|
||||
(beginning-of-fortran-subprogram)
|
||||
(let ((case-fold-search t)) ; case-insensitive
|
||||
;; search for fortran subprogram start
|
||||
(if (re-search-forward
|
||||
"^[ \t]*\\(program\\|subroutine\\|function\
|
||||
\\|[ \ta-z0-9*]*[ \t]+function\\)"
|
||||
nil t)
|
||||
(progn
|
||||
;; move to EOL or before first left paren
|
||||
(if (re-search-forward "[(\n]" nil t)
|
||||
(progn (forward-char -1)
|
||||
(skip-chars-backward " \t"))
|
||||
(end-of-line))
|
||||
;; Use the name preceding that.
|
||||
(buffer-substring (point)
|
||||
(progn (forward-sexp -1)
|
||||
(point)))))))
|
||||
(t
|
||||
;; If all else fails, try heuristics
|
||||
(let (case-fold-search)
|
||||
(end-of-line)
|
||||
(if (re-search-backward add-log-current-defun-header-regexp
|
||||
(- (point) 10000)
|
||||
t)
|
||||
(buffer-substring (match-beginning 1)
|
||||
(match-end 1))))))))
|
||||
(error nil)))
|
||||
|
||||
(defvar get-method-definition-md)
|
||||
|
||||
;; Subroutine used within get-method-definition.
|
||||
;; Add the last match in the buffer to the end of `md',
|
||||
;; followed by the string END; move to the end of that match.
|
||||
(defun get-method-definition-1 (end)
|
||||
(setq get-method-definition-md
|
||||
(concat get-method-definition-md
|
||||
(buffer-substring (match-beginning 1) (match-end 1))
|
||||
end))
|
||||
(goto-char (match-end 0)))
|
||||
|
||||
;; For objective C, return the method name if we are in a method.
|
||||
(defun get-method-definition ()
|
||||
(let ((get-method-definition-md "["))
|
||||
(save-excursion
|
||||
(if (re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t)
|
||||
(get-method-definition-1 " ")))
|
||||
(save-excursion
|
||||
(cond
|
||||
((re-search-forward "^\\([-+]\\)[ \t\n\f\r]*\\(([^)]*)\\)?\\s-*" nil t)
|
||||
(get-method-definition-1 "")
|
||||
(while (not (looking-at "[{;]"))
|
||||
(looking-at
|
||||
"\\([A-Za-z_]*:?\\)\\s-*\\(([^)]*)\\)?[A-Za-z_]*[ \t\n\f\r]*")
|
||||
(get-method-definition-1 ""))
|
||||
(concat get-method-definition-md "]"))))))
|
||||
|
||||
|
||||
(provide 'add-log)
|
||||
|
||||
;;; add-log.el ends here
|
@ -1,11 +0,0 @@
|
||||
Here is a vi macro to create entries in the recommended format for
|
||||
GDB's ChangeLogs.
|
||||
|
||||
map 1GO:r !date '+\%Y-\%m-\%d'2GA Jason Molenda (:r !whoamikJxA@:r !hostnameA)kJxkddjO
*
k$
|
||||
|
||||
It contains control and escape sequences, so don't just cut and paste it.
|
||||
You'll need to change the "Jason Molenda" bit, of course. :-) Put this
|
||||
in your $HOME/.exrc and when you type control-X in move-around-mode,
|
||||
you'll have a changelog template inserted.
|
||||
|
||||
--- Jason Molenda
|
@ -1,149 +0,0 @@
|
||||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: configbuild.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Fri Jun 12 20:13:16 1998
|
||||
%%For: ian@tito.cygnus.com (Ian Lance Taylor)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 322 173
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-62.0 226.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 1050 900 m 2100 900 l 2100 1425 l 1050 1425 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 1500 1425 m 1500 2100 l gs col-1 s gr
|
||||
n 1530.00 1980.00 m 1500.00 2100.00 l 1470.00 1980.00 l 1500.50 1980.50 l 1530.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1500 2625 m 1500 3300 l gs col-1 s gr
|
||||
n 1530.00 3180.00 m 1500.00 3300.00 l 1470.00 3180.00 l 1500.50 3180.50 l 1530.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2925 900 m 3825 900 l 3825 1425 l 2925 1425 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 1155 2100 m 1050 2100 1050 2520 105 arcto 4 {pop} repeat 1050 2625 2220 2625 105 arcto 4 {pop} repeat 2325 2625 2325 2205 105 arcto 4 {pop} repeat 2325 2100 1155 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 2850 2100 m 4125 2100 l 4125 2625 l 2850 2625 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 3375 1425 m 3375 2100 l gs col-1 s gr
|
||||
n 3405.00 1980.00 m 3375.00 2100.00 l 3345.00 1980.00 l 3375.50 1980.50 l 3405.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 5100 900 m 6300 900 l 6300 1350 l 5100 1350 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 5625 1350 m 5625 2100 l gs col-1 s gr
|
||||
n 5655.00 1980.00 m 5625.00 2100.00 l 5595.00 1980.00 l 5625.50 1980.50 l 5655.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 5205 2100 m 5100 2100 5100 2520 105 arcto 4 {pop} repeat 5100 2625 6270 2625 105 arcto 4 {pop} repeat 6375 2625 6375 2205 105 arcto 4 {pop} repeat 6375 2100 5205 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 5625 2625 m 5625 3300 l gs col-1 s gr
|
||||
n 5655.00 3180.00 m 5625.00 3300.00 l 5595.00 3180.00 l 5625.50 3180.50 l 5655.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 5100 3300 m 6225 3300 l 6225 3750 l 5100 3750 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
[1 50.0] 50.000000 setdash
|
||||
n 2850 2400 m 2325 2400 l gs col-1 s gr [] 0 setdash
|
||||
n 2445.00 2430.00 m 2325.00 2400.00 l 2445.00 2370.00 l 2445.50 2400.50 l 2445.00 2430.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
[1 50.0] 50.000000 setdash
|
||||
n 4125 2400 m 5100 2400 l gs col-1 s gr [] 0 setdash
|
||||
n 4980.00 2370.00 m 5100.00 2400.00 l 4980.00 2430.00 l 4980.50 2400.50 l 4980.00 2370.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1050 3300 m 1950 3300 l 1950 3750 l 1050 3750 l clp gs col-1 s gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
1200 1200 m
|
||||
gs 1 -1 sc (config.in) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3000 1200 m
|
||||
gs 1 -1 sc (configure) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3000 2400 m
|
||||
gs 1 -1 sc (config.status) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
1200 2400 m
|
||||
gs 1 -1 sc (config.status) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
1200 3600 m
|
||||
gs 1 -1 sc (config.h) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
5250 1200 m
|
||||
gs 1 -1 sc (Makefile.in) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
5250 2400 m
|
||||
gs 1 -1 sc (config.status) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
5250 3600 m
|
||||
gs 1 -1 sc (Makefile) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
@ -1,50 +0,0 @@
|
||||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
1050 900 2100 900 2100 1425 1050 1425 1050 900
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
1500 1425 1500 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
1500 2625 1500 3300
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
2925 900 3825 900 3825 1425 2925 1425 2925 900
|
||||
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
|
||||
2325 2625 2325 2100 1050 2100 1050 2625 2325 2625
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
2850 2100 4125 2100 4125 2625 2850 2625 2850 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
3375 1425 3375 2100
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
5100 900 6300 900 6300 1350 5100 1350 5100 900
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
5625 1350 5625 2100
|
||||
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
|
||||
6375 2625 6375 2100 5100 2100 5100 2625 6375 2625
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
5625 2625 5625 3300
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
5100 3300 6225 3300 6225 3750 5100 3750 5100 3300
|
||||
2 1 2 1 -1 7 0 0 -1 3.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
2850 2400 2325 2400
|
||||
2 1 2 1 -1 7 0 0 -1 3.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4125 2400 5100 2400
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
1050 3300 1950 3300 1950 3750 1050 3750 1050 3300
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 645 1200 1200 config.in\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 705 3000 1200 configure\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 990 3000 2400 config.status\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 990 1200 2400 config.status\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 600 1200 3600 config.h\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 855 5250 1200 Makefile.in\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 990 5250 2400 config.status\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 675 5250 3600 Makefile\001
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
@ -1,9 +0,0 @@
|
||||
config.in *configure* Makefile.in
|
||||
| | |
|
||||
| v |
|
||||
| config.status |
|
||||
| | |
|
||||
*config.status*<======+==========>*config.status*
|
||||
| |
|
||||
v v
|
||||
config.h Makefile
|
@ -1,185 +0,0 @@
|
||||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: configdev.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Mon Jun 15 17:35:19 1998
|
||||
%%For: ian@tito.cygnus.com (Ian Lance Taylor)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 344 317
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-62.0 370.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 1050 900 m 2100 900 l 2100 1425 l 1050 1425 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 2925 900 m 3975 900 l 3975 1425 l 2925 1425 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 5550 900 m 6750 900 l 6750 1350 l 5550 1350 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 3750 1800 m 5025 1800 l 5025 2250 l 3750 2250 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 1155 2100 m 1050 2100 1050 2520 105 arcto 4 {pop} repeat 1050 2625 2070 2625 105 arcto 4 {pop} repeat 2175 2625 2175 2205 105 arcto 4 {pop} repeat 2175 2100 1155 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 5550 3300 m 6675 3300 l 6675 3750 l 5550 3750 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 5655 2100 m 5550 2100 5550 2520 105 arcto 4 {pop} repeat 5550 2625 6495 2625 105 arcto 4 {pop} repeat 6600 2625 6600 2205 105 arcto 4 {pop} repeat 6600 2100 5655 2100 105 arcto 4 {pop} repeat clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 3750 3600 m 4875 3600 l 4875 4050 l 3750 4050 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 3855 2700 m 3750 2700 3750 3045 105 arcto 4 {pop} repeat 3750 3150 4545 3150 105 arcto 4 {pop} repeat 4650 3150 4650 2805 105 arcto 4 {pop} repeat 4650 2700 3855 2700 105 arcto 4 {pop} repeat clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 2850 5700 m 3750 5700 l 3750 6150 l 2850 6150 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 3030 4800 m 2925 4800 2925 5145 105 arcto 4 {pop} repeat 2925 5250 3645 5250 105 arcto 4 {pop} repeat 3750 5250 3750 4905 105 arcto 4 {pop} repeat 3750 4800 3030 4800 105 arcto 4 {pop} repeat clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 1500 1425 m 1500 2100 l gs col-1 s gr
|
||||
n 1530.00 1980.00 m 1500.00 2100.00 l 1470.00 1980.00 l 1500.50 1980.50 l 1530.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 1425 m 3300 4800 l gs col-1 s gr
|
||||
n 3330.00 4680.00 m 3300.00 4800.00 l 3270.00 4680.00 l 3300.50 4680.50 l 3330.00 4680.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 1575 m 1875 1575 l 1875 2100 l gs col-1 s gr
|
||||
n 1905.00 1980.00 m 1875.00 2100.00 l 1845.00 1980.00 l 1875.50 1980.50 l 1905.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 1575 m 5700 1575 l 5700 2100 l gs col-1 s gr
|
||||
n 5730.00 1980.00 m 5700.00 2100.00 l 5670.00 1980.00 l 5700.50 1980.50 l 5730.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 6225 1350 m 6225 2100 l gs col-1 s gr
|
||||
n 6255.00 1980.00 m 6225.00 2100.00 l 6195.00 1980.00 l 6225.50 1980.50 l 6255.00 1980.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 6075 2625 m 6075 3300 l gs col-1 s gr
|
||||
n 6105.00 3180.00 m 6075.00 3300.00 l 6045.00 3180.00 l 6075.50 3180.50 l 6105.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 4200 2250 m 4200 2700 l gs col-1 s gr
|
||||
n 4230.00 2580.00 m 4200.00 2700.00 l 4170.00 2580.00 l 4200.50 2580.50 l 4230.00 2580.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 4200 3150 m 4200 3600 l gs col-1 s gr
|
||||
n 4230.00 3480.00 m 4200.00 3600.00 l 4170.00 3480.00 l 4200.50 3480.50 l 4230.00 3480.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 4200 4050 m 4200 4500 l 3675 4500 l 3675 4800 l gs col-1 s gr
|
||||
n 3705.00 4680.00 m 3675.00 4800.00 l 3645.00 4680.00 l 3675.50 4680.50 l 3705.00 4680.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3375 5250 m 3375 5700 l gs col-1 s gr
|
||||
n 3405.00 5580.00 m 3375.00 5700.00 l 3345.00 5580.00 l 3375.50 5580.50 l 3405.00 5580.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3300 2925 m 3750 2925 l gs col-1 s gr
|
||||
n 3630.00 2895.00 m 3750.00 2925.00 l 3630.00 2955.00 l 3630.50 2925.50 l 3630.00 2895.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1500 2625 m 1500 3300 l gs col-1 s gr
|
||||
n 1530.00 3180.00 m 1500.00 3300.00 l 1470.00 3180.00 l 1500.50 3180.50 l 1530.00 3180.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1050 3300 m 2100 3300 l 2100 3750 l 1050 3750 l clp gs col-1 s gr
|
||||
% Polyline
|
||||
n 4875 3825 m 5250 3825 l 5250 2400 l 5550 2400 l gs col-1 s gr
|
||||
n 5430.00 2370.00 m 5550.00 2400.00 l 5430.00 2430.00 l 5430.50 2400.50 l 5430.00 2370.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
1200 1200 m
|
||||
gs 1 -1 sc (acconfig.h) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3000 1200 m
|
||||
gs 1 -1 sc (configure.in) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
5700 1200 m
|
||||
gs 1 -1 sc (Makefile.am) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3900 2100 m
|
||||
gs 1 -1 sc (acinclude.m4) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
1200 2400 m
|
||||
gs 1 -1 sc (autoheader) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
1200 3600 m
|
||||
gs 1 -1 sc (config.in) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
5700 3600 m
|
||||
gs 1 -1 sc (Makefile.in) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
5700 2400 m
|
||||
gs 1 -1 sc (automake) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3900 3900 m
|
||||
gs 1 -1 sc (aclocal.m4) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3900 3000 m
|
||||
gs 1 -1 sc (aclocal) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3000 6000 m
|
||||
gs 1 -1 sc (configure) col-1 show gr
|
||||
/Times-Roman findfont 180.00 scalefont setfont
|
||||
3000 5100 m
|
||||
gs 1 -1 sc (autoconf) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
@ -1,80 +0,0 @@
|
||||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
1050 900 2100 900 2100 1425 1050 1425 1050 900
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
2925 900 3975 900 3975 1425 2925 1425 2925 900
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
5550 900 6750 900 6750 1350 5550 1350 5550 900
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
3750 1800 5025 1800 5025 2250 3750 2250 3750 1800
|
||||
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
|
||||
2175 2625 2175 2100 1050 2100 1050 2625 2175 2625
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
5550 3300 6675 3300 6675 3750 5550 3750 5550 3300
|
||||
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
|
||||
6600 2625 6600 2100 5550 2100 5550 2625 6600 2625
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
3750 3600 4875 3600 4875 4050 3750 4050 3750 3600
|
||||
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
|
||||
4650 3150 4650 2700 3750 2700 3750 3150 4650 3150
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
2850 5700 3750 5700 3750 6150 2850 6150 2850 5700
|
||||
2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5
|
||||
3750 5250 3750 4800 2925 4800 2925 5250 3750 5250
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
1500 1425 1500 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
3300 1425 3300 4800
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3
|
||||
1 1 1.00 60.00 120.00
|
||||
3300 1575 1875 1575 1875 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 3
|
||||
1 1 1.00 60.00 120.00
|
||||
3300 1575 5700 1575 5700 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
6225 1350 6225 2100
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
6075 2625 6075 3300
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4200 2250 4200 2700
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4200 3150 4200 3600
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4
|
||||
1 1 1.00 60.00 120.00
|
||||
4200 4050 4200 4500 3675 4500 3675 4800
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
3375 5250 3375 5700
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
3300 2925 3750 2925
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
1500 2625 1500 3300
|
||||
2 2 0 1 -1 7 0 0 -1 0.000 0 0 0 0 0 5
|
||||
1050 3300 2100 3300 2100 3750 1050 3750 1050 3300
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 4
|
||||
1 1 1.00 60.00 120.00
|
||||
4875 3825 5250 3825 5250 2400 5550 2400
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 780 1200 1200 acconfig.h\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 885 3000 1200 configure.in\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 945 5700 1200 Makefile.am\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 990 3900 2100 acinclude.m4\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 840 1200 2400 autoheader\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 645 1200 3600 config.in\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 855 5700 3600 Makefile.in\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 735 5700 2400 automake\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 810 3900 3900 aclocal.m4\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 540 3900 3000 aclocal\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 180 705 3000 6000 configure\001
|
||||
4 0 -1 0 0 0 12 0.0000000 4 135 660 3000 5100 autoconf\001
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
@ -1,17 +0,0 @@
|
||||
acconfig.h configure.in Makefile.am
|
||||
| | |
|
||||
| --------------+---------------------- |
|
||||
| | | | |
|
||||
v v | acinclude.m4 | |
|
||||
*autoheader* | | v v
|
||||
| | v --->*automake*
|
||||
v |--->*aclocal* | |
|
||||
config.in | | | v
|
||||
| v | Makefile.in
|
||||
| aclocal.m4---
|
||||
| |
|
||||
v v
|
||||
*autoconf*
|
||||
|
|
||||
v
|
||||
configure
|
862
contrib/binutils/etc/configure
vendored
862
contrib/binutils/etc/configure
vendored
@ -1,862 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated automatically using autoconf version 2.12.1
|
||||
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||
#
|
||||
# This configure script is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy, distribute and modify it.
|
||||
|
||||
# Defaults:
|
||||
ac_help=
|
||||
ac_default_prefix=/usr/local
|
||||
# Any additions from configure.in:
|
||||
|
||||
# Initialize some variables set by options.
|
||||
# The variables have the same names as the options, with
|
||||
# dashes changed to underlines.
|
||||
build=NONE
|
||||
cache_file=./config.cache
|
||||
exec_prefix=NONE
|
||||
host=NONE
|
||||
no_create=
|
||||
nonopt=NONE
|
||||
no_recursion=
|
||||
prefix=NONE
|
||||
program_prefix=NONE
|
||||
program_suffix=NONE
|
||||
program_transform_name=s,x,x,
|
||||
silent=
|
||||
site=
|
||||
srcdir=
|
||||
target=NONE
|
||||
verbose=
|
||||
x_includes=NONE
|
||||
x_libraries=NONE
|
||||
bindir='${exec_prefix}/bin'
|
||||
sbindir='${exec_prefix}/sbin'
|
||||
libexecdir='${exec_prefix}/libexec'
|
||||
datadir='${prefix}/share'
|
||||
sysconfdir='${prefix}/etc'
|
||||
sharedstatedir='${prefix}/com'
|
||||
localstatedir='${prefix}/var'
|
||||
libdir='${exec_prefix}/lib'
|
||||
includedir='${prefix}/include'
|
||||
oldincludedir='/usr/include'
|
||||
infodir='${prefix}/info'
|
||||
mandir='${prefix}/man'
|
||||
|
||||
# Initialize some other variables.
|
||||
subdirs=
|
||||
MFLAGS= MAKEFLAGS=
|
||||
SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
# Maximum number of lines to put in a shell here document.
|
||||
ac_max_here_lines=12
|
||||
|
||||
ac_prev=
|
||||
for ac_option
|
||||
do
|
||||
|
||||
# If the previous option needs an argument, assign it.
|
||||
if test -n "$ac_prev"; then
|
||||
eval "$ac_prev=\$ac_option"
|
||||
ac_prev=
|
||||
continue
|
||||
fi
|
||||
|
||||
case "$ac_option" in
|
||||
-*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||
*) ac_optarg= ;;
|
||||
esac
|
||||
|
||||
# Accept the important Cygnus configure options, so we can diagnose typos.
|
||||
|
||||
case "$ac_option" in
|
||||
|
||||
-bindir | --bindir | --bindi | --bind | --bin | --bi)
|
||||
ac_prev=bindir ;;
|
||||
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
|
||||
bindir="$ac_optarg" ;;
|
||||
|
||||
-build | --build | --buil | --bui | --bu)
|
||||
ac_prev=build ;;
|
||||
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
|
||||
build="$ac_optarg" ;;
|
||||
|
||||
-cache-file | --cache-file | --cache-fil | --cache-fi \
|
||||
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
||||
ac_prev=cache_file ;;
|
||||
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
||||
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
|
||||
cache_file="$ac_optarg" ;;
|
||||
|
||||
-datadir | --datadir | --datadi | --datad | --data | --dat | --da)
|
||||
ac_prev=datadir ;;
|
||||
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
|
||||
| --da=*)
|
||||
datadir="$ac_optarg" ;;
|
||||
|
||||
-disable-* | --disable-*)
|
||||
ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
|
||||
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
|
||||
fi
|
||||
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
|
||||
eval "enable_${ac_feature}=no" ;;
|
||||
|
||||
-enable-* | --enable-*)
|
||||
ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
|
||||
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
|
||||
fi
|
||||
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
|
||||
case "$ac_option" in
|
||||
*=*) ;;
|
||||
*) ac_optarg=yes ;;
|
||||
esac
|
||||
eval "enable_${ac_feature}='$ac_optarg'" ;;
|
||||
|
||||
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
|
||||
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
|
||||
| --exec | --exe | --ex)
|
||||
ac_prev=exec_prefix ;;
|
||||
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
|
||||
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
|
||||
| --exec=* | --exe=* | --ex=*)
|
||||
exec_prefix="$ac_optarg" ;;
|
||||
|
||||
-gas | --gas | --ga | --g)
|
||||
# Obsolete; use --with-gas.
|
||||
with_gas=yes ;;
|
||||
|
||||
-help | --help | --hel | --he)
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat << EOF
|
||||
Usage: configure [options] [host]
|
||||
Options: [defaults in brackets after descriptions]
|
||||
Configuration:
|
||||
--cache-file=FILE cache test results in FILE
|
||||
--help print this message
|
||||
--no-create do not create output files
|
||||
--quiet, --silent do not print \`checking...' messages
|
||||
--version print the version of autoconf that created configure
|
||||
Directory and file names:
|
||||
--prefix=PREFIX install architecture-independent files in PREFIX
|
||||
[$ac_default_prefix]
|
||||
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
|
||||
[same as prefix]
|
||||
--bindir=DIR user executables in DIR [EPREFIX/bin]
|
||||
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
|
||||
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
|
||||
--datadir=DIR read-only architecture-independent data in DIR
|
||||
[PREFIX/share]
|
||||
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
|
||||
--sharedstatedir=DIR modifiable architecture-independent data in DIR
|
||||
[PREFIX/com]
|
||||
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
|
||||
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
|
||||
--includedir=DIR C header files in DIR [PREFIX/include]
|
||||
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
|
||||
--infodir=DIR info documentation in DIR [PREFIX/info]
|
||||
--mandir=DIR man documentation in DIR [PREFIX/man]
|
||||
--srcdir=DIR find the sources in DIR [configure dir or ..]
|
||||
--program-prefix=PREFIX prepend PREFIX to installed program names
|
||||
--program-suffix=SUFFIX append SUFFIX to installed program names
|
||||
--program-transform-name=PROGRAM
|
||||
run sed PROGRAM on installed program names
|
||||
EOF
|
||||
cat << EOF
|
||||
Host type:
|
||||
--build=BUILD configure for building on BUILD [BUILD=HOST]
|
||||
--host=HOST configure for HOST [guessed]
|
||||
--target=TARGET configure for TARGET [TARGET=HOST]
|
||||
Features and packages:
|
||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||||
--x-includes=DIR X include files are in DIR
|
||||
--x-libraries=DIR X library files are in DIR
|
||||
EOF
|
||||
if test -n "$ac_help"; then
|
||||
echo "--enable and --with options recognized:$ac_help"
|
||||
fi
|
||||
exit 0 ;;
|
||||
|
||||
-host | --host | --hos | --ho)
|
||||
ac_prev=host ;;
|
||||
-host=* | --host=* | --hos=* | --ho=*)
|
||||
host="$ac_optarg" ;;
|
||||
|
||||
-includedir | --includedir | --includedi | --included | --include \
|
||||
| --includ | --inclu | --incl | --inc)
|
||||
ac_prev=includedir ;;
|
||||
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
|
||||
| --includ=* | --inclu=* | --incl=* | --inc=*)
|
||||
includedir="$ac_optarg" ;;
|
||||
|
||||
-infodir | --infodir | --infodi | --infod | --info | --inf)
|
||||
ac_prev=infodir ;;
|
||||
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
|
||||
infodir="$ac_optarg" ;;
|
||||
|
||||
-libdir | --libdir | --libdi | --libd)
|
||||
ac_prev=libdir ;;
|
||||
-libdir=* | --libdir=* | --libdi=* | --libd=*)
|
||||
libdir="$ac_optarg" ;;
|
||||
|
||||
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
|
||||
| --libexe | --libex | --libe)
|
||||
ac_prev=libexecdir ;;
|
||||
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
|
||||
| --libexe=* | --libex=* | --libe=*)
|
||||
libexecdir="$ac_optarg" ;;
|
||||
|
||||
-localstatedir | --localstatedir | --localstatedi | --localstated \
|
||||
| --localstate | --localstat | --localsta | --localst \
|
||||
| --locals | --local | --loca | --loc | --lo)
|
||||
ac_prev=localstatedir ;;
|
||||
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
|
||||
| --localstate=* | --localstat=* | --localsta=* | --localst=* \
|
||||
| --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
|
||||
localstatedir="$ac_optarg" ;;
|
||||
|
||||
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
|
||||
ac_prev=mandir ;;
|
||||
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
|
||||
mandir="$ac_optarg" ;;
|
||||
|
||||
-nfp | --nfp | --nf)
|
||||
# Obsolete; use --without-fp.
|
||||
with_fp=no ;;
|
||||
|
||||
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
|
||||
| --no-cr | --no-c)
|
||||
no_create=yes ;;
|
||||
|
||||
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
|
||||
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
|
||||
no_recursion=yes ;;
|
||||
|
||||
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
|
||||
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
|
||||
| --oldin | --oldi | --old | --ol | --o)
|
||||
ac_prev=oldincludedir ;;
|
||||
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
|
||||
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
|
||||
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
|
||||
oldincludedir="$ac_optarg" ;;
|
||||
|
||||
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
|
||||
ac_prev=prefix ;;
|
||||
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
|
||||
prefix="$ac_optarg" ;;
|
||||
|
||||
-program-prefix | --program-prefix | --program-prefi | --program-pref \
|
||||
| --program-pre | --program-pr | --program-p)
|
||||
ac_prev=program_prefix ;;
|
||||
-program-prefix=* | --program-prefix=* | --program-prefi=* \
|
||||
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
|
||||
program_prefix="$ac_optarg" ;;
|
||||
|
||||
-program-suffix | --program-suffix | --program-suffi | --program-suff \
|
||||
| --program-suf | --program-su | --program-s)
|
||||
ac_prev=program_suffix ;;
|
||||
-program-suffix=* | --program-suffix=* | --program-suffi=* \
|
||||
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
|
||||
program_suffix="$ac_optarg" ;;
|
||||
|
||||
-program-transform-name | --program-transform-name \
|
||||
| --program-transform-nam | --program-transform-na \
|
||||
| --program-transform-n | --program-transform- \
|
||||
| --program-transform | --program-transfor \
|
||||
| --program-transfo | --program-transf \
|
||||
| --program-trans | --program-tran \
|
||||
| --progr-tra | --program-tr | --program-t)
|
||||
ac_prev=program_transform_name ;;
|
||||
-program-transform-name=* | --program-transform-name=* \
|
||||
| --program-transform-nam=* | --program-transform-na=* \
|
||||
| --program-transform-n=* | --program-transform-=* \
|
||||
| --program-transform=* | --program-transfor=* \
|
||||
| --program-transfo=* | --program-transf=* \
|
||||
| --program-trans=* | --program-tran=* \
|
||||
| --progr-tra=* | --program-tr=* | --program-t=*)
|
||||
program_transform_name="$ac_optarg" ;;
|
||||
|
||||
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||||
| -silent | --silent | --silen | --sile | --sil)
|
||||
silent=yes ;;
|
||||
|
||||
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||
ac_prev=sbindir ;;
|
||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||
| --sbi=* | --sb=*)
|
||||
sbindir="$ac_optarg" ;;
|
||||
|
||||
-sharedstatedir | --sharedstatedir | --sharedstatedi \
|
||||
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
|
||||
| --sharedst | --shareds | --shared | --share | --shar \
|
||||
| --sha | --sh)
|
||||
ac_prev=sharedstatedir ;;
|
||||
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
|
||||
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
|
||||
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
|
||||
| --sha=* | --sh=*)
|
||||
sharedstatedir="$ac_optarg" ;;
|
||||
|
||||
-site | --site | --sit)
|
||||
ac_prev=site ;;
|
||||
-site=* | --site=* | --sit=*)
|
||||
site="$ac_optarg" ;;
|
||||
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
srcdir="$ac_optarg" ;;
|
||||
|
||||
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
|
||||
| --syscon | --sysco | --sysc | --sys | --sy)
|
||||
ac_prev=sysconfdir ;;
|
||||
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
|
||||
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
|
||||
sysconfdir="$ac_optarg" ;;
|
||||
|
||||
-target | --target | --targe | --targ | --tar | --ta | --t)
|
||||
ac_prev=target ;;
|
||||
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
|
||||
target="$ac_optarg" ;;
|
||||
|
||||
-v | -verbose | --verbose | --verbos | --verbo | --verb)
|
||||
verbose=yes ;;
|
||||
|
||||
-version | --version | --versio | --versi | --vers)
|
||||
echo "configure generated by autoconf version 2.12.1"
|
||||
exit 0 ;;
|
||||
|
||||
-with-* | --with-*)
|
||||
ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
|
||||
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
|
||||
fi
|
||||
ac_package=`echo $ac_package| sed 's/-/_/g'`
|
||||
case "$ac_option" in
|
||||
*=*) ;;
|
||||
*) ac_optarg=yes ;;
|
||||
esac
|
||||
eval "with_${ac_package}='$ac_optarg'" ;;
|
||||
|
||||
-without-* | --without-*)
|
||||
ac_package=`echo $ac_option|sed -e 's/-*without-//'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
|
||||
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
|
||||
fi
|
||||
ac_package=`echo $ac_package| sed 's/-/_/g'`
|
||||
eval "with_${ac_package}=no" ;;
|
||||
|
||||
--x)
|
||||
# Obsolete; use --with-x.
|
||||
with_x=yes ;;
|
||||
|
||||
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
|
||||
| --x-incl | --x-inc | --x-in | --x-i)
|
||||
ac_prev=x_includes ;;
|
||||
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
|
||||
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
|
||||
x_includes="$ac_optarg" ;;
|
||||
|
||||
-x-libraries | --x-libraries | --x-librarie | --x-librari \
|
||||
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
|
||||
ac_prev=x_libraries ;;
|
||||
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
|
||||
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
|
||||
x_libraries="$ac_optarg" ;;
|
||||
|
||||
-*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
|
||||
echo "configure: warning: $ac_option: invalid host type" 1>&2
|
||||
fi
|
||||
if test "x$nonopt" != xNONE; then
|
||||
{ echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
|
||||
fi
|
||||
nonopt="$ac_option"
|
||||
;;
|
||||
|
||||
esac
|
||||
done
|
||||
|
||||
if test -n "$ac_prev"; then
|
||||
{ echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
|
||||
fi
|
||||
|
||||
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
|
||||
|
||||
# File descriptor usage:
|
||||
# 0 standard input
|
||||
# 1 file creation
|
||||
# 2 errors and warnings
|
||||
# 3 some systems may open it to /dev/tty
|
||||
# 4 used on the Kubota Titan
|
||||
# 6 checking for... messages and results
|
||||
# 5 compiler messages saved in config.log
|
||||
if test "$silent" = yes; then
|
||||
exec 6>/dev/null
|
||||
else
|
||||
exec 6>&1
|
||||
fi
|
||||
exec 5>./config.log
|
||||
|
||||
echo "\
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
" 1>&5
|
||||
|
||||
# Strip out --no-create and --no-recursion so they do not pile up.
|
||||
# Also quote any args containing shell metacharacters.
|
||||
ac_configure_args=
|
||||
for ac_arg
|
||||
do
|
||||
case "$ac_arg" in
|
||||
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
|
||||
| --no-cr | --no-c) ;;
|
||||
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
|
||||
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
|
||||
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
|
||||
ac_configure_args="$ac_configure_args '$ac_arg'" ;;
|
||||
*) ac_configure_args="$ac_configure_args $ac_arg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# NLS nuisances.
|
||||
# Only set these to C if already set. These must not be set unconditionally
|
||||
# because not all systems understand e.g. LANG=C (notably SCO).
|
||||
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
|
||||
# Non-C LC_CTYPE values break the ctype check.
|
||||
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
|
||||
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
|
||||
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
|
||||
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
|
||||
|
||||
# confdefs.h avoids OS command line length limits that DEFS can exceed.
|
||||
rm -rf conftest* confdefs.h
|
||||
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
|
||||
echo > confdefs.h
|
||||
|
||||
# A filename unique to this package, relative to the directory that
|
||||
# configure is in, which we can look for to find out if srcdir is correct.
|
||||
ac_unique_file=Makefile.in
|
||||
|
||||
# Find the source files, if location was not specified.
|
||||
if test -z "$srcdir"; then
|
||||
ac_srcdir_defaulted=yes
|
||||
# Try the directory containing this script, then its parent.
|
||||
ac_prog=$0
|
||||
ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
|
||||
test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
|
||||
srcdir=$ac_confdir
|
||||
if test ! -r $srcdir/$ac_unique_file; then
|
||||
srcdir=..
|
||||
fi
|
||||
else
|
||||
ac_srcdir_defaulted=no
|
||||
fi
|
||||
if test ! -r $srcdir/$ac_unique_file; then
|
||||
if test "$ac_srcdir_defaulted" = yes; then
|
||||
{ echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
|
||||
else
|
||||
{ echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
|
||||
fi
|
||||
fi
|
||||
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
|
||||
|
||||
# Prefer explicitly selected file to automatically selected ones.
|
||||
if test -z "$CONFIG_SITE"; then
|
||||
if test "x$prefix" != xNONE; then
|
||||
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
|
||||
else
|
||||
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
|
||||
fi
|
||||
fi
|
||||
for ac_site_file in $CONFIG_SITE; do
|
||||
if test -r "$ac_site_file"; then
|
||||
echo "loading site script $ac_site_file"
|
||||
. "$ac_site_file"
|
||||
fi
|
||||
done
|
||||
|
||||
if test -r "$cache_file"; then
|
||||
echo "loading cache $cache_file"
|
||||
. $cache_file
|
||||
else
|
||||
echo "creating cache $cache_file"
|
||||
> $cache_file
|
||||
fi
|
||||
|
||||
ac_ext=c
|
||||
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
||||
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
||||
cross_compiling=$ac_cv_prog_cc_cross
|
||||
|
||||
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
|
||||
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
|
||||
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
|
||||
ac_n= ac_c='
|
||||
' ac_t=' '
|
||||
else
|
||||
ac_n=-n ac_c= ac_t=
|
||||
fi
|
||||
else
|
||||
ac_n= ac_c='\c' ac_t=
|
||||
fi
|
||||
|
||||
|
||||
|
||||
ac_aux_dir=
|
||||
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
|
||||
if test -f $ac_dir/install-sh; then
|
||||
ac_aux_dir=$ac_dir
|
||||
ac_install_sh="$ac_aux_dir/install-sh -c"
|
||||
break
|
||||
elif test -f $ac_dir/install.sh; then
|
||||
ac_aux_dir=$ac_dir
|
||||
ac_install_sh="$ac_aux_dir/install.sh -c"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$ac_aux_dir"; then
|
||||
{ echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
|
||||
fi
|
||||
ac_config_guess=$ac_aux_dir/config.guess
|
||||
ac_config_sub=$ac_aux_dir/config.sub
|
||||
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
||||
|
||||
# Find a good install program. We prefer a C program (faster),
|
||||
# so one script is as good as another. But avoid the broken or
|
||||
# incompatible versions:
|
||||
# SysV /etc/install, /usr/sbin/install
|
||||
# SunOS /usr/etc/install
|
||||
# IRIX /sbin/install
|
||||
# AIX /bin/install
|
||||
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
|
||||
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||
# ./install, which can be erroneously created by make from ./install.sh.
|
||||
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||
echo "configure:555: checking for a BSD compatible install" >&5
|
||||
if test -z "$INSTALL"; then
|
||||
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
|
||||
for ac_dir in $PATH; do
|
||||
# Account for people who put trailing slashes in PATH elements.
|
||||
case "$ac_dir/" in
|
||||
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
|
||||
*)
|
||||
# OSF1 and SCO ODT 3.0 have their own names for install.
|
||||
# Don't use installbsd from OSF since it installs stuff as root
|
||||
# by default.
|
||||
for ac_prog in ginstall scoinst install; do
|
||||
if test -f $ac_dir/$ac_prog; then
|
||||
if test $ac_prog = install &&
|
||||
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
|
||||
# AIX install. It has an incompatible calling convention.
|
||||
:
|
||||
else
|
||||
ac_cv_path_install="$ac_dir/$ac_prog -c"
|
||||
break 2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
done
|
||||
IFS="$ac_save_IFS"
|
||||
|
||||
fi
|
||||
if test "${ac_cv_path_install+set}" = set; then
|
||||
INSTALL="$ac_cv_path_install"
|
||||
else
|
||||
# As a last resort, use the slow shell script. We don't cache a
|
||||
# path for INSTALL within a source directory, because that will
|
||||
# break other packages using the cache if that directory is
|
||||
# removed, or if the path is relative.
|
||||
INSTALL="$ac_install_sh"
|
||||
fi
|
||||
fi
|
||||
echo "$ac_t""$INSTALL" 1>&6
|
||||
|
||||
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
|
||||
# It thinks the first close brace ends the variable substitution.
|
||||
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
||||
|
||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||
|
||||
|
||||
trap '' 1 2 15
|
||||
cat > confcache <<\EOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
# tests run on this system so they can be shared between configure
|
||||
# scripts and configure runs. It is not useful on other systems.
|
||||
# If it contains results you don't want to keep, you may remove or edit it.
|
||||
#
|
||||
# By default, configure uses ./config.cache as the cache file,
|
||||
# creating it if it does not exist already. You can give configure
|
||||
# the --cache-file=FILE option to use a different cache file; that is
|
||||
# what configure does when it calls configure scripts in
|
||||
# subdirectories, so they share the cache.
|
||||
# Giving --cache-file=/dev/null disables caching, for debugging configure.
|
||||
# config.status only pays attention to the cache file if you give it the
|
||||
# --recheck option to rerun configure.
|
||||
#
|
||||
EOF
|
||||
# The following way of writing the cache mishandles newlines in values,
|
||||
# but we know of no workaround that is simple, portable, and efficient.
|
||||
# So, don't put newlines in cache variables' values.
|
||||
# Ultrix sh set writes to stderr and can't be redirected directly,
|
||||
# and sets the high bit in the cache file unless we assign to the vars.
|
||||
(set) 2>&1 |
|
||||
case `(ac_space=' '; set) 2>&1 | grep ac_space` in
|
||||
*ac_space=\ *)
|
||||
# `set' does not quote correctly, so add quotes (double-quote substitution
|
||||
# turns \\\\ into \\, and sed turns \\ into \).
|
||||
sed -n \
|
||||
-e "s/'/'\\\\''/g" \
|
||||
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
|
||||
;;
|
||||
*)
|
||||
# `set' quotes correctly as required by POSIX, so do not add quotes.
|
||||
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
|
||||
;;
|
||||
esac >> confcache
|
||||
if cmp -s $cache_file confcache; then
|
||||
:
|
||||
else
|
||||
if test -w $cache_file; then
|
||||
echo "updating cache $cache_file"
|
||||
cat confcache > $cache_file
|
||||
else
|
||||
echo "not updating unwritable cache $cache_file"
|
||||
fi
|
||||
fi
|
||||
rm -f confcache
|
||||
|
||||
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
|
||||
|
||||
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
# Let make expand exec_prefix.
|
||||
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
||||
|
||||
# Any assignment to VPATH causes Sun make to only execute
|
||||
# the first set of double-colon rules, so remove it if not needed.
|
||||
# If there is a colon in the path, we need to keep it.
|
||||
if test "x$srcdir" = x.; then
|
||||
ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
|
||||
fi
|
||||
|
||||
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
|
||||
|
||||
# Transform confdefs.h into DEFS.
|
||||
# Protect against shell expansion while executing Makefile rules.
|
||||
# Protect against Makefile macro expansion.
|
||||
cat > conftest.defs <<\EOF
|
||||
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
|
||||
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
|
||||
s%\[%\\&%g
|
||||
s%\]%\\&%g
|
||||
s%\$%$$%g
|
||||
EOF
|
||||
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
|
||||
rm -f conftest.defs
|
||||
|
||||
|
||||
# Without the "./", some shells look in PATH for config.status.
|
||||
: ${CONFIG_STATUS=./config.status}
|
||||
|
||||
echo creating $CONFIG_STATUS
|
||||
rm -f $CONFIG_STATUS
|
||||
cat > $CONFIG_STATUS <<EOF
|
||||
#! /bin/sh
|
||||
# Generated automatically by configure.
|
||||
# Run this file to recreate the current configuration.
|
||||
# This directory was configured as follows,
|
||||
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
|
||||
#
|
||||
# $0 $ac_configure_args
|
||||
#
|
||||
# Compiler output produced by configure, useful for debugging
|
||||
# configure, is in ./config.log if it exists.
|
||||
|
||||
ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
|
||||
for ac_option
|
||||
do
|
||||
case "\$ac_option" in
|
||||
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
|
||||
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
|
||||
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
|
||||
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
|
||||
echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
|
||||
exit 0 ;;
|
||||
-help | --help | --hel | --he | --h)
|
||||
echo "\$ac_cs_usage"; exit 0 ;;
|
||||
*) echo "\$ac_cs_usage"; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
ac_given_srcdir=$srcdir
|
||||
ac_given_INSTALL="$INSTALL"
|
||||
|
||||
trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
|
||||
EOF
|
||||
cat >> $CONFIG_STATUS <<EOF
|
||||
|
||||
# Protect against being on the right side of a sed subst in config.status.
|
||||
sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
|
||||
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
|
||||
$ac_vpsub
|
||||
$extrasub
|
||||
s%@SHELL@%$SHELL%g
|
||||
s%@CFLAGS@%$CFLAGS%g
|
||||
s%@CPPFLAGS@%$CPPFLAGS%g
|
||||
s%@CXXFLAGS@%$CXXFLAGS%g
|
||||
s%@DEFS@%$DEFS%g
|
||||
s%@LDFLAGS@%$LDFLAGS%g
|
||||
s%@LIBS@%$LIBS%g
|
||||
s%@exec_prefix@%$exec_prefix%g
|
||||
s%@prefix@%$prefix%g
|
||||
s%@program_transform_name@%$program_transform_name%g
|
||||
s%@bindir@%$bindir%g
|
||||
s%@sbindir@%$sbindir%g
|
||||
s%@libexecdir@%$libexecdir%g
|
||||
s%@datadir@%$datadir%g
|
||||
s%@sysconfdir@%$sysconfdir%g
|
||||
s%@sharedstatedir@%$sharedstatedir%g
|
||||
s%@localstatedir@%$localstatedir%g
|
||||
s%@libdir@%$libdir%g
|
||||
s%@includedir@%$includedir%g
|
||||
s%@oldincludedir@%$oldincludedir%g
|
||||
s%@infodir@%$infodir%g
|
||||
s%@mandir@%$mandir%g
|
||||
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
|
||||
s%@INSTALL_DATA@%$INSTALL_DATA%g
|
||||
|
||||
CEOF
|
||||
EOF
|
||||
|
||||
cat >> $CONFIG_STATUS <<\EOF
|
||||
|
||||
# Split the substitutions into bite-sized pieces for seds with
|
||||
# small command number limits, like on Digital OSF/1 and HP-UX.
|
||||
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
|
||||
ac_file=1 # Number of current file.
|
||||
ac_beg=1 # First line for current file.
|
||||
ac_end=$ac_max_sed_cmds # Line after last line for current file.
|
||||
ac_more_lines=:
|
||||
ac_sed_cmds=""
|
||||
while $ac_more_lines; do
|
||||
if test $ac_beg -gt 1; then
|
||||
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
|
||||
else
|
||||
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
|
||||
fi
|
||||
if test ! -s conftest.s$ac_file; then
|
||||
ac_more_lines=false
|
||||
rm -f conftest.s$ac_file
|
||||
else
|
||||
if test -z "$ac_sed_cmds"; then
|
||||
ac_sed_cmds="sed -f conftest.s$ac_file"
|
||||
else
|
||||
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
|
||||
fi
|
||||
ac_file=`expr $ac_file + 1`
|
||||
ac_beg=$ac_end
|
||||
ac_end=`expr $ac_end + $ac_max_sed_cmds`
|
||||
fi
|
||||
done
|
||||
if test -z "$ac_sed_cmds"; then
|
||||
ac_sed_cmds=cat
|
||||
fi
|
||||
EOF
|
||||
|
||||
cat >> $CONFIG_STATUS <<EOF
|
||||
|
||||
CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
|
||||
EOF
|
||||
cat >> $CONFIG_STATUS <<\EOF
|
||||
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
|
||||
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
|
||||
case "$ac_file" in
|
||||
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
|
||||
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
||||
*) ac_file_in="${ac_file}.in" ;;
|
||||
esac
|
||||
|
||||
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
|
||||
|
||||
# Remove last slash and all that follows it. Not all systems have dirname.
|
||||
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
|
||||
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
|
||||
# The file is in a subdirectory.
|
||||
test ! -d "$ac_dir" && mkdir "$ac_dir"
|
||||
ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
|
||||
else
|
||||
ac_dir_suffix= ac_dots=
|
||||
fi
|
||||
|
||||
case "$ac_given_srcdir" in
|
||||
.) srcdir=.
|
||||
if test -z "$ac_dots"; then top_srcdir=.
|
||||
else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
|
||||
/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
|
||||
*) # Relative path.
|
||||
srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
|
||||
top_srcdir="$ac_dots$ac_given_srcdir" ;;
|
||||
esac
|
||||
|
||||
case "$ac_given_INSTALL" in
|
||||
[/$]*) INSTALL="$ac_given_INSTALL" ;;
|
||||
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
||||
esac
|
||||
|
||||
echo creating "$ac_file"
|
||||
rm -f "$ac_file"
|
||||
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
|
||||
case "$ac_file" in
|
||||
*Makefile*) ac_comsub="1i\\
|
||||
# $configure_input" ;;
|
||||
*) ac_comsub= ;;
|
||||
esac
|
||||
|
||||
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
|
||||
sed -e "$ac_comsub
|
||||
s%@configure_input@%$configure_input%g
|
||||
s%@srcdir@%$srcdir%g
|
||||
s%@top_srcdir@%$top_srcdir%g
|
||||
s%@INSTALL@%$INSTALL%g
|
||||
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
|
||||
fi; done
|
||||
rm -f conftest.s*
|
||||
|
||||
EOF
|
||||
cat >> $CONFIG_STATUS <<EOF
|
||||
|
||||
EOF
|
||||
cat >> $CONFIG_STATUS <<\EOF
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x $CONFIG_STATUS
|
||||
rm -fr confdefs* $ac_clean_files
|
||||
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
|
||||
|
@ -1,7 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.5)
|
||||
AC_INIT(Makefile.in)
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
AC_OUTPUT(Makefile)
|
@ -1,914 +0,0 @@
|
||||
@comment This file is included by both standards.texi and make.texinfo.
|
||||
@comment It was broken out of standards.texi on 1/6/93 by roland.
|
||||
|
||||
@node Makefile Conventions
|
||||
@chapter Makefile Conventions
|
||||
@comment standards.texi does not print an index, but make.texinfo does.
|
||||
@cindex makefile, conventions for
|
||||
@cindex conventions for makefiles
|
||||
@cindex standards for makefiles
|
||||
|
||||
This
|
||||
@ifinfo
|
||||
node
|
||||
@end ifinfo
|
||||
@iftex
|
||||
@ifset CODESTD
|
||||
section
|
||||
@end ifset
|
||||
@ifclear CODESTD
|
||||
chapter
|
||||
@end ifclear
|
||||
@end iftex
|
||||
describes conventions for writing the Makefiles for GNU programs.
|
||||
|
||||
@menu
|
||||
* Makefile Basics:: General Conventions for Makefiles
|
||||
* Utilities in Makefiles:: Utilities in Makefiles
|
||||
* Command Variables:: Variables for Specifying Commands
|
||||
* Directory Variables:: Variables for Installation Directories
|
||||
* Standard Targets:: Standard Targets for Users
|
||||
* Install Command Categories:: Three categories of commands in the `install'
|
||||
rule: normal, pre-install and post-install.
|
||||
@end menu
|
||||
|
||||
@node Makefile Basics
|
||||
@section General Conventions for Makefiles
|
||||
|
||||
Every Makefile should contain this line:
|
||||
|
||||
@example
|
||||
SHELL = /bin/sh
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
to avoid trouble on systems where the @code{SHELL} variable might be
|
||||
inherited from the environment. (This is never a problem with GNU
|
||||
@code{make}.)
|
||||
|
||||
Different @code{make} programs have incompatible suffix lists and
|
||||
implicit rules, and this sometimes creates confusion or misbehavior. So
|
||||
it is a good idea to set the suffix list explicitly using only the
|
||||
suffixes you need in the particular Makefile, like this:
|
||||
|
||||
@example
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The first line clears out the suffix list, the second introduces all
|
||||
suffixes which may be subject to implicit rules in this Makefile.
|
||||
|
||||
Don't assume that @file{.} is in the path for command execution. When
|
||||
you need to run programs that are a part of your package during the
|
||||
make, please make sure that it uses @file{./} if the program is built as
|
||||
part of the make or @file{$(srcdir)/} if the file is an unchanging part
|
||||
of the source code. Without one of these prefixes, the current search
|
||||
path is used.
|
||||
|
||||
The distinction between @file{./} (the @dfn{build directory}) and
|
||||
@file{$(srcdir)/} (the @dfn{source directory}) is important because
|
||||
users can build in a separate directory using the @samp{--srcdir} option
|
||||
to @file{configure}. A rule of the form:
|
||||
|
||||
@smallexample
|
||||
foo.1 : foo.man sedscript
|
||||
sed -e sedscript foo.man > foo.1
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
will fail when the build directory is not the source directory, because
|
||||
@file{foo.man} and @file{sedscript} are in the the source directory.
|
||||
|
||||
When using GNU @code{make}, relying on @samp{VPATH} to find the source
|
||||
file will work in the case where there is a single dependency file,
|
||||
since the @code{make} automatic variable @samp{$<} will represent the
|
||||
source file wherever it is. (Many versions of @code{make} set @samp{$<}
|
||||
only in implicit rules.) A Makefile target like
|
||||
|
||||
@smallexample
|
||||
foo.o : bar.c
|
||||
$(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
should instead be written as
|
||||
|
||||
@smallexample
|
||||
foo.o : bar.c
|
||||
$(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@@
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
in order to allow @samp{VPATH} to work correctly. When the target has
|
||||
multiple dependencies, using an explicit @samp{$(srcdir)} is the easiest
|
||||
way to make the rule work well. For example, the target above for
|
||||
@file{foo.1} is best written as:
|
||||
|
||||
@smallexample
|
||||
foo.1 : foo.man sedscript
|
||||
sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@@
|
||||
@end smallexample
|
||||
|
||||
GNU distributions usually contain some files which are not source
|
||||
files---for example, Info files, and the output from Autoconf, Automake,
|
||||
Bison or Flex. Since these files normally appear in the source
|
||||
directory, they should always appear in the source directory, not in the
|
||||
build directory. So Makefile rules to update them should put the
|
||||
updated files in the source directory.
|
||||
|
||||
However, if a file does not appear in the distribution, then the
|
||||
Makefile should not put it in the source directory, because building a
|
||||
program in ordinary circumstances should not modify the source directory
|
||||
in any way.
|
||||
|
||||
Try to make the build and installation targets, at least (and all their
|
||||
subtargets) work correctly with a parallel @code{make}.
|
||||
|
||||
@node Utilities in Makefiles
|
||||
@section Utilities in Makefiles
|
||||
|
||||
Write the Makefile commands (and any shell scripts, such as
|
||||
@code{configure}) to run in @code{sh}, not in @code{csh}. Don't use any
|
||||
special features of @code{ksh} or @code{bash}.
|
||||
|
||||
The @code{configure} script and the Makefile rules for building and
|
||||
installation should not use any utilities directly except these:
|
||||
|
||||
@c dd find
|
||||
@c gunzip gzip md5sum
|
||||
@c mkfifo mknod tee uname
|
||||
|
||||
@example
|
||||
cat cmp cp diff echo egrep expr false grep install-info
|
||||
ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
|
||||
@end example
|
||||
|
||||
The compression program @code{gzip} can be used in the @code{dist} rule.
|
||||
|
||||
Stick to the generally supported options for these programs. For
|
||||
example, don't use @samp{mkdir -p}, convenient as it may be, because
|
||||
most systems don't support it.
|
||||
|
||||
It is a good idea to avoid creating symbolic links in makefiles, since a
|
||||
few systems don't support them.
|
||||
|
||||
The Makefile rules for building and installation can also use compilers
|
||||
and related programs, but should do so via @code{make} variables so that the
|
||||
user can substitute alternatives. Here are some of the programs we
|
||||
mean:
|
||||
|
||||
@example
|
||||
ar bison cc flex install ld ldconfig lex
|
||||
make makeinfo ranlib texi2dvi yacc
|
||||
@end example
|
||||
|
||||
Use the following @code{make} variables to run those programs:
|
||||
|
||||
@example
|
||||
$(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
|
||||
$(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
|
||||
@end example
|
||||
|
||||
When you use @code{ranlib} or @code{ldconfig}, you should make sure
|
||||
nothing bad happens if the system does not have the program in question.
|
||||
Arrange to ignore an error from that command, and print a message before
|
||||
the command to tell the user that failure of this command does not mean
|
||||
a problem. (The Autoconf @samp{AC_PROG_RANLIB} macro can help with
|
||||
this.)
|
||||
|
||||
If you use symbolic links, you should implement a fallback for systems
|
||||
that don't have symbolic links.
|
||||
|
||||
Additional utilities that can be used via Make variables are:
|
||||
|
||||
@example
|
||||
chgrp chmod chown mknod
|
||||
@end example
|
||||
|
||||
It is ok to use other utilities in Makefile portions (or scripts)
|
||||
intended only for particular systems where you know those utilities
|
||||
exist.
|
||||
|
||||
@node Command Variables
|
||||
@section Variables for Specifying Commands
|
||||
|
||||
Makefiles should provide variables for overriding certain commands, options,
|
||||
and so on.
|
||||
|
||||
In particular, you should run most utility programs via variables.
|
||||
Thus, if you use Bison, have a variable named @code{BISON} whose default
|
||||
value is set with @samp{BISON = bison}, and refer to it with
|
||||
@code{$(BISON)} whenever you need to use Bison.
|
||||
|
||||
File management utilities such as @code{ln}, @code{rm}, @code{mv}, and
|
||||
so on, need not be referred to through variables in this way, since users
|
||||
don't need to replace them with other programs.
|
||||
|
||||
Each program-name variable should come with an options variable that is
|
||||
used to supply options to the program. Append @samp{FLAGS} to the
|
||||
program-name variable name to get the options variable name---for
|
||||
example, @code{BISONFLAGS}. (The names @code{CFLAGS} for the C
|
||||
compiler, @code{YFLAGS} for yacc, and @code{LFLAGS} for lex, are
|
||||
exceptions to this rule, but we keep them because they are standard.)
|
||||
Use @code{CPPFLAGS} in any compilation command that runs the
|
||||
preprocessor, and use @code{LDFLAGS} in any compilation command that
|
||||
does linking as well as in any direct use of @code{ld}.
|
||||
|
||||
If there are C compiler options that @emph{must} be used for proper
|
||||
compilation of certain files, do not include them in @code{CFLAGS}.
|
||||
Users expect to be able to specify @code{CFLAGS} freely themselves.
|
||||
Instead, arrange to pass the necessary options to the C compiler
|
||||
independently of @code{CFLAGS}, by writing them explicitly in the
|
||||
compilation commands or by defining an implicit rule, like this:
|
||||
|
||||
@smallexample
|
||||
CFLAGS = -g
|
||||
ALL_CFLAGS = -I. $(CFLAGS)
|
||||
.c.o:
|
||||
$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
|
||||
@end smallexample
|
||||
|
||||
Do include the @samp{-g} option in @code{CFLAGS}, because that is not
|
||||
@emph{required} for proper compilation. You can consider it a default
|
||||
that is only recommended. If the package is set up so that it is
|
||||
compiled with GCC by default, then you might as well include @samp{-O}
|
||||
in the default value of @code{CFLAGS} as well.
|
||||
|
||||
Put @code{CFLAGS} last in the compilation command, after other variables
|
||||
containing compiler options, so the user can use @code{CFLAGS} to
|
||||
override the others.
|
||||
|
||||
@code{CFLAGS} should be used in every invocation of the C compiler,
|
||||
both those which do compilation and those which do linking.
|
||||
|
||||
Every Makefile should define the variable @code{INSTALL}, which is the
|
||||
basic command for installing a file into the system.
|
||||
|
||||
Every Makefile should also define the variables @code{INSTALL_PROGRAM}
|
||||
and @code{INSTALL_DATA}. (The default for each of these should be
|
||||
@code{$(INSTALL)}.) Then it should use those variables as the commands
|
||||
for actual installation, for executables and nonexecutables
|
||||
respectively. Use these variables as follows:
|
||||
|
||||
@example
|
||||
$(INSTALL_PROGRAM) foo $(bindir)/foo
|
||||
$(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
|
||||
@end example
|
||||
|
||||
Optionally, you may prepend the value of @code{DESTDIR} to the target
|
||||
filename. Doing this allows the installer to create a snapshot of the
|
||||
installation to be copied onto the real target filesystem later. Do not
|
||||
set the value of @code{DESTDIR} in your Makefile, and do not include it
|
||||
in any installed files. With support for @code{DESTDIR}, the above
|
||||
examples become:
|
||||
|
||||
@example
|
||||
$(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
|
||||
$(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
Always use a file name, not a directory name, as the second argument of
|
||||
the installation commands. Use a separate command for each file to be
|
||||
installed.
|
||||
|
||||
@node Directory Variables
|
||||
@section Variables for Installation Directories
|
||||
|
||||
Installation directories should always be named by variables, so it is
|
||||
easy to install in a nonstandard place. The standard names for these
|
||||
variables are described below. They are based on a standard filesystem
|
||||
layout; variants of it are used in SVR4, 4.4BSD, Linux, Ultrix v4, and
|
||||
other modern operating systems.
|
||||
|
||||
These two variables set the root for the installation. All the other
|
||||
installation directories should be subdirectories of one of these two,
|
||||
and nothing should be directly installed into these two directories.
|
||||
|
||||
@table @samp
|
||||
@item prefix
|
||||
A prefix used in constructing the default values of the variables listed
|
||||
below. The default value of @code{prefix} should be @file{/usr/local}.
|
||||
When building the complete GNU system, the prefix will be empty and
|
||||
@file{/usr} will be a symbolic link to @file{/}.
|
||||
(If you are using Autoconf, write it as @samp{@@prefix@@}.)
|
||||
|
||||
Running @samp{make install} with a different value of @code{prefix}
|
||||
from the one used to build the program should @var{not} recompile
|
||||
the program.
|
||||
|
||||
@item exec_prefix
|
||||
A prefix used in constructing the default values of some of the
|
||||
variables listed below. The default value of @code{exec_prefix} should
|
||||
be @code{$(prefix)}.
|
||||
(If you are using Autoconf, write it as @samp{@@exec_prefix@@}.)
|
||||
|
||||
Generally, @code{$(exec_prefix)} is used for directories that contain
|
||||
machine-specific files (such as executables and subroutine libraries),
|
||||
while @code{$(prefix)} is used directly for other directories.
|
||||
|
||||
Running @samp{make install} with a different value of @code{exec_prefix}
|
||||
from the one used to build the program should @var{not} recompile the
|
||||
program.
|
||||
@end table
|
||||
|
||||
Executable programs are installed in one of the following directories.
|
||||
|
||||
@table @samp
|
||||
@item bindir
|
||||
The directory for installing executable programs that users can run.
|
||||
This should normally be @file{/usr/local/bin}, but write it as
|
||||
@file{$(exec_prefix)/bin}.
|
||||
(If you are using Autoconf, write it as @samp{@@bindir@@}.)
|
||||
|
||||
@item sbindir
|
||||
The directory for installing executable programs that can be run from
|
||||
the shell, but are only generally useful to system administrators. This
|
||||
should normally be @file{/usr/local/sbin}, but write it as
|
||||
@file{$(exec_prefix)/sbin}.
|
||||
(If you are using Autoconf, write it as @samp{@@sbindir@@}.)
|
||||
|
||||
@item libexecdir
|
||||
@comment This paragraph adjusted to avoid overfull hbox --roland 5jul94
|
||||
The directory for installing executable programs to be run by other
|
||||
programs rather than by users. This directory should normally be
|
||||
@file{/usr/local/libexec}, but write it as @file{$(exec_prefix)/libexec}.
|
||||
(If you are using Autoconf, write it as @samp{@@libexecdir@@}.)
|
||||
@end table
|
||||
|
||||
Data files used by the program during its execution are divided into
|
||||
categories in two ways.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Some files are normally modified by programs; others are never normally
|
||||
modified (though users may edit some of these).
|
||||
|
||||
@item
|
||||
Some files are architecture-independent and can be shared by all
|
||||
machines at a site; some are architecture-dependent and can be shared
|
||||
only by machines of the same kind and operating system; others may never
|
||||
be shared between two machines.
|
||||
@end itemize
|
||||
|
||||
This makes for six different possibilities. However, we want to
|
||||
discourage the use of architecture-dependent files, aside from object
|
||||
files and libraries. It is much cleaner to make other data files
|
||||
architecture-independent, and it is generally not hard.
|
||||
|
||||
Therefore, here are the variables Makefiles should use to specify
|
||||
directories:
|
||||
|
||||
@table @samp
|
||||
@item datadir
|
||||
The directory for installing read-only architecture independent data
|
||||
files. This should normally be @file{/usr/local/share}, but write it as
|
||||
@file{$(prefix)/share}.
|
||||
(If you are using Autoconf, write it as @samp{@@datadir@@}.)
|
||||
As a special exception, see @file{$(infodir)}
|
||||
and @file{$(includedir)} below.
|
||||
|
||||
@item sysconfdir
|
||||
The directory for installing read-only data files that pertain to a
|
||||
single machine--that is to say, files for configuring a host. Mailer
|
||||
and network configuration files, @file{/etc/passwd}, and so forth belong
|
||||
here. All the files in this directory should be ordinary ASCII text
|
||||
files. This directory should normally be @file{/usr/local/etc}, but
|
||||
write it as @file{$(prefix)/etc}.
|
||||
(If you are using Autoconf, write it as @samp{@@sysconfdir@@}.)
|
||||
|
||||
Do not install executables here in this directory (they probably belong
|
||||
in @file{$(libexecdir)} or @file{$(sbindir)}). Also do not install
|
||||
files that are modified in the normal course of their use (programs
|
||||
whose purpose is to change the configuration of the system excluded).
|
||||
Those probably belong in @file{$(localstatedir)}.
|
||||
|
||||
@item sharedstatedir
|
||||
The directory for installing architecture-independent data files which
|
||||
the programs modify while they run. This should normally be
|
||||
@file{/usr/local/com}, but write it as @file{$(prefix)/com}.
|
||||
(If you are using Autoconf, write it as @samp{@@sharedstatedir@@}.)
|
||||
|
||||
@item localstatedir
|
||||
The directory for installing data files which the programs modify while
|
||||
they run, and that pertain to one specific machine. Users should never
|
||||
need to modify files in this directory to configure the package's
|
||||
operation; put such configuration information in separate files that go
|
||||
in @file{$(datadir)} or @file{$(sysconfdir)}. @file{$(localstatedir)}
|
||||
should normally be @file{/usr/local/var}, but write it as
|
||||
@file{$(prefix)/var}.
|
||||
(If you are using Autoconf, write it as @samp{@@localstatedir@@}.)
|
||||
|
||||
@item libdir
|
||||
The directory for object files and libraries of object code. Do not
|
||||
install executables here, they probably ought to go in @file{$(libexecdir)}
|
||||
instead. The value of @code{libdir} should normally be
|
||||
@file{/usr/local/lib}, but write it as @file{$(exec_prefix)/lib}.
|
||||
(If you are using Autoconf, write it as @samp{@@libdir@@}.)
|
||||
|
||||
@item infodir
|
||||
The directory for installing the Info files for this package. By
|
||||
default, it should be @file{/usr/local/info}, but it should be written
|
||||
as @file{$(prefix)/info}.
|
||||
(If you are using Autoconf, write it as @samp{@@infodir@@}.)
|
||||
|
||||
@item lispdir
|
||||
The directory for installing any Emacs Lisp files in this package. By
|
||||
default, it should be @file{/usr/local/share/emacs/site-lisp}, but it
|
||||
should be written as @file{$(prefix)/share/emacs/site-lisp}.
|
||||
|
||||
If you are using Autoconf, write the default as @samp{@@lispdir@@}.
|
||||
In order to make @samp{@@lispdir@@} work, you need the following lines
|
||||
in your @file{configure.in} file:
|
||||
|
||||
@example
|
||||
lispdir='$@{datadir@}/emacs/site-lisp'
|
||||
AC_SUBST(lispdir)
|
||||
@end example
|
||||
|
||||
@item includedir
|
||||
@c rewritten to avoid overfull hbox --roland
|
||||
The directory for installing header files to be included by user
|
||||
programs with the C @samp{#include} preprocessor directive. This
|
||||
should normally be @file{/usr/local/include}, but write it as
|
||||
@file{$(prefix)/include}.
|
||||
(If you are using Autoconf, write it as @samp{@@includedir@@}.)
|
||||
|
||||
Most compilers other than GCC do not look for header files in directory
|
||||
@file{/usr/local/include}. So installing the header files this way is
|
||||
only useful with GCC. Sometimes this is not a problem because some
|
||||
libraries are only really intended to work with GCC. But some libraries
|
||||
are intended to work with other compilers. They should install their
|
||||
header files in two places, one specified by @code{includedir} and one
|
||||
specified by @code{oldincludedir}.
|
||||
|
||||
@item oldincludedir
|
||||
The directory for installing @samp{#include} header files for use with
|
||||
compilers other than GCC. This should normally be @file{/usr/include}.
|
||||
(If you are using Autoconf, you can write it as @samp{@@oldincludedir@@}.)
|
||||
|
||||
The Makefile commands should check whether the value of
|
||||
@code{oldincludedir} is empty. If it is, they should not try to use
|
||||
it; they should cancel the second installation of the header files.
|
||||
|
||||
A package should not replace an existing header in this directory unless
|
||||
the header came from the same package. Thus, if your Foo package
|
||||
provides a header file @file{foo.h}, then it should install the header
|
||||
file in the @code{oldincludedir} directory if either (1) there is no
|
||||
@file{foo.h} there or (2) the @file{foo.h} that exists came from the Foo
|
||||
package.
|
||||
|
||||
To tell whether @file{foo.h} came from the Foo package, put a magic
|
||||
string in the file---part of a comment---and @code{grep} for that string.
|
||||
@end table
|
||||
|
||||
Unix-style man pages are installed in one of the following:
|
||||
|
||||
@table @samp
|
||||
@item mandir
|
||||
The top-level directory for installing the man pages (if any) for this
|
||||
package. It will normally be @file{/usr/local/man}, but you should
|
||||
write it as @file{$(prefix)/man}.
|
||||
(If you are using Autoconf, write it as @samp{@@mandir@@}.)
|
||||
|
||||
@item man1dir
|
||||
The directory for installing section 1 man pages. Write it as
|
||||
@file{$(mandir)/man1}.
|
||||
@item man2dir
|
||||
The directory for installing section 2 man pages. Write it as
|
||||
@file{$(mandir)/man2}
|
||||
@item @dots{}
|
||||
|
||||
@strong{Don't make the primary documentation for any GNU software be a
|
||||
man page. Write a manual in Texinfo instead. Man pages are just for
|
||||
the sake of people running GNU software on Unix, which is a secondary
|
||||
application only.}
|
||||
|
||||
@item manext
|
||||
The file name extension for the installed man page. This should contain
|
||||
a period followed by the appropriate digit; it should normally be @samp{.1}.
|
||||
|
||||
@item man1ext
|
||||
The file name extension for installed section 1 man pages.
|
||||
@item man2ext
|
||||
The file name extension for installed section 2 man pages.
|
||||
@item @dots{}
|
||||
Use these names instead of @samp{manext} if the package needs to install man
|
||||
pages in more than one section of the manual.
|
||||
@end table
|
||||
|
||||
And finally, you should set the following variable:
|
||||
|
||||
@table @samp
|
||||
@item srcdir
|
||||
The directory for the sources being compiled. The value of this
|
||||
variable is normally inserted by the @code{configure} shell script.
|
||||
(If you are using Autconf, use @samp{srcdir = @@srcdir@@}.)
|
||||
@end table
|
||||
|
||||
For example:
|
||||
|
||||
@smallexample
|
||||
@c I have changed some of the comments here slightly to fix an overfull
|
||||
@c hbox, so the make manual can format correctly. --roland
|
||||
# Common prefix for installation directories.
|
||||
# NOTE: This directory must exist when you start the install.
|
||||
prefix = /usr/local
|
||||
exec_prefix = $(prefix)
|
||||
# Where to put the executable for the command `gcc'.
|
||||
bindir = $(exec_prefix)/bin
|
||||
# Where to put the directories used by the compiler.
|
||||
libexecdir = $(exec_prefix)/libexec
|
||||
# Where to put the Info files.
|
||||
infodir = $(prefix)/info
|
||||
@end smallexample
|
||||
|
||||
If your program installs a large number of files into one of the
|
||||
standard user-specified directories, it might be useful to group them
|
||||
into a subdirectory particular to that program. If you do this, you
|
||||
should write the @code{install} rule to create these subdirectories.
|
||||
|
||||
Do not expect the user to include the subdirectory name in the value of
|
||||
any of the variables listed above. The idea of having a uniform set of
|
||||
variable names for installation directories is to enable the user to
|
||||
specify the exact same values for several different GNU packages. In
|
||||
order for this to be useful, all the packages must be designed so that
|
||||
they will work sensibly when the user does so.
|
||||
|
||||
@node Standard Targets
|
||||
@section Standard Targets for Users
|
||||
|
||||
All GNU programs should have the following targets in their Makefiles:
|
||||
|
||||
@table @samp
|
||||
@item all
|
||||
Compile the entire program. This should be the default target. This
|
||||
target need not rebuild any documentation files; Info files should
|
||||
normally be included in the distribution, and DVI files should be made
|
||||
only when explicitly asked for.
|
||||
|
||||
By default, the Make rules should compile and link with @samp{-g}, so
|
||||
that executable programs have debugging symbols. Users who don't mind
|
||||
being helpless can strip the executables later if they wish.
|
||||
|
||||
@item install
|
||||
Compile the program and copy the executables, libraries, and so on to
|
||||
the file names where they should reside for actual use. If there is a
|
||||
simple test to verify that a program is properly installed, this target
|
||||
should run that test.
|
||||
|
||||
Do not strip executables when installing them. Devil-may-care users can
|
||||
use the @code{install-strip} target to do that.
|
||||
|
||||
If possible, write the @code{install} target rule so that it does not
|
||||
modify anything in the directory where the program was built, provided
|
||||
@samp{make all} has just been done. This is convenient for building the
|
||||
program under one user name and installing it under another.
|
||||
|
||||
The commands should create all the directories in which files are to be
|
||||
installed, if they don't already exist. This includes the directories
|
||||
specified as the values of the variables @code{prefix} and
|
||||
@code{exec_prefix}, as well as all subdirectories that are needed.
|
||||
One way to do this is by means of an @code{installdirs} target
|
||||
as described below.
|
||||
|
||||
Use @samp{-} before any command for installing a man page, so that
|
||||
@code{make} will ignore any errors. This is in case there are systems
|
||||
that don't have the Unix man page documentation system installed.
|
||||
|
||||
The way to install Info files is to copy them into @file{$(infodir)}
|
||||
with @code{$(INSTALL_DATA)} (@pxref{Command Variables}), and then run
|
||||
the @code{install-info} program if it is present. @code{install-info}
|
||||
is a program that edits the Info @file{dir} file to add or update the
|
||||
menu entry for the given Info file; it is part of the Texinfo package.
|
||||
Here is a sample rule to install an Info file:
|
||||
|
||||
@comment This example has been carefully formatted for the Make manual.
|
||||
@comment Please do not reformat it without talking to roland@gnu.ai.mit.edu.
|
||||
@smallexample
|
||||
$(DESTDIR)$(infodir)/foo.info: foo.info
|
||||
$(POST_INSTALL)
|
||||
# There may be a newer info file in . than in srcdir.
|
||||
-if test -f foo.info; then d=.; \
|
||||
else d=$(srcdir); fi; \
|
||||
$(INSTALL_DATA) $$d/foo.info $(DESTDIR)$@@; \
|
||||
# Run install-info only if it exists.
|
||||
# Use `if' instead of just prepending `-' to the
|
||||
# line so we notice real errors from install-info.
|
||||
# We use `$(SHELL) -c' because some shells do not
|
||||
# fail gracefully when there is an unknown command.
|
||||
if $(SHELL) -c 'install-info --version' \
|
||||
>/dev/null 2>&1; then \
|
||||
install-info --dir-file=$(DESTDIR)$(infodir)/dir \
|
||||
$(DESTDIR)$(infodir)/foo.info; \
|
||||
else true; fi
|
||||
@end smallexample
|
||||
|
||||
When writing the @code{install} target, you must classify all the
|
||||
commands into three categories: normal ones, @dfn{pre-installation}
|
||||
commands and @dfn{post-installation} commands. @xref{Install Command
|
||||
Categories}.
|
||||
|
||||
@item uninstall
|
||||
Delete all the installed files---the copies that the @samp{install}
|
||||
target creates.
|
||||
|
||||
This rule should not modify the directories where compilation is done,
|
||||
only the directories where files are installed.
|
||||
|
||||
The uninstallation commands are divided into three categories, just like
|
||||
the installation commands. @xref{Install Command Categories}.
|
||||
|
||||
@item install-strip
|
||||
Like @code{install}, but strip the executable files while installing
|
||||
them. In many cases, the definition of this target can be very simple:
|
||||
|
||||
@smallexample
|
||||
install-strip:
|
||||
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
|
||||
install
|
||||
@end smallexample
|
||||
|
||||
Normally we do not recommend stripping an executable unless you are sure
|
||||
the program has no bugs. However, it can be reasonable to install a
|
||||
stripped executable for actual execution while saving the unstripped
|
||||
executable elsewhere in case there is a bug.
|
||||
|
||||
@comment The gratuitous blank line here is to make the table look better
|
||||
@comment in the printed Make manual. Please leave it in.
|
||||
@item clean
|
||||
|
||||
Delete all files from the current directory that are normally created by
|
||||
building the program. Don't delete the files that record the
|
||||
configuration. Also preserve files that could be made by building, but
|
||||
normally aren't because the distribution comes with them.
|
||||
|
||||
Delete @file{.dvi} files here if they are not part of the distribution.
|
||||
|
||||
@item distclean
|
||||
Delete all files from the current directory that are created by
|
||||
configuring or building the program. If you have unpacked the source
|
||||
and built the program without creating any other files, @samp{make
|
||||
distclean} should leave only the files that were in the distribution.
|
||||
|
||||
@item mostlyclean
|
||||
Like @samp{clean}, but may refrain from deleting a few files that people
|
||||
normally don't want to recompile. For example, the @samp{mostlyclean}
|
||||
target for GCC does not delete @file{libgcc.a}, because recompiling it
|
||||
is rarely necessary and takes a lot of time.
|
||||
|
||||
@item maintainer-clean
|
||||
Delete almost everything from the current directory that can be
|
||||
reconstructed with this Makefile. This typically includes everything
|
||||
deleted by @code{distclean}, plus more: C source files produced by
|
||||
Bison, tags tables, Info files, and so on.
|
||||
|
||||
The reason we say ``almost everything'' is that running the command
|
||||
@samp{make maintainer-clean} should not delete @file{configure} even if
|
||||
@file{configure} can be remade using a rule in the Makefile. More generally,
|
||||
@samp{make maintainer-clean} should not delete anything that needs to
|
||||
exist in order to run @file{configure} and then begin to build the
|
||||
program. This is the only exception; @code{maintainer-clean} should
|
||||
delete everything else that can be rebuilt.
|
||||
|
||||
The @samp{maintainer-clean} target is intended to be used by a maintainer of
|
||||
the package, not by ordinary users. You may need special tools to
|
||||
reconstruct some of the files that @samp{make maintainer-clean} deletes.
|
||||
Since these files are normally included in the distribution, we don't
|
||||
take care to make them easy to reconstruct. If you find you need to
|
||||
unpack the full distribution again, don't blame us.
|
||||
|
||||
To help make users aware of this, the commands for the special
|
||||
@code{maintainer-clean} target should start with these two:
|
||||
|
||||
@smallexample
|
||||
@@echo 'This command is intended for maintainers to use; it'
|
||||
@@echo 'deletes files that may need special tools to rebuild.'
|
||||
@end smallexample
|
||||
|
||||
@item TAGS
|
||||
Update a tags table for this program.
|
||||
@c ADR: how?
|
||||
|
||||
@item info
|
||||
Generate any Info files needed. The best way to write the rules is as
|
||||
follows:
|
||||
|
||||
@smallexample
|
||||
info: foo.info
|
||||
|
||||
foo.info: foo.texi chap1.texi chap2.texi
|
||||
$(MAKEINFO) $(srcdir)/foo.texi
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
You must define the variable @code{MAKEINFO} in the Makefile. It should
|
||||
run the @code{makeinfo} program, which is part of the Texinfo
|
||||
distribution.
|
||||
|
||||
Normally a GNU distribution comes with Info files, and that means the
|
||||
Info files are present in the source directory. Therefore, the Make
|
||||
rule for an info file should update it in the source directory. When
|
||||
users build the package, ordinarily Make will not update the Info files
|
||||
because they will already be up to date.
|
||||
|
||||
@item dvi
|
||||
Generate DVI files for all Texinfo documentation.
|
||||
For example:
|
||||
|
||||
@smallexample
|
||||
dvi: foo.dvi
|
||||
|
||||
foo.dvi: foo.texi chap1.texi chap2.texi
|
||||
$(TEXI2DVI) $(srcdir)/foo.texi
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
You must define the variable @code{TEXI2DVI} in the Makefile. It should
|
||||
run the program @code{texi2dvi}, which is part of the Texinfo
|
||||
distribution.@footnote{@code{texi2dvi} uses @TeX{} to do the real work
|
||||
of formatting. @TeX{} is not distributed with Texinfo.} Alternatively,
|
||||
write just the dependencies, and allow GNU @code{make} to provide the command.
|
||||
|
||||
@item dist
|
||||
Create a distribution tar file for this program. The tar file should be
|
||||
set up so that the file names in the tar file start with a subdirectory
|
||||
name which is the name of the package it is a distribution for. This
|
||||
name can include the version number.
|
||||
|
||||
For example, the distribution tar file of GCC version 1.40 unpacks into
|
||||
a subdirectory named @file{gcc-1.40}.
|
||||
|
||||
The easiest way to do this is to create a subdirectory appropriately
|
||||
named, use @code{ln} or @code{cp} to install the proper files in it, and
|
||||
then @code{tar} that subdirectory.
|
||||
|
||||
Compress the tar file file with @code{gzip}. For example, the actual
|
||||
distribution file for GCC version 1.40 is called @file{gcc-1.40.tar.gz}.
|
||||
|
||||
The @code{dist} target should explicitly depend on all non-source files
|
||||
that are in the distribution, to make sure they are up to date in the
|
||||
distribution.
|
||||
@ifset CODESTD
|
||||
@xref{Releases, , Making Releases}.
|
||||
@end ifset
|
||||
@ifclear CODESTD
|
||||
@xref{Releases, , Making Releases, standards, GNU Coding Standards}.
|
||||
@end ifclear
|
||||
|
||||
@item check
|
||||
Perform self-tests (if any). The user must build the program before
|
||||
running the tests, but need not install the program; you should write
|
||||
the self-tests so that they work when the program is built but not
|
||||
installed.
|
||||
@end table
|
||||
|
||||
The following targets are suggested as conventional names, for programs
|
||||
in which they are useful.
|
||||
|
||||
@table @code
|
||||
@item installcheck
|
||||
Perform installation tests (if any). The user must build and install
|
||||
the program before running the tests. You should not assume that
|
||||
@file{$(bindir)} is in the search path.
|
||||
|
||||
@item installdirs
|
||||
It's useful to add a target named @samp{installdirs} to create the
|
||||
directories where files are installed, and their parent directories.
|
||||
There is a script called @file{mkinstalldirs} which is convenient for
|
||||
this; you can find it in the Texinfo package.
|
||||
@c It's in /gd/gnu/lib/mkinstalldirs.
|
||||
You can use a rule like this:
|
||||
|
||||
@comment This has been carefully formatted to look decent in the Make manual.
|
||||
@comment Please be sure not to make it extend any further to the right.--roland
|
||||
@smallexample
|
||||
# Make sure all installation directories (e.g. $(bindir))
|
||||
# actually exist by making them if necessary.
|
||||
installdirs: mkinstalldirs
|
||||
$(srcdir)/mkinstalldirs $(bindir) $(datadir) \
|
||||
$(libdir) $(infodir) \
|
||||
$(mandir)
|
||||
@end smallexample
|
||||
|
||||
This rule should not modify the directories where compilation is done.
|
||||
It should do nothing but create installation directories.
|
||||
@end table
|
||||
|
||||
@node Install Command Categories
|
||||
@section Install Command Categories
|
||||
|
||||
@cindex pre-installation commands
|
||||
@cindex post-installation commands
|
||||
When writing the @code{install} target, you must classify all the
|
||||
commands into three categories: normal ones, @dfn{pre-installation}
|
||||
commands and @dfn{post-installation} commands.
|
||||
|
||||
Normal commands move files into their proper places, and set their
|
||||
modes. They may not alter any files except the ones that come entirely
|
||||
from the package they belong to.
|
||||
|
||||
Pre-installation and post-installation commands may alter other files;
|
||||
in particular, they can edit global configuration files or data bases.
|
||||
|
||||
Pre-installation commands are typically executed before the normal
|
||||
commands, and post-installation commands are typically run after the
|
||||
normal commands.
|
||||
|
||||
The most common use for a post-installation command is to run
|
||||
@code{install-info}. This cannot be done with a normal command, since
|
||||
it alters a file (the Info directory) which does not come entirely and
|
||||
solely from the package being installed. It is a post-installation
|
||||
command because it needs to be done after the normal command which
|
||||
installs the package's Info files.
|
||||
|
||||
Most programs don't need any pre-installation commands, but we have the
|
||||
feature just in case it is needed.
|
||||
|
||||
To classify the commands in the @code{install} rule into these three
|
||||
categories, insert @dfn{category lines} among them. A category line
|
||||
specifies the category for the commands that follow.
|
||||
|
||||
A category line consists of a tab and a reference to a special Make
|
||||
variable, plus an optional comment at the end. There are three
|
||||
variables you can use, one for each category; the variable name
|
||||
specifies the category. Category lines are no-ops in ordinary execution
|
||||
because these three Make variables are normally undefined (and you
|
||||
@emph{should not} define them in the makefile).
|
||||
|
||||
Here are the three possible category lines, each with a comment that
|
||||
explains what it means:
|
||||
|
||||
@smallexample
|
||||
$(PRE_INSTALL) # @r{Pre-install commands follow.}
|
||||
$(POST_INSTALL) # @r{Post-install commands follow.}
|
||||
$(NORMAL_INSTALL) # @r{Normal commands follow.}
|
||||
@end smallexample
|
||||
|
||||
If you don't use a category line at the beginning of the @code{install}
|
||||
rule, all the commands are classified as normal until the first category
|
||||
line. If you don't use any category lines, all the commands are
|
||||
classified as normal.
|
||||
|
||||
These are the category lines for @code{uninstall}:
|
||||
|
||||
@smallexample
|
||||
$(PRE_UNINSTALL) # @r{Pre-uninstall commands follow.}
|
||||
$(POST_UNINSTALL) # @r{Post-uninstall commands follow.}
|
||||
$(NORMAL_UNINSTALL) # @r{Normal commands follow.}
|
||||
@end smallexample
|
||||
|
||||
Typically, a pre-uninstall command would be used for deleting entries
|
||||
from the Info directory.
|
||||
|
||||
If the @code{install} or @code{uninstall} target has any dependencies
|
||||
which act as subroutines of installation, then you should start
|
||||
@emph{each} dependency's commands with a category line, and start the
|
||||
main target's commands with a category line also. This way, you can
|
||||
ensure that each command is placed in the right category regardless of
|
||||
which of the dependencies actually run.
|
||||
|
||||
Pre-installation and post-installation commands should not run any
|
||||
programs except for these:
|
||||
|
||||
@example
|
||||
[ basename bash cat chgrp chmod chown cmp cp dd diff echo
|
||||
egrep expand expr false fgrep find getopt grep gunzip gzip
|
||||
hostname install install-info kill ldconfig ln ls md5sum
|
||||
mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
|
||||
test touch true uname xargs yes
|
||||
@end example
|
||||
|
||||
@cindex binary packages
|
||||
The reason for distinguishing the commands in this way is for the sake
|
||||
of making binary packages. Typically a binary package contains all the
|
||||
executables and other files that need to be installed, and has its own
|
||||
method of installing them---so it does not need to run the normal
|
||||
installation commands. But installing the binary package does need to
|
||||
execute the pre-installation and post-installation commands.
|
||||
|
||||
Programs to build binary packages work by extracting the
|
||||
pre-installation and post-installation commands. Here is one way of
|
||||
extracting the pre-installation commands:
|
||||
|
||||
@smallexample
|
||||
make -n install -o all \
|
||||
PRE_INSTALL=pre-install \
|
||||
POST_INSTALL=post-install \
|
||||
NORMAL_INSTALL=normal-install \
|
||||
| gawk -f pre-install.awk
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
where the file @file{pre-install.awk} could contain this:
|
||||
|
||||
@smallexample
|
||||
$0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ @{on = 0@}
|
||||
on @{print $0@}
|
||||
$0 ~ /^\t[ \t]*pre_install[ \t]*$/ @{on = 1@}
|
||||
@end smallexample
|
||||
|
||||
The resulting file of pre-installation commands is executed as a shell
|
||||
script as part of installing the binary package.
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user