;ELC
;;; Compiled by LTX@Xue-LingTaos-MacBook-Pro.local on Wed Mar 16 23:10:44 2011
;;; from file /Users/LTX/Projects/Emacs/emacs/lisp/cedet/ede/proj-obj.el
;;; in Emacs version 24.0.50.1
;;; 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.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(require 'ede/proj)
#@46 Flag specifies to do automatic dependencies.
(defvar ede-proj-objectcode-dodependencies nil (#$ . 572))
(byte-code "\300\301\302\303\304$\210\300\305\306\307\310$\207" [eieio-defclass ede-proj-target-makefile-objectcode (ede-proj-target-makefile) ((configuration-variables :initform ("debug" ("CFLAGS" . "-g") ("LDFLAGS" . "-g"))) (availablecompilers :initform '(ede-gcc-compiler ede-g++-compiler ede-gfortran-compiler ede-gfortran-module-compiler ede-lex-compiler ede-yacc-compiler)) (availablelinkers :initform '(ede-g++-linker ede-cc-linker ede-ld-linker ede-gfortran-linker)) (sourcetype :initform '(ede-source-c ede-source-c++ ede-source-f77 ede-source-f90 ede-source-lex ede-source-yacc))) ("Abstract class for Makefile based object code generating targets.\nBelonging to this group assumes you could make a .o from an element source\nfile.") ede-object-compiler (ede-compiler) ((uselinker :initform t) (dependencyvar :initarg :dependencyvar :type list :custom (cons (string :tag "Variable") (string :tag "Value")) :documentation "A variable dedicated to dependency generation.")) ("Ede compiler class for source which must compiler, and link.")] 5)
#@27 C source code definition.
(defvar ede-source-c (ede-sourcecode "ede-source-c" :name "C" :sourcepattern "\\.c$" :auxsourcepattern "\\.h$" :garbagepattern '("*.o" "*.obj" ".deps/*.P" ".lo")) (#$ . 1734))
#@28 Compiler for C sourcecode.
(defvar ede-gcc-compiler (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\310\317&C\320\321\322\323\324\325\326\327\330\327&\207" [ede-object-compiler "ede-c-compiler-gcc" :name "gcc" :dependencyvar ("C_DEPENDENCIES" . "-Wp,-MD,.deps/$(*F).P") :variables (("CC" . "gcc") ("C_COMPILE" . "$(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)")) :rules ede-makefile-rule "c-inference-rule" :target "%.o" :dependencies "%.c" ("@echo '$(C_COMPILE) -c $<'; \\" "$(C_COMPILE) $(C_DEPENDENCIES) -o $@ -c $<") :autoconf ("AC_PROG_CC" "AC_PROG_GCC_TRADITIONAL") :sourcetype (ede-source-c) :objectextention ".o" :makedepends t :uselinker] 20) (#$ . 1942))
#@26 Linker for C sourcecode.
(defvar ede-cc-linker (ede-linker "ede-cc-linker" :name "cc" :sourcetype '(ede-source-c) :variables '(("C_LINK" . "$(CC) $(CFLAGS) $(LDFLAGS) -L.")) :commands '("$(C_LINK) -o $@ $^ $(LDDEPS)") :objectextention "") (#$ . 2641))
#@29 C++ source code definition.
(defvar ede-source-c++ (ede-sourcecode "ede-source-c++" :name "C++" :sourcepattern "\\.\\(c\\(pp?\\|c\\|xx\\|++\\)\\|C\\(PP\\)?\\)$" :auxsourcepattern "\\.\\(hpp?\\|hh?\\|hxx\\|H\\)$" :garbagepattern '("*.o" "*.obj" ".deps/*.P" ".lo")) (#$ . 2899))
#@28 Compiler for C sourcecode.
(defvar ede-g++-compiler (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\310\317&C\320\321\322\323\324\325\326\327\330\327&\207" [ede-object-compiler "ede-c-compiler-g++" :name "g++" :dependencyvar ("CXX_DEPENDENCIES" . "-Wp,-MD,.deps/$(*F).P") :variables (("CXX" "g++") ("CXX_COMPILE" . "$(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)")) :rules ede-makefile-rule "c++-inference-rule" :target "%.o" :dependencies "%.cpp" ("@echo '$(CXX_COMPILE) -c $<'; \\" "$(CXX_COMPILE) $(CXX_DEPENDENCIES) -o $@ -c $<") :autoconf ("AC_PROG_CXX") :sourcetype (ede-source-c++) :objectextention ".o" :makedepends t :uselinker] 20) (#$ . 3182))
#@33 Linker needed for c++ programs.
(defvar ede-g++-linker (ede-linker "ede-g++-linker" :name "g++" :sourcetype '(ede-source-c++) :variables '(("CXX_LINK" . "$(CXX) $(CFLAGS) $(LDFLAGS) -L.")) :commands '("$(CXX_LINK) -o $@ $^ $(LDDEPS)") :autoconf '("AC_PROG_CXX") :objectextention "") (#$ . 3872))
#@80 Lex source code definition.
No garbage pattern since it creates C or C++ code.
(defvar ede-source-lex (ede-sourcecode "ede-source-lex" :name "lex" :sourcepattern "\\.l\\(l\\|pp\\|++\\)") (#$ . 4174))
#@35 Compiler used for Lexical source.
(defvar ede-lex-compiler (ede-object-compiler "ede-lex-compiler" :autoconf '("AC_PROG_LEX") :sourcetype '(ede-source-lex)) (#$ . 4380))
#@81 Yacc source code definition.
No garbage pattern since it creates C or C++ code.
(defvar ede-source-yacc (ede-sourcecode "ede-source-yacc" :name "yacc" :sourcepattern "\\.y\\(y\\|pp\\|++\\)") (#$ . 4556))
#@52 Compiler used for yacc/bison grammar files source.
(defvar ede-yacc-compiler (ede-object-compiler "ede-yacc-compiler" :autoconf '("AC_PROG_YACC") :sourcetype '(ede-source-yacc)) (#$ . 4766))
#@39 Fortran 90/95 source code definition.
(defvar ede-source-f90 (ede-sourcecode "ede-source-f90" :name "Fortran 90/95" :sourcepattern "\\.[fF]9[05]$" :auxsourcepattern "\\.incf$" :garbagepattern '("*.o" "*.mod" ".deps/*.P")) (#$ . 4963))
#@36 Fortran 77 source code definition.
(defvar ede-source-f77 (ede-sourcecode "ede-source-f77" :name "Fortran 77" :sourcepattern "\\.\\([fF]\\|for\\)$" :auxsourcepattern "\\.incf$" :garbagepattern '("*.o" ".deps/*.P")) (#$ . 5204))
#@34 Compiler for Fortran sourcecode.
(defvar ede-gfortran-compiler (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\310\317&C\320\321\322\323\324\325\326\325&\207" [ede-object-compiler "ede-f90-compiler-gfortran" :name "gfortran" :dependencyvar ("F90_DEPENDENCIES" . "-Wp,-MD,.deps/$(*F).P") :variables (("F90" . "gfortran") ("F90_COMPILE" . "$(F90) $(DEFS) $(INCLUDES) $(F90FLAGS)")) :rules ede-makefile-rule "f90-inference-rule" :target "%.o" :dependencies "%.f90" ("@echo '$(F90_COMPILE) -c $<'; \\" "$(F90_COMPILE) $(F90_DEPENDENCIES) -o $@ -c $<") :sourcetype (ede-source-f90 ede-source-f77) :objectextention ".o" :makedepends t :uselinker] 18) (#$ . 5438))
#@37 Compiler for Fortran 90/95 modules.
(defvar ede-gfortran-module-compiler (clone ede-gfortran-compiler "ede-f90-module-compiler-gfortran" :name "gfortranmod" :sourcetype '(ede-source-f90) :commands '("$(F90_COMPILE) -c $^") :objectextention ".mod" :uselinker nil) (#$ . 6129))
#@37 Linker needed for Fortran programs.
(defvar ede-gfortran-linker (ede-linker "ede-gfortran-linker" :name "gfortran" :sourcetype '(ede-source-f90 ede-source-f77) :variables '(("F90_LINK" . "$(F90) $(CFLAGS) $(LDFLAGS) -L.")) :commands '("$(F90_LINK) -o $@ $^") :objectextention "") (#$ . 6411))
#@33 Linker needed for c++ programs.
(defvar ede-ld-linker (ede-linker "ede-ld-linker" :name "ld" :variables '(("LD" . "ld") ("LD_LINK" . "$(LD) $(LDFLAGS) -L.")) :commands '("$(LD_LINK) -o $@ $^ $(LDDEPS)") :objectextention "") (#$ . 6710))
(eieio-defmethod 'ede-proj-makefile-insert-variables '(((this ede-object-compiler)) #[(this) "\302 \210\303\304\"\205,\305\304\"@\306\261\210\305\304\"A\211<\203&\307\310	\"\210\202)	c\210\311c)\207" [this cd call-next-method eieio-instance-inheritor-slot-boundp dependencyvar slot-value "=" mapc #[(c) "\301\261\207" [c " "] 2] "
"] 4 "Insert variables needed by the compiler THIS."]))
(eieio-defmethod 'ede-proj-makefile-sourcevar '(((this ede-proj-target-makefile-objectcode)) #[(this) "\301\302!\210\303!\304P\207" [this require ede/pmake ede-pmake-varname "_SOURCES"] 2 "Return the variable name for THIS's sources."]))
(eieio-defmethod 'ede-proj-makefile-dependency-files '(((this ede-proj-target-makefile-objectcode)) #[(this) "\301\302\303\"\302\304\"\"\207" [this append eieio-oref source auxsource] 5 "Return a list of source files to convert to dependencies.
Argument THIS is the target to get sources from."]))
(eieio-defmethod 'ede-proj-makefile-insert-variables '(((this ede-proj-target-makefile-objectcode) &optional moresource) #[(this &optional moresource) "\302\303!\304\"\305 )\207" [this ede-proj-objectcode-dodependencies eieio-oref ede-target-parent automatic-dependencies call-next-method] 3 "Insert variables needed by target THIS.
Optional argument MORESOURCE is not used."]))
(eieio-defmethod 'ede-buffer-header-file '(((this ede-proj-target-makefile-objectcode) buffer) #[(this buffer) "\302 \206
\303\304\"\211\242)\207" [this h call-next-method eieio-oref auxsource] 4 "There are no default header files."]))
(provide 'ede/proj-obj)
