%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/cedet/ede/ |
Current File : //usr/local/share/emacs/27.2/lisp/cedet/ede/proj-comp.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\303\304\305\306!\"\210\303\307\310\306!\"\210\303\311\307\"\210\312\311\313\314#\210\315\306\316\307#\317\306\320\321\322$\210\323\324\325\326\325\327%\210\323\330\325\331\325\332%\207" [require ede ede/autoconf-edit defalias ede-compilation-program-p eieio-make-class-predicate ede-compilation-program ede-compilation-program--eieio-childp eieio-make-child-predicate ede-compilation-program-child-p make-obsolete "use (cl-typep ... \\='ede-compilation-program) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (eieio-instance-inheritor) ((name :initarg :name :type string :custom string :documentation "Name of this type of compiler.") (variables :initarg :variables :type list :custom (repeat (cons (string :tag "Variable") (string :tag "Value"))) :documentation "Variables needed in the Makefile for this compiler.\nAn assoc list where each element is (VARNAME . VALUE) where VARNAME\nis a string, and VALUE is either a string, or a list of strings.\nFor example, GCC would define CC=gcc, and emacs would define EMACS=emacs.") (sourcetype :initarg :sourcetype :type list :documentation "A list of `ede-sourcecode' objects this class will handle.\nThis is used to match target objects with the compilers and linkers\nthey can use, and which files this object is interested in." :accessor ede-object-sourcecode) (rules :initarg :rules :initform nil :type list :custom (repeat (object :objecttype ede-makefile-rule)) :documentation "Auxiliary rules needed for this compiler to run.\nFor example, yacc/lex files need additional chain rules, or inferences.") (commands :initarg :commands :type list :custom (repeat string) :documentation "The commands used to execute this compiler.\nThe object which uses this compiler will place these commands after\nits rule definition.") (autoconf :initarg :autoconf :initform nil :type list :custom (repeat string) :documentation "Autoconf function to call if this type of compiler is used.\nWhen a project is in Automake mode, this defines the autoconf function to\ncall to initialize automake to use this compiler.\nFor example, there may be multiple C compilers, but they all probably\nuse the same autoconf form.") (objectextention :initarg :objectextention :type string :documentation "A string which is the extension used for object files.\nFor example, C code uses .o on Unix, and Emacs Lisp uses .elc.")) (:documentation "A program used to compile or link a program via a Makefile.\nContains everything needed to output code into a Makefile, or autoconf\nfile.") cl-generic-define-method ede-object-sourcecode nil ((this ede-compilation-program)) #[(this) "\301\302\"\205 \303\302\"\207" [this slot-boundp sourcetype eieio-oref] 3 "Retrieve the slot `sourcetype' from an object of class `ede-compilation-program'."] \(setf\ ede-object-sourcecode\) (value (this ede-compilation-program)) #[(value this) "\302\303 #\207" [this value eieio-oset sourcetype] 4]] 7) #@62 Create a new object of class type `ede-compilation-program'. (defalias 'ede-compilation-program #[(&rest slots) "\301\302\303#\207" [slots apply make-instance ede-compilation-program] 4 (#$ . 3388)]) (byte-code "\300\301\302\303#\300\207" [function-put ede-compilation-program compiler-macro ede-compilation-program--anon-cmacro] 4) (defalias 'ede-compilation-program--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ede-compiler-p eieio-make-class-predicate ede-compiler ede-compiler--eieio-childp eieio-make-child-predicate ede-compiler-child-p make-obsolete "use (cl-typep ... \\='ede-compiler) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ede-compilation-program) ((makedepends :initarg :makedepends :initform nil :type boolean :documentation "Non-nil if this compiler can make dependencies.") (uselinker :initarg :uselinker :initform nil :type boolean :documentation "Non-nil if this compiler creates code that can be linked.\nThis requires that the containing target also define a list of available\nlinkers that can be used.")) (:documentation "Definition for a compiler.\nDifferent types of objects will provide different compilers for\ndifferent situations.")] 6) #@51 Create a new object of class type `ede-compiler'. (defalias 'ede-compiler #[(&rest slots) "\301\302\303#\207" [slots apply make-instance ede-compiler] 4 (#$ . 4895)]) (byte-code "\300\301\302\303#\300\207" [function-put ede-compiler compiler-macro ede-compiler--anon-cmacro] 4) (defalias 'ede-compiler--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ede-linker-p eieio-make-class-predicate ede-linker ede-linker--eieio-childp eieio-make-child-predicate ede-linker-child-p make-obsolete "use (cl-typep ... \\='ede-linker) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ede-compilation-program) nil (:documentation "Contains information needed to link many generated object files together.")] 6) #@49 Create a new object of class type `ede-linker'. (defalias 'ede-linker #[(&rest slots) "\301\302\303#\207" [slots apply make-instance ede-linker] 4 (#$ . 5922)]) (byte-code "\300\301\302\303#\300\207" [function-put ede-linker compiler-macro ede-linker--anon-cmacro] 4) (defalias 'ede-linker--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ede-makefile-rule-p eieio-make-class-predicate ede-makefile-rule ede-makefile-rule--eieio-childp eieio-make-child-predicate ede-makefile-rule-child-p make-obsolete "use (cl-typep ... \\='ede-makefile-rule) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((target :initarg :target :initform #1="" :type string :custom string :documentation "The target pattern.\nA pattern of \"%.o\" is used for inference rules, and would match object files.\nA target of \"foo.o\" explicitly matches the file foo.o.") (dependencies :initarg :dependencies :initform #1# :type string :custom string :documentation "Dependencies on this target.\nA pattern of \"%.o\" would match a file of the same prefix as the target\nif that target is also an inference rule pattern.\nA dependency of \"foo.c\" explicitly lists foo.c as a dependency.\nA variable such as $(name_SOURCES) will list all the source files\nbelonging to the target name.") (rules :initarg :rules :initform nil :type list :custom (repeat string) :documentation "Scripts to execute.\nThese scripts will be executed in sh (Unless the SHELL variable is overridden).\nDo not prefix with TAB.\nEach individual element of this list can be either a string, or\na lambda function. (The custom element does not yet express that.") (phony :initarg :phony :initform nil :type boolean :custom boolean :documentation "Is this a phony rule?\nAdds this rule to a .PHONY list.")) (:documentation "A single rule for building some target.")] 6) #@56 Create a new object of class type `ede-makefile-rule'. (defalias 'ede-makefile-rule #[(&rest slots) "\301\302\303#\207" [slots apply make-instance ede-makefile-rule] 4 (#$ . 8066)]) (byte-code "\300\301\302\303#\300\207" [function-put ede-makefile-rule compiler-macro ede-makefile-rule--anon-cmacro] 4) (defalias 'ede-makefile-rule--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) #@39 The master list of all EDE compilers. (defvar ede-compiler-list nil (#$ . 8594)) #@39 The master list of all EDE compilers. (defvar ede-linker-list nil (#$ . 8681)) #@170 List of EDE compilers that have already inserted parts of themselves. This is used when creating a Makefile to prevent duplicate variables and rules from being created. (defvar ede-current-build-list nil (#$ . 8767)) (byte-code "\300\301\302\303\304\305%\210\300\301\306\307\304\310%\207" [cl-generic-define-method initialize-instance (:after) ((this ede-compiler) &rest fields) nil #[(this &rest fields) " \235\203 \207 B\211\207" [this ede-compiler-list] 2 "Make sure that all ede compiler objects are cached in\n`ede-compiler-list'.\n\n(fn THIS &rest FIELDS)"] (:after) ((this ede-linker) &rest fields) #[(this &rest fields) " \235\203 \207 B\211\207" [this ede-linker-list] 2 "Make sure that all ede compiler objects are cached in\n`ede-linker-list'.\n\n(fn THIS &rest FIELDS)"]] 6) #@140 Execute BODY, making sure that `ede-current-build-list' is maintained. This will prevent rules from creating duplicate variables or rules. (defalias 'ede-compiler-begin-unique '(macro . #[(&rest body) "\301\302BB\207" [body let ((ede-current-build-list nil))] 3 (#$ . 9571)])) #@63 Using OBJECT, execute BODY only once per Makefile generation. (defalias 'ede-compiler-only-once '(macro . #[(object &rest body) "\302\303\304\305BBD\306\307\310E BBE\207" [object body if not member (ede-current-build-list) progn add-to-list 'ede-current-build-list] 6 (#$ . 9855)])) #@140 Execute BODY, making sure that `ede-current-build-list' is maintained. This will prevent rules from creating duplicate variables or rules. (defalias 'ede-linker-begin-unique '(macro . #[(&rest body) "\301\302BB\207" [body let ((ede-current-build-list nil))] 3 (#$ . 10147)])) #@63 Using OBJECT, execute BODY only once per Makefile generation. (defalias 'ede-linker-only-once '(macro . #[(object &rest body) "\302\303\304\305BBD\306\307\310E BBE\207" [object body if not member (ede-current-build-list) progn add-to-list 'ede-current-build-list] 6 (#$ . 10430)])) (add-hook 'edebug-setup-hook #[nil "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\303#\210\300\307\302\310#\210\300\311\302\312#\207" [put ede-compiler-begin-unique edebug-form-spec def-body ede-compiler-only-once (form def-body) ede-linker-begin-unique ede-linker-only-once (form def-body) ede-pmake-insert-variable-shared (form def-body)] 4]) #@73 Return a compiler from the list COMPILERS that will compile SOURCETYPE. (defalias 'ede-proj-find-compiler #[(compilers sourcetype) "\203 \302@\301\"\235\204 A\211\204 \242\207" [compilers sourcetype eieio-oref] 5 (#$ . 11074)]) #@69 Return a compiler from the list LINKERS to be used with SOURCETYPE. (defalias 'ede-proj-find-linker #[(linkers sourcetype) "\203 \302@\301\"\203 \303@\301\"\235\204 A\211\204 \242\207" [linkers sourcetype slot-boundp eieio-oref] 5 (#$ . 11317)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method ede-proj-tweak-autoconf nil ((this ede-compilation-program)) #[(this) "\301\302\303\304\"\"\207" [this mapcar #[(obj) ";\203 \301!\207:\203 \301@A\"\207\302\303!\207" [obj autoconf-insert-new-macro error "Autoconf directives must be a string, or cons cell"] 3] eieio-oref autoconf] 5 "Tweak the configure file (current buffer) to accommodate THIS."] ede-proj-flush-autoconf ((this ede-compilation-program)) #[(this) "\300\207" [nil] 1 "Flush the configure file (current buffer) to accommodate THIS."]] 6) #@116 Add VARNAME into the current Makefile if it doesn't exist. Execute BODY in a location where a value can be placed. (defalias 'proj-comp-insert-variable-once '(macro . #[(varname &rest body) "\302\303\304DD\305\306\307\310 \311\"BBBE\207" [varname body let (addcr t) v unless (re-search-backward (concat "^" v "\\s-*=") nil t) (insert v "=") append ((if addcr (insert "\n")) (goto-char (point-max)))] 8 (#$ . 12192)])) (byte-code "\300\301\302\303#\210\304\305\306\307\306\310%\210\304\311\306\312\306\313%\210\304\314\306\315\306\316%\210\304\317\306\320\306\321%\210\304\322\306\323\306\324%\210\304\322\306\325\306\326%\210\304\327\306\330\306\331%\210\332\333\334\"\210\300\335\302\336#\210\300\337\302\303#\210\300\340\302\336#\210\300\341\302\303#\210\342\343!\207" [put proj-comp-insert-variable-once lisp-indent-function 1 cl-generic-define-method ede-proj-makefile-insert-variables nil ((this ede-compilation-program)) #[(this) "\302\303\"\205 \304\305\306 \303\"\")\207" [this #:object eieio-instance-inheritor-slot-boundp variables mapcar #[(var) "\304@\305\306 \307Q\310\304#?\2053 \311\261\210A\211<\203&