elmake should become a system completely written in Emacs lisp to byte-compile elisp, install it into the load path (a directory that is specified when elmake itself is installed), make info files and install them into the info diractory (specified when installed elmake as well). It intention is to be completely platform independent (should run on every platform where an Emacs exists) and work with different Emacs and XEmacs versions. Until now, there are lots of different ways to install emacs packages (autoconf/make, ede (a config file that is converted to a makefile by elisp) some lisp code to run by hand, or just instructions "copy file foo to bar and byte-compile it). The intention of elmake is to provide a kind of standard way for compiling and installing packages for emacs and xemacs (a bit like ant works for java programs) - just open the elmakefile and hit a key combo - the rest is done by the elmakefile. Why make it open source? There are lots of emacsen/OSes around and I don't know all the different traps you can fall into when switching code between those. Features: - compile package (byte-compile, makeinfo etc.) - install package - uninstall package Data formats: it uses its own lisp-like format. Import features for ede or (classical) makefiles may be added (if they are simple enough...). Existing code: almost nothing. There are a few lines of Lisp code here on my pc which parse the structure of a file and can handle some tasks (like byte-compile and copy), but there is still a bit missing so no release anywhere... Maybe more in a few days. I hope that this text is not too long... to make it even longer, an example for an elmakefile (for (un)installing elmake itself): ;; elMake is a way to run elMakefiles. ;; ((elmakefile "elmake" "0.0.0.1-20020916") (filelist elfiles "\.el$") (filelist elcfiles "\.elc$") (filelist this "^elMakefile$") (filelist loadfiles "^elmake-load.elc?$") (target "compile" (compile elfiles)) (target "install" (depends "compile") (mkdir targetdir) (copy targetdir elcfiles this) (copy-source targetdir elfiles) (copy basedir loadfiles) (register-require elmake-autoload) (register-installed)) (target "uninstall" (delete targetdir elfiles elcfiles this) (rmdir targetdir) (unregister-require elmake-autoload) (register-uninstalled))) [not guaranteed that this file will work as is...]