;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\"\210\307\310\311\312!\"\210\307\313\314\312!\"\210\307\315\313\"\210\316\315\317\320#\210\321\312\322\313#\323\312\324\325\326$\207" [require ede/proj ede/pmake ede/pconf autoload semantic-ede-proj-target-grammar "semantic/ede-grammar" defalias ede-proj-target-elisp-p eieio-make-class-predicate ede-proj-target-elisp ede-proj-target-elisp--eieio-childp eieio-make-child-predicate ede-proj-target-elisp-child-p make-obsolete "use (cl-typep ... 'ede-proj-target-elisp) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ede-proj-target-makefile) ((menu :initform nil) (keybindings :initform nil) (phony :initform t) (sourcetype :initform '(ede-source-emacs)) (availablecompilers :initform '(ede-emacs-compiler)) (aux-packages :initarg :aux-packages :initform nil :type list :custom (repeat string) :documentation "Additional packages needed.\nThere should only be one toplevel package per auxiliary tool needed.\nThese packages location is found, and added to the compile time\nload path.") (pre-load-packages :initarg :pre-load-packages :initform nil :type list :custom (repeat string) :documentation "Additional packages to pre-load.\nEach package name will be loaded with `require'.\nEach package's directory should also appear in :aux-packages via a package name.")) (:documentation "This target consists of a group of Lisp files.\nA Lisp target may be one general program with many separate Lisp files in it.")] 6)#@78 Create a new object of class type `ede-proj-target-elisp'.

(fn &rest SLOTS)
(defalias 'ede-proj-target-elisp #[128 "\300\301\302#\207" [apply make-instance ede-proj-target-elisp] 5 (#$ . 1597)])
(byte-code "\300\301\302\303#\300\207" [function-put ede-proj-target-elisp compiler-macro ede-proj-target-elisp--anon-cmacro] 4)#@26 

(fn WHOLE &rest SLOTS)
(defalias 'ede-proj-target-elisp--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 1928)])
(byte-code "\300\301\302\303\304\305%\210\300\306\304\307\304\310%\207" [cl-generic-define-method ede-proj-makefile-insert-rules (:after) ((this ede-proj-target-elisp)) nil #[257 "\300\301\"\211\203 \302\303\300\304\"\305\306\307##c\210\210\310c\207" [eieio-oref pre-load-packages format "%s: PRELOADS=%s\n" name mapconcat identity " " "\n"] 9 "Insert rules needed by THIS target.\nThis inserts the PRELOADS target-local variable.\n\n(fn THIS)"] ede-proj-makefile-dependencies ((this ede-proj-target-elisp)) #[257 "\300\301\302!\"\207" [format "$(addsuffix c, $(%s))" ede-proj-makefile-sourcevar] 5 "Return a string representing the dependencies for THIS.\nSome compilers only use the first element in the dependencies, others\nhave a list of intermediates (object files), and others don't care.\nThis allows customization of how these elements appear.\nFor Emacs Lisp, return addsuffix command on source files.\n\n(fn THIS)"]] 6)#@36 Emacs Lisp source code definition.
(defvar ede-source-emacs (ede-sourcecode :name "Emacs Lisp" :sourcepattern "\\.el$" :garbagepattern '("*.elc")) (#$ . 3115))#@30 Compile Emacs Lisp programs.
(defvar ede-emacs-compiler (byte-code "\300\301\302\303\304\305\306\307\310\311\312\305\313&C\314\315\316\317\320\321&\f\207" [ede-compiler :name "emacs" :variables (("EMACS" . "emacs") ("EMACSFLAGS" . "-batch --no-site-file --eval '(setq debug-on-error t)'") ("require" . "$(foreach r,$(1),(require (quote $(r))))")) :rules ede-makefile-rule :target "%.elc" :dependencies "%.el" ("$(EMACS) $(EMACSFLAGS) $(addprefix -L ,$(LOADPATH)) --eval '(progn $(call require, $(PRELOADS)))' -f batch-byte-compile $^") :autoconf ("AM_PATH_LISPDIR") :sourcetype (ede-source-emacs) :objectextention ".elc"] 13) (#$ . 3280))#@42 Compile Emacs Lisp programs with XEmacs.
(defvar ede-xemacs-compiler (clone ede-emacs-compiler :name "xemacs" :variables '(("EMACS" . "xemacs"))) (#$ . 3925))
(byte-code "\300\301\302\303#\210\304\305\306\307\310\311%\207" [make-obsolete-variable ede-xemacs-compiler ede-emacs-compiler "28.1" cl-generic-define-method ede-buffer-mine nil ((this ede-proj-target-elisp) buffer) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[771 "\300\301\302!\"\203 \303\302!!\304P\211\305\306\"\235\207 \207" [string-match "\\.elc$" buffer-file-name file-name-sans-extension ".el" eieio-oref auxsource] 8 "\n\n(fn CL--CNM THIS BUFFER)"]] 6 "Return t if object THIS lays claim to the file in BUFFER.\nLays claim to all .elc files that match .el files in this target.\n\n(fn THIS BUFFER)"]] 5 "\n\n(fn CL--NM)"]] 6)#@68 Convert a list of PACKAGES, to a list of load path.

(fn PACKAGES)
(defalias 'ede-proj-elisp-packages-to-loadpath #[257 "\300\211\2039 \301@!\211\262\204 \302\303@\"\210\304!\305!\300\306\307\"\203' \262\211\206, B\262A\262\266\202 \207" [nil locate-library error "Cannot find package %s" file-name-directory file-relative-name string-match "^\\.\\./\\.\\./\\.\\./\\.\\./\\.\\."] 9 (#$ . 4909)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\307\310%\210\300\311\302\312\302\313%\207" [cl-generic-define-method project-compile-target nil ((obj ede-proj-target-elisp)) #[257 "\300!\301\302\"\303C\303C\304\305\306$\301\307\"\"\210\310\311\312!\"\210\242\242B\207" [ede-target-parent eieio-oref directory 0 mapc make-closure #[257 "\303\302\"\304\305\306#\307=\203 \301\211\242T\240\207\300\211\242T\240\207" [V0 V1 V2 expand-file-name byte-recompile-file nil 0 t] 6 "\n\n(fn SRC)"] source message "All Emacs Lisp sources are up to date in %s" eieio-object-name] 11 "Compile all sources in a Lisp target OBJ.\nBonus: Return a cons cell: (COMPILED . UPTODATE).\n\n(fn OBJ)"] ede-update-version-in-source ((this ede-proj-target-elisp) version) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[771 "\301\302\"\205F \303\302\"\205F \303\302\"\211\203B r\304\305@\"!q\210eb\210\306\307\310\311\306#\203: \312\224\312\225|\210\312\224b\210c\210*\211A\262\202  \262\207" [case-fold-search slot-boundp versionsource eieio-oref find-file-noselect ede-expand-filename t re-search-forward "-version\\s-+\"\\([^\"]+\\)\"" nil 1] 8 "\n\n(fn CL--CNM THIS VERSION)"]] 6 "In a Lisp file, updated a version string for THIS to VERSION.\nThere are standards in Elisp files specifying how the version string\nis found, such as a `-version' variable, or the standard header.\n\n(fn THIS VERSION)"]] 5 "\n\n(fn CL--NM)"] ede-proj-makefile-sourcevar ((this ede-proj-target-elisp)) #[257 "\300 \203 \301\207\211\302\303\"\304\305\"\203 \306\307\310\311$\262\202\f \262\312P\207" [ede-proj-automake-p ("lisp_LISP" . share) eieio-oref name string-match "\\." replace-match "_" nil t "_LISP"] 8 "Return the variable name for THIS's sources.\n\n(fn THIS)"]] 6)#@77 Insert a sequence of ITEMS into the Makefile LOADPATH variable.

(fn ITEMS)
(defalias 'ede-proj-makefile-insert-loadpath-items #[257 "\211\205q \300\212db\210\301\302\303\300#)\203: \304\225b\210\305 \210i\306W\2031 h\307U\2044 h\310U\2044 \311c\210\2024 \312c\210\303\262\202? \313\314\261\210\212\301\315!)\203e \212\301\316\317@!\320Q\300#)\204^ \311@\261\210A\262\202D \210\211\203m \321c\210db\262\207" [t re-search-backward "^LOADPATH\\s-*=" nil 0 ede-pmake-end-of-variable 40 61 32 " " "\\\n   " "LOADPATH" "=" "\\s-*=" "\\s-" regexp-quote "[ \n	\\]" "\n"] 7 (#$ . 7283)])
(cl-generic-define-method 'ede-proj-makefile-insert-variables '(:after) '((this ede-proj-target-elisp)) nil #[257 "\300\301\"\205 \302\300\301\"!\303!\207" [eieio-oref aux-packages ede-proj-elisp-packages-to-loadpath ede-proj-makefile-insert-loadpath-items] 5 "Insert variables needed by target THIS.\n\n(fn THIS)"])#@67 Add path PATH into the file if it isn't already there.

(fn PATH)
(defalias 'ede-proj-elisp-add-path #[257 "eb\210\300\301\302!P\303\304#?\205% \300\305\303\304#\203\" \303\210\306\307\310\261\207\311\312!\207" [re-search-forward "(cons \\\"" regexp-quote nil t "(cons nil" "\n" "   echo \"(setq load-path (cons \\\"" "\\\" load-path))\" >> script" error "Don't know how to update load path"] 5 (#$ . 8199)])
(byte-code "\300\301\302\303\304\305%\210\300\306\302\307\302\310%\210\311\312\313\314!\"\210\311\315\316\314!\"\210\311\317\315\"\210\320\317\321\322#\210\323\314\324\315#\325\314\326\327\330$\207" [cl-generic-define-method ede-proj-tweak-autoconf nil ((this ede-proj-target-elisp)) curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[514 " \210\301\302\303#\304\211\203 \305!\204 \306\307!\202\\ \212\310!\2035 \311\211\312P\"\210\313\312P\"\210\314\312P!\210\315\316\"q\210\317\320!\210\321\322\323\"!\211\203U \317@!\210\211A\262\202E \210\324 \210\325 ))\207" [enable-local-variables ede-expand-filename "elisp-comp" newfile nil file-exists-p message "No elisp-comp file.  There may be compile errors?  Rerun a second time." file-symlink-p rename-file ".tmp" copy-file delete-file find-file-noselect t ede-proj-elisp-add-path ".." ede-proj-elisp-packages-to-loadpath eieio-oref aux-packages save-buffer kill-buffer] 7 "\n\n(fn CL--CNM THIS)"]] 6 "Tweak the configure file (current buffer) to accommodate THIS.\n\n(fn THIS)"]] 5 "\n\n(fn CL--NM)"] ede-proj-flush-autoconf ((this ede-proj-target-elisp)) #[257 "\301\302\303#\304\211\2058 \305!\2058 r\306\307\"q\210eb\210\310\311\304\307#\2057 \312\313!\211\314\230\2043 \315 \315\316!|\210\210\202 ))\207" [enable-local-variables ede-expand-filename "elisp-comp" newfile nil file-exists-p find-file-noselect t re-search-forward "(cons \\([^ ]+\\) load-path)" match-string 1 "nil" line-beginning-position 2] 6 "Flush the configure file (current buffer) to accommodate THIS.\n\n(fn THIS)"] defalias ede-proj-target-elisp-autoloads-p eieio-make-class-predicate ede-proj-target-elisp-autoloads ede-proj-target-elisp-autoloads--eieio-childp eieio-make-child-predicate ede-proj-target-elisp-autoloads-child-p make-obsolete "use (cl-typep ... 'ede-proj-target-elisp-autoloads) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ede-proj-target-elisp) ((availablecompilers :initform '(ede-emacs-cedet-autogen-compiler)) (phony :initform t) (rules :initform nil) (autoload-file :initarg :autoload-file :initform "loaddefs.el" :type string :custom string :documentation "The file that autoload definitions are placed in.\nThere should be one load defs file for a given package.  The load defs are created\nfor all Emacs Lisp sources that exist in the directory of the created target.") (autoload-dirs :initarg :autoload-dirs :initform nil :type list :custom (repeat string) :documentation "The directories to scan for autoload definitions.\nIf nil defaults to the current directory.")) (:documentation "Target that builds an autoload file.\nFiles do not need to be added to this target.")] 6)#@88 Create a new object of class type `ede-proj-target-elisp-autoloads'.

(fn &rest SLOTS)
(defalias 'ede-proj-target-elisp-autoloads #[128 "\300\301\302#\207" [apply make-instance ede-proj-target-elisp-autoloads] 5 (#$ . 11476)])
(byte-code "\300\301\302\303#\300\207" [function-put ede-proj-target-elisp-autoloads compiler-macro ede-proj-target-elisp-autoloads--anon-cmacro] 4)#@26 

(fn WHOLE &rest SLOTS)
(defalias 'ede-proj-target-elisp-autoloads--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 11858)])
(cl-generic-define-method 'ede-buffer-mine nil '((this ede-proj-target-elisp-autoloads) buffer) 'curried #[257 "\300!\210\301\302\303\"\207" [cl--generic-isnot-nnm-p nil make-closure #[128 "\301\302\300#\303\304#\207" [V0 make-closure #[128 "\302\301\206 \300\"\207" [V0 V1 apply] 4 "\n\n(fn &rest ARGS)"] apply #[771 "\300\301\302\303\"!\304P\305!\"\203 \306\207 \207" [string-match regexp-quote eieio-oref autoload-file "$" buffer-file-name t] 8 "\n\n(fn CL--CNM THIS BUFFER)"]] 6 "Return t if object THIS lays claim to the file in BUFFER.\nLays claim to all .elc files that match .el files in this target.\n\n(fn THIS BUFFER)"]] 5 "\n\n(fn CL--NM)"])#@26 Build an autoloads file.
(defvar ede-emacs-cedet-autogen-compiler (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\307\315&C\316\317&\n\207" [ede-compiler :name "emacs" :variables (("EMACS" . "emacs") ("EMACSFLAGS" . "-batch --no-site-file --eval '(setq debug-on-error t)'") ("require" . "$(foreach r,$(1),(require (quote $(r))))")) :commands ("$(EMACS) $(EMACSFLAGS) $(addprefix -L ,$(LOADPATH)) -f loaddefs-generate-batch $(abspath $(LOADDEFS)) $(abspath $(LOADDIRS))") :rules ede-makefile-rule :target "clean-autoloads" :phony t ("rm -f $(LOADDEFS)") :sourcetype (ede-source-emacs)] 15) (#$ . 12785))
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\210\300\316\317\320\302\321%\210\300\322\302\323\302\324%\210\300\325\302\326\302\327%\210\300\330\302\331\302\332%\210\300\333\302\334\302\335%\210\300\336\302\337\302\340%\210\300\341\302\342\302\343%\210\344\345!\207" [cl-generic-define-method ede-proj-compilers nil ((obj ede-proj-target-elisp-autoloads)) #[257 "\300\301\"\211\203 \211<\203 \302\303\"\207\211JC\207\302\303\300\304\"\"\211@C\207" [eieio-oref compiler mapcar symbol-value availablecompilers] 7 "List of compilers being used by OBJ.\nIf the `compiler' slot is empty, get the car of the compilers list.\n\n(fn OBJ)"] ede-proj-makefile-insert-source-variables ((_this ede-proj-target-elisp-autoloads) &optional _moresource) #[513 "\300\207" [nil] 3 "Insert the source variables needed by THIS.\nOptional argument MORESOURCE is a list of additional sources to add to the\nsources variable.\n\n(fn THIS &optional MORESOURCE)"] ede-proj-makefile-sourcevar ((_this ede-proj-target-elisp-autoloads)) #[257 "\300\207" [nil] 2 "Return the variable name for THIS's sources.\n\n(fn THIS)"] ede-proj-makefile-dependencies ((_this ede-proj-target-elisp-autoloads)) #[257 "\300\207" [""] 2 "Return a string representing the dependencies for THIS.\nAlways return an empty string for an autoloads generator.\n\n(fn THIS)"] ede-proj-makefile-insert-variables (:after) ((this ede-proj-target-elisp-autoloads)) #[257 "\300\212db\210\301\302\303\300#)\2036 \304\225b\210\305 \210i\306W\203- h\307U\2040 h\310U\2040 \311c\210\2020 \312c\210\303\262\202; \313\314\261\210\315\316\"c\210\211\203H \317c\210db\266\300\212db\210\301\320\303\300#)\203\202 \304\225b\210\305 \210i\306W\203y h\307U\204| h\310U\204| \311c\210\202| \312c\210\303\262\202\207 \321\314\261\210\322\323\315\324\"\206\221 \325\311#c\210\211\203\234 \317c\210db\207" [t re-search-backward "^LOADDEFS\\s-*=" nil 0 ede-pmake-end-of-variable 40 61 32 " " "\\\n   " "LOADDEFS" "=" eieio-oref autoload-file "\n" "^LOADDIRS\\s-*=" "LOADDIRS" mapconcat identity autoload-dirs (".")] 7 "Insert variables needed by target THIS.\n\n(fn THIS)"] project-compile-target ((obj ede-proj-target-elisp-autoloads)) #[257 "\301\302!\210\303\304\"\305\306\307\310\"\307\311\"#)\207" [default-directory require cedet-autogen ede-expand-filename "." apply cedet-update-autoloads eieio-oref autoload-file autoload-dirs] 7 "Create or update the autoload target.\n\n(fn OBJ)"] ede-update-version-in-source ((_this ede-proj-target-elisp-autoloads) _version) #[514 "\300\207" [nil] 3 "In a Lisp file, updated a version string for THIS to VERSION.\nThere are standards in Elisp files specifying how the version string\nis found, such as a `-version' variable, or the standard header.\n\n(fn THIS VERSION)"] ede-proj-makefile-insert-dist-dependencies ((this ede-proj-target-elisp-autoloads)) #[257 "\300\301!\261\207" [" " ede-proj-makefile-target-name] 4 "Insert any symbols that the DIST rule should depend on.\nEmacs Lisp autoload files ship the generated .el files.\nArgument THIS is the target which needs to insert an info file.\n\n(fn THIS)"] ede-proj-makefile-insert-dist-filepatterns ((this ede-proj-target-elisp-autoloads)) #[257 "\300\301\302\"\261\207" [" " eieio-oref autoload-file] 5 "Insert any symbols that the DIST rule should distribute.\nEmacs Lisp autoload files ship the generated .el files.\nArgument THIS is the target which needs to insert an info file.\n\n(fn THIS)"] ede-proj-tweak-autoconf ((_this ede-proj-target-elisp-autoloads)) #[257 "\300\301!\207" [error "Autoloads not supported in autoconf yet"] 3 "Tweak the configure file (current buffer) to accommodate THIS.\n\n(fn THIS)"] ede-proj-flush-autoconf ((_this ede-proj-target-elisp-autoloads)) #[257 "\300\207" [nil] 2 "Flush the configure file (current buffer) to accommodate THIS.\n\n(fn THIS)"] provide ede/proj-elisp] 6)
