Node:Top,
Up:(dir)Top
EDE is a collection of definitions called the
Emacs Development Extensions. EDE provides the gloss that
simplifies the learning curve for all the very useful functionality of
building and debugging under emacs. In doing so it attempts to emulate
a typical IDE (Integrated Development Environment). What this means is
that EDE will manage or create your makefiles and other building
environment duties so the developer can concentrate on code, and not
support files. In doing so, it will be much easier for new programmers
to learn and adopt the GNU ways of doing things.
Node:EDE Mode,
Next:Creating a project,
Previous:Top,
Up:Top
EDE Mode
EDE is implemented as a minor-mode, which augments other modes such as C
mode, and Texinfo mode. You can turn EDE on for all buffers by running
the command global-ede-mode, or by putting this in your
~/.emacs file.
(require 'ede)
(global-ede-mode t)
When EDE is active for a given buffer, the menu item "Project"
appears. This menu contains several high-level functions to make
working on a code set easier. These items and keybindings never change
regardless of the type of project you are actually working on.
The ede.el file is a minimal set of loading routines. When
different types of projects are encountered, source code for those
projects are loaded at that time.
Node:Creating a project,
Next:Modifying your project,
Previous:EDE Mode,
Up:Top
Creating a project
EDE can support many different types of projects. When creating a new
project with the command `ede-new' (or "Create Project" in the
menu) you must choose the type of project you would like to create.
See Project types.
Each type has it's own benefits or language specific enhancements. You
will be prompted for the type of project you would like to create. The
simplest and most language agnostic project type is Make. A
derivation of this is the Automake type.
Not all project types can be created in this way. For example, there
are two ways to handle Automake based projects. One is through the
ede-project class, and the other through project-am
class. project-am will autoload in any GNU Automake based
distribution that does not contain a Project.ede file.
Creating a subproject
A subproject is merely a project in a subdirectory in some other
projects control. You can create a subproject by using the
ede-new command (or "Create Project" from the menu)
while a in a subdirectory below an existing project. This new project
will be automatically added to the parent project, and will be
automatically loaded when the parent is read.
When using a project command that invovles a makefile, EDE uses
the top-most project's makefile as a starting place for the build. How
the toplevel project handles subprojects in the build process is
dependendent on that project's type.
Node:Modifying your project,
Next:Building and Debugging,
Previous:Creating a project,
Up:Top
Modifying your project
A project, and it's targets, are objects using the EIEIO object
system. See (eieio)EIEIO. These objects have data fields containing
important information related to your work. Of note is that a project
has a list of subprojects (sub directories), and targets (things to
build from sources). Targets in turn have lists of source code, and
information on how to convert that source code into compiled programs or
documentation.
A project conceptually mirrors a Makefile build tree. You can create a
new target with the ede-new-target command C-c . t. Once
created, you can now put source files into this target. You can remove
a target with the command ede-delete-target.
You can add and remove files into targets with the command
ede-add-file and ede-remove-file bound to C-c . a
and C-c . d respectively. These commands will add the current
buffer's file into the target.
When working in an existing project's directory, and a new file is read
into Emacs, EDE will attempt to auto-add that file to a target of your
choice. You can customize the behavior with the variable
ede-auto-add-method.
If these high-level functions aren't enough, you can tweak all
user-customizable fields at any time by running the command
customize-project or customize-target. This will load the
given object into an immediate-mode customization buffer where you tweak
individual slots. This is usually necessary for project modes that are
very complex.
Some project modes do not have a project file, but directly read a
Makefile, or existing file. Instead of letting you directly edit the
object, you can edit the file. Use the command
ede-edit-file-target bound to C-c . e.
Node:Building and Debugging,
Next:Miscellaneous commands,
Previous:Modifying your project,
Up:Top
Building and Debugging
EDE assumes you are writing some sort of program, so attempts to
facilitate this activity. EDE will associate the current buffer with a
target. The target then knows how to compile or debug the given source
file.
The following commands enable compilation and debugging.
- C-c . c
- Compile the current target.
- C-c . C
- Compile the entire project.
- c-c . D
- Debug the current target.
- ede-make-dist
- Build a distribution file for your project.
Node:Miscellaneous commands,
Next:Project types,
Previous:Building and Debugging,
Up:Top
Miscellaneous commands
EDE also supports the speedbar package. While speedbar works great
against directories already, EDE provides a project display mode. This
lets you look at your source files as they are structured in your
project. Thus, where many files may be clumped together in one
directory, the Project view will provide a hierarchical view of your
files as grouped by target.
You can activate speedbar in this mode with the command ede-speedbar.
Node:Project types,
Next:Extending EDE,
Previous:Miscellaneous commands,
Up:Top
Project types
There are two types of project modes currently. One is
ede-project, and shows up as Make and Automake when
creating new projects. ede-project lives in the file
ede-proj. The other is project type lives in
project-am.el, and handles automake projects directly from the
Makefiles. EDE cannot make new projects of this type, assuming the user
will do it themselves. Use ede-project in Automake mode
to have EDE create Makefile.am file, and a configure.in
file.
ede-project creates a file called Project.ede in a given
project directory. This is used to track your configureation
information. When compiling, this project will autogenerate a
Makefile, or a Makefile.am file.
The project type that reads Makefile.am directly is derived from
the sources of the original project-am.el mode I wrote. This
mode eventually became EDE. The automake project will read existing
automake files, but will not generate them automatically, or create new
ones. As such, it is useful as a browsing tool, or as maintenance in
managing file lists.
Node:Extending EDE,
Previous:Project types,
Up:Top
Extending EDE
EDE makes use of EIEIO, the CLOS package for Emacs. This lets EDE
define two object superclasses, specifically the PROJECT and TARGET.
All commands in EDE are usually meant to address the current project, or
current target.
All specific projects in EDE derive subclasses of the EDE superclasses.
In this way, specific behaviors such as how a project is saved, or how a
target is compiled can be customized by a project author in detail. EDE
communicates to these project objects via an API using methods. The
commands you use in EDE mode are high-level functional wrappers over
these methods. For details on different types of projects,
See Project types. See (eieio)Top. For details on using EIEIO to
extending classes, and writing methods.
It is most likely that a new target type is needed in one of the
existing project types. The rest of this chapter will discuss extending
the ede-project class, and it's targets. See
project-am.el for basic details on adding targets to it.
For the ede-project type, the core target class is called
ede-proj-target. Inheriting from this will give you everything
you need to start, including adding your sources into the makefile. If
you also need additional rules in the makefile, you will want to inherit
from ede-proj-target-makefile. You may want to also add new
fields to track important information.
Once your new class exists, you will want to fill in some basic methods.
See the ede-skel.el file for examples of these. The files
ede-proj-info.el and ede-proj-elisp are two interesting
examples.
User interface methods
These methods are core behaviors associated with user commands.
project-add-file
- Add a file to your project. Override this if you want to put new
sources into different fields depending on extension, or other details.
project-remove-file
- Reverse of project-add-file.
project-compile-target
- Override this if you want to do something special when the user
"compiles" this target. The default is probably fine.
project-debug-target
- What to do when a user wants to debug your target.
project-update-version
- Easily updated the version number of your project.
project-edit-file-target
- Edit the file the project's information is stored in.
project-new-target
- Create a new target in a project.
project-delete-target
- Delete a target from a project.
project-make-dist
- Make a distribution (tar archive) of the project.
project-rescan
- Rescan a project file, changing the data in the existing objects.
Base project methods
These methods are important for querying base information from project
and target types:
ede-name
- Return a string that is the name of this target.
ede-target-name
- Return a string that is the name of the target used by a Make system.
ede-description
- A brief description of the project or target. This is currently used
by the
ede-speedbar interface.
ede-want-file-p
- Return non-nil if a target will accept a given file.
It is generally unecessary to override this. See the section on source
code.
ede-buffer-mine
- Return non-nil if a buffer belongs to this target. Used during
association when a file is loaded. It is generally unecessary to
override this unless you keep auxilliary files.
These methods are used by the semantic package extentions See (semantic)Top.
ede-buffer-header-file
- Return a header file belonging to a given buffer. Prototypes are place
there when appropriate
ede-buffer-documentation-files
- Return the documentation file information about this file would be
stored in.
ede-documentation
- List all documentation a project or target is responsible for.
Sourcecode objects
EDE projects track source file / target associates via source code
objects. The definitions for this is in ede-source.el. A source
code object contains methods that know how to identify a file as being
of that class, (ie, a C file ends with .c). Some targets can
handle many different types of sources which must all be compiled
together. For example, a mixed C and C++ program would have
instantiations of both sourcecode types.
When a target needs to know if it will accept a source file, it
references its list of source code objects. These objects then make
that decision.
Source code objects are stored in the target objects as a list of
symbols, where the symbols value is the object. This enables the
project output mechanism to work more efficiently.
Here is an example for an instantiation of an Emacs Lisp source code object:
(defvar ede-source-emacs
(ede-sourcecode "ede-emacs-source"
:name "Emacs Lisp"
:sourcepattern "\\.el$"
:garbagepattern '("*.elc"))
"Emacs Lisp source code definition.")
See Sourcecode.
Compiler and Linker objects
The EDE project class creates makefiles. In order for a target to
create a Makefile, it must know how to compile the sources into
the program or desired data file, and possibly link them together.
A compiler object instantiation is used to link a given target with a
given source code type. Some targets can handle many types of sources,
and thus has many compilers available to it. Some targets may even have
multiple compilers for a given type of source code.
EDE will examine the actual source files in a target, cross reference
that against the compiler list to come up with the final set of
compilers that will be inserted into the Makefile.
Compiler instantiations must also insert variables specifying the
compiler it plans to use, in addition to creating Automake settings for
configure.in when appropriate.
Compiler objects are stored in the target objects as a list of
symbols, where the symbols value is the object. This enables the
project output mechanism to work more efficiently.
Targets will also have a special "compiler" slot which lets a user
explicitly choose the compiler they want to use.
Here is an example for texinfo:
(defvar ede-makeinfo-compiler
(ede-compiler
"ede-makeinfo-compiler"
:name "makeinfo"
:variables '(("MAKEINFO" . "makeinfo"))
:commands '("makeinfo -o $ $<")
:autoconf '(("AC_CHECK_PROG" . "MAKEINFO, makeinfo"))
:sourcetype '(ede-makeinfo-source)
)
"Compile texinfo files into info files.")
See Compilers.
When creating compiler instatiations, it may be useful to clone
an existing compiler variable.
The second important object is the linker class. The linker is similar
to the compiler, except several compilers might be used to create some
object files, and only one linker is used to link those objects together.
See ede-proj-obj.el for examples of the combination.
Class hierarchies
Node:Project,
Next:Targets,
Previous:Extending EDE,
Up:Extending EDE
Node:ede-project-placeholder,
Next:ede-project,
Up:Project
ede-project-placeholder
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
ede-project-placeholder
-
- Children:
- See ede-project.
Create a new object with name NAME of class type ede-project-placeholder
- Slots:
-
:name
- Type:
string
Default Value: "Untitled"
The name used when generating distribution files.
:version
- Type:
string
Default Value: "1.0"
The version number used when distributing files.
:file
- Type:
string
Default Value: unbound
File name where this project is stored.
Specialized Methods
| ede-project-force-load :PRIMARY this
|
Method |
|
Make sure the placeholder THIS is replaced with the real thing.
Return the new object created in its place.
|
| project-interactive-select-target :PRIMARY this prompt
|
Method |
|
Make sure placeholder THIS is replaced with the real thing, and pass through.
|
| project-add-file :PRIMARY this file
|
Method |
|
Make sure placeholder THIS is replaced with the real thing, and pass through.
|
Node:ede-project,
Next:ede-proj-project,
Previous:ede-project-placeholder,
Up:Project
ede-project
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-project-placeholder.
-
ede-project
-
- Children:
- See ede-proj-project, See project-am-makefile.
Create a new object with name NAME of class type ede-project
- Slots:
-
:targets
- Type:
list
Default Value: unbound
List of top level targets in this project.
:configurations
- Type:
list
Default Value: ("debug" "release")
List of available configuration types.
Individual target/project types can form associations between a configuration,
and target specific elements such as build variables.
:configuration-default
- Default Value:
"debug"
The default configuration.
:local-variables
- Default Value:
nil
Project local variables
Specialized Methods
| eieio-speedbar-description :PRIMARY obj
|
Method |
|
Provide a speedbar description for OBJ.
|
| ede-map-any-target-p :PRIMARY this proc
|
Method |
For project THIS, map PROC to all targets and return if any non-nil.
Return the first non-nil value returned by PROC.
|
| project-rescan :PRIMARY this
|
Method |
|
Rescan the EDE proj project THIS.
|
| ede-map-subprojects :PRIMARY this proc
|
Method |
|
For object THIS, execute PROC on all subprojects.
|
| ede-convert-path :PRIMARY this path
|
Method |
|
Convert path in a standard way for a given project.
Default to making it project relative.
Argument THIS is the project to convert PATH to.
|
| ede-name :PRIMARY this
|
Method |
|
Return a short-name for THIS project file.
Do this by extracting the lowest directory name.
|
| eieio-speedbar-derive-line-path :PRIMARY obj &optional depth
|
Method |
|
Return the path to OBJ.
Optional DEPTH is the depth we start at.
|
| ede-buffer-header-file :PRIMARY this buffer
|
Method |
Return nil, projects don't have header files.
|
| ede-buffer-documentation-files :PRIMARY this buffer
|
Method |
|
Return all documentation in project THIS based on BUFFER.
|
| ede-map-targets :PRIMARY this proc
|
Method |
|
For object THIS, execute PROC on all targets.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return non-nil if object THIS lays claim to the file in BUFFER.
|
| ede-object-keybindings :PRIMARY this
|
Method |
Retrieves the slot keybindings from an object of class ede-project
|
| ede-description :PRIMARY this
|
Method |
|
Return a description suitible for the minibuffer about THIS.
|
| eieio-speedbar-object-children :PRIMARY this
|
Method |
|
Return the list of speedbar display children for THIS.
|
| project-make-dist :PRIMARY this
|
Method |
|
Build a distribution for the project based on THIS target.
|
| project-new-target-custom :PRIMARY proj
|
Method |
|
Create a new target. It is up to the project PROJ to get the name.
|
| ede-expand-filename :PRIMARY this filename &optional force
|
Method |
|
Return a fully qualified file name based on project THIS.
FILENAME should be just a filename which occurs in a directory controlled
by this project.
Optional argument FORCE forces the default filename to be provided even if it
doesn't exist.
|
| ede-menu-items-build :PRIMARY obj &optional current
|
Method |
Return a list of menu items for building project OBJ.
If optional argument CURRENT is non-nil, return sub-menu code.
|
| project-new-target :PRIMARY proj
|
Method |
|
Create a new target. It is up to the project PROJ to get the name.
|
| project-compile-project :PRIMARY obj &optional command
|
Method |
|
Compile the entire current project OBJ.
Argument COMMAND is the command to use when compiling.
|
| eieio-speedbar-object-buttonname :PRIMARY object
|
Method |
|
Return a string to use as a speedbar button for OBJECT.
|
| ede-map-project-buffers :PRIMARY this proc
|
Method |
|
For THIS, execute PROC on all buffers belonging to THIS.
|
| eieio-done-customizing :PRIMARY proj
|
Method |
|
Call this when a user finishes customizing PROJ.
|
| ede-documentation :PRIMARY this
|
Method |
|
Return a list of files that provides documentation.
Documentation is not for object THIS, but is provided by THIS for other
files in the project.
|
| project-interactive-select-target :PRIMARY this prompt
|
Method |
|
Interactivly query for a target that exists in project THIS.
Argument PROMPT is the prompt to use when querying the user for a target.
|
| ede-target-in-project-p :PRIMARY proj target
|
Method |
|
Is PROJ the parent of TARGET?
If TARGET belongs to a subproject, return that project file.
|
| ede-find-target :PRIMARY proj buffer
|
Method |
|
Fetch the target in PROJ belonging to BUFFER or nil.
|
| ede-add-subproject :PRIMARY proj-a proj-b
|
Method |
|
Add into PROJ-A, the subproject PROJ-B.
|
| ede-commit-project :PRIMARY proj
|
Method |
|
Commit any change to PROJ to its file.
|
| ede-object-menu :PRIMARY this
|
Method |
Retrieves the slot menu from an object of class ede-project
|
| ede-commit-local-variables :PRIMARY proj
|
Method |
|
Commit change to local variables in PROJ.
|
Node:ede-proj-project,
Next:project-am-makefile,
Previous:ede-project,
Up:Project
ede-proj-project
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-project-placeholder.
-
See ede-project.
-
ede-proj-project
- No children
Create a new object with name NAME of class type ede-proj-project
- Slots:
-
:makefile-type
- Type:
symbol
Default Value: Makefile
The type of Makefile to generate.
Can be one of 'Makefile, 'Makefile.in, or 'Makefile.am.
If this value is NOT 'Makefile, then that overrides the :makefile slot
in targets.
:variables
- Type:
list
Default Value: nil
Variables to set in this Makefile.
:configuration-variables
- Type:
list
Default Value: ("debug" (("DEBUG" . "1")))
Makefile variables to use in different configurations.
These variables are used in the makefile when a configuration becomes active.
:inference-rules
- Default Value:
nil
Inference rules to add to the makefile.
:automatic-dependencies
- Type:
boolean
Default Value: t
Non-nil to do implement automatic dependencies in the Makefile.
Specialized Methods
| project-rescan :PRIMARY this
|
Method |
|
Rescan the EDE proj project THIS.
|
| ede-proj-makefile-create :PRIMARY this mfilename
|
Method |
|
Create a Makefile for all Makefile targets in THIS.
MFILENAME is the makefile to generate.
|
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Insert rules needed by THIS target.
|
| ede-proj-makefile-tags :PRIMARY this targets
|
Method |
|
Insert into the current location rules to make recursive TAGS files.
Argument THIS is the project to create tags for.
Argument TARGETS are the targets we should depend on for TAGS.
|
| project-update-version :PRIMARY this
|
Method |
The :version of project THIS has changed.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| ede-proj-makefile-insert-variables :PRIMARY this
|
Method |
|
Insert variables needed by target THIS.
|
| project-make-dist :PRIMARY this
|
Method |
|
Build a distribution for the project based on THIS target.
|
| ede-proj-makefile-insert-dist-rules :PRIMARY this
|
Method |
|
Insert distribution rules for THIS in a Makefile, such as CLEAN and DIST.
|
| project-new-target-custom :PRIMARY this
|
Method |
|
Create a new target in THIS for custom.
|
| ede-proj-makefile-create-maybe :PRIMARY this mfilename
|
Method |
|
Create a Makefile for all Makefile targets in THIS if needed.
MFILENAME is the makefile to generate.
|
| ede-proj-configure-test-required-file :PRIMARY this file
|
Method |
|
For project THIS, test that the file FILE exists, or create it.
|
| ede-proj-setup-buildenvironment :PRIMARY this &optional force
|
Method |
|
Setup the build environment for project THIS.
Handles the Makefile, or a Makefile.am configure.in combination.
Optional argument FORCE will force items to be regenerated.
|
| ede-proj-makefile-garbage-patterns :PRIMARY this
|
Method |
|
Return a list of patterns that are considred garbage to THIS.
These are removed with make clean.
|
| ede-proj-configure-synchronize :PRIMARY this
|
Method |
|
Synchronize what we know about project THIS into configure.in.
|
| project-new-target :PRIMARY this
|
Method |
|
Create a new target in THIS based on the current buffer.
|
| project-compile-project :PRIMARY proj &optional command
|
Method |
|
Compile the entire current project PROJ.
Argument COMMAND is the command to use when compiling.
|
| ede-proj-makefile-configuration-variables :PRIMARY this configuration
|
Method |
|
Return a list of configuration variables from THIS.
Use CONFIGURATION as the current configuration to query.
|
| eieio-done-customizing :PRIMARY proj
|
Method |
|
Call this when a user finishes customizing this object.
Argument PROJ is the project to save.
|
| ede-proj-configure-recreate :PRIMARY this
|
Method |
|
Delete project THISes configure script and start over.
|
| ede-proj-makefile-insert-user-rules :PRIMARY this
|
Method |
|
Insert user specified rules needed by THIS target.
This is different from ede-proj-makefile-insert-rules in that this
function won't create the building rules which are auto created with
automake.
|
| ede-proj-dist-makefile :PRIMARY this
|
Method |
|
Return the name of the Makefile with the DIST target in it for THIS.
|
| ede-proj-configure-file :PRIMARY this
|
Method |
|
The configure.in script used by project THIS.
|
| ede-commit-project :PRIMARY proj
|
Method |
|
Commit any change to PROJ to its file.
|
| ede-commit-local-variables :PRIMARY proj
|
Method |
|
Commit change to local variables in PROJ.
|
Node:project-am-makefile,
Previous:ede-proj-project,
Up:Project
project-am-makefile
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-project-placeholder.
-
See ede-project.
-
project-am-makefile
- No children
Create a new object with name NAME of class type project-am-makefile
- Slots:
-
:targets
- Type:
list
Default Value: nil
See ede-project.
Specialized Methods
| project-rescan :PRIMARY this
|
Method |
|
Rescan the makefile for all targets and sub targets.
|
| project-am-subtree :PRIMARY ampf subpath
|
Method |
|
Return the sub project in AMPF specified by SUBPATH.
|
| project-targets-for-file :PRIMARY proj
|
Method |
|
Return a list of targets the project PROJ.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| project-new-target :PRIMARY proj
|
Method |
Create a new target named NAME.
Argument TYPE is the type of target to insert. This is a string
matching something in project-am-type-alist or type class symbol.
Despite the fact that this is a method, it depends on the current
buffer being in order to provide a smart default target type.
|
| project-compile-project :PRIMARY obj &optional command
|
Method |
|
Compile the entire current project.
Argument COMMAND is the command to use when compiling.
|
| ede-find-target :PRIMARY amf buffer
|
Method |
|
Fetch the target belonging to BUFFER.
|
Node:Targets,
Next:Sourcecode,
Previous:Project,
Up:Extending EDE
Node:ede-target,
Next:ede-proj-target,
Up:Targets
ede-target
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
ede-target
-
- Children:
- See ede-proj-target, See project-am-target.
Create a new object with name NAME of class type ede-target
- Slots:
-
:name
- Type:
string
Default Value: unbound
Name of this target.
:path
- Type:
string
Default Value: unbound
The path to the sources of this target.
Relative to the path of the project it belongs to.
:source
- Type:
list
Default Value: nil
Source files in this target.
:versionsource
- Type:
list
Default Value: nil
Source files with a version string in them.
These files are checked for a version string whenever the EDE version
of the master project is changed. When strings are found, the version
previously there is updated.
Specialized Methods
| eieio-speedbar-description :PRIMARY obj
|
Method |
|
Provide a speedbar description for OBJ.
|
| project-compile-target :PRIMARY obj &optional command
|
Method |
|
Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target.
|
| project-debug-target :PRIMARY obj
|
Method |
|
Run the current project target OBJ in a debugger.
|
| ede-convert-path :PRIMARY this path
|
Method |
|
Convert path in a standard way for a given project.
Default to making it project relative.
Argument THIS is the project to convert PATH to.
|
| ede-name :PRIMARY this
|
Method |
|
Return the name of THIS targt.
|
| ede-target-buffer-in-sourcelist :PRIMARY this buffer source
|
Method |
Return non-nil if object THIS is in BUFFER to a SOURCE list.
Handles complex path issues.
|
| eieio-speedbar-derive-line-path :PRIMARY obj &optional depth
|
Method |
|
Return the path to OBJ.
Optional DEPTH is the depth we start at.
|
| ede-buffer-header-file :PRIMARY this buffer
|
Method |
|
There are no default header files in EDE.
Do a quick check to see if there is a Header tag in this buffer.
|
| project-remove-file :PRIMARY ot fnnd
|
Method |
|
Remove the current buffer from project target OT.
Argument FNND is an argument.
|
| ede-buffer-documentation-files :PRIMARY this buffer
|
Method |
|
Check for some documenation files for THIS.
Also do a quick check to see if there is a Documentation tag in this BUFFER.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return non-nil if object THIS lays claim to the file in BUFFER.
|
| ede-map-target-buffers :PRIMARY this proc
|
Method |
|
For THIS, execute PROC on all buffers belonging to THIS.
|
| eieio-speedbar-child-description :PRIMARY obj
|
Method |
|
Provide a speedbar description for a plain-child of OBJ.
A plain child is a child element which is not an EIEIO object.
|
| ede-object-keybindings :PRIMARY this
|
Method |
Retrieves the slot keybindings from an object of class ede-target
|
| ede-description :PRIMARY this
|
Method |
|
Return a description suitible for the minibuffer about THIS.
|
| eieio-speedbar-object-children :PRIMARY this
|
Method |
|
Return the list of speedbar display children for THIS.
|
| ede-object-sourcecode :PRIMARY this
|
Method |
Retrieves the slot sourcetype from an object of class ede-target
|
| ede-expand-filename :PRIMARY this filename &optional force
|
Method |
|
Return a fully qualified file name based on target THIS.
FILENAME should a a filename which occurs in a directory in which THIS works.
Optional argument FORCE forces the default filename to be provided even if it
doesn't exist.
|
| ede-menu-items-build :PRIMARY obj &optional current
|
Method |
Return a list of menu items for building target OBJ.
If optional argument CURRENT is non-nil, return sub-menu code.
|
| ede-want-file-p :PRIMARY this file
|
Method |
Return non-nil if THIS target wants FILE.
|
| project-delete-target :PRIMARY ot
|
Method |
|
Delete the current target OT from it's parent project.
|
| ede-target-sourcecode :PRIMARY this
|
Method |
|
Return the sourcecode objects which THIS permits.
|
| eieio-speedbar-child-make-tag-lines :PRIMARY this depth
|
Method |
|
Create a speedbar tag line for a child of THIS.
It has depth DEPTH.
|
| eieio-speedbar-object-buttonname :PRIMARY object
|
Method |
|
Return a string to use as a speedbar button for OBJECT.
|
| eieio-done-customizing :PRIMARY target
|
Method |
|
Call this when a user finishes customizing TARGET.
|
| project-edit-file-target :PRIMARY ot
|
Method |
|
Edit the target OT associated w/ this file.
|
| ede-documentation :PRIMARY this
|
Method |
|
Return a list of files that provides documentation.
Documentation is not for object THIS, but is provided by THIS for other
files in the project.
|
| ede-want-file-source-p :PRIMARY this file
|
Method |
Return non-nil if THIS target wants FILE.
|
| ede-want-file-auxiliary-p :PRIMARY this file
|
Method |
Return non-nil if THIS target wants FILE.
|
| project-add-file :PRIMARY ot file
|
Method |
|
Add the current buffer into project project target OT.
Argument FILE is the file to add.
|
| ede-target-name :PRIMARY this
|
Method |
|
Return the name of THIS target, suitable for make or debug style commands.
|
| ede-object-menu :PRIMARY this
|
Method |
Retrieves the slot menu from an object of class ede-target
|
Node:ede-proj-target,
Next:ede-proj-target-makefile,
Previous:ede-target,
Up:Targets
ede-proj-target
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
ede-proj-target
-
- Children:
- See ede-proj-target-makefile, See ede-proj-target-aux, See ede-proj-target-scheme.
Create a new object with name NAME of class type ede-proj-target
- Slots:
-
:auxsource
- Type:
list
Default Value: nil
Auxilliary source files included in this target.
Each of these is considered equivalent to a source file, but it is not
distributed, and each should have a corresponding rule to build it.
:compiler
- Type:
(or null symbol)
Default Value: nil
The compiler to be used to compile this object.
This should be a symbol, which contains the object defining the compiler.
This enables save/restore to do so by name, permitting the sharing
of these compiler resources, and global customization thereof.
:linker
- Type:
(or null symbol)
Default Value: nil
The linker to be used to link compled sources for this object.
This should be a symbol, which contains the object defining the linker.
This enables save/restore to do so by name, permitting the sharing
of these linker resources, and global customization thereof.
Specialized Methods
| project-compile-target :PRIMARY obj &optional command
|
Method |
|
Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target.
|
| project-rescan :PRIMARY this readstream
|
Method |
|
Rescan target THIS from the read list READSTREAM.
|
| project-debug-target :PRIMARY obj
|
Method |
|
Run the current project target OBJ in a debugger.
|
| ede-proj-configure-add-missing :PRIMARY this
|
Method |
|
Query if any files needed by THIS provided by automake are missing.
Results in -add-missing being passed to automake.
|
| ede-proj-flush-autoconf :PRIMARY this
|
Method |
|
Flush the configure file (current buffer) to accomodate THIS.
By flushing, remove any cruft that may be in the file. Subsequent
calls to ede-proj-tweak-autoconf can restore items removed by flush.
|
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Insert rules needed by THIS target.
|
| project-remove-file :PRIMARY target file
|
Method |
|
For TARGET, remove FILE.
FILE must be massaged by ede-convert-path.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| ede-proj-configure-create-missing :PRIMARY this
|
Method |
|
Add any missing files for THIS by creating them.
|
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
| ede-proj-makefile-insert-variables :PRIMARY this &optional moresource
|
Method |
|
Insert variables needed by target THIS.
Optional argument MORESOURCE is a list of additional sources to add to the
sources variable.
|
| ede-proj-makefile-insert-automake-post-variables :PRIMARY this
|
Method |
|
Insert variables needed by target THIS in Makefile.am after SOURCES.
|
| ede-proj-linkers :PRIMARY obj
|
Method |
List of linkers being used by OBJ.
If the linker slot is empty, concoct one on a first match found
basis for any given type from the availablelinkers slot.
Otherwise, return the linker slot.
Converts all symbols into the objects to be used.
|
| ede-proj-makefile-garbage-patterns :PRIMARY this
|
Method |
|
Return a list of patterns that are considred garbage to THIS.
These are removed with make clean.
|
| ede-proj-tweak-autoconf :PRIMARY this
|
Method |
|
Tweak the configure file (current buffer) to accomodate THIS.
|
| ede-proj-compilers :PRIMARY obj
|
Method |
List of compilers being used by OBJ.
If the compiler slot is empty, concoct one on a first match found
basis for any given type from the availablecompilers slot.
Otherwise, return the compiler slot.
Converts all symbols into the objects to be used.
|
| project-delete-target :PRIMARY this
|
Method |
|
Delete the current target THIS from it's parent project.
|
| ede-proj-makefile-target-name :PRIMARY this
|
Method |
|
Return the name of the main target for THIS target.
|
| eieio-done-customizing :PRIMARY target
|
Method |
|
Call this when a user finishes customizing this object.
Argument TARGET is the project we are completing customization on.
|
| ede-proj-makefile-insert-user-rules :PRIMARY this
|
Method |
|
Insert user specified rules needed by THIS target.
|
| project-add-file :PRIMARY this file
|
Method |
|
Add to target THIS the current buffer represented as FILE.
|
| ede-proj-makefile-insert-automake-pre-variables :PRIMARY this
|
Method |
|
Insert variables needed by target THIS in Makefile.am before SOURCES.
|
| ede-proj-makefile-dependency-files :PRIMARY this
|
Method |
|
Return a list of source files to convert to dependencies.
Argument THIS is the target to get sources from.
|
| ede-proj-makefile-insert-source-variables :PRIMARY this &optional moresource
|
Method |
|
Insert the source variables needed by THIS.
Optional argument MORESOURCE is a list of additional sources to add to the
sources variable.
|
Node:ede-proj-target-makefile,
Next:ede-proj-target-makefile-objectcode,
Previous:ede-proj-target,
Up:Targets
ede-proj-target-makefile
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
ede-proj-target-makefile
-
- Children:
- See ede-proj-target-makefile-objectcode, See ede-proj-target-elisp, See ede-proj-target-makefile-info, See ede-proj-target-makefile-miscelaneous.
Create a new object with name NAME of class type ede-proj-target-makefile
- Slots:
-
:makefile
- Type:
string
Default Value: "Makefile"
File name of generated Makefile.
:partofall
- Type:
boolean
Default Value: t
Non nil means the rule created is part of the all target.
Setting this to nil creates the rule to build this item, but does not
include it in the ALL`all:' rule.
:configuration-variables
- Type:
list
Default Value: nil
Makefile variables appended to use in different configurations.
These variables are used in the makefile when a configuration becomes active.
Target variables are always renamed such as foo_CFLAGS, then included into
commands where the variable would usually appear.
:rules
- Type:
list
Default Value: nil
Arbitrary rules and dependencies needed to make this target.
It is safe to leave this blank.
Specialized Methods
| ede-proj-makefile-dependencies :PRIMARY this
|
Method |
|
Return a string representing the dependencies for THIS.
Some compilers only use the first element in the dependencies, others
have a list of intermediates (object files), and others don't care.
This allows customization of how these elements appear.
|
| project-compile-target :PRIMARY obj &optional command
|
Method |
|
Compile the current target program OBJ.
Optional argument COMMAND is the s the alternate command to use.
|
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Insert rules needed by THIS target.
|
| ede-proj-makefile-insert-variables :PRIMARY this &optional moresource
|
Method |
|
Insert variables needed by target THIS.
Optional argument MORESOURCE is a list of additional sources to add to the
sources variable.
|
| ede-proj-makefile-insert-commands :PRIMARY this
|
Method |
|
Insert the commands needed by target THIS.
For targets, insert the commands needed by the chosen compiler.
|
Node:ede-proj-target-makefile-objectcode,
Next:ede-proj-target-makefile-archive,
Previous:ede-proj-target-makefile,
Up:Targets
ede-proj-target-makefile-objectcode
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
ede-proj-target-makefile-objectcode
-
- Children:
- See ede-proj-target-makefile-archive, See ede-proj-target-makefile-program.
Create a new object with name NAME of class type ede-proj-target-makefile-objectcode
- Slots:
-
:configuration-variables
- Type:
list
Default Value: ("debug" ("CFLAGS" . "-g") ("LDFLAGS" . "-g"))
See ede-proj-target-makefile.
Specialized Methods
| ede-buffer-header-file :PRIMARY this buffer
|
Method |
|
There are no default header files.
|
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
| ede-proj-makefile-insert-variables :PRIMARY this &optional moresource
|
Method |
|
Insert variables needed by target THIS.
Optional argument MORESOURCE is not used.
|
| ede-proj-makefile-dependency-files :PRIMARY this
|
Method |
|
Return a list of source files to convert to dependencies.
Argument THIS is the target to get sources from.
|
Node:ede-proj-target-makefile-archive,
Next:ede-proj-target-makefile-program,
Previous:ede-proj-target-makefile-objectcode,
Up:Targets
ede-proj-target-makefile-archive
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
See ede-proj-target-makefile-objectcode.
-
ede-proj-target-makefile-archive
- No children
Create a new object with name NAME of class type ede-proj-target-makefile-archive
Specialized Methods
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Create the make rule needed to create an archive for THIS.
|
| ede-proj-makefile-insert-source-variables :BEFORE this
|
Method |
|
Insert bin_PROGRAMS variables needed by target THIS.
We aren't acutally inserting SOURCE details, but this is used by the
Makefile.am generator, so use it to add this important bin program.
|
Node:ede-proj-target-makefile-program,
Next:ede-proj-target-makefile-shared-object,
Previous:ede-proj-target-makefile-archive,
Up:Targets
ede-proj-target-makefile-program
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
See ede-proj-target-makefile-objectcode.
-
ede-proj-target-makefile-program
-
- Children:
- See ede-proj-target-makefile-shared-object.
Create a new object with name NAME of class type ede-proj-target-makefile-program
- Slots:
-
:ldlibs
- Type:
list
Default Value: nil
Libraries, such as "m" or "Xt" which this program dependso on.
The linker flag "-l" is automatically prepended. Do not include a "lib"
prefix, or a ".so" suffix.
:ldflags
- Type:
list
Default Value: nil
Additional flags to add when linking this target.
Use ldlibs to add addition libraries. Use this to specify specific
options to the linker.
Specialized Methods
| project-debug-target :PRIMARY obj
|
Method |
|
Debug a program target OBJ.
|
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Insert rules needed by THIS target.
|
| ede-proj-makefile-insert-automake-post-variables :PRIMARY this
|
Method |
|
Insert bin_PROGRAMS variables needed by target THIS.
|
| ede-proj-makefile-insert-automake-pre-variables :PRIMARY this
|
Method |
|
Insert bin_PROGRAMS variables needed by target THIS.
|
Node:ede-proj-target-makefile-shared-object,
Next:ede-proj-target-elisp,
Previous:ede-proj-target-makefile-program,
Up:Targets
ede-proj-target-makefile-shared-object
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
See ede-proj-target-makefile-objectcode.
-
See ede-proj-target-makefile-program.
-
ede-proj-target-makefile-shared-object
- No children
Create a new object with name NAME of class type ede-proj-target-makefile-shared-object
- Slots:
-
:ldflags
- Type:
list
Default Value: unbound
See ede-proj-target-makefile-program.
Specialized Methods
| ede-proj-configure-add-missing :PRIMARY this
|
Method |
|
Query if any files needed by THIS provided by automake are missing.
Results in -add-missing being passed to automake.
|
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
| ede-proj-makefile-insert-automake-post-variables :PRIMARY this
|
Method |
|
Insert bin_PROGRAMS variables needed by target THIS.
We need to override -program which has an LDADD element.
|
| ede-proj-makefile-target-name :PRIMARY this
|
Method |
|
Return the name of the main target for THIS target.
|
| ede-proj-makefile-insert-automake-pre-variables :PRIMARY this
|
Method |
|
Insert bin_PROGRAMS variables needed by target THIS.
We aren't acutally inserting SOURCE details, but this is used by the
Makefile.am generator, so use it to add this important bin program.
|
Node:ede-proj-target-elisp,
Next:ede-proj-target-makefile-info,
Previous:ede-proj-target-makefile-shared-object,
Up:Targets
ede-proj-target-elisp
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
ede-proj-target-elisp
- No children
Create a new object with name NAME of class type ede-proj-target-elisp
- Slots:
-
:aux-packages
- Type:
list
Default Value: nil
Additional packages needed.
There should only be one toplevel package per auxiliary tool needed.
These packages location is found, and added to the compile time
load path.
Specialized Methods
| project-compile-target :PRIMARY obj
|
Method |
|
Compile all sources in a Lisp target OBJ.
|
| ede-proj-flush-autoconf :PRIMARY this
|
Method |
|
Flush the configure file (current buffer) to accomodate THIS.
|
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
| ede-proj-makefile-insert-variables :AFTER this
|
Method |
|
Insert variables needed by target THIS.
|
| ede-proj-tweak-autoconf :PRIMARY this
|
Method |
|
Tweak the configure file (current buffer) to accomodate THIS.
|
| ede-update-version-in-source :PRIMARY this version
|
Method |
In a Lisp file, updated a version string for THIS to VERSION.
There are standards in Elisp files specifying how the version string
is found, such as a -version variable, or the standard header.
|
Node:ede-proj-target-makefile-info,
Next:ede-proj-target-makefile-miscelaneous,
Previous:ede-proj-target-elisp,
Up:Targets
ede-proj-target-makefile-info
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
ede-proj-target-makefile-info
- No children
Create a new object with name NAME of class type ede-proj-target-makefile-info
- Slots:
-
:mainmenu
- Type:
string
Default Value: ""
The main menu resides in this file.
All other sources should be included independently.
Specialized Methods
| ede-proj-configure-add-missing :PRIMARY this
|
Method |
|
Query if any files needed by THIS provided by automake are missing.
Results in -add-missing being passed to automake.
|
| object-write :PRIMARY this
|
Method |
|
Before commiting any change to THIS, make sure the mainmenu is first.
|
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
| ede-proj-makefile-target-name :PRIMARY this
|
Method |
|
Return the name of the main target for THIS target.
|
| ede-documentation :PRIMARY this
|
Method |
|
Return a list of files that provides documentation.
Documentation is not for object THIS, but is provided by THIS for other
files in the project.
|
| ede-proj-makefile-insert-source-variables :PRIMARY this &optional moresource
|
Method |
|
Insert the source variables needed by THIS info target.
Optional argument MORESOURCE is a list of additional sources to add to the
sources variable.
Does the usual for Makefile mode, but splits source into two variables
when working in Automake mode.
|
Node:ede-proj-target-makefile-miscelaneous,
Next:ede-proj-target-aux,
Previous:ede-proj-target-makefile-info,
Up:Targets
ede-proj-target-makefile-miscelaneous
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
See ede-proj-target-makefile.
-
ede-proj-target-makefile-miscelaneous
- No children
Create a new object with name NAME of class type ede-proj-target-makefile-miscelaneous
- Slots:
-
:submakefile
- Type:
string
Default Value: ""
Miscelaneous sources which have a specialized makefile.
The sub-makefile is used to build this target.
Specialized Methods
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Create the make rule needed to create an archive for THIS.
|
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
| ede-proj-makefile-dependency-files :PRIMARY this
|
Method |
|
Return a list of files which THIS target depends on.
|
Node:ede-proj-target-aux,
Next:ede-proj-target-scheme,
Previous:ede-proj-target-makefile-miscelaneous,
Up:Targets
ede-proj-target-aux
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
ede-proj-target-aux
- No children
Create a new object with name NAME of class type ede-proj-target-aux
Specialized Methods
| ede-proj-makefile-sourcevar :PRIMARY this
|
Method |
|
Return the variable name for THIS's sources.
|
Node:ede-proj-target-scheme,
Next:project-am-target,
Previous:ede-proj-target-aux,
Up:Targets
ede-proj-target-scheme
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See ede-proj-target.
-
ede-proj-target-scheme
- No children
Create a new object with name NAME of class type ede-proj-target-scheme
- Slots:
-
:interpreter
- Type:
string
Default Value: "guile"
The preferred interpreter for this code.
Specialized Methods
| ede-proj-tweak-autoconf :PRIMARY this
|
Method |
|
Tweak the configure file (current buffer) to accomodate THIS.
|
Node:project-am-target,
Next:project-am-objectcode,
Previous:ede-proj-target-scheme,
Up:Targets
project-am-target
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
project-am-target
-
- Children:
- See project-am-objectcode, See project-am-lisp, See project-am-texinfo, See project-am-man.
Create a new object with name NAME of class type project-am-target
Specialized Methods
| project-compile-target :PRIMARY obj &optional command
|
Method |
|
Compile the current target.
Argument COMMAND is the command to use for compiling the target.
|
| project-compile-target-command :PRIMARY this
|
Method |
|
Default target to use when compiling a given target.
|
| project-remove-file :PRIMARY ot fnnd
|
Method |
|
Remove the current buffer from any project targets.
|
| project-make-dist :PRIMARY this
|
Method |
|
Run the current project in the debugger.
|
| project-compile-project :PRIMARY obj &optional command
|
Method |
|
Compile the entire current project.
Argument COMMAND is the command to use when compiling.
|
| project-edit-file-target :PRIMARY obj
|
Method |
|
Edit the target associated w/ this file.
|
| project-add-file :PRIMARY ot
|
Method |
|
Add the current buffer into a project.
OT is the object target. DIR is the directory to start in.
|
Node:project-am-objectcode,
Next:project-am-program,
Previous:project-am-target,
Up:Targets
project-am-objectcode
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See project-am-target.
-
project-am-objectcode
-
- Children:
- See project-am-program, See project-am-lib.
Create a new object with name NAME of class type project-am-objectcode
- Slots:
-
:source
- Type:
list
Default Value: unbound
See project-am-target.
Specialized Methods
| project-am-macro :PRIMARY this
|
Method |
|
Return the default macro to 'edit' for this object type.
|
| project-debug-target :PRIMARY obj
|
Method |
|
Run the current project target in a debugger.
|
| project-compile-target-command :PRIMARY this
|
Method |
|
Default target to use when compiling an object code target.
|
| ede-buffer-header-file :PRIMARY this buffer
|
Method |
|
There are no default header files.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| ede-sb-expand :PRIMARY this depth
|
Method |
|
Expand node describing something built into objectcode.
TEXT is the text clicked on. TOKEN is the object we are expanding from.
INDENT is the current indentatin level.
|
Node:project-am-program,
Next:project-am-lib,
Previous:project-am-objectcode,
Up:Targets
project-am-program
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See project-am-target.
-
See project-am-objectcode.
-
project-am-program
- No children
Create a new object with name NAME of class type project-am-program
- Slots:
-
:ldadd
- Default Value:
nil
Additional LD args.
Specialized Methods
| project-rescan :PRIMARY this
|
Method |
| ede-sb-button :PRIMARY this depth
|
Method |
|
Create a speedbar button for object THIS at DEPTH.
|
Node:project-am-lib,
Next:project-am-lisp,
Previous:project-am-program,
Up:Targets
project-am-lib
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See project-am-target.
-
See project-am-objectcode.
-
project-am-lib
- No children
Create a new object with name NAME of class type project-am-lib
Specialized Methods
| project-rescan :PRIMARY this
|
Method |
| ede-sb-button :PRIMARY this depth
|
Method |
|
Create a speedbar button for object THIS at DEPTH.
|
Node:project-am-lisp,
Next:project-am-texinfo,
Previous:project-am-lib,
Up:Targets
project-am-lisp
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See project-am-target.
-
project-am-lisp
- No children
Create a new object with name NAME of class type project-am-lisp
- Slots:
-
:lisp
- Default Value:
unbound
List of lisp files to build.
Specialized Methods
| project-am-macro :PRIMARY this
|
Method |
|
Return the default macro to 'edit' for this object.
|
| project-rescan :PRIMARY this
|
Method |
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| ede-sb-button :PRIMARY this depth
|
Method |
|
Create a speedbar button for object THIS at DEPTH.
|
| ede-sb-expand :PRIMARY this depth
|
Method |
|
Expand node describing lisp code.
TEXT is the text clicked on. TOKEN is the object we are expanding from.
INDENT is the current indentatin level.
|
Node:project-am-texinfo,
Next:project-am-man,
Previous:project-am-lisp,
Up:Targets
project-am-texinfo
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See project-am-target.
-
project-am-texinfo
- No children
Create a new object with name NAME of class type project-am-texinfo
- Slots:
-
:include
- Default Value:
nil
Additional texinfo included in this one.
Specialized Methods
| project-am-macro :PRIMARY this
|
Method |
|
Return the default macro to 'edit' for this object type.
|
| project-rescan :PRIMARY this
|
Method |
| project-compile-target-command :PRIMARY this
|
Method |
|
Default target t- use when compling a texinfo file.
|
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| ede-sb-button :PRIMARY this depth
|
Method |
|
Create a speedbar button for object THIS at DEPTH.
|
| ede-sb-expand :PRIMARY this depth
|
Method |
|
Expand node describing a texinfo manual.
TEXT is the text clicked on. TOKEN is the object we are expanding from.
INDENT is the current indentatin level.
|
| ede-documentation :PRIMARY this
|
Method |
|
Return a list of files that provides documentation.
Documentation is not for object THIS, but is provided by THIS for other
files in the project.
|
Node:project-am-man,
Previous:project-am-texinfo,
Up:Targets
project-am-man
- Inheritance Tree:
-
eieio-speedbar
-
eieio-speedbar-directory-button
-
See ede-target.
-
See project-am-target.
-
project-am-man
- No children
Create a new object with name NAME of class type project-am-man
Specialized Methods
| project-am-macro :PRIMARY this
|
Method |
|
Return the default macro to 'edit' for this object type.
|
| project-rescan :PRIMARY this
|
Method |
| ede-buffer-mine :PRIMARY this buffer
|
Method |
Return t if object THIS lays claim to the file in BUFFER.
|
| ede-sb-button :PRIMARY this depth
|
Method |
|
Create a speedbar button for object THIS at DEPTH.
|
Node:Sourcecode,
Next:Compilers,
Previous:Targets,
Up:Extending EDE
The source code type is an object designed to associated files with
targets.
Node:ede-sourcecode,
Up:Sourcecode
ede-sourcecode
- Inheritance Tree:
-
eieio-instance-inheritor
-
ede-sourcecode
- No children
Create a new object with name NAME of class type ede-sourcecode
- Slots:
-
:parent-instance
- Type:
eieio-instance-inheritor
The parent of this instance.
If a slot of this class is reference, and is unbound, then the parent
is checked for a value.
:name
- Type:
string
The name of this type of source code.
Such as "C" or "Emacs Lisp"
:sourcepattern
- Type:
string
Default Value: ".*"
Emacs regex matching sourcecode this target accepts.
:auxsourcepattern
- Type:
(or null string)
Default Value: nil
Emacs regex matching auxiliary source code this target accepts.
Aux source are source code files needed for compilation, which are not comiled
themselves.
:enable-subdirectories
- Type:
boolean
Default Value: nil
Non nil if this sourcecode type uses subdirectores.
If sourcecode always lives near the target creating it, this should be nil.
If sourcecode can, or typically lives in a subdirectory of the owning
target, set this to t.
:garbagepattern
- Type:
list
Default Value: nil
Shell file regex matching files considered as garbage.
This is a list of items added to an rm command when executing a clean
type directive.
Specialized Methods
| initialize-instance :AFTER this &rest fields
|
Method |
Make sure that all ede compiler objects are cached in
ede-compiler-list.
|
| ede-want-any-files-p :PRIMARY this filenames
|
Method |
Return non-nil if THIS will accept any files in FILENAMES.
|
| ede-want-any-source-files-p :PRIMARY this filenames
|
Method |
Return non-nil if THIS will accept any source files in FILENAMES.
|
| ede-want-any-auxiliary-files-p :PRIMARY this filenames
|
Method |
Return non-nil if THIS will accept any aux files in FILENAMES.
|
| ede-buffer-header-file :PRIMARY this filename
|
Method |
|
Return a list of file names of header files for THIS with FILENAME.
Used to guess header files, but uses the auxsource regular expression.
|
| ede-want-file-p :PRIMARY this filename
|
Method |
Return non-nil if sourcecode definition THIS will take FILENAME.
|
| ede-want-file-source-p :PRIMARY this filename
|
Method |
Return non-nil if THIS will take FILENAME as an auxiliary .
|
| ede-want-file-auxiliary-p :PRIMARY this filename
|
Method |
Return non-nil if THIS will take FILENAME as an auxiliary .
|
Node:Compilers,
Previous:Sourcecode,
Up:Extending EDE
The compiler object is designed to associate source code with
compilers. The target then references the compilers it can use.
When the makefile is created, this object type knows how to create
compile commands.
Node:ede-compilation-program,
Next:ede-compiler,
Up:Compilers
ede-compilation-program
- Inheritance Tree:
-
eieio-instance-inheritor
-
ede-compilation-program
-
- Children:
- See ede-compiler, See ede-linker.
Create a new object with name NAME of class type ede-compilation-program
- Slots:
-
:parent-instance
- Type:
eieio-instance-inheritor
The parent of this instance.
If a slot of this class is reference, and is unbound, then the parent
is checked for a value.
:name
- Type:
string
Name of this type of compiler.
:variables
- Type:
list
Variables needed in the Makefile for this compiler.
An assoc list where each element is (VARNAME . VALUE) where VARNAME
is a string, and VALUE is either a string, or a list of strings.
For example, GCC would define CC=gcc, and emacs would define EMACS=emacs.
:sourcetype
- Type:
list
A list of ede-sourcecode See ede-sourcecode. objects this class will handle.
This is used to match target objects with the compilers and linkers
they can use, and which files this object is interested in.
:rules
- Type:
list
Default Value: nil
Auxiliary rules needed for this compiler to run.
For example, yacc/lex files need additional chain rules, or inferences.
:commands
- Type:
list
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
:autoconf
- Type:
list
Default Value: nil
Autoconf function to call if this type of compiler is used.
When a project is in Automake mode, this defines the autoconf function to
call to initialize automake to use this compiler.
For example, there may be multiple C compilers, but they all probably
use the same autoconf form.
:objectextention
- Type:
string
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
Specialized Methods
| ede-proj-flush-autoconf :PRIMARY this
|
Method |
|
Flush the configure file (current buffer) to accomodate THIS.
|
| ede-proj-makefile-insert-rules :PRIMARY this
|
Method |
|
Insert rules needed for THIS compiler object.
|
| ede-proj-makefile-insert-variables :PRIMARY this
|
Method |
|
Insert variables needed by the compiler THIS.
|
| ede-proj-makefile-insert-commands :PRIMARY this
|
Method |
|
Insert the commands needed to use compiler THIS.
The object creating makefile rules must call this method for the
compiler it decides to use after inserting in the rule.
|
| ede-object-sourcecode :PRIMARY this
|
Method |
Retrieves the slot sourcetype from an object of class ede-compilation-program
|
| ede-proj-tweak-autoconf :PRIMARY this
|
Method |
|
Tweak the configure file (current buffer) to accomodate THIS.
|
Node:ede-compiler,
Next:ede-object-compiler,
Previous:ede-compilation-program,
Up:Compilers
ede-compiler
- Inheritance Tree:
-
eieio-instance-inheritor
-
See ede-compilation-program.
-
ede-compiler
-
- Children:
- See ede-object-compiler.
Create a new object with name NAME of class type ede-compiler
- Slots:
-
:parent-instance
- Type:
eieio-instance-inheritor
The parent of this instance.
If a slot of this class is reference, and is unbound, then the parent
is checked for a value.
:name
- Type:
string
Name of this type of compiler.
:variables
- Type:
list
Variables needed in the Makefile for this compiler.
An assoc list where each element is (VARNAME . VALUE) where VARNAME
is a string, and VALUE is either a string, or a list of strings.
For example, GCC would define CC=gcc, and emacs would define EMACS=emacs.
:sourcetype
- Type:
list
A list of ede-sourcecode See ede-sourcecode. objects this class will handle.
This is used to match target objects with the compilers and linkers
they can use, and which files this object is interested in.
:commands
- Type:
list
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
:objectextention
- Type:
string
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
:makedepends
- Type:
boolean
Default Value: nil
Non-nil if this compiler can make dependencies.
:uselinker
- Type:
boolean
Default Value: nil
Non-nil if this compiler creates code that can be linked.
This requires that the containing target also define a list of available
linkers that can be used.
Specialized Methods
| initialize-instance :AFTER this &rest fields
|
Method |
Make sure that all ede compiler objects are cached in
ede-compiler-list.
|
| ede-proj-makefile-insert-object-variables :PRIMARY this targetname sourcefiles
|
Method |
|
Insert an OBJ variable to specify object code to be generated for THIS.
The name of the target is TARGETNAME as a string. SOURCEFILES is the list of
files to be objectified.
Not all compilers do this.
|
| ede-compiler-intermediate-objects-p :PRIMARY this
|
Method |
Return non-nil if THIS has intermediate object files.
If this compiler creates code that can be linked together,
then the object files created by the compiler are considered intermediate.
|
| ede-compiler-intermediate-object-variable :PRIMARY this targetname
|
Method |
|
Return a string based on THIS representing a make object variable.
TARGETNAME is the name of the target that these objects belong to.
|
Node:ede-object-compiler,
Next:ede-linker,
Previous:ede-compiler,
Up:Compilers
ede-object-compiler
- Inheritance Tree:
-
eieio-instance-inheritor
-
See ede-compilation-program.
-
See ede-compiler.
-
ede-object-compiler
- No children
Create a new object with name NAME of class type ede-object-compiler
- Slots:
-
:parent-instance
- Type:
eieio-instance-inheritor
The parent of this instance.
If a slot of this class is reference, and is unbound, then the parent
is checked for a value.
:name
- Type:
string
Name of this type of compiler.
:variables
- Type:
list
Variables needed in the Makefile for this compiler.
An assoc list where each element is (VARNAME . VALUE) where VARNAME
is a string, and VALUE is either a string, or a list of strings.
For example, GCC would define CC=gcc, and emacs would define EMACS=emacs.
:sourcetype
- Type:
list
A list of ede-sourcecode See ede-sourcecode. objects this class will handle.
This is used to match target objects with the compilers and linkers
they can use, and which files this object is interested in.
:commands
- Type:
list
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
:objectextention
- Type:
string
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
:uselinker
- Type:
boolean
Default Value: t
See ede-compiler.
:dependencyvar
- Type:
list
A variable dedicated to dependency generation.
Specialized Methods
| ede-proj-makefile-insert-variables :PRIMARY this
|
Method |
|
Insert variables needed by the compiler THIS.
|
Node:ede-linker,
Previous:ede-object-compiler,
Up:Compilers
ede-linker
- Inheritance Tree:
-
eieio-instance-inheritor
-
See ede-compilation-program.
-
ede-linker
- No children
Create a new object with name NAME of class type ede-linker
- Slots:
-
:parent-instance
- Type:
eieio-instance-inheritor
The parent of this instance.
If a slot of this class is reference, and is unbound, then the parent
is checked for a value.
:name
- Type:
string
Name of this type of compiler.
:variables
- Type:
list
Variables needed in the Makefile for this compiler.
An assoc list where each element is (VARNAME . VALUE) where VARNAME
is a string, and VALUE is either a string, or a list of strings.
For example, GCC would define CC=gcc, and emacs would define EMACS=emacs.
:sourcetype
- Type:
list
A list of ede-sourcecode See ede-sourcecode. objects this class will handle.
This is used to match target objects with the compilers and linkers
they can use, and which files this object is interested in.
:commands
- Type:
list
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
:objectextention
- Type:
string
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
Specialized Methods
| initialize-instance :AFTER this &rest fields
|
Method |
Make sure that all ede compiler objects are cached in
ede-linker-list.
|