• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/progmodes/

Lines Matching +defs:conf +defs:file +defs:marker

18 ;; This file is part of GNU Emacs.
31 ;; along with GNU Emacs; see the file COPYING. If not, write to the
45 ;; - Insertion of file headers
53 ;; - Source file compilation (syntax analysis)
83 ;; following line in your Emacs start-up file `.emacs':
85 ;; (setq load-path (cons (expand-file-name "<directory-name>") load-path))
87 ;; If you already have the compiled `vhdl-mode.elc' file, put it in the same
88 ;; directory. Otherwise, byte-compile the source file:
89 ;; Emacs: M-x byte-compile-file RET vhdl-mode.el RET
90 ;; Unix: emacs -batch -q -no-site-file -f batch-byte-compile vhdl-mode.el
92 ;; Add the following lines to the `site-start.el' file in the `site-lisp'
93 ;; directory of your Emacs installation or to your Emacs start-up file `.emacs'
137 (defvar compilation-file-regexp-alist)
138 (defvar conf-alist)
139 (defvar conf-entry)
140 (defvar conf-key)
229 ;; Cadence Leapfrog: cv -file test.vhd
231 ("Cadence Leapfrog" "cv" "-work \\1 -file" "make" "-f \\1"
324 ;; (no file name printed out!)
345 Compile command : command used for source file compilation
359 File subexp index: index of subexpression that matches the file name
363 Regexp : regular expression to match a file name message
364 File subexp index: index of subexpression that matches the file name
365 Unit-to-file name mapping: mapping of library unit names to names of files
378 specification of the unit-to-file name mapping). Alternatively, an
387 `vhdl-project-alist'). Directory paths are relative to the source file
390 Some compilers do not include the file name in the error message, but print
391 out a file name message in advance. In this case, set \"File Subexp Index\"
393 If no file name at all is printed out, set both \"File Message\" entries to 0
394 \(a default file name message will be printed out instead, does not work in
403 NOTE: Activate new error and file message regexps and reflect the new setting
420 (file :tag "Makefile name " "Makefile")
430 (choice :tag "Unit-to-file name mapping"
505 -- that can be used as a project dependent part of the file header.
511 Sources : a) source files : path + \"/\" + file name
514 Exclude regexp : matches file/directory names to be excluded as sources
521 Exceptions : file-specific exceptions
522 File name regexp: matches file names for which exceptions are valid
523 - Options : file-specific compiler options string
526 - Do not compile: do not compile this file (in Makefile)
535 Project title and description are used to insert into the file header (see
536 option `vhdl-file-header').
543 hierarchy browser. Path and file name can contain wildcards `*' and `?' as
549 specific file and directory names from the list of sources (e.g. CVS
565 default options (e.g. \"-file\") in project- or file-specific options (e.g.
566 \"-93 -file\").
576 ,(abbreviate-file-name default-directory))
603 (file :tag "Makefile name " "Makefile")
615 Is used to determine the project title and description to be inserted in file
626 (defcustom vhdl-project-file-name '("\\1.prj")
627 "*List of file names/paths for importing/exporting project setups.
630 The first entry is used as file name to import/export individual project
644 All project setup files that match the file names specified in option
645 `vhdl-project-file-name' are automatically loaded. The project of the
646 \(alphabetically) last loaded setup of the first `vhdl-project-file-name'
648 A project setup file can be obtained by exporting a project (see menu).
649 At startup: project setup file is loaded at Emacs startup"
754 (defcustom vhdl-entity-file-name '(".*" . "\\&")
756 "*Specifies how the entity file name is obtained.
757 The entity file name can be obtained by modifying the entity name (e.g.
758 attaching or stripping off a substring). The file extension is automatically
759 taken from the file name of the current buffer."
766 (defcustom vhdl-architecture-file-name '("\\(.*\\) \\(.*\\)" . "\\1_\\2")
768 "*Specifies how the architecture file name is obtained.
769 The architecture file name can be obtained by modifying the entity
771 file extension is automatically taken from the file name of the current
781 (defcustom vhdl-configuration-file-name '(".*" . "\\&")
783 "*Specifies how the configuration file name is obtained.
784 The configuration file name can be obtained by modifying the configuration
785 name (e.g. attaching or stripping off a substring). The file extension is
786 automatically taken from the file name of the current buffer."
793 (defcustom vhdl-package-file-name '(".*" . "\\&")
795 "*Specifies how the package file name is obtained.
796 The package file name can be obtained by modifying the package name (e.g.
797 attaching or stripping off a substring). The file extension is automatically
798 taken from the file name of the current buffer. Package files can be created
800 file name."
807 (defcustom vhdl-file-name-case 'identity
808 "*Specifies how to change case for obtaining file names.
809 When deriving a file name from a VHDL unit name, case can be changed as
900 "Customizations for file header."
904 (defcustom vhdl-file-header "\
925 "*String or file to insert as file header.
926 If the string specifies an existing file name, the contents of the file is
927 inserted, otherwise the string itself is inserted as file header.
946 <title string>: replaced by file title in automatically generated files
950 dependent part of the file header and can also contain the above keywords."
954 (defcustom vhdl-file-footer ""
955 "*String or file to insert as file footer.
956 If the string specifies an existing file name, the contents of the file is
957 inserted, otherwise the string itself is inserted as file footer (i.e. at
958 the end of the file).
960 The same keywords as in option `vhdl-file-header' can be used."
965 "*Name of company to insert in file header.
966 See option `vhdl-file-header'."
974 "*Copyright string to insert in file header.
975 Can be multi-line string (type `C-j' for newline) and contain other file
976 header keywords (see option `vhdl-file-header')."
981 "*Specification of VHDL platform to insert in file header.
984 See option `vhdl-file-header'."
997 "*Prefix string of modification date in VHDL file header.
1079 String : string or name of file to be inserted as model (newline: `C-j')
1090 File header prompts (see variable `vhdl-file-header') are automatically
1094 If the string specifies an existing file name, the contents of the file is
1176 Single file : in new single file
1178 The file names are obtained from variables `vhdl-entity-file-name' and
1179 `vhdl-architecture-file-name'."
1181 (const :tag "Single file" single)
1185 (defcustom vhdl-compose-configuration-create-file nil
1186 "*Specifies whether a new file should be created for the configuration.
1187 If non-nil, a new file is created for the configuration.
1188 The file name is obtained from variable `vhdl-configuration-file-name'."
1321 "*String or file to be inserted in the testbench declarative part.
1322 If the string specifies an existing file name, the contents of the file is
1341 "*String or file to be inserted in the testbench statement part.
1342 If the string specifies an existing file name, the contents of the file is
1368 Single file : in new single file
1370 The file names are obtained from variables `vhdl-testbench-entity-file-name'
1371 and `vhdl-testbench-architecture-file-name'."
1373 (const :tag "Single file" single)
1377 (defcustom vhdl-testbench-entity-file-name vhdl-entity-file-name
1379 "*Specifies how the testbench entity file name is obtained.
1380 The entity file name can be obtained by modifying the testbench entity name
1381 \(e.g. attaching or stripping off a substring). The file extension is
1382 automatically taken from the file name of the current buffer. Testbench
1384 absolute path to the file name."
1390 (defcustom vhdl-testbench-architecture-file-name vhdl-architecture-file-name
1392 "*Specifies how the testbench architecture file name is obtained.
1393 The architecture file name can be obtained by modifying the testbench entity
1398 a different directory by prepending a relative or absolute path to the file
1678 Design units: maximum file size to scan for design units
1680 File size: maximum file size to scan for instances (in bytes)
1684 In case of files not or incompletely scanned, a warning message and the file
1722 (defcustom vhdl-speedbar-cache-file-name ".emacs-vhdl-cache-\\1-\\2"
1723 "*Name of file for saving hierarchy cache.
1737 "*Non-nil means add an index menu for a source file when loading.
1738 Alternatively, the speedbar can be used. Note that the index menu scans a file
1739 when it is opened, while speedbar only scans the file upon request."
1743 (defcustom vhdl-source-file-menu nil
1760 "*Non-nil means hide all design units initially after a file is loaded."
2100 (message "WARNING: Install included `itimer.el' patch first (see INSTALL file)")
2103 ;; `file-expand-wildcards' undefined (XEmacs)
2104 (unless (fboundp 'file-expand-wildcards)
2105 (defun file-expand-wildcards (pattern &optional full)
2107 (let* ((nondir (file-name-nondirectory pattern))
2108 (dirpart (file-name-directory pattern))
2110 (mapcar 'file-name-as-directory
2111 (file-expand-wildcards (directory-file-name dirpart)))
2116 (file-directory-p (directory-file-name (car dirs))))
2121 (file-name-nondirectory name))
2279 ;; option `vhdl-project-file-name': changed format (3.31.17 beta)
2280 (when (stringp vhdl-project-file-name)
2281 (setq vhdl-project-file-name (list vhdl-project-file-name))
2282 (customize-save-variable 'vhdl-project-file-name vhdl-project-file-name))
2322 (expand-file-name (vhdl-resolve-env-variable
2390 (defmacro vhdl-visit-file (file-name issue-error &rest body)
2391 "Visit file FILE-NAME and execute BODY."
2392 `(if (null ,file-name)
2394 (unless (file-directory-p ,file-name)
2396 (visiting-buffer (find-buffer-visiting ,file-name))
2397 file-opened)
2400 (progn (set-buffer (create-file-buffer ,file-name))
2401 (setq file-opened t)
2402 (vhdl-insert-file-contents ,file-name)
2411 (when file-opened (kill-buffer (current-buffer)))
2413 (error "ERROR: File cannot be opened: \"%s\"" ,file-name))
2414 (vhdl-warning (format "File cannot be opened: \"%s\"" ,file-name) t)
2421 (when file-opened (kill-buffer (current-buffer)))
2425 (when file-opened (kill-buffer (current-buffer)))
2428 (defun vhdl-insert-file-contents (filename)
2429 "Nicked from `insert-file-contents-literally', but allow coding system
2432 (after-insert-file-functions nil)
2434 (insert-file-contents filename t)))
2442 (let ((dir-list (list (file-name-as-directory directory)))
2443 file-list)
2444 (setq file-list (vhdl-directory-files directory t "\\w.*"))
2445 (while file-list
2446 (when (file-directory-p (car file-list))
2447 (setq dir-list (append dir-list (vhdl-get-subdirs (car file-list)))))
2448 (setq file-list (cdr file-list)))
2497 (defun vhdl-max-marker (marker1 marker2)
2498 "Return larger marker."
2501 (defun vhdl-goto-marker (marker)
2502 "Goto marker in appropriate buffer."
2503 (when (markerp marker)
2504 (set-buffer (marker-buffer marker)))
2505 (goto-char marker))
2559 (define-key vhdl-template-map "Cc" 'vhdl-template-component-conf)
2568 (define-key vhdl-template-map "fi" 'vhdl-template-file)
2924 ("conf" "" vhdl-template-configuration-hook 0)
2936 ("file" "" vhdl-template-file-hook 0)
3068 ("component configuration" vhdl-template-component-conf)
3078 ("file declaration" vhdl-template-file)
3247 ["Configuration (Comp)" vhdl-template-component-conf t]
3256 ["File" vhdl-template-file t]
3526 ["Setup File Name..." (customize-option 'vhdl-project-file-name) t]
3626 ["Entity File Name..." (customize-option 'vhdl-entity-file-name) t]
3628 (customize-option 'vhdl-architecture-file-name) t]
3630 (customize-option 'vhdl-configuration-file-name) t]
3631 ["Package File Name..." (customize-option 'vhdl-package-file-name) t]
3634 (customize-set-variable 'vhdl-file-name-case 'identity)
3635 :style radio :selected (eq 'identity vhdl-file-name-case)]
3637 (customize-set-variable 'vhdl-file-name-case 'downcase)
3638 :style radio :selected (eq 'downcase vhdl-file-name-case)]
3640 (customize-set-variable 'vhdl-file-name-case 'upcase)
3641 :style radio :selected (eq 'upcase vhdl-file-name-case)]
3643 (customize-set-variable 'vhdl-file-name-case 'capitalize)
3644 :style radio :selected (eq 'capitalize vhdl-file-name-case)])
3696 ["Header String..." (customize-option 'vhdl-file-header) t]
3697 ["Footer String..." (customize-option 'vhdl-file-footer) t]
3802 (customize-option 'vhdl-testbench-entity-file-name) t]
3804 (customize-option 'vhdl-testbench-architecture-file-name) t])
3833 (customize-set-variable 'vhdl-compose-configuration-create-file
3834 (not vhdl-compose-configuration-create-file))
3835 :style toggle :selected vhdl-compose-configuration-create-file]
3963 (customize-option 'vhdl-speedbar-cache-file-name) t]
3972 (progn (customize-set-variable 'vhdl-source-file-menu
3973 (not vhdl-source-file-menu))
3975 :style toggle :selected vhdl-source-file-menu]
4093 ;; Source file menu (using `easy-menu.el')
4100 (if (not (file-directory-p directory))
4111 ;; create regular expressions for matching file names
4127 The directory of the current source file is scanned."
4131 (file-list (vhdl-get-source-files))
4135 (while file-list
4137 (setq menu-list (cons (vector (car file-list)
4138 (list 'find-file (car file-list)) t)
4140 (setq file-list (cdr file-list)))
4183 conf, comp, cons, func, inst, pack, sig, var.
4190 A file header can be inserted by `C-c C-t C-h'. A file footer
4191 (template at the end of the file) can be inserted by `C-c C-t C-f'.
4349 names used for entity/architecture/configuration/DUT as well as the file
4363 The speedbar allows browsing of directories and file contents. It can
4376 The speedbar can be switched between file, directory hierarchy and
4386 file when option `vhdl-speedbar-update-on-saving' is non-nil. The
4388 speedbar. The hierarchy is cached between Emacs sessions in a file (see
4492 description strings (for the file headers), source files/directories
4498 Project setups can be exported (i.e. written to a file) and imported.
4501 Emacs with VHDL Mode (i.e. load a VHDL file or use \"emacs -l
4502 vhdl-mode\") in a directory with an existing project setup file, it is
4505 files can be specified in option `vhdl-project-file-name'. Multiple
4515 file) for browsing the file contents (is not populated if buffer is
4516 larger than `font-lock-maximum-size'). Also, a source file menu can be
4517 added (set option `vhdl-source-file-menu' to non-nil) for browsing the
4597 Use option `vhdl-entity-file-name' to specify the entity file name
4629 INSTALL file).
4638 \".xxx\", add the following line to your Emacs start-up file (`.emacs'):
4645 a VHDL file first, use the command:
4741 ;; variables for source file compilation
4744 (set (make-local-variable 'compilation-file-regexp-alist) nil))
4748 ;; add source file menu
4749 (if vhdl-source-file-menu (vhdl-add-source-files-menu))
4760 (vhdl-write-file-hooks-init)
4778 (vhdl-write-file-hooks-init)
4784 (defun vhdl-write-file-hooks-init ()
4787 (add-hook 'local-write-file-hooks 'vhdl-template-modify-noerror)
4788 (remove-hook 'local-write-file-hooks 'vhdl-template-modify-noerror))
4790 (add-hook 'after-save-hook 'vhdl-add-modified-file))
4823 "file" "for" "function"
7108 (point-marker)
7109 (point-min-marker))))
7112 (point-marker)
7113 (point-max-marker)))))
7284 (setq end (point-marker))
7362 (setq orig (point-marker))
7365 (setq end (point-marker))
7381 (setq pos (point-marker))
7412 (setq end (point-marker))
7566 (setq orig (point-marker))
7569 (setq end (point-marker))
7579 (setq pos (point-marker))
7597 (point-marker) (point-max)))
7625 (setq end (point-marker))
7684 (setq end (save-excursion (goto-char end) (point-marker)))
7708 (setq end (point-marker))
7904 (let (beg end signal-list entity-name file-name)
7916 (setq file-name
7917 (concat (vhdl-replace-string vhdl-entity-file-name entity-name t)
7918 "." (file-name-extension (buffer-file-name)))))
7919 (vhdl-visit-file
7920 file-name t
7924 (error "ERROR: Entity \"%s\" not found:\n --> see option `vhdl-entity-file-name'" entity-name)
8011 (setq end (point-marker))
8021 (setq end (point-marker))
8414 (defun vhdl-template-component-conf ()
8536 (vhdl-template-component-conf)
8741 (defun vhdl-template-file ()
8742 "Insert a file declaration."
8777 (vhdl-template-component-conf)
8793 (setq position (point-marker))
8934 (setq position (point-marker))
9124 (setq mid-pos (point-marker))
9134 (setq end-pos (point-marker))
9316 (setq final-pos (point-marker))
9608 (setq mid-pos (point-marker))
9619 (setq end-pos (point-marker))
9909 (defun vhdl-template-header (&optional file-title)
9910 "Insert a VHDL file header."
9912 (unless (equal vhdl-file-header "")
9916 (vhdl-insert-string-or-file vhdl-file-header)
9917 (setq pos (point-marker)))
9919 (point-min-marker) pos file-title))))
9922 "Insert a VHDL file footer."
9924 (unless (equal vhdl-file-footer "")
9928 (setq pos (point-marker))
9929 (vhdl-insert-string-or-file vhdl-file-footer)
9932 (vhdl-template-replace-header-keywords pos (point-max-marker)))))
9934 (defun vhdl-template-replace-header-keywords (beg end &optional file-title
9988 (when file-title
9990 (replace-match file-title t t))
10104 ; (setq position (point-marker))
10114 (let ((final-pos (point-marker)))
10137 (setq end (point-marker))
10159 (setq end (point-marker))
10172 (setq end (point-marker))
10499 (defun vhdl-insert-string-or-file (string)
10500 "Insert STRING or file contents if STRING is an existing file name."
10502 (let ((file-name
10505 (if (file-exists-p file-name)
10506 (forward-char (cadr (insert-file-contents file-name)))
10656 (defun vhdl-template-file-hook ()
10657 (vhdl-hooked-abbrev 'vhdl-template-file))
10788 (let ((start (point-marker))
10797 (vhdl-insert-string-or-file (nth 1 model))
10798 (setq end (point-marker))
10889 (funcall vhdl-file-name-case
10912 (let ((pos (point-marker)))
11572 arch-name config-name ent-file-name arch-file-name
11574 ;; open entity file
11576 (setq ent-file-name
11577 (concat (vhdl-replace-string vhdl-testbench-entity-file-name
11579 "." (file-name-extension (buffer-file-name))))
11580 (if (file-exists-p ent-file-name)
11582 (concat "File \"" ent-file-name "\" exists; overwrite? "))
11583 (progn (find-file ent-file-name)
11587 (setq ent-file-name nil)
11589 (find-file ent-file-name)))
11591 (null ent-file-name))
11621 ;; open architecture file
11625 (setq arch-file-name
11626 (concat (vhdl-replace-string vhdl-testbench-architecture-file-name
11628 "." (file-name-extension (buffer-file-name))))
11629 (when (and (file-exists-p arch-file-name)
11630 (not (y-or-n-p (concat "File \"" arch-file-name
11633 (find-file arch-file-name)
11666 (vhdl-insert-string-or-file vhdl-testbench-declarations))
11695 (vhdl-insert-string-or-file vhdl-testbench-statements))
11705 (and ent-file-name
11706 (format "\n File created: \"%s\"" ent-file-name))
11707 (and arch-file-name
11708 (format "\n File created: \"%s\"" arch-file-name)))))))
11782 (and (vhdl-parse-string "\\(constant\\|signal\\|variable\\|file\\|quantity\\|terminal\\)[ \t\n]*" t)
12095 (setq end (point-marker))
12261 "Get some file statistics."
12286 (buffer-file-name) no-stats no-code-lines no-lines)
12340 (defun vhdl-export-project (file-name)
12345 (cons "\\(.*\\) \\(.*\\)" (car vhdl-project-file-name))
12350 (list (read-file-name
12351 "Write project file: "
12352 (when (file-name-absolute-p name) "") nil nil name))))
12353 (setq file-name (abbreviate-file-name file-name))
12355 (unless (file-exists-p (file-name-directory file-name))
12356 (make-directory (file-name-directory file-name) t))
12357 (if (not (file-writable-p file-name))
12358 (error "ERROR: File not writable: \"%s\"" file-name)
12359 (set-buffer (find-file-noselect file-name t t))
12362 ";;; " (file-name-nondirectory file-name)
12363 " - project setup file for Emacs VHDL Mode " vhdl-version "\n\n"
12377 (defun vhdl-import-project (file-name &optional auto not-make-current)
12382 (cons "\\(.*\\) \\(.*\\)" (car vhdl-project-file-name))
12384 (list (read-file-name
12385 "Read project file: " (when (file-name-absolute-p name) "") nil t
12386 (file-name-directory name)))))
12387 (when (file-exists-p file-name)
12390 (load-file file-name)
12402 (format "ERROR: Invalid project setup file: \"%s\"" file-name))))))
12416 (let ((file-name-list vhdl-project-file-name)
12417 file-list list-length)
12418 (while file-name-list
12419 (setq file-list
12420 (append file-list
12421 (file-expand-wildcards
12424 (cons "\\(.*\\) \\(.*\\)" (car file-name-list))
12426 (setq list-length (or list-length (length file-list)))
12427 (setq file-name-list (cdr file-name-list)))
12428 (while file-list
12429 (vhdl-import-project (expand-file-name (car file-list)) t
12432 (setq file-list (cdr file-list)))))
12538 (vhdl-warning-when-idle "Install included `hideshow.el' patch first (see INSTALL file)")
13034 ;; (ent-key ent-name ent-file ent-line
13035 ;; (arch-key arch-name arch-file arch-line
13036 ;; (inst-key inst-name inst-file inst-line inst-comp-name inst-ent-key
13037 ;; inst-arch-key inst-conf-key inst-lib-key inst-path)
13045 ;; (conf-key conf-name conf-file conf-line ent-key arch-key
13047 ;; inst-conf-key inst-lib-key)
13054 ;; (pack-key pack-name pack-file pack-line
13055 ;; (comp-key comp-name comp-file comp-line)
13056 ;; (func-key func-name func-file func-line)
13058 ;; pack-body-file pack-body-line
13059 ;; (func-key func-name func-body-file func-body-line)
13067 (defvar vhdl-file-alist nil
13068 "Cache with design units in each file for each project/directory.")
13071 ;; (file-name (ent-list) (arch-list) (arch-ent-list) (conf-list)
13089 (defvar vhdl-modified-file-list nil
13135 "Scan contents of VHDL files in directory or file pattern NAME."
13137 ; (unless (file-directory-p (match-string 1 name))
13140 (file-pattern (match-string 2 name))
13141 (is-directory (= 0 (length file-pattern)))
13142 (file-list
13148 dir-name t (wildcard-to-regexp file-pattern)))))
13150 (file-exclude-regexp
13152 (limit-design-file-size (nth 0 vhdl-speedbar-scan-limit))
13153 (limit-hier-file-size (nth 0 (nth 1 vhdl-speedbar-scan-limit)))
13155 ent-alist conf-alist pack-alist ent-inst-list file-alist
13159 conf-alist (aget vhdl-config-alist key t)
13162 file-alist (aget vhdl-file-alist key t)))
13163 (when (and (not is-directory) (null file-list))
13164 (message "No such file: \"%s\"" name))
13165 (setq files-exist file-list)
13166 (when file-list
13167 (setq no-files (length file-list))
13171 (unless (equal file-exclude-regexp "")
13173 file-tmp-list)
13174 (while file-list
13175 (unless (string-match file-exclude-regexp (car file-list))
13176 (setq file-tmp-list (cons (car file-list) file-tmp-list)))
13177 (setq file-list (cdr file-list)))
13178 (setq file-list (nreverse file-tmp-list))))
13180 (while file-list
13185 (/ (* 100 (- no-files (length file-list))) no-files) "%"))
13186 (let ((file-name (abbreviate-file-name (car file-list)))
13187 ent-list arch-list arch-ent-list conf-list
13189 ;; scan file
13190 (vhdl-visit-file
13191 file-name nil
13195 (if (and limit-design-file-size
13196 (< limit-design-file-size (buffer-size)))
13197 (progn (message "WARNING: Scan limit (design units: file size) reached in file:\n \"%s\"" file-name)
13210 file-name (vhdl-current-line))
13213 (list ent-name file-name (vhdl-current-line)
13231 (nth 2 arch-entry) file-name (vhdl-current-line))
13235 (list arch-name file-name (vhdl-current-line) nil
13245 (let* ((conf-name (match-string-no-properties 1))
13246 (conf-key (downcase conf-name))
13247 (conf-entry (aget conf-alist conf-key t))
13251 (conf-line (vhdl-current-line))
13253 arch-key comp-conf-list inst-key-list
13255 inst-conf-key inst-lib-key)
13258 (if conf-entry
13261 conf-name ent-name (nth 1 conf-entry)
13262 (nth 2 conf-entry) file-name conf-line)
13263 (setq conf-list (cons conf-key conf-list))
13278 inst-conf-key (and (not (match-string 2))
13281 (setq comp-conf-list
13284 inst-arch-key inst-conf-key
13286 comp-conf-list))
13288 (aput 'conf-alist conf-key
13289 (list conf-name file-name conf-line ent-key
13290 arch-key comp-conf-list lib-alist)))))
13307 file-name (vhdl-current-line))
13316 file-name (vhdl-current-line))
13321 file-name (vhdl-current-line))
13335 file-name pack-line func-alist lib-alist)
13336 (list pack-name file-name pack-line
13341 (if (and limit-hier-file-size
13342 (< limit-hier-file-size (buffer-size)))
13343 (progn (message "WARNING: Scan limit (hierarchy: file size) reached in file:\n \"%s\"" file-name)
13391 (inst-conf-key
13402 (list (list inst-key inst-name file-name
13405 inst-conf-key inst-lib-key
13417 (inst-conf-key
13445 inst-conf-key inst-lib-key))
13459 (message "WARNING: Scan limit (hierarchy: instances per architecture) reached in file:\n \"%s\"" file-name)
13462 ;; remember design units for this file
13463 (aput 'file-alist file-name
13464 (list ent-list arch-list arch-ent-list conf-list
13467 (setq file-list (cdr file-list))))
13482 (setq tmp-list conf-alist)
13508 (setq conf-alist (vhdl-sort-alist conf-alist))
13518 (adelete 'vhdl-file-alist key))
13521 (aput 'vhdl-config-alist key conf-alist)
13524 (aput 'vhdl-file-alist key file-alist)
13543 (file-exclude-regexp
13551 (adelete 'vhdl-file-alist project)
13561 (if (file-name-absolute-p dir-name) "" default-dir)
13577 (unless (equal file-exclude-regexp "")
13580 (unless (string-match file-exclude-regexp (car dir-list))
13590 (setq dir-name (abbreviate-file-name
13591 (expand-file-name (car dir-list))))
13595 (add-to-list 'dir-list-tmp (file-name-directory dir-name))
13601 (defun vhdl-update-file-contents (file-name)
13603 (setq file-name (abbreviate-file-name file-name))
13604 (let* ((dir-name (file-name-directory file-name))
13612 (conf-alist (aget vhdl-config-alist (or project dir-name) t))
13616 (file-alist (aget vhdl-file-alist (or project dir-name) t))
13617 (file-entry (aget file-alist file-name t))
13618 (ent-list (nth 0 file-entry))
13619 (arch-list (nth 1 file-entry))
13620 (arch-ent-list (nth 2 file-entry))
13621 (conf-list (nth 3 file-entry))
13622 (pack-list (nth 4 file-entry))
13623 (pack-body-list (nth 5 file-entry))
13624 (inst-ent-list (nth 7 file-entry))
13627 ;; delete design units previously contained in this file:
13632 (when (equal file-name (nth 1 entry))
13644 (when (equal file-name (nth 1 (aget arch-alist key t)))
13654 (while conf-list
13655 (setq key (car conf-list))
13656 (when (equal file-name (nth 1 (aget conf-alist key t)))
13657 (adelete 'conf-alist key))
13658 (setq conf-list (cdr conf-list)))
13663 (when (equal file-name (nth 1 entry))
13675 (when (equal file-name (nth 6 entry))
13690 (vhdl-aput 'vhdl-config-alist cache-key conf-alist)
13693 ;; scan file
13694 (vhdl-scan-directory-contents file-name project t)
13704 (let ((file-list (reverse vhdl-modified-file-list))
13706 (when (and vhdl-speedbar-update-on-saving file-list)
13707 (while file-list
13709 (or (vhdl-update-file-contents (car file-list))
13711 (setq file-list (cdr file-list)))
13712 (setq vhdl-modified-file-list nil)
13717 ;; (inst-key inst-file-marker comp-ent-key comp-ent-file-marker
13718 ;; comp-arch-key comp-arch-file-marker comp-conf-key comp-conf-file-marker
13720 (defun vhdl-get-hierarchy (ent-alist conf-alist ent-key arch-key conf-key
13721 conf-inst-alist level indent
13729 inst-entry inst-ent-entry inst-arch-entry inst-conf-entry comp-entry
13731 inst-ent-key inst-arch-key inst-conf-key inst-lib-key)
13738 ; (unless (or (null conf-inst-alist) (assoc arch-key (nth 3 ent-entry)))
13739 ; (vhdl-warning-when-idle "Configuration for non-existing architecture used: \"%s\"" conf-key))
13745 inst-conf-key (nth 7 inst-entry))
13747 (setq tmp-list conf-inst-alist)
13754 (setq inst-conf-key (or (nth 4 (car tmp-list)) inst-conf-key))
13755 (setq inst-conf-entry (aget conf-alist inst-conf-key t))
13756 (when (and inst-conf-key (not inst-conf-entry))
13757 (vhdl-warning-when-idle "Configuration not found: \"%s\"" inst-conf-key))
13761 (nth 3 inst-conf-entry) ; from subconfiguration
13762 (nth 3 (aget conf-alist (nth 7 inst-entry) t))
13769 (nth 4 inst-conf-entry) ; from subconfiguration
13771 (nth 4 (aget conf-alist (nth 7 inst-entry)))
13788 (or (nth 0 inst-conf-entry) inst-conf-key)
13789 (cons (nth 1 inst-conf-entry) (nth 2 inst-conf-entry))
13793 ent-alist conf-alist
13794 inst-ent-key inst-arch-key inst-conf-key
13795 (nth 5 inst-conf-entry)
13840 ;; Caching in file
13843 "Save all updated hierarchy caches to file."
13860 "Save current hierarchy cache to file."
13865 (directory (abbreviate-file-name (vhdl-default-directory)))
13866 (file-name (vhdl-resolve-env-variable
13868 (cons "\\(.*\\) \\(.*\\)" vhdl-speedbar-cache-file-name)
13872 (file-dir-name (expand-file-name file-name directory))
13875 (unless (file-exists-p (file-name-directory file-dir-name))
13876 (make-directory (file-name-directory file-dir-name) t))
13877 (if (not (file-writable-p file-dir-name))
13879 (abbreviate-file-name file-dir-name)))
13881 (message "Saving cache: \"%s\"" file-dir-name)
13882 (set-buffer (find-file-noselect file-dir-name t t))
13885 ";;; " (file-name-nondirectory file-name)
13886 " - design hierarchy cache file for Emacs VHDL Mode "
13911 (insert ")\n\n;; design units per file cache\n"
13912 "(aput 'vhdl-file-alist " key " '")
13913 (print (aget vhdl-file-alist cache-key t) (current-buffer))
13932 "Load hierarchy cache information from file."
13936 (file-name (vhdl-resolve-env-variable
13938 (cons "\\(.*\\) \\(.*\\)" vhdl-speedbar-cache-file-name)
13942 (file-dir-name (expand-file-name file-name directory))
13946 (when (file-exists-p file-dir-name)
13948 (progn (load-file file-dir-name)
13955 (error (progn (vhdl-warning (format "ERROR: Corrupted cache file: \"%s\"" file-dir-name))
13962 (unless (or (assoc vhdl-project vhdl-file-alist)
13965 (let ((directory (abbreviate-file-name default-directory)))
13966 (unless (or (assoc directory vhdl-file-alist)
13983 ;; VHDL file extensions (extracted from `auto-mode-alist')
14107 ;; macros must be defined in the file they are used (copied from `speedbar.el')
14119 (setq directory (abbreviate-file-name (file-name-as-directory directory)))
14120 (setq speedbar-last-selected-file nil)
14127 (vhdl-speedbar-insert-dirs (speedbar-file-lists directory) depth)
14139 (setq speedbar-last-selected-file nil)
14179 (when (or rescan (and (not (assoc project vhdl-file-alist))
14197 (when (or rescan (and (not (assoc directory vhdl-file-alist))
14210 (defun vhdl-speedbar-insert-hierarchy (ent-alist conf-alist pack-alist
14213 (if (not (or ent-alist conf-alist pack-alist))
14215 (let (ent-entry conf-entry pack-entry)
14222 (nth 1 ent-entry) 'vhdl-speedbar-find-file
14231 (when conf-alist (vhdl-speedbar-make-title-line "Configurations:" depth))
14232 (while conf-alist
14233 (setq conf-entry (car conf-alist))
14235 'bracket ?+ 'vhdl-speedbar-expand-config (nth 0 conf-entry)
14236 (nth 1 conf-entry) 'vhdl-speedbar-find-file
14237 (cons (nth 2 conf-entry) (nth 3 conf-entry))
14239 (setq conf-alist (cdr conf-alist)))
14264 (abbreviate-file-name (speedbar-line-directory))))
14269 (abbreviate-file-name (match-string 1 path)))))
14279 (list (expand-file-name default-directory)))
14281 (when (speedbar-goto-this-file (car sf))
14353 (conf-alist (aget vhdl-config-alist key t))
14365 (while conf-alist
14366 (setq unit-alist (cons (list (caar conf-alist)) unit-alist))
14367 (setq conf-alist (cdr conf-alist)))
14428 (nth 1 arch-entry) 'vhdl-speedbar-find-file
14473 (conf-alist (aget vhdl-config-alist key t))
14475 ent-alist conf-alist (car token) (cdr token) nil nil
14531 (conf-alist (aget vhdl-config-alist key t))
14532 (conf-entry (aget conf-alist token))
14535 ent-alist conf-alist (nth 3 conf-entry)
14536 (nth 4 conf-entry) token (nth 5 conf-entry)
14538 (subpack-alist (nth 6 conf-entry))
14614 (nth 1 comp-entry) 'vhdl-speedbar-find-file
14705 "Highlight all design units that are contained in the current file.
14709 file-alist pos file-name)
14710 ;; get current file name
14714 (setq file-name (abbreviate-file-name (or (buffer-file-name) "")))
14716 (or always (not (equal file-name speedbar-last-selected-file))))
14719 (setq file-alist (append file-alist (aget vhdl-file-alist
14722 (setq file-alist (aget vhdl-file-alist
14723 (abbreviate-file-name default-directory) t)))
14730 (let* ((file-entry (aget file-alist speedbar-last-selected-file t)))
14732 "\\[.\\] " (nth 0 file-entry)
14733 speedbar-last-selected-file 'vhdl-speedbar-entity-face)
14735 "{.} " (nth 1 file-entry)
14736 speedbar-last-selected-file 'vhdl-speedbar-architecture-face)
14738 "\\[.\\] " (nth 3 file-entry)
14739 speedbar-last-selected-file 'vhdl-speedbar-configuration-face)
14741 "[]>] " (nth 4 file-entry)
14742 speedbar-last-selected-file 'vhdl-speedbar-package-face)
14745 speedbar-last-selected-file 'vhdl-speedbar-package-face)
14747 "> " (nth 6 file-entry)
14748 speedbar-last-selected-file 'vhdl-speedbar-instantiation-face))
14750 (let* ((file-entry (aget file-alist file-name t)))
14753 "\\[.\\] " (nth 0 file-entry)
14754 file-name 'vhdl-speedbar-entity-selected-face pos)
14756 "{.} " (nth 1 file-entry)
14757 file-name 'vhdl-speedbar-architecture-selected-face pos)
14759 "\\[.\\] " (nth 3 file-entry)
14760 file-name 'vhdl-speedbar-configuration-selected-face pos)
14762 "[]>] " (nth 4 file-entry)
14763 file-name 'vhdl-speedbar-package-selected-face pos)
14766 file-name 'vhdl-speedbar-package-selected-face pos)
14768 "> " (nth 6 file-entry)
14769 file-name 'vhdl-speedbar-instantiation-selected-face pos))))))
14775 (setq speedbar-last-selected-file file-name))
14779 (defun vhdl-speedbar-update-units (text unit-list file-name face
14786 (when (equal file-name (car (get-text-property
14788 (setq pos (or pos (point-marker)))
14793 (defun vhdl-speedbar-make-inst-line (inst-name inst-file-marker
14794 ent-name ent-file-marker
14795 arch-name arch-file-marker
14796 conf-name conf-file-marker
14821 'vhdl-speedbar-find-file inst-file-marker))
14828 'vhdl-speedbar-find-file ent-file-marker)
14835 'vhdl-speedbar-find-file arch-file-marker)
14837 (when conf-name
14840 (insert conf-name)
14843 'vhdl-speedbar-find-file conf-file-marker)
14853 (defun vhdl-speedbar-make-pack-line (pack-key pack-name pack-file-marker
14854 body-file-marker depth)
14874 'vhdl-speedbar-find-file pack-file-marker)
14875 (unless (car pack-file-marker)
14877 (when (car body-file-marker)
14883 'vhdl-speedbar-find-file body-file-marker)
14888 (defun vhdl-speedbar-make-subpack-line (pack-name lib-name pack-file-marker
14889 pack-body-file-marker depth)
14907 'vhdl-speedbar-find-file pack-file-marker)
14908 (when (car pack-body-file-marker)
14914 'vhdl-speedbar-find-file pack-body-file-marker)
14923 (defun vhdl-speedbar-make-subprogram-line (func-name func-file-marker
14924 func-body-file-marker
14943 'vhdl-speedbar-find-file func-file-marker)
14944 (when (car func-body-file-marker)
14950 'vhdl-speedbar-find-file func-body-file-marker)
14983 (cons (expand-file-name
14992 (speedbar-file-lists
14997 (abbreviate-file-name
15005 (td (expand-file-name
15059 ;; file name
15060 (file-relative-name
15091 (abbreviate-file-name
15092 (file-name-as-directory (speedbar-line-directory indent)))))
15102 (defun vhdl-add-modified-file ()
15103 "Add file to `vhdl-modified-file-list'."
15104 (when vhdl-file-alist
15105 (add-to-list 'vhdl-modified-file-list (buffer-file-name)))
15115 (if (file-directory-p (match-string 2 dir))
15137 (when (file-directory-p (car all-list))
15143 (when (file-directory-p (match-string 2 dir))
15153 (speedbar-goto-this-file directory))
15160 (defun vhdl-speedbar-find-file (text token indent)
15161 "When user clicks on TEXT, load file with name and position in TOKEN.
15162 Jump to the design unit if `vhdl-speedbar-jump-to-unit' is t or if the file
15166 (let ((buffer (get-file-buffer (car token))))
15167 (speedbar-find-file-in-frame (car token))
15186 (vhdl-visit-file (car token) t
15242 (directory (file-name-as-directory
15243 (or (speedbar-line-file) (speedbar-line-directory)))))
15254 (default-directory (file-name-as-directory
15255 (or (speedbar-line-file) (speedbar-line-directory)))))
15406 ent-file-name arch-file-name ent-buffer arch-buffer project)
15408 ;; open entity file
15410 (setq ent-file-name
15411 (concat (vhdl-replace-string vhdl-entity-file-name ent-name t)
15412 "." (file-name-extension (buffer-file-name))))
15413 (when (and (file-exists-p ent-file-name)
15414 (not (y-or-n-p (concat "File \"" ent-file-name
15417 (find-file ent-file-name)
15446 ;; open architecture file
15450 (setq arch-file-name
15451 (concat (vhdl-replace-string vhdl-architecture-file-name
15453 "." (file-name-extension (buffer-file-name))))
15454 (when (and (file-exists-p arch-file-name)
15455 (not (y-or-n-p (concat "File \"" arch-file-name
15458 (find-file arch-file-name)
15490 (if (and vhdl-compose-include-header (not (equal vhdl-file-footer "")))
15499 (and ent-file-name
15500 (format "\n File created: \"%s\"" ent-file-name))
15501 (and arch-file-name
15502 (format "\n File created: \"%s\"" arch-file-name))))))
15516 (ent-file-name
15517 (concat (vhdl-replace-string vhdl-entity-file-name ent-name t)
15518 "." (file-name-extension (buffer-file-name))))
15541 ;; open entity file
15542 (when (file-exists-p ent-file-name)
15543 (find-file ent-file-name))
15568 (ent-file-name
15569 (concat (vhdl-replace-string vhdl-entity-file-name ent-name t)
15570 "." (file-name-extension (buffer-file-name))))
15571 (arch-decl-pos (point-marker))
15575 (pack-file-name
15576 (concat (vhdl-replace-string vhdl-package-file-name pack-name t)
15577 "." (file-name-extension (buffer-file-name))))
15578 inst-name comp-name comp-ent-name comp-ent-file-name has-generic
15603 (vhdl-visit-file
15604 (when vhdl-use-components-package pack-file-name) t
15611 (setq comp-ent-file-name
15612 (concat (vhdl-replace-string vhdl-entity-file-name comp-ent-name t)
15613 "." (file-name-extension (buffer-file-name))))
15614 (vhdl-visit-file
15615 comp-ent-file-name t
15695 (vhdl-goto-marker arch-decl-pos)
15698 (setq signal-pos (point-marker))
15704 ;; open entity file
15705 (when (file-exists-p ent-file-name)
15706 (find-file ent-file-name))
15718 (setq generic-pos (point-marker))
15726 (setq generic-beg-pos (point-marker) generic-pos (point-marker)
15727 generic-inst-pos (point-marker) generic-end-pos (point-marker))
15736 (setq port-in-pos (point-marker))
15744 (setq port-beg-pos (point-marker) port-in-pos (point-marker)
15745 port-out-pos (point-marker) port-inst-pos (point-marker)
15746 port-end-pos (point-marker))
15763 (vhdl-goto-marker generic-pos)
15765 (vhdl-max-marker
15768 (setq generic-pos (point-marker))
15771 (vhdl-goto-marker
15772 (vhdl-max-marker generic-inst-pos generic-pos))
15775 (setq generic-inst-pos (point-marker))
15779 (vhdl-goto-marker (vhdl-max-marker constant-temp-pos generic-pos))
15782 (vhdl-goto-marker generic-inst-pos))
15790 (vhdl-goto-marker port-in-pos)
15792 (vhdl-max-marker
15794 (setq port-in-pos (point-marker))
15797 (vhdl-goto-marker (vhdl-max-marker port-out-pos port-in-pos))
15799 (vhdl-max-marker
15801 (setq port-out-pos (point-marker))
15805 (vhdl-goto-marker
15806 (vhdl-max-marker
15808 (vhdl-max-marker port-out-pos port-in-pos)))
15810 (setq port-inst-pos (point-marker))
15813 (vhdl-goto-marker signal-pos)
15815 (setq signal-pos (point-marker))
15819 (vhdl-goto-marker
15820 (vhdl-max-marker port-temp-pos
15821 (vhdl-max-marker port-in-pos port-out-pos)))
15824 (vhdl-goto-marker port-inst-pos))
15826 (vhdl-goto-marker signal-temp-pos)
15829 (vhdl-goto-marker signal-pos))
15832 (vhdl-goto-marker generic-end-pos) (backward-char)
15837 (vhdl-goto-marker port-end-pos) (backward-char)
15844 (vhdl-goto-marker generic-beg-pos)
15847 (vhdl-goto-marker signal-beg-pos)
15849 (switch-to-buffer (marker-buffer signal-beg-pos))
15860 (setq pos (point-marker))
15871 (setq pos (point-marker))
15892 (pack-file-name
15893 (concat (vhdl-replace-string vhdl-package-file-name pack-name t)
15894 "." (file-name-extension (buffer-file-name))))
15900 ;; open package file
15901 (when (and (file-exists-p pack-file-name)
15902 (not (y-or-n-p (concat "File \"" pack-file-name
15905 (find-file pack-file-name)
15916 (insert "\n") (setq clause-pos (point-marker))
15925 (setq component-pos (point-marker))
15930 (if (and vhdl-compose-include-header (not (equal vhdl-file-footer "")))
15935 (vhdl-visit-file (nth 2 (car ent-alist)) nil
15942 (setq component-pos (point-marker))
15945 (setq clause-pos (point-marker))
15950 pack-name pack-file-name)))
15953 &optional insert-conf)
15966 (setq insert-conf t)
15990 (setq conf-key (nth 7 inst-entry))
15991 (setq tmp-alist conf-alist)
15993 (while (and tmp-alist (null conf-key))
15995 (setq conf-key (nth 0 (car tmp-alist))))
15997 (setq conf-entry (aget conf-alist conf-key t))
16000 (if (and vhdl-compose-configuration-use-subconfiguration conf-entry)
16004 (insert (vhdl-work-library) "." (nth 0 conf-entry))
16043 (if insert-conf
16053 (conf-alist (aget vhdl-config-alist
16056 inst-alist conf-name conf-file-name pos)
16066 (setq conf-name (vhdl-replace-string
16072 (message "Generating configuration \"%s\"..." conf-name)
16073 (if vhdl-compose-configuration-create-file
16074 ;; open configuration file
16076 (setq conf-file-name
16077 (concat (vhdl-replace-string vhdl-configuration-file-name
16078 conf-name t)
16079 "." (file-name-extension (buffer-file-name))))
16080 (when (and (file-exists-p conf-file-name)
16081 (not (y-or-n-p (concat "File \"" conf-file-name
16084 (find-file conf-file-name)
16105 (vhdl-insert-keyword "CONFIGURATION ") (insert conf-name)
16111 (vhdl-insert-keyword "END ") (insert conf-name ";")
16112 (when conf-file-name
16115 (if (and vhdl-compose-include-header (not (equal vhdl-file-footer "")))
16120 (concat (format "Generating configuration \"%s\"...done" conf-name)
16121 (and conf-file-name
16122 (format "\n File created: \"%s\"" conf-file-name))))))
16149 (file-name-as-directory
16150 (if (file-name-absolute-p directory)
16152 (expand-file-name directory (vhdl-default-directory))))))
16196 ;; `compilation-file-regexp-alist'
16199 ;; matches vhdl-mode file name output
16207 (setq compilation-file-regexp-alist
16208 (append compilation-file-regexp-alist (nreverse regexp-alist))))))
16210 (defvar vhdl-compile-file-name nil
16211 "Name of file to be compiled.")
16213 (defun vhdl-compile-print-file-name ()
16214 "Function called within `compile' to print out file name for compilers that
16215 do not print any file names."
16216 (insert "Compiling \"" vhdl-compile-file-name "\"\n"))
16218 (defun vhdl-get-compile-options (project compiler file-name
16219 &optional file-options-only)
16220 "Get compiler options. Returning nil means do not compile this file."
16224 (exception-list (and file-name (nth 2 project-entry)))
16227 file-options)
16229 (not (string-match (caar exception-list) file-name)))
16233 (if (and file-options-only (not exception-list))
16235 (setq file-options (cdar exception-list))
16246 ;; insert project-specific options in file-specific options
16247 (when file-options
16248 (setq file-options
16250 (cons "\\(.*\\)\n\\(.*\\)\n\\(.*\\)" file-options)
16254 (or file-options project-options compiler-options)))))
16284 (file-name (buffer-file-name))
16285 (options (vhdl-get-compile-options project compiler file-name))
16288 (unless (file-directory-p default-directory)
16290 ;; put file name into quotes if it contains spaces
16291 (when (string-match " " file-name)
16292 (setq file-name (concat "\"" file-name "\"")))
16293 ;; print out file name if compiler does not
16294 (setq vhdl-compile-file-name (buffer-file-name))
16297 (setq compilation-process-setup-function 'vhdl-compile-print-file-name))
16301 (compile (concat command " " options " " file-name)))
16302 (vhdl-warning "Your project settings tell me not to compile this file"))))
16322 (unless (file-directory-p default-directory)
16358 (unless (or (assoc vhdl-project vhdl-file-alist)
16361 (let ((directory (abbreviate-file-name default-directory)))
16362 (unless (or (assoc directory vhdl-file-alist)
16365 (let* ((directory (abbreviate-file-name (vhdl-default-directory)))
16368 (conf-alist (aget vhdl-config-alist (or project directory) t))
16373 (conf-regexp (cons "\\(.*\\)" (nth 2 regexp-list)))
16378 (compile-directory (expand-file-name (vhdl-compile-directory)
16384 ent-key ent-file-name arch-key arch-file-name ent-arch-key
16385 conf-key conf-file-name pack-key pack-file-name
16386 ent-entry arch-entry conf-entry pack-entry inst-entry
16387 pack-body-key pack-body-file-name inst-ent-key inst-conf-key
16390 (unless (file-exists-p compile-directory)
16402 (setq ent-file-name (file-relative-name
16406 rule (aget rule-alist ent-file-name)
16421 (aput 'rule-alist ent-file-name (list target-list depend-list))
16427 arch-file-name (file-relative-name (nth 2 arch-entry)
16431 rule (aget rule-alist arch-file-name)
16459 (aput 'rule-alist arch-file-name (list target-list depend-list))
16467 (setq tmp-list conf-alist)
16468 (while conf-alist
16469 (setq conf-entry (car conf-alist)
16470 conf-key (nth 0 conf-entry)
16471 conf-file-name (file-relative-name
16472 (nth 2 conf-entry) compile-directory)
16473 ent-key (nth 4 conf-entry)
16474 arch-key (nth 5 conf-entry)
16475 inst-alist (nth 6 conf-entry)
16476 lib-alist (nth 7 conf-entry)
16477 rule (aget rule-alist conf-file-name)
16482 conf-regexp (funcall adjust-case conf-key)))
16483 (setq unit-list (cons (cons conf-key tmp-key) unit-list))
16485 (setq target-list (cons conf-key target-list))
16497 inst-conf-key (nth 4 inst-entry))
16505 (when inst-conf-key
16506 (setq depend-list (cons inst-conf-key depend-list)
16507 subcomp-list (cons inst-conf-key subcomp-list))))
16510 (aput 'rule-alist conf-file-name (list target-list depend-list))
16511 (setq prim-list (cons (list conf-key nil (append subcomp-list pack-list))
16513 (setq conf-alist (cdr conf-alist)))
16514 (setq conf-alist tmp-list)
16522 (setq pack-file-name (file-relative-name (nth 2 pack-entry)
16525 rule (aget rule-alist pack-file-name)
16537 (aput 'rule-alist pack-file-name (list target-list depend-list))
16541 pack-body-file-name (file-relative-name (nth 7 pack-entry)
16543 rule (aget rule-alist pack-body-file-name)
16559 (aput 'rule-alist pack-body-file-name
16576 (makefile-path-name (expand-file-name
16593 (set-buffer (find-file-noselect makefile-path-name t t))
16596 "### " (file-name-nondirectory makefile-name)
16612 (directory-file-name
16613 (if (file-name-absolute-p library-directory)
16615 (file-relative-name
16616 (expand-file-name library-directory directory)
16663 (nth 0 (aget conf-alist unit-key t))
16681 ;; insert rule for each library unit file
16685 ;; get compiler options for this file
16688 ;; insert rule if file is supposed to be compiled
16698 ;; insert file name as first dependency
16723 ;; save and close file
16724 (if (file-writable-p makefile-path-name)
16728 (add-to-history 'file-name-history makefile-path-name))
16731 (abbreviate-file-name makefile-path-name)))
16764 'vhdl-project-file-name
16781 'vhdl-entity-file-name
16782 'vhdl-architecture-file-name
16783 'vhdl-configuration-file-name
16784 'vhdl-package-file-name
16785 'vhdl-file-name-case
16794 'vhdl-file-header
16795 'vhdl-file-footer
16826 'vhdl-testbench-entity-file-name
16827 'vhdl-testbench-architecture-file-name
16829 'vhdl-compose-configuration-create-file
16861 'vhdl-speedbar-cache-file-name
16863 'vhdl-source-file-menu
16912 `vhdl-configuration-file-name': (new)
16913 Specify how the configuration file name is obtained.
16916 `vhdl-compose-configuration-create-file': (new)
16917 Specify whether a new file should be created for a configuration.