Особенности сборки расширений для GNU Emacs


* Макросы RPM
В настоящее время для сборки расширений emacs представляются 
следующие rpm-макросы:

** Макросы для каталогов

*** %_emacslispdir
Каталог, в который рекомендуется устанавливать файлы emacs lisp (.el)
или откомпилированные elisp-файлы (.elc).

*** %_emacs_sitestart_dir
Каталог для системных site-start скриптов.

*** %_emacs_etc_dir
Каталог для расположения архитектурно-независимых файлов расширений не
являющихся кодом elisp.

** Макросы для облегчения процесса сборки

*** %byte_compile_file
Этот макрос является интерфейсом для функции emacs lisp
byte-compile-file. site-start скрипты не используются.

*** %byte_compile_dir
Компилирует все elisp файлы в каталоге - первом аргументе этого
макроса. site-start скрипты не используются.

*** %bc_file_with_site
Этот макрос является интерфейсом для функции emacs lisp
byte-compile-file. Используются site-start скрипты.

*** %bc_dir_with_site
Компилирует все elisp файлы в каталоге - первом аргументе этого
макроса. Используются site-start скрипты.

*** %byte_recompile_dir
Этот макрос является интерфейсом для функции emacs lisp
byte-recompile-directory, компилирует все .el файлы в каталоге -
первом аргументе макроса. Вложенные директории также
обрабатываются. Наличие .elc файлов не учитывается, site-start скрипты
не используются. При использовании этой функции стоит учитывать, что
load-path не устанавливается автоматически для каждого подкаталога,
для корректной установки load-path используйте макросы
%set_lisp_loadpath и %add_lisp_loadpath (см. ниже).

*** %brecomp_dir_with_site
Этот макрос подобен предыдущему, но использует site-start скрипты.

*** %byte_recompile_lispdir
Запускает %byte_recompile_dir для %buildroot%_emacslispdir. Самый
простой способ для быстрой компиляции .el файлов, установленных
%buildroot%_emacslispdir.

*** %brecomp_lispdir_with_site
Запускает %brecomp_dir_with_site для %buildroot%_emacslispdir

** Вспомогательные макросы

*** %__emacs
Исполнимый модуль GNU Emacs

*** %set_lisp_loadpath
Задает значение переменной %_lisppath. Это значение добавляется к
списку load-path при компиляции с использованием %byte_compile_file,
%byte_compile_dir, %bc_file_with_site, %bc_dir_with_site,
%byte_recompile_dir, %brecomp_dir_with_site, %byte_recompile_lispdir,
%brecomp_lispdir_with_site. Используйте с этим макросом только один
каталог (если необходимо задать больше, используйте
%add_lisp_loadpath)

*** %add_lisp_loadpath
Добавляет каталог к значению переменной %_lisppath.



* Модификация значения load-path
Расширения, устанавливающие elisp файлы в каталог %_emacslispdir или
его подкаталоги не нуждаются в явной модификации load-path - этот
каталог и его подкаталоги включаются в load-path автоматически (это
делает %_emacslispdir/subdirs.el, входящий в состав emacs21-common и
emacs22-common).


* Расположение архитектурно-независимых файлов расширений
Архитектурно-независимые файлы расширений, не относящиеся к
elisp-файлам и документации предлагается размещать в каталоге
%_emacs_etc_dir


* Исключение из load-path каталогов не содержащих elisp-файлы
В каталоги, не содержащие elisp-файлов, но расположенные в
%_emacslispdir следует добавлять пустой файл .nosearch - это
автоматически исключает эти каталоги из поиска.




Local Variables: 
coding: utf-8
mode: outline
paragraph-separate: "[ 	]*$"
End: 
