Add .info extension to @setfilename commands in doc/
[bpt/emacs.git] / doc / misc / ede.texi
index 16c70a5..c61a32c 100644 (file)
@@ -1,5 +1,5 @@
 \input texinfo
-@setfilename ../../info/ede
+@setfilename ../../info/ede.info
 @settitle Emacs Development Environment
 @documentencoding UTF-8
 
@@ -13,7 +13,7 @@ Free Software Foundation, Inc.
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
 any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
 and with the Back-Cover Texts as in (a) below.  A copy of the license
 is included in the section entitled ``GNU Free Documentation License.''
 
@@ -598,17 +598,6 @@ the format is an association list.  For example:
                          (compile-command . "make -f MyCustomMakefile all")))
 @end example
 
-The same is true when you use project-local variables with
-@ref{ede-java-root}.  For example:
-
-@example
-(ede-java-root-project "SOMENAME"
-                       :file "/dir/to/some/file"
-                       :local-variables
-                       '((grep-command . "grep -nHi -e ")
-                         (compile-command . "ant")))
-@end example
-
 @node EDE Project Features,  , Project Local Variables, Modifying your project
 @section EDE Project Features
 
@@ -724,12 +713,10 @@ To activate the speedbar in this mode, type @kbd{C-c . s}
 @menu
 * Make and Automake projects::  Project types of @samp{ede-project}
 * Automake direct projects::    Project interface on hand-written automake files.
-* Android projects::            Projects for Android development
-* Arduino projects::            Projects for Arduino sketches
 * Simple projects::             Projects @ede{} doesn't manage.
 @end menu
 
-@node Make and Automake projects
+@node Make and Automake projects, Automake direct projects, Miscellaneous commands, Miscellaneous commands
 @section Make and Automake projects
 
 A project of @samp{ede-project} type creates a file called
@@ -741,7 +728,7 @@ in @samp{Makefile} mode, then this project will autogenerate a
 routines will also import and maintain a configure.am script and a
 host of other files required by Automake.
 
-@node Automake direct projects
+@node Automake direct projects, Simple projects, Make and Automake projects, Miscellaneous commands
 @section Automake direct projects
 
 The project type that reads @file{Makefile.am} directly is derived
@@ -751,39 +738,7 @@ distributed independently.  This mode eventually became @ede{}.  The
 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 Android projects
-@section Android projects
-
-An Android project of type @samp{ede-android-project} will detect and
-support development of Android apps.  Android projects use an
-@file{AndroidManifest.xml} file.  Always load your Manifest first in a
-running Emacs to make sure the project is identified correctly.
-
-Android projects can be created with @code{ede-new} but depend on a
-correctly configured Android SDK via @cedet{} support.
-
-@defun cedet-android-sdk-root
-@anchor{cedet-android-sdk-root}
-The root to the Android @var{SDK}.
-@end defun
-
-Android projects support different configurations including compile,
-and install, which will upload a program to your Android device.  It
-also supports several debugging tools via @file{android.el}.
-
-@node Arduino projects
-@section Arduino projects
-
-An arduino project of type @samp{ede-arduino-project} will read your
-@file{~/.arduino/preferences.txt} file, and identify your sketches.
-You will still need the Arduino IDE to set up your preferences and
-locate your arduino.  After quitting the IDE, Emacs will be able to
-find your sketches, compile them, and upload them to your arduino.
-
-If you have the @file{arduino} command on your path, @ede{} will be
-able to find your SDK and compile your programs.
-
-@node Simple projects
+@node Simple projects,  , Automake direct projects, Miscellaneous commands
 @section Simple Projects
 
 There is a wide array of simple projects.  In this case a simple
@@ -795,14 +750,13 @@ belonging to a project, but doesn't provide many features of a typical
 
 @menu
 * ede-cpp-root::                This project marks the root of a C/C++ code project.
-* ede-java-root::               This project marks the root of a Java project.
 * ede-emacs::                   A project for working with Emacs.
 * ede-linux::                   A project for working with Linux kernels.
 * ede-generic-project::         A project type for wrapping build systems with EDE.
 * Custom Locate::               Customizing how to locate files in a simple project
 @end menu
 
-@node ede-cpp-root, ede-java-root, Simple projects, Simple projects
+@node ede-cpp-root, ede-emacs, Simple projects, Simple projects
 @subsection ede-cpp-root
 
 The @code{ede-cpp-root} project type allows you to create a single
@@ -838,6 +792,7 @@ override the default include path and system include path like this:
 (ede-cpp-root-project "NAME" :file "FILENAME"
     :include-path '( "/include" "../include" "/c/include" )
     :system-include-path '( "/usr/include/c++/3.2.2/" )
+    :compile-command "make compile"
     :spp-table '( ("MOOSE" . "")
                   ("CONST" . "const") ) )
 @end example
@@ -855,6 +810,9 @@ The @code{:system-include-path} allows you to specify full directory
 names to include directories where system header files can be found.
 These will be applied to files in this project only.
 
+With @code{:compile-command} you can provide a command which should be
+run when calling @code{ede-compile-project}.
+
 The @code{:spp-table} provides a list of project specific #define
 style macros that are unique to this project, passed in to the
 compiler on the command line, or are in special headers.
@@ -939,90 +897,7 @@ of project.
 @xref{ede-cpp-root-project}, for details about the class that defines
 the @code{ede-cpp-root} project type.
 
-@node ede-java-root, ede-emacs, ede-cpp-root, Simple projects
-@subsection ede-java-root
-
-Much like the project type @ref{ede-cpp-root}, the java variant is
-can be setup in your @file{.emacs} file and just marks a directory as
-the root of a java source tree.
-
-The @code{ede-java-root} project class knows a few things about Java
-projects.  In particular, you can use it to control your classpath at
-both the system level, and for your project.  If it is insufficient,
-you can subclass @code{ede-java-root-project} and add your own tweaks
-in just a few lines.  See @ref{ede-cpp-root} for an example using the
-C++ variant.
-
-In the most basic case, add this to your @file{.emacs} file, modifying
-appropriate bits as needed.
-
-@example
-(ede-java-root-project "SOMENAME" :file "/dir/to/some/file" :srcroot '("src"))
-@end example
-
-Replace @var{SOMENAME} with whatever name you want, and the filename
-to an actual file at the root of your project.  It might be a
-Makefile, a README file.  Whatever.  It doesn't matter.  It's just a
-key to hang the rest of @ede{} off of.
-
-Replace the value of :srcroot with a list of directories under the
-project root which contains Java sources.  For example, if you have:
-
-@example
-~/myprojects/P1/
-~/myprojects/P1/src/
-~/myprojects/P1/src/com/ericsoft/MyCode.java
-~/myprojects/P1/doc/
-@end example
-
-Then @file{src} represents the directory under which all your Java
-code is.  It is important that @file{src} is one step above the
-directory that is the base of your package name, such as
-@file{com/ericsoft} in the example above so that new files can be
-discovered via fully qualified name.  You can have multiple such
-directories in one project, and each will be accessible.
-
-You can specify your classpath like this:
-
-@example
-(ede-java-root-project "NAME" :file "FILENAME"
-    :srcroot '("src")
-    :classpath '("/absolute/path.jar")
-    :localclasspath '( "/relative/path.jar" ))
-@end example
-
-In this example, @code{:classpath} specifies absolute paths somewhere
-on your system, and the explicit jar or source root directories
-@semantic{} will search when performing completions.
-
-The @code{:localclasspath} is like @code{:classpath}, but it will
-contain path names relative to the root of your project.
-
-If you want to override the file-finding tool with your own
-function you can do this:
-
-@example
-(ede-java-root-project "NAME" :file "FILENAME" :locate-fcn 'MYFCN)
-@end example
-
-Where @var{MYFCN} is a symbol for a function.  The locate function can
-be used in place of @code{ede-expand-filename} so you can quickly
-customize your custom target to use specialized local routines instead
-of the default @ede{} routines.  The function symbol must take two
-arguments:
-
-@table @var
-@item NAME
-The name of the file to find.
-@item DIR
-The directory root for this java-root project.
-@end table
-
-If you would like to create your Java projects dynamically, instead of
-putting them all in your @file{.emacs}, you can do that too.  See
-@ref{ede-cpp-root} for details that can be applied to this project type.
-
-@node ede-emacs, ede-linux, ede-java-root, Simple projects
+@node ede-emacs, ede-linux, ede-cpp-root, Simple projects
 @subsection ede-emacs
 
 The @code{ede-emacs} project automatically identifies an Emacs source
@@ -1040,6 +915,12 @@ Kernel source tree, and enable EDE project mode for it.
 It pre-populates the C Preprocessor symbol map for reasonable parsing,
 and has an optimized include file identification function.
 
+Through the variables @code{project-linux-build-directory-default} and
+@code{project-linux-architecture-default}, you can set the build
+directory and its architecture, respectively.  The default is to assume that
+the build happens in the source directory and to auto-detect the
+architecture; if the auto-detection fails, you will be asked.
+
 @node ede-generic-project, Custom Locate, ede-linux, Simple projects
 @subsection ede-generic-project
 
@@ -1319,7 +1200,7 @@ until one of them returns true.  The method
 from the autoload.  If it is a string (i.e., a project file name), it
 checks to see if that exists in BUFFER's directory.  If it is a
 function, then it calls that function and expects it to return a file
-name or nil.  If the file exists, then this directory is assumed to be
+name or @code{nil}.  If the file exists, then this directory is assumed to be
 part of a project, and @code{ede-directory-project-p} returns the
 instance of @code{ede-project-autoload} that matched.
 
@@ -1394,11 +1275,11 @@ Return a string that is the name of the target used by a Make system.
 A brief description of the project or target.  This is currently used
 by the @samp{ede-speedbar} interface.
 @item ede-want-file-p
-Return non-nil if a target will accept a given file.
+Return non-@code{nil} if a target will accept a given file.
 It is generally unnecessary to override this.  See the section on source
 code.
 @item ede-buffer-mine
-Return non-nil if a buffer belongs to this target.  Used during
+Return non-@code{nil} if a buffer belongs to this target.  Used during
 association when a file is loaded.  It is generally unnecessary to
 override this unless you keep auxiliary files.
 @end table
@@ -1733,7 +1614,7 @@ Provide a speedbar description for @var{OBJ}.
 @end deffn
 
 @deffn Method ede-map-any-target-p :AFTER this proc
-For project @var{THIS}, map @var{PROC} to all targets and return if any non-nil.
+For project @var{THIS}, map @var{PROC} to all targets and return if any non-@code{nil}.
 Return the first non-@code{nil} value returned by @var{PROC}.
 @end deffn
 
@@ -1887,7 +1768,7 @@ If @var{TARGET} belongs to a subproject, return that project file.
 @end deffn
 
 @deffn Method ede-find-target :AFTER proj buffer
-Fetch the target in @var{PROJ} belonging to @var{BUFFER} or nil.
+Fetch the target in @var{PROJ} belonging to @var{BUFFER} or @code{nil}.
 @end deffn
 
 @deffn Method ede-add-subproject :AFTER proj-a proj-b
@@ -2003,8 +1884,8 @@ The function symbol must take two arguments:
   NAME - The name of the file to find.
   DIR - The directory root for this cpp-root project.
 
-It should return the fully qualified file name passed in from NAME@.  If that file does not
-exist, it should return nil.
+It should return the fully qualified file name passed in from NAME@.
+If that file does not exist, it should return @code{nil}.
 
 @end table
 
@@ -2166,7 +2047,7 @@ Default Value: @code{nil}
 Non-@code{nil} if this is a metasubproject.
 Usually, a subproject is determined by a parent project.  If multiple top level
 projects are grouped into a large project not maintained by EDE, then you need
-to set this to non-nil.  The only effect is that the @code{dist} rule will then avoid
+to set this to non-@code{nil}.  The only effect is that the @code{dist} rule will then avoid
 making a tar file.
 
 @end table
@@ -2400,7 +2281,7 @@ Default Value: @code{nil}
 Non-@code{nil} if this is a metasubproject.
 Usually, a subproject is determined by a parent project.  If multiple top level
 projects are grouped into a large project not maintained by EDE, then you need
-to set this to non-nil.  The only effect is that the @code{dist} rule will then avoid
+to set this to non-@code{nil}.  The only effect is that the @code{dist} rule will then avoid
 making a tar file.
 
 @end table
@@ -4395,7 +4276,7 @@ For example, C code uses .o on unix, and Emacs Lisp uses .elc.
 @end table
 @end table
 
-@node GNU Free Documentation License, , Extending EDE, Top
+@node GNU Free Documentation License,  , Extending EDE, Top
 @appendix GNU Free Documentation License
 @include doclicense.texi