CVS update by michaels packages/xemacs-packages/ede ChangeLog
ChangeLog.upstream
xemacs-cvs at xemacs.org
xemacs-cvs at xemacs.org
Mon Nov 26 10:22:48 EST 2007
User: michaels
Date: 07/11/26 16:22:46
Added: packages/xemacs-packages/ede ChangeLog ChangeLog.upstream
Makefile Makefile.upstream Project.ede README
autoconf-compat.el autoconf-edit.el
ede-compilers.texi ede-dired.el ede-load.el
ede-loaddefs.el ede-pconf.el ede-pmake.el
ede-proj-archive.el ede-proj-aux.el
ede-proj-comp.el ede-proj-comp.el.upstream
ede-proj-elisp.el ede-proj-info.el ede-proj-misc.el
ede-proj-obj.el ede-proj-prog.el ede-proj-scheme.el
ede-proj-shared.el ede-proj-skel.el ede-proj.el
ede-projects.texi ede-simple.el
ede-simple.el.upstream ede-source.el
ede-sourcecode.texi ede-speedbar.el ede-system.el
ede-targets.texi ede-util.el ede.el ede.el.upstream
ede.texi package-info.in project-am.el
Log:
Import ede from CEDET 1.0pre4.
Revision Changes Path
1.1 XEmacs/packages/xemacs-packages/ede/ChangeLog
Index: ChangeLog
===================================================================
2007-11-18 Mike Sperber <mike at xemacs.org>
* ede-simple.el (ede-project-class-files): Add excessive autoload.
* ede.el: Comment out (require 'ede-load).
* ede-proj-comp.el (ede-proj-comp): Move the `provide' form to the
beginning to break circular dependency.
* Makefile (AUTHOR_VERSION): Impor from CEDET 1.0pre4.
1.1 XEmacs/packages/xemacs-packages/ede/ChangeLog.upstream
Index: ChangeLog.upstream
===================================================================
2007-06-06 Eric M. Ludlam <zappo at gnu.org>
* Makefile (VERSION): Regress version to prerelease 4.
* Project.ede ("EDE"): Regress to prerelease 4
* ede.el (ede-version): Regress to prerelease 4
2007-06-04 Eric M. Ludlam <zappo at gnu.org>
* Project.ede ("ede"): New dependency.
* ede-simple.el (cedet-files): New require.
* ede.el (ede-load): Move load location
(ede-project-autoload): autoload cookie.
* Makefile (ede_LISP): Added ede-simple.el
* ede-simple.el: Simple wrapper project.
* Project.ede ("EDE"): Add ede-simple.el
* ede.el (ede-new):
Allow proj-file slot to be a string (filename) or a fcn.
2007-06-02 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-project-autoload::ede-dir-to-projectfile):
Make sure DIR ends in
a /.
2007-04-03 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-load-cache): Flush missing directories from the cache.
2007-03-18 Eric M. Ludlam <zappo at gnu.org>
* Makefile (LOADPATH): Tidier.
* ede-proj-elisp.el (ede-proj-makefile-insert-loadpath-items): New fcn.
(ede-proj-target-elisp::ede-proj-makefile-insert-variables): Use
above to strip out duplicates.
* ede-proj-comp.el (edebug-setup-hook):
Added `ede-pmake-insert-variable-shared'.
2007-03-12 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: (project-am-texinfo::ede-documentation):
Cause all returned file names to be fully expanded.
* ede-proj-info.el: (ede-proj-target-makefile-info::ede-documentation):
Cause all returned file names to be fully expanded.
2007-03-11 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-info.el: (ede-makeinfo-find-info-filename):
Use get-file-buffer before find-file-noselect.
2007-03-10 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-aux.el (ede-aux-source): Fix doc string.
2007-02-27 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-up-directory): Match lower case drive letters.
2007-02-21 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-add-file): Add error messages of the add failed.
2007-02-19 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el (ede-find-nearest-file-line): Use string-to-number.
* ede-proj.el (ede-proj-load): Use `insert-file-contents'.
* ede-pmake.el (ede-proj-project::ede-proj-makefile-create):
Don't use `beginning-of-buffer'.
* ede.el (ede-documentation-files): Add autoload cookie.
* autoconf-compat.el (font-lock): Add require to fix byte-comp issues
2007-02-18 Eric M. Ludlam <zappo at gnu.org>
* ede.el: (ede-project::ede-expand-filename, ede-load-project-file):
Handle erroneous data in project or directory lists.
From project-am.el use.
2007-02-08 Eric M. Ludlam <zappo at gnu.org>
* project-am.el (project-am-load-makefile):
Move project rescaning to after setting of
ede-object to prevent recursion.
2006-02-08 Eric M. Ludlam <zappo at gnu.org>
* Project.ede (:version): updated (removed means 1.0)
* Makefile (VERSION): updated
* ede.el (ede-version): Updated
2005-09-30 Eric M. Ludlam <zappo at gnu.org>
* project-am.el, ede-util.el, ede-system.el, ede-speedbar.el, ede-source.el, ede-proj-skel.el, ede-proj-shared.el, ede-proj-scheme.el, ede-proj-prog.el, ede-proj-obj.el, ede-proj-misc.el, ede-proj-info.el, ede-proj-elisp.el, ede-proj.el, ede-proj-comp.el, ede-proj-aux.el, ede-proj-archive.el, ede-pmake.el, ede-pconf.el, ede-load.el, ede.el, ede-dired.el, autoconf-edit.el, autoconf-compat.el:
Update all GPL headers with script from savannah.gnu.org.
2005-09-29 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-up-directory):
Account for MS Windows style drive letters.
2005-06-30 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-version): Updated.
* Project.ede (:version): Updated.
* Makefile (VERSION): Updated.
2005-05-20 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-new): Force Project menu to appear on creation.
* ede-pmake.el (ede-proj-makefile-configuration-variables): New method.
(ede-proj-makefile-insert-variables): Insert configuration variables.
* ede.texi (top): Updated menu
(EDE Project Concepts): New section
(EDE Mode}: Tidied text.
(Creating a project): Tidied text.
(Building and Debugging): Tidied text.
(Modifying your project): Added sections. Cleaned up text.
Added section on modifying a Project.ede specific features.
(Extending EDE): Added subsections. Clarified some text.
(Compiler and Linker objects): New subsection with more info.
2005-05-06 Eric M. Ludlam <zappo at gnu.org>
* Project.ede ("EDE"): Update version number
* Makefile (VERSION): Update version number
(misc_AUX): Add ChangeLog
(autoloads, init, ede, aux-lisp): Add quotes around EMACS.
* ede-proj-elisp.el (ede-emacs-compiler): Add quotes around EMACS.
(ede-emacs-cedet-autogen-compiler): Add quotes around EMACS.
* ede.el (ede-version): Update version number
2005-04-30 Eric M. Ludlam <zappo at gnu.org>
* Project.ede: Add ChangeLog
* ede-proj-prog.el (ede-proj-target-makefile-program):
Add notes about variables only
used in automake right now.
* project-am.el: Requires specify .el files to prevent build problems.
2005-04-24 Eric M. Ludlam <zappo at gnu.org>
* Makefile (misc_AUX): Add ChangeLog
* Project.ede (misc): Add ChangeLog file.
2005-04-22 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-new): Pay attention to project-autoload initializers.
2005-04-20 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-prog.el (ede-proj-makefile-insert-automake-post-variables):
Comment out code
that was apparently never finished.
* ede-proj-comp.el (ede-proj-tweak-autoconf): Fix paren error.
* ede-pconf.el (ede-proj-configure-synchronize):
Fix calls to ede-map-targets.
2005-04-19 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-version): Update version number.
* Makefile (VERSION): Updated.
* Project.ede ("EDE"): Update version number.
* ede-util.el (ede-update-version):
Don't do work if the version did not change.
2005-04-15 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el (ede-proj-makefile-insert-variables):
Do not call next :AFTER method.
EIEIO is now fixed so this is automatic.
2005-04-06 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-obj.el (ede-g++-linker, ede-ld-linker):
Fixed problem with duplicate $^.
2005-02-20 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el (ede-file-find):
Make sure we possibly jump to the frame after finding
the file.
2005-02-03 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-version): Updated version number
* Makefile (VERSION): Updated version number
* Project.ede (EDE): Updated version number
2005-01-12 Eric M. Ludlam <zappo at gnu.org>
* Makefile (Makefile): Move @false command to next line.
* ede.texi (Creating a project): Add menu reference.
* ede.el (ede-minor-mode): update doc string.
2004-12-15 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el (ede-proj-makefile-create):
Ask before whacking a Makefile.
2004-06-24 David Ponce <david at dponce.com>
* ede-pmake.el (ede-proj-makefile-insert-dist-rules):
Fix shell quote and missing
new line.
2004-06-22 David Ponce <david at dponce.com>
* ede-pmake.el (ede-proj-makefile-insert-dist-rules):
Fix missing space in echo
message.
2004-04-11 Eric M. Ludlam <zappo at gnu.org>
* Makefile (dist): Add autoloads
* ede-proj-elisp.el: (ede-proj-makefile-insert-dist-dependencies)
(ede-proj-makefile-insert-dist-filepatterns):
New methods. Include the generated file into the distribution.
* ede-pmake.el (ede-proj-makefile-insert-dist-rules):
When inserting distribution
files, include special distribution files even if there is not
sourcevar to include.
2004-04-06 Eric M. Ludlam <zappo at gnu.org>
* Makefile (dist): Distribute the autoload file
* ede-proj-elisp.el: (ede-proj-makefile-insert-dist-dependencies)
(ede-proj-makefile-insert-dist-filepatterns):
New methods. Include the generated file into the distribution.
* ede-pmake.el (ede-proj-makefile-insert-dist-rules):
When inserting distribution
files, include special distribution files even if there is not
sourcevar to include.
2004-03-30 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-info.el (ede-makeinfo-source): Fix :garbagepattern.
(ede-makeinfo-find-info-filename): New function.
(ede-proj-makefile-target-name): Use it.
* Makefile (clean): Update info garbage pattern.
* ede-proj-info.el (ede-makeinfo-source): update info garbage pattern
(ede-makeinfo-find-info-filename): new fcn
(ede-proj-makefile-target-name): Use above
(ede-proj-makefile-insert-dist-filepatterns): Remove previous modification.
* ede-proj-info.el: (ede-proj-makefile-insert-dist-filepatterns):
Use $(wildcard ...) to expand the "*" in info names.
2004-03-28 Eric M. Ludlam <zappo at gnu.org>
* Makefile: Updated all rules with latest autogenerated code.
2004-03-27 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-comp.el (ede-makefile-rule): Doc update
(ede-proj-makefile-insert-commands): Enable lambda expressions
to be added to compiler command lists.
2004-02-29 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el: (ede-proj-makefile-insert-dist-rules):
Add more data to help users get past out of date Makefiles.
* README: Revamped. We are a part of a CEDET install now.
2004-02-22 Eric M. Ludlam <zappo at gnu.org>
* autoconf-compat.el (autoconf-mode): remove autoload cookie.
2004-01-19 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el (ede-buffer-mine::ede-proj-target-elisp):
New method.
2004-01-08 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-info.el (ede-makeinfo-compiler):
No need to specify output file.
2003-12-22 Eric M. Ludlam <zappo at gnu.org>
* Makefile (dist): Do not dist loaddefs.
* ede-proj-elisp.el:
(ede-emacs-compiler, ede-emacs-cedet-autogen-compiler):
Add --no-site-file to list of arguments.
(ede-proj-makefile-sourcevar:ede-proj-target-elisp-autoloads):
Do not specify sourcevar as LOADDEFS.
(project-compile-target:ede-proj-target-elisp-autoloads): Doc fix
2003-10-02 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el (ede-proj-makefile-insert-dist-rules):
Enable meta-subprojects.
(ede-proj-makefile-tags): Call subprojects for tag creation w/ MFLAGS.
* ede-proj.el (ede-proj-project):
Add `automatic-dependencies' to the `settings' group.
Add `metasubproject' field.
* Project.ede: Now a meta-subproject.
* Makefile (dist): Remove local creation of tar file.
2003-09-24 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el (ede-proj-makefile-insert-dist-rules):
Add comment to remind me to
let the Makefile rebuild itself.
2003-09-18 David Ponce <david at dponce.com>
* Makefile: Re-generated.
* Project.ede (init): New target.
2003-09-17 David Ponce <david at dponce.com>
* ede-speedbar.el: Fix typo.
* ede.el (ede-load): Require it. No more load ede-loaddefs.
* ede-load.el: New file.
2003-09-16 David Ponce <david at dponce.com>
* ede-proj-elisp.el (ede-proj-makefile-dependencies):
New method for class
ede-proj-target-elisp-autoloads.
* Makefile: Re-generated.
* ede-proj-elisp.el (ede-emacs-cedet-autogen-compiler):
Use $(LOADDEFS) instead of
"$@" in compiler's commands.
(ede-proj-makefile-target-name): Remove specialized method from
class ede-proj-target-elisp-autoloads.
2003-09-11 David Ponce <david at dponce.com>
* Makefile: Re-generated.
* Project.ede:
Fix problem with "aux" file name which is a reserved device file
name on Windows.
(aux target): Rename to "misc".
(aux.lisp target): Rename to "aux-lisp".
2003-09-10 David Ponce <david at dponce.com>
* Makefile: Re-generated.
* ede-proj-elisp.el (ede-proj-target-elisp-autoloads):
Add autoload-dirs slot.
(ede-emacs-cedet-autogen-compiler): Use $(LOADDIRS) instead of "."
in compiler's commands.
(ede-proj-makefile-insert-variables): Method of class
ede-proj-target-elisp-autoloads creates the LOADDIRS variable
definition.
2003-09-06 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el (auto-mode-alist): Autoload cookie.
* ede.el (ede-minor-mode): Make interactive.
Do not enable ede unless there is a project, or we are called
interactively.
* ede-dired.el (ede-dired-minor-mode):
Do not enable the minor mode if there is no
project, unless we were called interactively.
2003-09-04 Eric M. Ludlam <zappo at gnu.org>
* Makefile: Makefile for EDE.
* Project.ede ("ede"): Re-arranged source list to compile better
* ede-system.el (ede-upload-html-documentation):
Comment out non-existent function.
* ede-speedbar.el (ede): Don't require this anymore.
* ede-proj.el (ede-proj-target-elisp-autoloads): new autoload
(ede-proj-target-alist): Added above
(ede-proj-compilers): Make robust to single compiler.
* ede-pmake.el (ede-pmake-varname): add autoload cookie
* ede.el ("ede-loaddefs"): New load
(project-compile-project)
(project-compile-target)
(project-make-dist)
(ede-name)
(ede-description)
(ede-load-project-file)
(ede-parent-project)
(ede-target-parent): autoload cookies
* ede-proj-elisp.el (ede-proj-target-elisp): Added XEmacs compiler
(ede-xemacs-compiler): new
(ede-proj-target-elisp-autoloads): New class
(ede-emacs-cedet-autogen-compiler): New variable
(ede-proj-makefile-target-name)
(ede-proj-compilers)
(ede-proj-makefile-insert-source-variables)
(ede-proj-makefile-sourcevar)
(ede-proj-makefile-insert-variables)
(project-compile-target)
(ede-update-version-in-source)
(ede-proj-tweak-autoconf)
(ede-proj-flush-autoconf): new methods on ede-proj-target-elisp-autoloads
2003-08-25 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el (ede-proj-project):
Add include-file as a Makefile option.
2003-08-24 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-up-directory):
Updated to make sure there is a / at the end of
the returned file.
2003-08-17 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el (ede-proj-makefile-insert-variables):
Use 'identity.
* ede-pmake.el (ede-proj-makefile-create): Improved some comments
(ede-pmake-end-of-variable): New fcn from below w/ fixes.
(ede-pmake-insert-variable-shared): Use above.
2003-07-23 Eric M. Ludlam <zappo at gnu.org>
* ede.el (global-ede-mode): Remove some CVS conflict markers.
2003-04-14 Eric M. Ludlam <zappo at gnu.org>
* project-am.el (project-am-load): Do not register this project.
It happens in EDE already.
2003-02-22 David Ponce <david at dponce.com>
* ede-speedbar.el (ede-file-find): Replaced `speedbar-line-path' with
`speedbar-line-directory' used since speedbar 0.15.
2003-02-06 David Ponce <david at dponce.com>
* ede.el (global-ede-mode):
Use `semanticdb-project-predicate-functions'
hook too.
2003-01-29 Eric M. Ludlam <zappo at gnu.org>
* Project.ede (ede): Change order of target dependencies.
* ede-proj-elisp.el (ede-proj-target-elisp):
Declair this target as being phony.
* ede-proj.el (ede-proj-target): Add `phony' class allocated slot.
* ede-pmake.el (ede-proj-makefile-create):
Create build targets for sub projects.
(ede-proj-makefile-insert-subproj-rules): New method.
(ede-proj-makefile-insert-rules): If a rule classifies itself as
phony, add phony rule.
(ede-proj-makefile-dependencies): Add auxilliary source to the
dependency list.
2003-01-28 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-load-project-file): Removed unused variable.
2003-01-22 David Ponce <david at dponce.com>
* ede.el (ede-version): Fixed to be compatible with inversion decoder.
* Project.ede (ede-proj-project "EDE"): Fixed :version string to be
compatible with inversion decoder.
2002-12-23 Richard Y. Kim <ryk at ap.com>
* ede-proj.el:
Surrounded (require 'ede) with eval-and-compile. Without this fix, byte-compiled file is truncated after only one line of code!
2002-11-28 David Ponce <david at dponce.com>
* ede-proj-elisp.el (ede-proj-elisp-packages-to-loadpath):
Produce paths relative to
`default-directory'.
2002-03-23 Eric M. Ludlam <zappo at gnu.org>
* ede-system.el (ede-upload-distribution):
Fix upload file to be complete.
* ede-proj-elisp.el (ede-emacs-compiler): Fixed up build line.
2002-02-06 Eric M. Ludlam <zappo at gnu.org>
* README: Added some TRAMP stuff.
2001-12-05 Eric M. Ludlam <zappo at gnu.org>
* Project.ede: Version update
Web info added.
* ede-system.el (ede-upload-distribution): Handle TRAMP filenames.
(ede-edit-web-page): New fcn
(ede-upload-html-documentation): New fcn
* ede-speedbar.el (ede-speedbar-make-map):
SPC toggles open/closed state.
* ede-proj.el (project-make-dist): Query before bashing old tar file.
(project-dist-files): Comment.
* ede-pmake.el (ede-proj-makefile-create):
DISTDIR now includes subproject directories.
(ede-proj-makefile-insert-variables): Specify a top variable.
(ede-proj-makefile-insert-dist-rules): Pass down DISTDIR.
(ede-proj-makefile-tags): Specify extra newlines.
* ede.el (ede-version): Update version
2001-09-12 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-project): Added web-site file/directory slots.
Added new menu item to edit the home page.
(ede-html-documentation-files, ede-html-documentation): New fns
: Added autoloads for web site editing functions in ede-system.
2001-06-03 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-auto-add-method): Doc fix
(ede-project-placeholder-cache-file, ede-project-cache-files): New veriables.
(ede-save-cache, ede-load-cache): New functions.
(kill-emacs-hook): Add `ede-save-cache',
Load cache at load time.
(ede-subproject-relative-path: ede-project): New method
(ede-subproject-p: ede-project): New method.
(ede-load-project-file): Remove files from project cache.
(ede-parent-project): Fix to work well with subprojects.
* ede-pmake.el:
(ede-proj-makefile-insert-dist-rules: ede-proj-project):
Enable the makefile to build a dist across subdirectories.
* ede-proj.el (ede-proj-dist-makefile):
Return full paths to the makefiles we are
building.
(ede-proj-setup-buildenvironment): Build all subproject makefiles also.
(project-rescan): Use `object-of-class' instead of `obj-of-class'.
2001-05-31 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el (ede-emacs-compiler): Added ; to end of loop.
(ede-proj-makefile-insert-variables): Make LOADPATH a shared variable
so that we don't replicate it's value over and over.
* ede-pmake.el (ede-pmake-insert-variable-shared):
Don't add a space in front of
additions to an existing variable unless the preceeding character is
not a space or =.
2001-05-20 Eric M. Ludlam <zappo at gnu.org>
* Project.ede: New file.
New URL type stuff.
* ede-system.el: New File.
* ede-proj.el (ede-proj-project):
Removed duplicate menu items. Added upload-distribution.
(defmethod-dist-files:ede-proj-project): New method.
* ede.el (ede-project):
Added slots `web-site-url',`ftp-site', and `ftp-upload-site'
Added new menu item to browse a project's url and a separator.
(ede-project-forms-menu): Scan backwords through class hierarchy to
get all the menu items that need to be used.
(project-dist-files): New method.
2001-05-19 Eric M. Ludlam <zappo at gnu.org>
* Project.ede: Removed ede-emacs.el.
* ede-proj-prog.el, ede-proj.el, ede-proj-comp.el, ede-pmake.el:
Fixed uses of `with-slots' to CLOS behavior.
2001-05-14 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el: Always add loadpath to the list of variables.
* ede-proj-misc.el (ede-proj-makefile-dependency-files):
Do not return empty string.
2001-05-09 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Fixed up the targets menu
2001-05-07 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Added support for ECB directory paths.
2001-04-30 Eric M. Ludlam <zappo at gnu.org>
* ede.el (ede-toplevel-project-or-nil): new fcn
(ede-minor-mode): Use above fcn in `semanticdb-project-root-functions'.
(ede-up-directory): New implementation (Richard Kim)
(ede-toplevel-project): Expand input file name.
2001-04-27 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el: Fixed compile warnings in compile-file-project.
* ede.el: Fixed the turn on hook for Emacs21 for dired mode.
Fixed `ede-up-directory' to hopefully be more platform independent.
Fixed up sourcecode finding function.
* ede.texi: Fixed the title and copyright.
* ede-speedbar.el:
Added an option to compile a target from the speedbar menu.
* ede-proj-skel.el: Fixed a URL.
* ede-targets.texi, ede-sourcecode.texi, ede-projects.texi, ede-compilers.texi:
Updated the documentation
* ede-proj-info.el: Added a new compiler type (texi2html)
Added html as a garbage pattern.
Fixed the makeinfo command to use the variable for makeinfo.
Add generated info files into the distribution.
* ede-proj-elisp.el:
Makefile generation code fixed to be more platform independent.
* ede-proj-archive.el (ede-gcc-archive-compiler):
Removed link variables, and fix command.
* ede-pmake.el: Changed URL in comments.
Added items to allow insertion of generated files into a dist.
2001-04-04 Eric M. Ludlam <zappo at gnu.org>
* ede-sourcecode.texi, ede-compilers.texi, ede-projects.texi, ede-targets.texi:
*** empty log message ***
2001-01-31 Eric M. Ludlam <zappo at gnu.org>
* Project.ede: Project file for EDE
2001-01-25 Eric M. Ludlam <zappo at gnu.org>
* ede.el:
Added `ede-directory-project-p' to `semanticdb-project-predicates' in
`global-ede-mode'.
2001-01-24 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Fixed doc bug.
2001-01-10 Eric M. Ludlam <zappo at gnu.org>
* ede.texi: Updated compiler object section.
Added some doc on the linker class.
* ede.el: Added `ede-turn-on-hook' fcn.
Account for vc-dired-mode in Emacs 21.
Everyone hook that used to call `ede-minor-mode' now calls `ede-turn-on-hook'.
Autoload in `ede-update-version' from the `ede-util' file.
* ede-source.el: Sourcecode object is now an instance inheritor.
* ede-proj.el: Added a menu bit to the project, with defaults.
Added `ede-want-file-auxiliary-p' method to targets.
* ede-proj-skel.el: Doc Fix.
* ede-proj-shared.el: Try to fix some linking bits. Needs more work.
* ede-proj-elisp.el:
Use instance inheriting compiler class instead of making our own.
Fix Makefile generation to include LOADPATH variable use all the time.
Removed crufty bits from prev fix.
* ede-proj-comp.el:
Compiler objects now inherit from instance inheritor.
* ede-pmake.el: Use ede-map-targets in place of mapc.
* ede-pconf.el:
Use ede-map-targets in place of mapc, and `ede-map-any-target-p' in
place of `ede-or' and a mapcar.
* ede-dired.el: Account for vc-dired-mode in emacs 21.
2000-11-18 Eric M. Ludlam <zappo at gnu.org>
* ede-util.el:
Fixed `ede-update-version-in-source' to handle lists of files.
Added `ede-make-buffer-writable'.
2000-10-23 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Removed all version updating stuff to ede-tul.el
Added `ede-map-any-target-p'.
* ede-util.el: New file.
2000-10-21 Eric M. Ludlam <zappo at gnu.org>
* ede.el:
Added `versionsource', a way to let EDE auto-update source files with
version numbers in them.
Fixed up some of the menu generating code.
Added some ^L
* ede-proj-elisp.el: Fixed up some details in the compiler.
Added ede-update-version-in-source.
2000-10-14 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el:
Do not display a projects version if it is a child of another project.
* ede-source.el: Added enable-subdirectories slot.
* ede-pconf.el: Mapcar convert to mapc when available.
* ede-pmake.el: mapcar to mapc in many places.
Update rule inserter to include any available linkers.
* ede-proj-comp.el:
Big piles of the new linker object, sharing a common system with
the compiler.
* ede-proj-elisp.el:
Have a special elisp compiler that handles lp (load path) command
insertion. This enables a program with no explicit dependencies
to exclude the addition of them into the compile code.
* ede-proj-obj.el:
Added in linker settings, removed old linker compiler combo.
Removed `headers' slot. Use auxsource.
Removed old crufty command insert for the old compiler class.
Added new crufty command insert for the updated compiler.
Removed old ede-buffer-mine, project-add-file, project-remove-file methods.
* ede-proj.el: Fixed custom for compiler/linker slots.
Updated add-file to use `object-add-to-list', appending to the end,
and for the auxiliary files.
Fixed remove-file to handle aux-source parts.
Updated linker management code.
* ede.el: Fixed the menu to handle lists of objects.
Fixed up the buffer/sourcelist compare function.
Fixed file remove stuff to work with subdirs.
* ede-dired.el:
Rearranged the menu to better conform with ede-minor-mode's menu.
2000-10-11 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Version change.
Do not allow `path' to be customized for targets.
Commented out `takes-compile-command'.
Added default menu items for projects.
Completely revamped the menu to have more auto-generated sub-menus.
Fixed up `ede-target-forms-menu' to include add/delete file.
Added `ede-build-forms-menu' for compilation.
Added `ede-project-forms-menu' for project options.
Added `ede-menu-items-build' method, used by `ede-build-forms-menu'.
When auto-adding a file, offer `new project' in subdirs.
Fixed `ede-convert-path' for targets with path information.
Revamped the loading harness to handle subdirs with no projects,
allowing those sources to be added to a project higher in the tree.
Added new function `ede-target-buffer-in-sourcelist'.
Updated `ede-buffer-mine' to use `ede-target-buffer-in-sourcelist'.
* ede-proj.el: Added linker and availablelinkers slot in classes.
Added `ede-proj-linkers' method.
When saving a project, make sure we get the path from the original,
not the converted path used when saving.
Fix `ede-buffer-mine' for projects to correctly eject path when
looking up the actual project file.
Used `ede-target-buffer-in-sourcelist' when checking for buffer ownership.
Use `ede-convert-path' when adding/removeing sources into targets.
Use `object-add-to-list' and `object-remove-from-list' when
adding/removing sources.
In `ede-proj-makefile-create-maybe' make sure mfilename exists.
* ede-proj-comp.el: Converted some stuff for new `ede-linker' class.
2000-10-05 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el: Added `ede-proj-register-target'.
* ede-proj-skel.el:
Added more comments, and added register target command.
* ede-proj-skel.el:
Fixed a typo and added more comments for want-file-p.
Added `ede-source-%NAME%'. Uncommented sourcetype in the class.
2000-10-04 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Added `ede-new-target-custom', `project-new-target-custom',
and added a :objectcreatefcn to the properties of the repeating object
in slot target.
* ede-proj.el: Added project-new-target-custom.
* ede.el:
Enable universal argument to `customize-project' and `customize-target'
to query the user for a group name with `eieio-read-customization-group'.
2000-10-03 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Added :group, and :label to all appropriate slots.
Added ede-project-placeholder, for a master list of projects.
Stated added in support to use the placeholder.
* ede-proj.el: Fixed some custom-group settings.
Added custom-label to all areas of slots.
2000-10-01 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-comp.el: Fixed bug when variable slot is unbound.
mapcar to mapc for speed in emacs 21.
2000-09-29 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-info.el:
Fixed up target name *again*. Use the file name for the mainmenu.
2000-09-28 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-shared.el, ede-proj-prog.el: Fixed compiler warning.
* ede-proj-archive.el: Fixed compiler warning.
Added compiler for this object.
* ede-pmake.el: Fixed compiler warning.
* ede-proj.el:
Project accepts Makefile and configure scripts as "mine".
* ede-proj-info.el:
Fixed the compiler for info files. Intermediate objects are not created.
* ede-speedbar.el: Changed display mode to "Project".
* ede.texi: Lots and lots of changes.
* ede-proj.el:
When compiling a target, use the method that gets the target
name.
* ede-pmake.el: Use `ede-pmake-varname' to create the _OBJ variable.
2000-09-25 Eric M. Ludlam <zappo at gnu.org>
* ede-pconf.el:
Do not ask questions about reloading Makefile for checking.
* autoconf-edit.el:
Changing the version, and outputs no longer causes configure.in to change.
* ede-proj-info.el: Fixed paren typo.
* ede-proj-shared.el: Fixed type of first var in `-add-missing'.
* ede-proj-info.el:
Fixed `ede-proj-makefile-sourcevar' to use _TEXINFOS, not INFOS.
Added `ede-proj-configure-add-missing' for texinfo.tex.
Added `ede-proj-makefile-insert-source-variables' to do something
special in automake mode (splitting the menu from the rest).
* ede-pmake.el:
Removed crufty variable from ede-proj-makefile-insert-source-variables.
2000-09-24 Eric M. Ludlam <zappo at gnu.org>
* ede-source.el: New file.
* ede.el: Copyright update.
Added version number near version comment.
Updated project code loader to have meta slots. Do not provide
project-am as a create option.
Added `sourcetype' to target.
When adding a file to a target, offer to create a new target.
Provide smarter filtering when asking for a project type.
Let expand filename return something if a file doesn't exist based on param.
Let targets expand file names.
Changed `want-file-p' to look at a target's sourcecode slot.
Updated header finder to use sourcecode objects to derive them.
Added `ede-target-sourcecode' to return the sourcecode a target wants.
Added `ede-or' function.
* ede-proj.el: Copyright update.
Added require `ede-proj-comp'.
Added new slots in `ede-target' called availablecompilers.
Added slot `compiler' in `ede-proj-target-makefile'.
Removed `ede-makefile-rule' class (now in ede-proj-comp)
Removed `ede-want-file-p' for `ede-proj-target'.
Added `ede-proj-compilers', to return the compile set a give target uses.
Checkdoced a bunch of doc strings.
* ede-proj-skel.el:
Updated for lots of new methods. Still needs work though.
* ede-proj-shared.el: Copyright update.
Removed libtool stuff from class.
Added defaults for availablecompilers.
Added `ede-gcc-shared-compiler', `ede-gcc-libtool-shared-compiler',
with some cruft ifed out.
Added `ede-proj-configure-add-missing',
`ede-proj-makefile-insert-automake-pre-variables',
`ede-proj-makefile-insert-automake-post-variables',
`ede-proj-makefile-target-name', and
`ede-proj-makefile-sourcevar (for automake stuff)
* ede-proj-scheme.el: Copyright update.
Removed `ede-want-file-p', now handled elsewhere.
* ede-proj-prog.el: Copyright update.
Added `ede-proj-makefile-insert-automake-pre-variables' and
`ede-proj-makefile-insert-automake-post-variables'.
* ede-proj-obj.el: Copyright update.
Added `ede-proj-objectcode-dependencies' state variable.
Added availablecompilers and sourcetype defaults
Removed garbage-patters, and insert-rules, and `want-file-p' methods.
Added `ede-object-compiler' class inheriting from `ede-compiler'.
Added `ede-source-c', `ede-gcc-compiler', `ede-source-c++',
and `ede-g++-compiler'.
Added methods for `ede-object-compiler' for
`ede-proj-makefile-insert-commands'. and `ede-proj-makefile-insert-variables'
Fixed up all other methods to use new compiler/source objects to
determine how to do things.
Removed logs of custom compile code for C.
* ede-proj-misc.el: Copyright update.
Removed eval-and-compile restriction.
Added availablecompilers and sourcetype defaults
Removed garbage-patters, and insert-rules, and `want-file-p' methods.
Added `ede-misc-source', and `ede-misc-compile' vars.
Do not call `call-next-method' in `ede-proj-makefile-insert-rules'.
* ede-proj-info.el: Copyright update.
Removed eval-and-compile restriction.
Added availablecompilers and sourcetype defaults
Added `ede-makeinfo-source' and `ede-makeinfo-compiler'.
Removed garbage-patters, and insert-rules.
Added `ede-proj-makefile-target-name' and `object-write' methods.
* ede-proj-elisp.el: Copyright update.
Added defaults for sourcetype, and availablecompilers.
Removed ede-want-file-p.
Added `ede-source-emacs' and `ede-emacs-compiler'.
Updated `ede-proj-makefile-insert-variables' to be :AFTER, and removed
`call-next-method' from it, and insertion of the EMACS variable.
Removed garbage-patters, and insert-rules methods.
Removed AM_PATH_LISPDIR insertion from tweak-autoconf.
* ede-proj-comp.el: New file.
* ede-proj-aux.el: Copyright update.
Provide default for sourcetype.
Added `ede-aux-source' variable.
* ede-proj-archive.el: Copyright update.
Added `ede-proj-makefile-insert-source-variables' which produces
a different variable between Makefile and Makefile.am mode.
* ede-pmake.el: Copyright update.
Added comment on what we try to do.
Removed `have-cfiles'. This should be handled by compiler/targets.
Enable targets to control dependency generation.
Removed libtool cruft, added into target and compiler code.
Added `ede-pmake-insert-variable-shared'.
Updated `ede-proj-makefile-insert-variables' for `ede-proj-target' to
use source and compiler objects instead of making the target do the
work in target specific code.
Updated `ede-proj-makefile-insert-variables' for `.target-makefile'
to use compiler and source information also.
Updated rule insertion to use the compiler object.
Added target based makefile dependency generation via compiler objects.
* ede-pconf.el: Copyright update.
Update for change in `ede-expand-filename'.
Added `ede-proj-configure-test-required-file'.
Better checks for files created with --add-missing.
Create more files automatically, line NEWS.
Better Makefile flushing when switching between Makefile, and Makefile.am mode.
Enable compilers to also tweek autoconf from here.
Enable individual targets to use --add-missing, or create-missing.
* ede-dired.el: Copyright update.
* autoconf-edit.el: Copyright update.
Added some more macros to the ordering list.
Fixed insertion of new macros after macros with or without parameters.
* autoconf-compat.el: Copyright update.
2000-08-20 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el: Removed the speedbar timer code.
2000-07-22 Eric M. Ludlam <zappo at gnu.org>
* autoconf-compat.el: added with-syntax-table.
* autoconf-edit.el: removed with-syntax-table.
* ede-proj-obj.el:
Added a comment discussing ede-pmake not being required.
* ede-pconf.el: require ede-proj instead of ede.
* ede-proj-aux.el: Added require of ede-pmake.
* project-am.el: Renamed ede-project-mine, to ede-buffer-mine.
Fixed up project-am-buffer-object to use ede-buffer-mine, and
thus simplify it.
* ede.el: Removed eval-when-compile stuff, added more requires.
Split some lines in the project-autoload object, added :initlializers.
Use initlizers so that `automake' mode is edeproject with initializers.
Added ede-commit-project base method on ede-project.
Added project-rescan base method on ede-project.
Added ede-convert-path for ede-target.
Added ede-find-target method for ede-project, with ede-buffer-mine
bases for ede-project, and ede-target.
Fiddled with speedbar autoloads till the compiled clean with
new EIEIO.
* ede-speedbar.el:
Removed eval-when-compile stuff, added more requires.
* ede-proj.el: Removed eval-when-compile stuff.
Removed `ede-find-target', and updated `ede-buffer-mine' to adopt some
of `ede-find-target's special ness.
Added `ede-buffer-mine' method for ede-proj-targets.
Added provide/require of pmake/pconf in .el form when compiling, and
moved it elsewhere.
* ede-proj-skel.el: Added `ede-buffer-mine' skeleton.
* ede-proj-scheme.el:
Removed eval-when-compile stuff. Added more requires.
* ede-proj-obj.el: Removed eval-when-compile stuff.
Added `ede-buffer-mine' implementation for header files.
* ede-proj-elisp.el:
Removed eval-when-compile stuff, added more requires.
Make the sourcevar shared for automake mode.
Make EMACS shared in Makefile mode.
* ede-proj-aux.el, ede-proj-archive.el:
Removed eval-when-compile stuff.
* ede-pmake.el: Removed eval-when-compile stuff.
Added shared variables (variables that multiple targets may install.)
* ede-pconf.el: Removed eval-when-compile stuff.
* autoconf-edit.el: Removed autoconf into autoconf compat.
* autoconf-compat.el: New file.
2000-07-12 Eric M. Ludlam <zappo at gnu.org>
* project-am.el:
Use eval-and-compile tricks when requiring other eieio based packages.
* ede.el:
Use eval-and-compile tricks when requiring other eieio based packages.
Added `ede-expand-filename' method for targets. (calls the project version.)
* ede-speedbar.el, ede-proj.el:
Use eval-and-compile tricks when requiring other eieio based packages.
* ede-pconf.el, ede-proj-elisp.el, ede-proj-scheme.el:
Change from tweek to tweak.
* ede-proj-skel.el: `eval-and-compile' requires.
Added skeletons for ede-proj-tweak-autoconf and ede-proj-flush-autoconf.
* ede-proj-shared.el: `eval-and-compile' requires.
* ede-proj-scheme.el: `eval-and-compile' requires.
Added `ede-proj-tweek-autoconf' method to add AM_INIT_GUILE_MODULE.
2000-07-11 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-prog.el, ede-proj-obj.el, ede-proj-misc.el, ede-proj-info.el:
Eval and compile requires.
* ede-proj-elisp.el: Eval and compile requires.
Removed load path and requiresments. Replaced with aux-packages.
Added ede-proj-elisp-packages-to-loadpath (see above)
Replaced path/requirements usage to above two comments.
Added `ede-proj-elisp-add-path', `ede-proj-tweek-autoconf'
`ede-proj-flush-autoconf'
* ede-proj-aux.el, ede-proj-archive.el: Eval and compile requires.
* ede-pmake.el: Added ede-proj-makefile-insert-user-rules method.
Insert user rules into the automake file.
* ede-pconf.el: Added a flush method to targets. (called first)
Added smart init compile phase.
* ede-dired.el: Added require for ede.
* autoconf-edit.el: Added copyright header.
Fixed loading of autoconf.el (if it exists.)
Fixed configure.in default section.
Added AM_INIT_GUILE_MODULE to main list of macros.
Fixed macro finding fn.
Fixed insert-new-macro doc.
2000-07-07 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Removed dead field from ede-project.
Added a parameter to ede-toplevel, which is an object to start from.
* ede-pmake.el: Removed old pconf management.
* ede-proj.el: Converted to use configure.in when applicable.
* autoconf-edit.el: Vast quantities of changes.
Roughtly:
Use Emacs21 autoconf mode.
Added many editing functions (many of which are still untested.)
* ede-pconf.el:
Removed previous cruft. Added in useful things which use autoconf-edit.el.
2000-07-03 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el:
In ede-proj-makefile-insert-variables, make sure the EMACS variable
does not include full path to Emacs.
2000-06-23 Eric M. Ludlam <zappo at gnu.org>
* ede-dired.el, ede-speedbar.el, ede-proj.el: Do not require ede.
* ede-proj-elisp.el: Added `debug-on-error' into the build process.
2000-06-20 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Added eval-when-compile for ede-speedbar.
* ede.el: Updated version.
Fixed the menu for building a target.
Added ede-update-version and project-update-version.
Added a speedbar setup hook for the speedbar file mode menu hack.
* ede-speedbar.el: Added a hack for the speedbar-files display mode.
This adds extra menu items and keybindings.
* ede-proj.el:
Added partofall slot indicating if this target is built w/ ALL.
Added project-update-version method.
* ede-proj-misc.el: Default makefile is now empty.
Request ALL types of files.
Do not insert rule if there is no submakefile.
Update dependencies based on the existence of a submakefile.
* ede-pmake.el:
Do not insert compile/link variables if there are no C files.
Do not add targes to "all:" rule if they are not a part of all.
* ede-dired.el: Added make-dist to the dired project menu.
2000-05-03 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Added support for the new EDE documentation query.
2000-05-01 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-info.el: Added ede-documentation method.
* ede.el: Added in new functions for the Semantic bovinator.
ede-documentation-files, ede-buffer-documentation-files,
ede-documentation
* ede-proj-skel.el:
Added in new stuff which the semantic bovinator will use.
* ede-speedbar.el: Updated for the latest speedbar.
2000-04-29 Eric M. Ludlam <zappo at gnu.org>
* ede.el:
Added ede-header-file, and ede-buffer-header-file for projects and targets.
* ede-proj-obj.el: Added ede-buffer-header-file.
* project-am.el: Now uses default override if applicable.
* project-am.el:
Added ede-buffer-header-file for project-am-objectcode.
* ede-proj-skel.el: Added ede-buffer-header-file
2000-04-28 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Fixed some comments.
Added ede-toplevel and ede-expand-filename functions.
2000-01-18 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el:
Updated to handle 'eieio' prefix now used in eieio for what was '-engine'
* ede-proj-shared.el:
Removed extraneous methods which were causing errors.
1999-12-04 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Fixed name of ede-map-subprojects.
* ede-speedbar.el: Added a require 'speedbar during compile.
Fixed doc of child-make-tag-lines, and add depth param.
* ede-proj-obj.el: Calc have-libtool locally.
* ede-proj-elisp.el: Added smarts into compile-target.
Fixed the rules generated to handle requires w/ a .el.
* ede-pmake.el: Added an autoload for ede-proj-configure-create.
* ede-dired.el: Added a require for dired.
1999-12-02 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el: Made all those new speedbar commands interactive
1999-12-01 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-obj.el: converted to use the new speedbar code.
* ede-speedbar.el:
Added many elements to an ede specific keymap and menu.
* ede.el: Fixed ede-target-in-project-p for projects with subprojects.
* ede-proj-skel.el: Fix up speedbar references.
* ede-speedbar.el:
Fixed up info providers, which required fix ups to line path generator.
1999-11-29 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Added some project mapping functions.
* ede-speedbar.el: Fix up some file finding details.
1999-11-23 Eric M. Ludlam <zappo at gnu.org>
* ede.el:
Added parent classes to ede-project, and ede-target so that we can
support speedbar using eieio-speedbar.
Fixed a dynamic target menu bug.
* ede-speedbar.el: Converted to use new eieio-speedbar adapter.
1999-11-19 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-info.el:
Added ede-proj-makefile-sourcevar function which had been lost earlier.
1999-11-10 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-skel.el: New file.
* ede-speedbar.el: Fixed a doc-string.
* ede-speedbar.el: Removed object specific button expanders.
Removed require of project-am.
* project-am.el: Added all the speedbar methods here.
* ede-proj-obj.el: Added speedbar button expand override function.
* ede-proj-prog.el: Fixed require statement.
* ede-proj-scheme.el: No target specific keymap entries.
* ede-proj-info.el, ede-proj-elisp.el: No target specific entries.
* ede.el:
Added a target specific menu in the Project menu which uses a :filter.
* ede-proj.el: Fixed some new doc strings for autoloads.
1999-11-09 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-shared.el, ede-proj-scheme.el, ede-proj-misc.el, ede-proj-info.el, ede-proj-archive.el:
Fix comment.
* ede.el: Playing around with target menu again.
* ede-proj-aux.el: Fixed typo for makefile-sourcevar method
* ede-proj.el, ede-pmake.el:
Removed as many target specific methods as I could.
* ede-proj-archive.el: Added require
* ede-proj-shared.el, ede-proj-scheme.el, ede-proj-prog.el, ede-proj-obj.el, ede-proj-info.el, ede-proj-aux.el, ede-proj-archive.el, ede-proj-misc.el:
New file.
1999-11-08 Eric M. Ludlam <zappo at gnu.org>
* ede-proj-elisp.el: New file.
* ede.el: Added an ede-version function.
Removed old target map (target specific keymap) and replaced with
a :forms menu keyword, and set-local-key calls.
* ede-pmake.el: Fixed paren problem
1999-09-22 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el: Added the miscelaneous project type.
* ede-pmake.el: Added rules for the miscelaneous project type.
1999-09-20 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el: Fixed ordering of targets in makefile.
* ede-proj.el:
Fixed reload code to handle unbound slots. Probably should create a "copy-object" that
will do this for me.
* ede.el:
Removed crufty EIEIO (or .. null) type code and use unbound slot checking.
1999-09-08 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el: Added types to objects.
Added initform to auxsource.
Call keymap updater even though it doesn't work yet.
* ede.el: Completely rehashed the menu.
Attempted to break out a special target menu.
Added types to as many fields as seemed apropriate.
Changed None to none for target completion.
1999-09-06 Eric M. Ludlam <zappo at gnu.org>
* ede.texi: Fixed up compiler warnings.
1999-09-05 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el:
Fixed info building target to work if there is no "main menu".
Fixed compiling lisp to have better compile script name. (less likely
to be used, since EIEIO had a conflict.
1999-09-03 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Re-arranged the menu to specs based on Paul K.
1999-08-14 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el: Added rules to make recursive tag files.
1999-06-24 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el:
Switched from a new EIEIO fn to an older one for compatibility.
Fixed up doc strings in many functions.
1999-06-14 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el:
Fixed the infos rule to work with multiple file targets.
1999-06-07 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el: Added infos make rules, and shared object extensions.
* ede-pconf.el: New file.
* ede.el: Dired minor mode auto-load
1999-05-22 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el: Made new target robust to dired-mode.
* ede-dired.el: New file.
* ede.el: Global ede mode now toggles correctly.
Added hooks for dired-mode into global-ede-mode, and ede-minor-mode.
1999-04-21 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Fixed some simple bugs.
* ede.texi: Added empty nodes about project types.
* ede.el: Added map-subproject function.
Fixed subproject bugs.
* ede-proj.el:
Added shared object support. There is an archive type, but it isn't
hooked up yet.
* ede-pmake.el:
Added shared object creation. libtool support is still somewhat
broken.
1999-03-20 Eric M. Ludlam <zappo at gnu.org>
* README: New file.
* ede-proj.el: Fixed bug answering NO to project-new-target.
* ede-pmake.el:
Remove distribution subdirectory when done building the distribution.
* ede.texi: Added section on subprojects.
Fixed some typos.
* ede-pmake.el: depndecy->dependency. Added .PHONY.
* ede-proj.el: Fixed phony
fixed project/makefile dependency check.
* ede.el: Fixed up compile project to go the top-level.
* project-am.el: Added names back into the project loader.
* ede-pmake.el:
For makefile: Added dependency file generation (stolen from automake)
Added COMPILE/LINK when there is c code.
Added LOADPATH and requirements for lisp.
Added clean target, and junk filtering.
Makefile depends on Project.ede file. (No autogen yet)
* ede-proj.el:
Updated the object code target. Removed LDFLAGS, and added
configuration variables instead.
In lisp object, added requirements (things to require)
Added configuration variable defaults to the object code class.
Added automatic dependency flag into the object code type.
Enabled multiple targets per file in the loader.
Auto-save on removal of a target.
Added command to regenerate makefiles.
Make makefile generator smarter about auto-rebuild.
* ede.el:
Revamped targets so that a buffer can be part of multiple targets.
Updated commands to auto-ask for which target if there are multiple ones.
New function returns the buffers controlled by a target.
When a target is deleted, remove that object from all buffers that reffed it.
1999-03-17 Eric M. Ludlam <zappo at gnu.org>
* ede.el: Fixed free variable in auto-add.
* project-am.el:
Fixed up :notation for items that no longer have initargs.
* ede.texi:
Added chapter on customizing ede, and moved some intro text from
"creating a project" into it, and added a bunch more stuff.
* ede-pmake.el:
Removed require to ede-proj so that it can be loaded w/out a byte compile.
* ede-proj.el: Added a scheme target. (Useless at the moment)
Added subproject reading,creating support.
Fixed up bad variable references in makefile generator.
* ede.el: Removed initarg from subproj so that they are not saved.
Fixed up file references to handle subprojects better.
Added ede-add-subproject, ede-parent-project and ede-up-directory.
* ede-proj.el: Fixed project-rescan.
* ede.el: Fixed up macro ede-with-projectfile wrt oref file.
Fixed project creation with object-assoc (errors from earlier translation)
1999-03-12 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el: Emacs lisp now generates makefile rules.
* ede-pmake.el: Emacs lisp now generates makefile rules.
Fixed up all target wrt variable and inference insertion.
1999-03-10 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Removed bogus comments.
Changed all initargs refs to direct slot refs.
* ede.el: Fixed compile bugs in ede-with-projectfile.
* ede-pmake.el: Fixed compile error with oref in makefile generator.
1999-03-09 Eric M. Ludlam <zappo at gnu.org>
* ede.texi: Put content into the documentation.
* ede-proj.el: done-customizing now calls back to the previous method.
Useful for handling the local variable scenario.
* ede.el: Fixed project local variables, made work with customize.
* ede.el: Ran through checkdoc.
Added local variable support.
Added functions `ede-project-buffers', `ede-make-project-local-variable',
`ede-set-project-variables', and `ede-set' for setting project
variables.
1999-03-02 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Added project compile command.
Fixed makefile mode loading.
* ede-pmake.el: Add makefile rules after all target.
Add extra sources to the sources variable if applicable.
Doc changes.
Added dependencies on source to headers.
Permit variables for libraries during link.
* ede-proj.el: Added header files to object targets.
Added extra rules for targets and projects.
Added make VARs for the project.
Fixed up lots of documentaion in objects.
Fixed customization completion.
Fixed want-file method for objects with extended file lists.
Fixed add method to add header files into the header section.
Added Remove for object method to find files in header list.
Added a compile command for the default project target. (make all)
* ede.el: Added auto-add to project.
Adding a file to a target will remove it from other targets.
Added method asking an object if it wants a file.
1999-02-26 Eric M. Ludlam <zappo at gnu.org>
* ede-pmake.el: New file.
* ede-proj.el:
Added some fields into the objects for additional sources and rules.
Used repeating objects with :objecttype widget description. (for the nil case)
Added new makefile rule objects. (for custom buffers.)
Remove :field reference where not apropriate. (faster)
Removed makefile generation into its own file.
* ede.el: Customize aliases.
Added a group.
Moved the debugger choice into this file.
Removed all old :field symbols where they weren't used for init (faster.)
1999-02-03 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: :docstring -> :documentation
* ede-proj.el: Ran through checkdoc.
:mfile -> :makefile
:docstring -> :documentation
Added :makefile-type to project
Aded eieio-done-customizing methods to targets and projects.
Fixed up target creation.
Added some predicates for makefile type.
More compile target hacks
Makefile gen hacks.
* ede.el: :docstring -> :documentation
Added new custom commands for project objects.
Added new functions to get the parent project from a target. (search)
1999-01-21 Eric M. Ludlam <zappo at gnu.org>
* ede-proj.el:
Removed source from ede-proj-target. It's in ede-target.
* ede.el: Added ede-description method onto base project/target.
* ede-speedbar.el:
Added generic button/expand methods for ede-project and ede-buttons.
These seem to work fine with ede-proj.
* ede-proj.el: Added info node type.
* ede.texi: Added a menu, and the default nodes for EDE.
* ede-speedbar.el: This now depends on project-am
Several fixups for project-am.
* ede-proj.el: New file.
* ede.el: Tons of junk to make it work with ede-proj.el.
* default methods for all commands
* Update some functionality into ede commands.
1999-01-05 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Project-am-rescan -> project-rescan
* ede.el: Speedbar enhancements.
Minor mode and global mode updates.
1998-12-16 Eric M. Ludlam <zappo at gnu.org>
* ede-speedbar.el: New file.
* project-am.el:
Ripped out top level mode stuff into EDE. Retrofitted classes to be
based on the ede classes. Fixed old commands into methods. (compile,
add/remove target). Some of the stuff is non-functional.
* ede.el: New file.
1998-12-10 Eric M. Ludlam <zappo at gnu.org>
* ede.texi: New file.
1998-10-28 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Removed a comment about proto type
1998-10-27 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Ran through checkdoc and ispell.
* project-am.el: Wrote global-project-am-mode.
* project-am.el: Enabled the debug target comman.
* project-am.el: Fixed up some compile warnings.
* project-am.el:
Added several menu items. Implemented create,add,remove,modify,compile,dist
menu items. Fixed up several bugs. Added lots of stuff.
1998-10-22 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: Added lots of project minor mode commands (empty)
Object data base builder is now based on a rescan method
which will incidentally create new stuff along the way.
Added named target objects (yea!)
Added a name program (to get the name from an obj, maybe delete later)
Fixed up speedbar stuff to use right variables (left overs)
Makefiles w/ one target in speedbar skip the intermediate target view.
Fixed some depth problems.
1998-10-20 Eric M. Ludlam <zappo at gnu.org>
* project-am.el:
Converted all the speedbar stuff into methods. SB code is now really
simple, and complex decisions are made via methods.
Copy my makefile updates into this file.
Made work w/ deep packages.
1998-10-19 Eric M. Ludlam <zappo at gnu.org>
* project-am.el: New file.
1997-02-20 Eric M. Ludlam <zappo at gnu.org>
* autoconf-edit.el: New file.
1.1 XEmacs/packages/xemacs-packages/ede/Makefile
Index: Makefile
===================================================================
# Makefile for EDE lisp code
# This file is part of XEmacs.
# XEmacs is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
# XEmacs is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
# You should have received a copy of the GNU General Public License
# along with XEmacs; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
VERSION = 1.0
AUTHOR_VERSION = 1.0pre4
MAINTAINER = XEmacs Development Team <xemacs-beta at xemacs.org>
AUTHOR = Eric M. Ludlam <zappo at gnu.org>
PACKAGE = ede
PKG_TYPE = regular
REQUIRES = xemacs-base prog-modes edebug eieio dired cedet-common speedbar
CATEGORY = standard
ELCS = autoconf-compat.elc \
autoconf-edit.elc \
ede-dired.elc \
ede-pconf.elc \
ede-pmake.elc \
ede-proj-archive.elc \
ede-proj-aux.elc \
ede-proj-comp.elc \
ede-proj-elisp.elc \
ede-proj-info.elc \
ede-proj-misc.elc \
ede-proj-obj.elc \
ede-proj-prog.elc \
ede-proj-scheme.elc \
ede-proj-shared.elc \
ede-proj.elc \
ede-simple.elc \
ede-source.elc \
ede-speedbar.elc \
ede-system.elc \
ede-util.elc \
ede.elc \
project-am.elc
EXTRA_SOURCES = ChangeLog.upstream ede-proj-skel.el
PRELOADS = -l ede
include ../../XEmacs.rules
1.1 XEmacs/packages/xemacs-packages/ede/Makefile.upstream
Index: Makefile.upstream
===================================================================
# Automatically Generated Makefile by EDE.
# For use with: make
#
# DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
# EDE is the Emacs Development Environment.
# http://cedet.sourceforge.net/ede.shtml
#
top=
ede_FILES=Project.ede Makefile
EMACS=emacs
LOADPATH= ../common/ ../speedbar/ ../eieio/
LOADDEFS=ede-loaddefs.el
LOADDIRS=.
init_LISP=ede-load.el
EMACS=emacs
ede_LISP=project-am.el ede.el ede-pmake.el ede-pconf.el ede-proj.el ede-dired.el ede-proj-elisp.el ede-proj-misc.el ede-proj-obj.el ede-proj-prog.el ede-proj-archive.el ede-proj-shared.el ede-proj-info.el ede-proj-scheme.el ede-proj-aux.el ede-proj-comp.el ede-source.el ede-util.el ede-system.el ede-speedbar.el ede-simple.el
aux-lisp_LISP=autoconf-edit.el autoconf-compat.el
misc_AUX=NEWS README TODO ede-proj-skel.el ChangeLog
ede_info_TEXINFOS=ede.texi ede-projects.texi ede-targets.texi ede-sourcecode.texi ede-compilers.texi
MAKEINFO=makeinfo
test_AUX=
VERSION=1.0pre4
DISTDIR=$(top)EDE-$(VERSION)
all: autoloads init ede aux-lisp ede.info
.PHONY: autoloads
autoloads:
@echo "(add-to-list 'load-path nil)" > $@-compile-script
for loadpath in . ${LOADPATH}; do \
echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
done;
@echo "(require 'cedet-autogen)" >> $@-compile-script
"$(EMACS)" -batch --no-site-file -l $@-compile-script -f cedet-batch-update-autoloads $(LOADDEFS) $(LOADDIRS)
.PHONY: init
init: $(init_LISP)
@echo "(add-to-list 'load-path nil)" > $@-compile-script
for loadpath in . ${LOADPATH}; do \
echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
done;
@echo "(setq debug-on-error t)" >> $@-compile-script
"$(EMACS)" -batch --no-site-file -l $@-compile-script -f batch-byte-compile $^
.PHONY: ede
ede: $(ede_LISP)
@echo "(add-to-list 'load-path nil)" > $@-compile-script
for loadpath in . ${LOADPATH}; do \
echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
done;
@echo "(setq debug-on-error t)" >> $@-compile-script
"$(EMACS)" -batch --no-site-file -l $@-compile-script -f batch-byte-compile $^
.PHONY: aux-lisp
aux-lisp: $(aux-lisp_LISP)
@echo "(add-to-list 'load-path nil)" > $@-compile-script
for loadpath in . ${LOADPATH}; do \
echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
done;
@echo "(setq debug-on-error t)" >> $@-compile-script
"$(EMACS)" -batch --no-site-file -l $@-compile-script -f batch-byte-compile $^
ede.info: $(ede_info_TEXINFOS)
$(MAKEINFO) $<
tags:
clean:
rm -f *.elc *.html *.info*
.PHONY: dist
dist: autoloads ede.info
mkdir $(DISTDIR)
cp ede-loaddefs.el $(init_LISP) $(ede_LISP) $(aux-lisp_LISP) $(misc_AUX) $(ede_info_TEXINFOS) ede.info* $(test_AUX) $(ede_FILES) $(DISTDIR)
Makefile: Project.ede
@echo Makefile is out of date! It needs to be regenerated by EDE.
@echo If you have not modified Project.ede, you can use 'touch' to update the Makefile time stamp.
@false
# End of Makefile
1.1 XEmacs/packages/xemacs-packages/ede/Project.ede
Index: Project.ede
===================================================================
;; Object EDE
;; EDE project file.
(ede-proj-project "EDE"
:name "EDE"
:version "1.0pre4"
:file "Project.ede"
:targets (list
(ede-proj-target-elisp-autoloads "autoloads"
:name "autoloads"
:path ""
:autoload-file "ede-loaddefs.el"
)
(ede-proj-target-elisp "init"
:name "init"
:path ""
:source '("ede-load.el")
)
(ede-proj-target-elisp "ede"
:name "ede"
:path ""
:source '("project-am.el" "ede.el" "ede-pmake.el" "ede-pconf.el" "ede-proj.el" "ede-dired.el" "ede-proj-elisp.el" "ede-proj-misc.el" "ede-proj-obj.el" "ede-proj-prog.el" "ede-proj-archive.el" "ede-proj-shared.el" "ede-proj-info.el" "ede-proj-scheme.el" "ede-proj-aux.el" "ede-proj-comp.el" "ede-source.el" "ede-util.el" "ede-system.el" "ede-speedbar.el" "ede-simple.el")
:versionsource '("ede.el")
:aux-packages '("eieio" "speedbar" "cedet-files")
)
(ede-proj-target-elisp "aux-lisp"
:name "aux-lisp"
:path ""
:source '("autoconf-edit.el" "autoconf-compat.el")
)
(ede-proj-target-aux "misc"
:name "misc"
:path ""
:source '("NEWS" "README" "TODO" "ede-proj-skel.el" "ChangeLog")
)
(ede-proj-target-makefile-info "ede"
:name "ede.info"
:path ""
:source '("ede.texi" "ede-projects.texi" "ede-targets.texi" "ede-sourcecode.texi" "ede-compilers.texi")
:mainmenu "ede.texi"
)
(ede-proj-target-aux "test"
:name "test"
:path "subdir/"
)
)
:web-site-url "http://cedet.sourceforge.net/ede.shtml"
:web-site-directory "../www"
:web-site-file "ede.shtml"
:ftp-upload-site "/ftp at upload.sourceforge.net:/incoming"
:configuration-variables 'nil
:metasubproject 't
)
1.1 XEmacs/packages/xemacs-packages/ede/README
Index: README
===================================================================
EDE - Emacs Development Environment
Compiling instructions:
Follow the INSTALL file in the top level of this distribution.
To use the Web Site management features:
Local file names are needed for copying distribution, and web pages.
You can use ange-ftp or EFS for accessing FTP sites. If some
locations are accessible only through scp, or rcp, you can use TRAMP
to copy files.
http://ls6-www.informatik.uni-dortmund.de/~grossjoh/emacs/tramp.html
1.1 XEmacs/packages/xemacs-packages/ede/autoconf-compat.el
Index: autoconf-compat.el
===================================================================
;;; autoconf-compat.el --- Copied from Emacs 21 for backward compatibility
;;; with older emacsen.
;; Delta: 1) this comment
;; provide `autoconf-compat' instead of autoconf-mode.
;; Added `with-syntax-table' compatibility code.
;;; autoconf.el --- Mode for editing Autoconf configure.in files.
;; Copyright (C) 2000, 2004, 2007 Free Software Foundation, Inc.
;; Author: Dave Love <fx at gnu.org>
;; Keywords: languages
;; $Revision: 1.1 $
;; This software is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This software is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; Provides fairly minimal font-lock, imenu and indentation support
;; for editing configure.in files. Only Autoconf syntax is processed.
;; There is no attempt to deal with shell text -- probably that will
;; always lose.
;; This is specialized for configure.in files. It doesn't inherit the
;; general M4 stuff from M4 mode.
;; There is also an autoconf-mode.el in existence. That appears to be
;; for editing the Autoconf M4 source, rather than configure.in files.
;;; Code:
(eval-when-compile
(require 'font-lock))
(eval-and-compile (if (not (fboundp 'with-syntax-table))
;; Copied from Emacs 21 for compatibility with released Emacses.
(defmacro with-syntax-table (table &rest body)
"Evaluate BODY with syntax table of current buffer set to a copy of TABLE.
The syntax table of the current buffer is saved, BODY is evaluated, and the
saved table is restored, even in case of an abnormal exit.
Value is what BODY returns."
(let ((old-table (make-symbol "table"))
(old-buffer (make-symbol "buffer")))
`(let ((,old-table (syntax-table))
(,old-buffer (current-buffer)))
(unwind-protect
(progn
(set-syntax-table (copy-syntax-table ,table))
, at body)
(save-current-buffer
(set-buffer ,old-buffer)
(set-syntax-table ,old-table))))))
))
(defvar autoconf-mode-map (make-sparse-keymap))
(defvar autoconf-mode-hook nil
"Hook run by `autoconf-mode'.")
(defconst autoconf-font-lock-syntactic-keywords
'(("\\<dnl\\>" 0 '(11))))
(defconst autoconf-definition-regexp
"AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\(\\sw+\\)")
(defvar autoconf-font-lock-keywords
`(("A[CM]_\\sw+" . font-lock-keyword-face)
(,autoconf-definition-regexp
3 font-lock-function-name-face)
;; Are any other M4 keywords really appropriate for configure.in,
;; given that we do `dnl'?
("changequote" . font-lock-keyword-face)))
(defvar autoconf-mode-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?\" "." table)
(modify-syntax-entry ?\n ">" table)
(modify-syntax-entry ?# "<" table)
table))
(defvar autoconf-imenu-generic-expression
(list (list nil autoconf-definition-regexp 3)))
;; It's not clear how best to implement this.
(defun autoconf-current-defun-function ()
"Function to use for `add-log-current-defun-function' in Autoconf mode.
This version looks back for an AC_DEFINE or AC_SUBST. It will stop
searching backwards at another AC_... command."
(save-excursion
(with-syntax-table autoconf-mode-syntax-table
(modify-syntax-entry ?_ "w")
(if (re-search-backward autoconf-definition-regexp
(save-excursion (beginning-of-defun) (point))
t)
(match-string-no-properties 3)))))
(defun autoconf-mode ()
"Major mode for editing Autoconf configure.in files."
(interactive)
(kill-all-local-variables)
(use-local-map autoconf-mode-map)
(setq major-mode 'autoconf-mode)
(setq mode-name "Autoconf")
(set-syntax-table autoconf-mode-syntax-table)
(set (make-local-variable 'parens-require-spaces) nil) ; for M4 arg lists
(set (make-local-variable 'defun-prompt-regexp)
"^[ \t]*A[CM]_\\(\\sw\\|\\s_\\)+")
(set (make-local-variable 'comment-start) "dnl ")
(set (make-local-variable 'comment-start-skip) "\\(\\<dnl\\|#\\) +")
(set (make-local-variable 'font-lock-syntactic-keywords)
autoconf-font-lock-syntactic-keywords)
(set (make-local-variable 'font-lock-defaults)
`(autoconf-font-lock-keywords nil nil (("_" . "w"))))
(set (make-local-variable 'imenu-generic-expression)
autoconf-imenu-generic-expression)
(set (make-local-variable 'imenu-syntax-alist) '(("_" . "w")))
(set (make-local-variable 'indent-line-function) #'indent-relative)
(set (make-local-variable 'add-log-current-defun-function)
#'autoconf-current-defun-function)
(run-hooks 'autoconf-mode-hook))
(provide 'autoconf-compat)
;;; autoconf.el ends here
1.1 XEmacs/packages/xemacs-packages/ede/autoconf-edit.el
Index: autoconf-edit.el
===================================================================
;;; autoconf-edit.el --- Keymap for autoconf
;; Copyright (C) 1998, 1999, 2000 Eric M. Ludlam
;; Author: Eric M. Ludlam <zappo at gnu.org>
;; Keywords: project
;; RCS: $Id: autoconf-edit.el,v 1.1 2007/11/26 15:22:05 michaels Exp $
;; This software is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This software is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;
;; Autoconf editing and modification support, and compatibility layer
;; for Emacses w/out autoconf mode built in.
;;; Code:
(if (locate-library "autoconf")
(condition-case nil
(require 'autoconf)
(error (require 'autoconf-mode "autoconf")))
(require 'autoconf-compat)
;; This part is not in autoconf.el
(add-to-list 'auto-mode-alist '("\\<configure\\.in$" . autoconf-mode))
)
(defvar autoconf-new-automake-string
"dnl Process this file with autoconf to produce a configure script
AC_INIT(%s)
AM_INIT_AUTOMAKE(%s, 0)
AM_CONFIG_HEADER(config.h)
dnl End the configure script.
AC_OUTPUT(Makefile, [date > stamp-h] )\n"
"This string is used to initialize a new configure.in.
The default is designed to be used with automake.
The first %s will be filled with the test file.
The second %s will be filled with the program name.")
(defun autoconf-new-program (rootdir program testfile)
"Initialize a new configure.in in ROOTDIR for PROGRAM using TESTFILE.
ROOTDIR is the root directory of a given autoconf controlled project.
PROGRAM is the program to be configured.
TESTFILE is the file used with AC_INIT.
configure the initial configure script using `autoconf-new-automake-string'"
(interactive "dRoot Dir: \nsProgram: \nsTest File: ")
(if (bufferp rootdir)
(set-buffer rootdir)
(if (not (string-match "\\(/\\|\\\\)$" rootdir))
(setq rootdir (concat rootdir "/")))
(let ((cf (concat rootdir "configure.in")))
(if (and (file-exists-p cf)
(not (y-or-n-p (format "File %s exists. Start Over? " cf))))
(error "Quit"))
(find-file cf)))
;; Note, we only ask about overwrite if a string/path is specified.
(erase-buffer)
(insert (format autoconf-new-automake-string testfile program)))
(defvar autoconf-preferred-macro-order
'("AC_INIT"
"AM_INIT_AUTOMAKE"
"AM_CONFIG_HEADER"
;; Arg parsing
"AC_ARG_ENABLE"
"AC_ARG_WITH"
;; Programs
"AC_PROG_MAKE_SET"
"AC_PROG_AWK"
"AC_PROG_CC"
"AC_PROG_CC_C_O"
"AC_PROG_CPP"
"AC_PROG_CXX"
"AC_PROG_CXXCPP"
"AC_ISC_POSIX"
"AC_PROG_F77"
"AC_PROG_GCC_TRADITIONAL"
"AC_PROG_INSTALL"
"AC_PROG_LEX"
"AC_PROG_LN_S"
"AC_PROG_RANLIB"
"AC_PROG_YACC"
"AC_CHECK_PROG"
"AC_CHECK_PROGS"
"AM_PROG_LIBTOOL"
;; Libraries
"AC_CHECK_LIB"
"AC_PATH_XTRA"
;; Headers
"AC_HEADER_STDC"
"AC_HEADER_SYS_WAIT"
"AC_HEADER_TIME"
"AC_HEADERS"
;; Typedefs, structures
"AC_TYPE_PID_T"
"AC_TYPE_SIGNAL"
"AC_TYPE_UID_T"
"AC_STRUCT_TM"
;; Compiler characteristics
"AC_CHECK_SIZEOF"
"AC_C_CONST"
;; Library functions
"AC_CHECK_FUNCS"
"AC_TRY_LINK"
;; System Services
;; Other
"AM_PATH_LISPDIR"
"AM_INIT_GUILE_MODULE"
;; AC_OUTPUT is always last
"AC_OUTPUT"
)
"List of macros in the order that they prefer to occur in.
This helps when inserting a macro which doesn't yet exist
by positioning it near other macros which may exist.
>From the autoconf manual:
`AC_INIT(FILE)'
checks for programs
checks for libraries
checks for header files
checks for typedefs
checks for structures
checks for compiler characteristics
checks for library functions
checks for system services
`AC_OUTPUT([FILE...])'")
(defvar autoconf-multiple-macros
'("AC_ARG_ENABLE"
"AC_ARG_WITH"
"AC_CHECK_PROGS"
"AC_CHECK_LIB"
"AC_CHECK_SIZEOF"
"AC_TRY_LINK"
)
"Macros which appear multiple times.")
(defvar autoconf-multiple-multiple-macros
'("AC_HEADERS" "AC_CHECK_FUNCS")
"Macros which appear multiple times, and perform multiple queries.")
(defun autoconf-in-macro (macro)
"Non-nil if point is in a macro of type MACRO."
(save-excursion
(beginning-of-line)
(looking-at (concat "\\(A[CM]_" macro "\\|" macro "\\)"))))
(defun autoconf-find-last-macro (macro)
"Move to the last occurance of MACRO in FILE, and return that point.
The last macro is usually the one in which we would like to insert more
items such as CHECK_HEADERS."
(let ((op (point)))
(goto-char (point-max))
(if (re-search-backward (concat "^" (regexp-quote macro) "\\s-*\\((\\|$\\)") nil t)
(progn
(beginning-of-line)
(point))
(goto-char op)
nil)))
(defun autoconf-position-for-macro (macro)
"Position the cursor where a new MACRO could be inserted.
This will appear at the BEGINNING of the macro MACRO should appear AFTER.
This is to make it compatible with `autoconf-find-last-macro'.
Assume that MACRO doesn't appear in the buffer yet, so search
the ordering list `autoconf-preferred-macro-order'."
;; Search this list backwards.. heh heh heh
;; This lets us do a reverse search easilly.
(let ((ml (member macro (reverse autoconf-preferred-macro-order))))
(if (not ml) (error "Don't know how to position for %s yet" macro))
(setq ml (cdr ml))
(goto-char (point-max))
(while (and ml (not (autoconf-find-last-macro (car ml))))
(setq ml (cdr ml)))
(if (not ml) (error "Could not find context for positioning %s" macro))))
(defun autoconf-insert-macro-at-point (macro &optional param)
"Add MACRO at the current point with PARAM."
(insert macro)
(if param
(progn
(insert "(" param ")")
(if (< (current-column) 3) (insert " dnl")))))
(defun autoconf-insert-new-macro (macro &optional param)
"Add a call to MACRO in the current autoconf file.
Deals with macro order. See `autoconf-preferred-macro-order' and
`autoconf-multi-macros'.
Optional argument PARAM is the parameter to pass to the macro as one string."
(cond ((member macro autoconf-multiple-macros)
;; This occurs multiple times
(or (autoconf-find-last-macro macro)
(autoconf-position-for-macro macro))
(forward-sexp 2)
(end-of-line)
(insert "\n")
(autoconf-insert-macro-at-point macro param))
((member macro autoconf-multiple-multiple-macros)
(if (not param)
(error "You must have a paramter for %s" macro))
(if (not (autoconf-find-last-macro macro))
(progn
;; Doesn't exist yet....
(autoconf-position-for-macro macro)
(forward-sexp 2)
(end-of-line)
(insert "\n")
(autoconf-insert-macro-at-point macro param))
;; Does exist, can we fit onto the current line?
(forward-sexp 2)
(down-list -1)
(if (> (+ (current-column) (length param)) fill-column)
(insert " " param)
(up-list 1)
(end-of-line)
(insert "\n")
(autoconf-insert-macro-at-point macro param))))
((autoconf-find-last-macro macro)
;; If it isn't one of the multi's, it's a singleton.
;; If it exists, ignore it.
nil)
(t
(autoconf-position-for-macro macro)
(forward-sexp 1)
(if (looking-at "\\s-*(")
(forward-sexp 1))
(end-of-line)
(insert "\n")
(autoconf-insert-macro-at-point macro param))))
(defun autoconf-find-query-for-header (header)
"Position the cursor where HEADER is queried."
(interactive "sHeader: ")
(let ((op (point))
(found t))
(goto-char (point-min))
(condition-case nil
(while (not
(progn
(re-search-forward
(concat "\\b" (regexp-quote header) "\\b"))
(save-excursion
(beginning-of-line)
(looking-at "AC_CHECK_HEADERS")))))
;; We depend on the search failing to exit our loop on failure.
(error (setq found nil)))
(if (not found) (goto-char op))
found))
(defun autoconf-add-query-for-header (header)
"Add in HEADER to be queried for in our autoconf file."
(interactive "sHeader: ")
(or (autoconf-find-query-for-header header)
(autoconf-insert-new-macro "AC_CHECK_HEADERS" header)))
(defun autoconf-find-query-for-func (func)
"Position the cursor where FUNC is queried."
(interactive "sFunction: ")
(let ((op (point))
(found t))
(goto-char (point-min))
(condition-case nil
(while (not
(progn
(re-search-forward
(concat "\\b" (regexp-quote func) "\\b"))
(save-excursion
(beginning-of-line)
(looking-at "AC_CHECK_FUNCS")))))
;; We depend on the search failing to exit our loop on failure.
(error (setq found nil)))
(if (not found) (goto-char op))
found))
(defun autoconf-add-query-for-func (func)
"Add in FUNC to be queried for in our autoconf file."
(interactive "sFunction: ")
(or (autoconf-find-query-for-func func)
(autoconf-insert-new-macro "AC_CHECK_FUNCS" func)))
(defvar autoconf-program-builtin
'(("AWK" . "AC_PROG_AWK")
("CC" . "AC_PROG_CC")
("CPP" . "AC_PROG_CPP")
("CXX" . "AC_PROG_CXX")
("CXXCPP" . "AC_PROG_CXXCPP")
("F77" . "AC_PROG_F77")
("GCC_TRADITIONAL" . "AC_PROG_GCC_TRADITIONAL")
("INSTALL" . "AC_PROG_INSTALL")
("LEX" . "AC_PROG_LEX")
("LN_S" . "AC_PROG_LN_S")
("RANLIB" . "AC_PROG_RANLIB")
("YACC" . "AC_PROG_YACC")
)
"Association list of PROGRAM variables and their built-in MACRO.")
(defun autoconf-find-query-for-program (prog)
"Position the cursor where PROG is queried.
PROG is the VARIABLE to use in autoconf to identify the program.
PROG excludes the _PROG suffix. Thus if PROG were EMACS, then the
variable in configure.in would be EMACS_PROG."
(let ((op (point))
(found t)
(builtin (assoc prog autoconf-program-builtin)))
(goto-char (point-min))
(condition-case nil
(re-search-forward
(concat "^"
(or (cdr-safe builtin)
(concat "AC_CHECK_PROG\\s-*(\\s-*" prog "_PROG"))
"\\>"))
(error (setq found nil)))
(if (not found) (goto-char op))
found))
(defun autoconf-add-query-for-program (prog &optional names)
"Add in PROG to be queried for in our autoconf file.
Optional NAMES is for non-built-in programs, and is the list
of possible names."
(interactive "sProgram: ")
(if (autoconf-find-query-for-program prog)
nil
(let ((builtin (assoc prog autoconf-program-builtin)))
(if builtin
(autoconf-insert-new-macro (cdr builtin))
;; Not built in, try the params item
(autoconf-insert-new-macro "AC_CHECK_PROGS" (concat prog "," names))
))))
;;; Scrappy little changes
;;
(defvar autoconf-deleted-text nil
"Set to the last bit of text deleted during an edit.")
(defvar autoconf-inserted-text nil
"Set to the last bit of text inserted during an edit.")
(defmacro autoconf-edit-cycle (&rest body)
"Start an edit cycle, unsetting the modified flag if there is no change.
Optional argument BODY is the code to execute which edits the autoconf file."
`(let ((autoconf-deleted-text nil)
(autoconf-inserted-text nil)
(mod (buffer-modified-p)))
, at body
(if (and (not mod)
(string= autoconf-deleted-text autoconf-inserted-text))
(set-buffer-modified-p nil))))
(defun autoconf-delete-parameter (index)
"Delete the INDEXth parameter from the macro starting on the current line.
Leaves the cursor where a new parameter can be inserted.
INDEX starts at 1."
(beginning-of-line)
(down-list 1)
(re-search-forward ", ?" nil nil (1- index))
(let ((end (save-excursion
(re-search-forward ",\\|)" (save-excursion
(end-of-line)
(point)))
(forward-char -1)
(point))))
(setq autoconf-deleted-text (buffer-substring (point) end))
(delete-region (point) end)))
(defun autoconf-insert (text)
"Insert TEXT."
(setq autoconf-inserted-text text)
(insert text))
(defun autoconf-set-version (version)
"Set the version used with automake to VERSION."
(if (not (stringp version))
(signal 'wrong-type-argument '(stringp version)))
(if (not (autoconf-find-last-macro "AM_INIT_AUTOMAKE"))
(error "Cannot update version")
;; Move to correct position.
(autoconf-edit-cycle
(autoconf-delete-parameter 2)
(autoconf-insert version))))
(defun autoconf-set-output (outputlist)
"Set the files created in AC_OUTPUT to OUTPUTLIST.
OUTPUTLIST is a list of strings representing relative paths
to Makefiles, or other files using Autoconf substitution."
(if (not (autoconf-find-last-macro "AC_OUTPUT"))
(error "Cannot update version")
(autoconf-edit-cycle
(autoconf-delete-parameter 1)
(autoconf-insert (mapconcat (lambda (a) a) outputlist " ")))))
(provide 'autoconf-edit)
;;; autoconf-edit.el ends here
1.1 XEmacs/packages/xemacs-packages/ede/ede-compilers.texi
Index: ede-compilers.texi
===================================================================
@c -*-texinfo-*-
@c
@c $Id: ede-compilers.texi,v 1.1 2007/11/26 15:22:06 michaels Exp $
@c
@c The next line is for the back-search to see what node this one
@c resides in.
@c @node Compilers,
@c @chapter Compilers
@c This command is a convenience to help rebuild this file. Use C-x C-e
@c on the expression below to rebuild the entire index (but only
@c after loading in all relevant source files.)
@c (eieiodoc-class ede-compilation-program "cm")
@menu
* ede-compilation-program ::
* ede-compiler ::
* ede-object-compiler ::
* ede-linker ::
@end menu
@node ede-compilation-program, ede-compiler, , Compilers
@comment node-name, next, previous, up
@section ede-compilation-program
@cmindex ede-compilation-program
@table @asis
@item Inheritance Tree:
@table @code
@item eieio-instance-inheritor
@table @code
@item ede-compilation-program
@table @asis
@item Children:
@w{@xref{ede-compiler},} @w{@xref{ede-linker}.}
@end table
@end table
@end table
@end table
Create a new object with name NAME of class type ede-compilation-program
@table @asis
@item Slots:
@table @code
@item:parent-instance
Type: @code{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.
@refill
@item:name
Type: @code{string}
Name of this type of compiler.
@refill
@item:variables
Type: @code{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.
@refill
@item:sourcetype
Type: @code{list}
A list of @code{ede-sourcecode} @xref{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.
@refill
@item:rules
Type: @code{list} @*
Default Value: @code{nil}
Auxiliary rules needed for this compiler to run.
For example, yacc/lex files need additional chain rules, or inferences.
@refill
@item:commands
Type: @code{list}
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
@refill
@item:autoconf
Type: @code{list} @*
Default Value: @code{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.
@refill
@item:objectextention
Type: @code{string}
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
@refill
@end table
@end table
@subsection Specialized Methods
@deffn Method ede-proj-flush-autoconf :PRIMARY this
Flush the configure file (current buffer) to accomodate @var{THIS}.
@end deffn
@deffn Method ede-proj-makefile-insert-rules :PRIMARY this
Insert rules needed for @var{THIS} compiler object.
@end deffn
@deffn Method ede-proj-makefile-insert-variables :PRIMARY this
Insert variables needed by the compiler @var{THIS}.
@end deffn
@deffn Method ede-proj-makefile-insert-commands :PRIMARY this
Insert the commands needed to use compiler @var{THIS}.
The object creating makefile rules must call this method for the
compiler it decides to use after inserting in the rule.
@end deffn
@deffn Method ede-object-sourcecode :PRIMARY this
Retrieves the slot @code{sourcetype} from an object of class @code{ede-compilation-program}
@end deffn
@deffn Method ede-proj-tweak-autoconf :PRIMARY this
Tweak the configure file (current buffer) to accomodate @var{THIS}.
@end deffn
@node ede-compiler, ede-object-compiler, ede-compilation-program, Compilers
@comment node-name, next, previous, up
@section ede-compiler
@cmindex ede-compiler
@table @asis
@item Inheritance Tree:
@table @code
@item eieio-instance-inheritor
@table @code
@item @w{@xref{ede-compilation-program}.}
@table @code
@item ede-compiler
@table @asis
@item Children:
@w{@xref{ede-object-compiler}.}
@end table
@end table
@end table
@end table
@end table
Create a new object with name NAME of class type ede-compiler
@table @asis
@item Slots:
@table @code
@item:parent-instance
Type: @code{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.
@refill
@item:name
Type: @code{string}
Name of this type of compiler.
@refill
@item:variables
Type: @code{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.
@refill
@item:sourcetype
Type: @code{list}
A list of @code{ede-sourcecode} @xref{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.
@refill
@item:commands
Type: @code{list}
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
@refill
@item:objectextention
Type: @code{string}
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
@refill
@item:makedepends
Type: @code{boolean} @*
Default Value: @code{nil}
Non- at code{nil} if this compiler can make dependencies.
@refill
@item:uselinker
Type: @code{boolean} @*
Default Value: @code{nil}
Non- at code{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.
@refill
@end table
@end table
@subsection Specialized Methods
@deffn Method initialize-instance :AFTER this &rest fields
Make sure that all ede compiler objects are cached in
@code{ede-compiler-list}.
@end deffn
@deffn Method ede-proj-makefile-insert-object-variables :PRIMARY this targetname sourcefiles
Insert an OBJ variable to specify object code to be generated for @var{THIS}.
The name of the target is @var{TARGETNAME} as a string. @var{SOURCEFILES} is the list of
files to be objectified.
Not all compilers do this.
@end deffn
@deffn Method ede-compiler-intermediate-objects-p :PRIMARY this
Return non- at code{nil} if @var{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.
@end deffn
@deffn Method ede-compiler-intermediate-object-variable :PRIMARY this targetname
Return a string based on @var{THIS} representing a make object variable.
@var{TARGETNAME} is the name of the target that these objects belong to.
@end deffn
@node ede-object-compiler, ede-linker, ede-compiler, Compilers
@comment node-name, next, previous, up
@section ede-object-compiler
@cmindex ede-object-compiler
@table @asis
@item Inheritance Tree:
@table @code
@item eieio-instance-inheritor
@table @code
@item @w{@xref{ede-compilation-program}.}
@table @code
@item @w{@xref{ede-compiler}.}
@table @code
@item ede-object-compiler
No children
@end table
@end table
@end table
@end table
@end table
Create a new object with name NAME of class type ede-object-compiler
@table @asis
@item Slots:
@table @code
@item:parent-instance
Type: @code{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.
@refill
@item:name
Type: @code{string}
Name of this type of compiler.
@refill
@item:variables
Type: @code{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.
@refill
@item:sourcetype
Type: @code{list}
A list of @code{ede-sourcecode} @xref{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.
@refill
@item:commands
Type: @code{list}
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
@refill
@item:objectextention
Type: @code{string}
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
@refill
@item:uselinker
Type: @code{boolean} @*
Default Value: @code{t}
@xref{ede-compiler}.
@item:dependencyvar
Type: @code{list}
A variable dedicated to dependency generation.
@refill
@end table
@end table
@subsection Specialized Methods
@deffn Method ede-proj-makefile-insert-variables :PRIMARY this
Insert variables needed by the compiler @var{THIS}.
@end deffn
@node ede-linker, , ede-object-compiler, Compilers
@comment node-name, next, previous, up
@section ede-linker
@cmindex ede-linker
@table @asis
@item Inheritance Tree:
@table @code
@item eieio-instance-inheritor
@table @code
@item @w{@xref{ede-compilation-program}.}
@table @code
@item ede-linker
No children
@end table
@end table
@end table
@end table
Create a new object with name NAME of class type ede-linker
@table @asis
@item Slots:
@table @code
@item:parent-instance
Type: @code{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.
@refill
@item:name
Type: @code{string}
Name of this type of compiler.
@refill
@item:variables
Type: @code{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.
@refill
@item:sourcetype
Type: @code{list}
A list of @code{ede-sourcecode} @xref{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.
@refill
@item:commands
Type: @code{list}
The commands used to execute this compiler.
The object which uses this compiler will place these commands after
it's rule definition.
@refill
@item:objectextention
Type: @code{string}
A string which is the extention used for object files.
For example, C code uses .o on unix, and Emacs Lisp uses .elc.
@refill
@end table
@end table
@subsection Specialized Methods
@deffn Method initialize-instance :AFTER this &rest fields
Make sure that all ede compiler objects are cached in
@code{ede-linker-list}.
@end deffn
1.1 XEmacs/packages/xemacs-packages/ede/ede-dired.el
Index: ede-dired.el
===================================================================
;;; ede-dired.el --- EDE extensions to dired.
;;; Copyright (C) 1998, 99, 00, 03 Eric M. Ludlam
;; Author: Eric M. Ludlam <zappo at gnu.org>
;; Version: 0.4
;; Keywords: project, make
;; RCS: $Id: ede-dired.el,v 1.1 2007/11/26 15:22:06 michaels Exp $
;; This software is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This software is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;
;; This provides a dired interface to dired, allowing users to modify
;; their project file by adding files (or whatever) directly from a
;; dired buffer.
(require 'easymenu)
(require 'dired)
(require 'ede)
;;; Code:
(defvar ede-dired-minor-mode nil
"Non-nil when in ede dired minor mode.")
(make-variable-buffer-local 'ede-dired-minor-mode)
(defvar ede-dired-keymap nil
"Keymap used for ede dired minor mode.")
(if ede-dired-keymap
nil
(setq ede-dired-keymap (make-sparse-keymap))
(define-key ede-dired-keymap ".a" 'ede-dired-add-to-target)
(define-key ede-dired-keymap ".t" 'ede-new-target)
(define-key ede-dired-keymap ".s" 'ede-speedbar)
(define-key ede-dired-keymap ".C" 'ede-compile-project)
(define-key ede-dired-keymap ".d" 'ede-make-dist)
(easy-menu-define
ede-dired-menu ede-dired-keymap "EDE Dired Minor Mode Menu"
'("Project"
[ "Add files to target" ede-dired-add-to-target (ede-current-project) ]
( "Build" :filter ede-build-forms-menu)
"-"
[ "Create Project" ede-new (not (ede-current-project)) ]
[ "Create Target" ede-new-target (ede-current-project) ]
"-"
( "Customize Project" :filter ede-customize-forms-menu )
[ "View Project Tree" ede-speedbar (ede-current-project) ]
))
)
(defun ede-dired-minor-mode (&optional arg)
"A minor mode that should only be activated in DIRED buffers.
If ARG is nil, toggle, if it is a positive number, force on, if
negative, force off."
(interactive "P")
(if (not (or (eq major-mode 'dired-mode)
(eq major-mode 'vc-dired-mode)))
(error "Not in DIRED mode"))
(setq ede-dired-minor-mode
(not (or (and (null arg) ede-dired-minor-mode)
(<= (prefix-numeric-value arg) 0))))
(if (and (not (ede-directory-project-p default-directory))
(not (interactive-p)))
(setq ede-dired-minor-mode nil))
)
(defun ede-dired-add-to-target (target)
"Add a file, or all marked files into a TARGET."
(interactive (list
(let ((ede-object (ede-current-project)))
(ede-invoke-method 'project-interactive-select-target
"Add files to Target: "))))
(let ((files (dired-get-marked-files t)))
(while files
(project-add-file target (car files))
;; Find the buffer for this files, and set it's ede-object
(if (get-file-buffer (car files))
(save-excursion
(set-buffer (get-file-buffer (car files)))
(setq ede-object nil)
(setq ede-object (ede-buffer-object (current-buffer)))))
;; Increment.
(setq files (cdr files)))))
;; Minor mode management.
(add-to-list 'minor-mode-alist '(ede-dired-minor-mode " EDE"))
(let ((a (assoc 'ede-dired-minor-mode minor-mode-map-alist)))
(if a
(setcdr a ede-dired-keymap)
(add-to-list 'minor-mode-map-alist (cons 'ede-dired-minor-mode
ede-dired-keymap))))
(provide 'ede-dired)
;;; ede-dired.el ends here
1.1 XEmacs/packages/xemacs-packages/ede/ede-load.el
Index: ede-load.el
===================================================================
;;; ede-load.el --- Autoload definitions for EDE
;;; Copyright (C) 2003 David Ponce
;; Author: David Ponce <david at dponce.com>
;; X-RCS: $Id: ede-load.el,v 1.1 2007/11/26 15:22:06 michaels Exp $
;; EDE is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This software is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;
;; Initialize EDE for all supported conditions.
;;; Code:
;;
;;; EDE autoloads
;;
(load "ede-loaddefs" nil t)
(provide 'ede-load)
;;; ede-load.el ends here
1.1 XEmacs/packages/xemacs-packages/ede/ede-loaddefs.el
Index: ede-loaddefs.el
===================================================================
;;; ede-loaddefs.el --- Auto-generated CEDET autoloads
;;
;;; Code:
;;;### (autoloads (ede-target-parent ede-parent-project ede-load-project-file
;;;;;; ede-documentation-files ede-description ede-name project-make-dist
;;;;;; project-compile-target project-compile-project project-edit-file-target
;;;;;; ede-compile-target ede-remove-file ede-project ede-target
;;;;;; ede-project-autoload) "ede" "ede.el" (18022 1918))
;;; Generated autoloads from ede.el
(autoload (quote ede-project-autoload) "ede" "\
Class representing minimal knowledge set to run preliminary EDE functions.
When more advanced functionality is needed from a project type, that projects
type is required and the load function used." nil nil)
(autoload (quote ede-target) "ede" "\
A top level target to build." nil nil)
(autoload (quote ede-project) "ede" "\
Top level EDE project specification.
All specific project types must derive from this project." nil nil)
(defvar ede-projects nil "\
A list of all active projects currently loaded in Emacs.")
(defvar ede-minor-mode nil "\
Non-nil in EDE controlled buffers.")
(autoload (quote ede-remove-file) "ede" "\
Remove the current file from targets.
Optional argument FORCE forces the file to be removed without asking." t nil)
(autoload (quote ede-compile-target) "ede" "\
Compile the current buffer's associated target." t nil)
(autoload (quote project-edit-file-target) "ede" "\
Edit the target OT associated w/ this file." nil nil)
(autoload (quote project-compile-project) "ede" "\
Compile the entire current project OBJ.
Argument COMMAND is the command to use when compiling." nil nil)
(autoload (quote project-compile-target) "ede" "\
Compile the current target OBJ.
Argument COMMAND is the command to use for compiling the target." nil nil)
(autoload (quote project-make-dist) "ede" "\
Build a distribution for the project based on THIS project." nil nil)
(autoload (quote ede-name) "ede" "\
Return the name of THIS targt." nil nil)
(autoload (quote ede-description) "ede" "\
Return a description suitible for the minibuffer about THIS." nil nil)
(autoload (quote ede-documentation-files) "ede" "\
Return the documentation files for the current buffer.
Not all buffers need documentations, so return nil if no applicable.
Some projects may have multiple documentation files, so return a list." nil nil)
(autoload (quote ede-load-project-file) "ede" "\
Project file independent way to read in FILE." nil nil)
(autoload (quote ede-parent-project) "ede" "\
Return the project belonging to the parent directory.
nil if there is no previous directory.
Optional argument OBJ is an object to find the parent of." nil nil)
(autoload (quote ede-target-parent) "ede" "\
Return the project which is the parent of TARGET.
It is recommended you track the project a different way as this function
could become slow in time." nil nil)
;;;***
;;;### (autoloads (ede-pmake-varname) "ede-pmake" "ede-pmake.el"
;;;;;; (17881 43568))
;;; Generated autoloads from ede-pmake.el
(autoload (quote ede-pmake-varname) "ede-pmake" "\
Convert OBJ into a variable name name, which converts . to _." nil nil)
;;;***
;;;### (autoloads nil "ede-proj" "ede-proj.el" (17881 43589))
;;; Generated autoloads from ede-proj.el
(add-to-list (quote auto-mode-alist) (quote ("Project\\.ede" . emacs-lisp-mode)))
;;;***
;;;### (autoloads (ede-simple-project ede-simple-load ede-simple-projectfile-for-dir)
;;;;;; "ede-simple" "ede-simple.el" (18019 24814))
;;; Generated autoloads from ede-simple.el
(add-to-list (quote ede-project-class-files) (ede-project-autoload "simple-overlay" :name "Simple" :file (quote ede-simple) :proj-file (quote ede-simple-projectfile-for-dir) :load-type (quote ede-simple-load) :class-sym (quote ede-simple-project)) t)
(autoload (quote ede-simple-projectfile-for-dir) "ede-simple" "\
Return a full file name to the project file stored in the current directory.
The directory has three parts:
<STORAGE ROOT>/<PROJ DIR AS FILE>/ProjSimple.ede" nil nil)
(autoload (quote ede-simple-load) "ede-simple" "\
Load a project of type `Simple' for the directory DIR.
Return nil if there isn't one." nil nil)
(autoload (quote ede-simple-project) "ede-simple" "\
EDE Simple project class.
Each directory needs a a project file to control it." nil nil)
;;;***
;;;### (autoloads (ede-update-version) "ede-util" "ede-util.el" (17213
;;;;;; 40281))
;;; Generated autoloads from ede-util.el
(autoload (quote ede-update-version) "ede-util" "\
Update the current projects main version number.
Argument NEWVERSION is the version number to use in the current project." t nil)
;;;***
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; End:
;;; ede-loaddefs.el ends here
1.1 XEmacs/packages/xemacs-packages/ede/ede-pconf.el
Index: ede-pconf.el
===================================================================
;;; ede-pconf.el --- configure.in maintenance for EDE
;; Copyright (C) 1998, 1999, 2000, 2005 Eric M. Ludlam
;; Author: Eric M. Ludlam <zappo at gnu.org>
;; Keywords: project
;; RCS: $Id: ede-pconf.el,v 1.1 2007/11/26 15:22:07 michaels Exp $
;; This software is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This software is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;
;; Code generator for autoconf configure.in, and support files.
(require 'ede-proj)
(require 'autoconf-edit)
;;; Code:
(defmethod ede-proj-configure-file ((this ede-proj-project))
"The configure.in script used by project THIS."
(ede-expand-filename (ede-toplevel this) "configure.in" t))
(defmethod ede-proj-configure-test-required-file ((this ede-proj-project) file)
"For project THIS, test that the file FILE exists, or create it."
(if (not (ede-expand-filename (ede-toplevel this) file))
(save-excursion
(find-file (ede-expand-filename (ede-toplevel this) file t))
(cond ((string= file "AUTHORS")
(insert (user-full-name) " <" (user-login-name) ">"))
((string= file "NEWS")
(insert "NEWS file for " (ede-name this)))
(t (insert "\n")))
(save-buffer)
(if (not (y-or-n-p
(format "I had to create the %s file for you. Ok? " file)))
(error "Quit")))))
(defmethod ede-proj-configure-synchronize ((this ede-proj-project))
"Synchronize what we know about project THIS into configure.in."
(let ((b (find-file-noselect (ede-proj-configure-file this)))
(td (file-name-directory (ede-proj-configure-file this)))
(targs (oref this targets))
(postcmd "")
(add-missing nil))
;; First, make sure we have a file.
(if (not (file-exists-p (ede-proj-configure-file this)))
(autoconf-new-program b (oref this name) "Project.ede"))
(set-buffer b)
;; Next, verify all targets of all subobjects.
(autoconf-set-version (oref this version))
(autoconf-set-output '("Makefile"))
;;
;; NOTE TO SELF. TURN THIS INTO THE OFFICIAL LIST
;;
(ede-proj-dist-makefile this)
;; Loop over all targets to clean and then add themselves in.
(ede-map-targets this 'ede-proj-flush-autoconf)
(ede-map-targets this 'ede-proj-tweak-autoconf)
;; Now save
(save-buffer)
;; Verify aclocal
(if (not (file-exists-p (ede-expand-filename (ede-toplevel this)
"aclocal.m4" t)))
(setq postcmd "aclocal;autoconf;autoheader;")
;; Verify the configure script...
(if (not (ede-expand-filename (ede-toplevel this)
"configure"))
(setq postcmd "autoconf;autoheader;")
(if (not (ede-expand-filename (ede-toplevel this) "config.h.in"))
(setq postcmd "autoheader;"))))
;; Verify Makefile.in, and --add-missing files (cheaply)
(setq add-missing (ede-map-any-target-p this
'ede-proj-configure-add-missing))
(if (not (ede-expand-filename (ede-toplevel this) "Makefile.in"))
(progn
(setq postcmd (concat postcmd "automake"))
(if (or (not (ede-expand-filename (ede-toplevel this) "COPYING"))
add-missing)
(setq postcmd (concat postcmd " --add-missing")))
(setq postcmd (concat postcmd ";")))
(if (or (not (ede-expand-filename (ede-toplevel this) "COPYING"))
add-missing)
(setq postcmd (concat postcmd "automake --add-missing;"))))
;; Verify a bunch of files that are required by automake.
(ede-proj-configure-test-required-file this "AUTHORS")
(ede-proj-configure-test-required-file this "NEWS")
(ede-proj-configure-test-required-file this "README")
(ede-proj-configure-test-required-file this "ChangeLog")
;; Let specific targets get missing files.
(mapc 'ede-proj-configure-create-missing targs)
;; Verify that we have a make system.
(if (or (not (ede-expand-filename (ede-toplevel this) "Makefile"))
;; Now is this one of our old Makefiles?
(save-excursion
(set-buffer (find-file-noselect
(ede-expand-filename (ede-toplevel this)
"Makefile" t) t))
(goto-char (point-min))
;; Here is the unique piece for our makefiles.
(re-search-forward "For use with: make" nil t)))
(setq postcmd (concat postcmd "./configure;")))
(if (not (string= "" postcmd))
(progn
(compile postcmd)
(switch-to-buffer "*Help*")
(toggle-read-only -1)
(erase-buffer)
(insert "Preparing build environment
Rerun the previous ede command when automake and autoconf are completed.")
(goto-char (point-min))
(let ((b (get-file-buffer
(ede-expand-filename (ede-toplevel this)
"Makefile"))))
;; This makes sure that if Makefile was loaded, and old,
;; that it gets flushed so we don't keep rebuilding
;; the autoconf system.
(if b (kill-buffer b)))
(error "Preparing build environment: Rerun your command when done")
))))
(defmethod ede-proj-configure-recreate ((this ede-proj-project))
"Delete project THISes configure script and start over."
(if (not (ede-proj-configure-file this))
(error "Could not determine configure.in for %S" (object-name this)))
(let ((b (get-file-buffer (ede-proj-configure-file this))))
;; Destroy all evidence of the old configure.in
(delete-file (ede-proj-configure-file this))
(if b (kill-buffer b)))
(ede-proj-configure-synchronize this))
(defmethod ede-proj-tweak-autoconf ((this ede-proj-target))
"Tweak the configure file (current buffer) to accomodate THIS."
;; Check the compilers belonging to THIS, and call the autoconf
;; setup for those compilers.
(mapc 'ede-proj-tweak-autoconf (ede-proj-compilers this)))
(defmethod ede-proj-flush-autoconf ((this ede-proj-target))
"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."
nil)
(defmethod ede-proj-configure-add-missing ((this ede-proj-target))
"Query if any files needed by THIS provided by automake are missing.
Results in --add-missing being passed to automake."
nil)
(defmethod ede-proj-configure-create-missing ((this ede-proj-target))
"Add any missing files for THIS by creating them."
nil)
(provide 'ede-pconf)
;;; ede-pconf.el ends here
1.1 XEmacs/packages/xemacs-packages/ede/ede-pmake.el
Index: ede-pmake.el
===================================================================
;;; ede-pmake.el --- EDE Generic Project Makefile code generator.
;;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Eric M. Ludlam
;; Author: Eric M. Ludlam <zappo at gnu.org>
;; Keywords: project, make
;; RCS: $Id: ede-pmake.el,v 1.1 2007/11/26 15:22:07 michaels Exp $
;; This software is free software; you can redistribute it and/or modify
;; it under the terms of the GNU G