diff options
Diffstat (limited to 'tde-i18n-ru/docs/tdevelop/tdevelop/project-management.docbook')
-rw-r--r-- | tde-i18n-ru/docs/tdevelop/tdevelop/project-management.docbook | 1275 |
1 files changed, 1275 insertions, 0 deletions
diff --git a/tde-i18n-ru/docs/tdevelop/tdevelop/project-management.docbook b/tde-i18n-ru/docs/tdevelop/tdevelop/project-management.docbook new file mode 100644 index 00000000000..dbbe7188182 --- /dev/null +++ b/tde-i18n-ru/docs/tdevelop/tdevelop/project-management.docbook @@ -0,0 +1,1275 @@ +<chapter id="project-management"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <author +><firstname +>Ian</firstname +><surname +>Wadham</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Сборка и управление проектом</title> + +<para +>Здесь затрагиваются только компилируемые языки, такие как C++, &Java;, фортран. </para> + +<para +>В руководстве затронуты такие темы:</para> +<itemizedlist> + <listitem +><para +><link linkend="automake-manager-summary" +>Краткое описание &automanag;</link +> </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation" +>Использование менеджера Automake</link +> содержит основы работы &automanag;, </para +></listitem> +</itemizedlist> + +<sect1 id="automake-manager-summary"> +<title +>Краткое описание &automanag;</title> + +<para +>В главе <link linkend="unixdev-buildsystems" +>Системы сборки</link +> был изложен краткий обзор систем сборки, часто использующихся в UNIX. Здесь они рассматриваются подробнее. </para> +<para +>Существует некоторая неразбериха с тем, как называть программы такого типа, в &GNU; описаниях Automake, Autoconf и Libtool, называет их <quote +>системами сборки</quote +> (build systems). QMake называет себя <quote +>средством для написания файлов Makefile для разных компиляторов и платформ</quote +> (<quote +>a tool to write Makefiles for different compilers and platforms</quote +>) . В KDE также часто используется термин <quote +>системы управления проектом</quote +> (<quote +>project management systems</quote +>). Мы будем использовать последний для обозначения встроенных окружений в &tdevelop;, которые организуют и собирают проекты. В этой секции, однако, он будет использоваться в смысле <quote +>автоматизированные системы сборки</quote +>. </para> + +<sect2 id="automake-manager-summary-buildsys"> +<title +>Потребность в автоматизированных системах сборки</title> + +<para +>Если у вас простая программа <quote +>Hello World</quote +>, написанная на чистом C, вы можете скомпилировать и скомпоновать её с помощью &gcc; <parameter +>-o hello hello.c</parameter +> и запустить командой <command +>./hello</command +>, так что вам даже не и не нужен <filename +>Makefile</filename +>. </para> +<para +>Если же у вас программа, написанная на C, с несколькими модулями и заголовочными файлами, и вы сделали её исключительно для себя, вам будет нужен простой <filename +>Makefile</filename +>, который легко написать собственноручно (см. <userinput +>info make</userinput +>). </para> +<para +>Проблемы возникают когда: </para> +<itemizedlist> + <listitem +><para +>Ваш исходный код, документация, графическое оформление, звуки, файлы интернационализации, файлы с информацией и т.д. расположены в более чем одном каталоге, </para +></listitem> + <listitem +><para +>У вас иерархическая структура каталогов с исходниками, </para +></listitem> + <listitem +><para +>Вы используете библиотеки, не являющиеся стандартными библиотеками набора &UNIX;, такие как &Qt; или библиотеки &kde;, </para +></listitem> + <listitem +><para +>Вы используете пред-процессор для генерирования части исходного кода, например, MOC pre-compiler от Qt, </para +></listitem> + <listitem +><para +>Вы хотите распространять ваше приложение в Сети, для людей с другим дистрибутивом &UNIX;/&Linux;, набором программного и аппаратного обеспечения, </para +></listitem> + <listitem +><para +>Вам нужна автоматическая установка и удаление установленной программы, </para +></listitem> + <listitem +><para +>Вы хотите сделать своё приложение частью &kde;. </para +></listitem> +</itemizedlist> + +<para +>Если хотя бы одна из перечисленных ситуаций применима к вам, тогда вам потребуется <emphasis +>система сборки</emphasis +>. В примере выше мы использовали &gcc; для компиляции и сборки программы <quote +>Hello World</quote +>, но не все компиляторы C имеют название <quote +>&gcc;</quote +>. Так что, если вы будете распространять своё приложение, вполне может найтись человек, имеющий другой компилятор в своей системе. И здесь на помощь приходят файлы Makefile, содержащие такие данные, как, например, имя компилятора в данной системе. </para> +<para +>Система сборки заботится о том, чтобы ваше приложение можно было автоматически скомпилировать на любой совместимой платформе. </para> +<itemizedlist> + <listitem +><para +>Она найдёт расположение библиотек, </para +></listitem> + <listitem +><para +>скомпилирует и </para +></listitem> + <listitem +><para +>установит компоненты вашего приложения </para +></listitem> + <listitem +><para +>в корректные каталоги системы </para +></listitem> +</itemizedlist> + +<para +>Коротко, система сборки предлагает простой и безопасный метод компилирования и установки вашего приложения в конечной системе. как было сказано <link linkend="makesystems" +>выше</link +>, &tdevelop; поставляется с тремя автоматизированными системами сборки и возможностью создавать файлы Makefile вручную: </para> +<itemizedlist> + <listitem +><para +><link linkend="automake-project" +>Automake</link +>, использующий стандартные инструменты разработки &GNU;. </para +></listitem> + <listitem +><para +><link linkend="qmake-project" +>QMake</link +>, использующий менеджер проектов trolltech. </para +></listitem> + <listitem +><para +><link linkend="ant-project" +>ANT</link +>, использующий менеджер проекта Apache ANT (для &Java;) </para +></listitem> + <listitem +><para +><link linkend="custom-project" +>Специальный</link +> позволит вам писать файлы <filename +>Makefile</filename +> самостоятельно. </para +></listitem> +</itemizedlist> + +<important> +<para +>Один из этих вариантов вам нужно будет выбрать при создании нового проекта, и <emphasis +>выбор будет трудно сменить позже</emphasis +>, так что заранее определите, какая система сборки наиболее подходит вам. </para> +</important> + +</sect2 +> <!-- automake-manager-summary-buildsys --> + +<sect2 id="automake-references"> +<title +>Руководства по Autoconf/Automake/Libtool</title> +<para +>Доступно несколько руководств по системе сборки &GNU; (<command +>Autoconf</command +>, <command +>Automake</command +> и <command +>Libtool</command +>), используемой менеджером &automanag;. </para> +<itemizedlist> + <listitem +><para +>Краткое <ulink url="http://www.asmodeus.com.ua/library/soft/GNU/autoconf/autoconf-ru_toc.html" +>руководство autoconf</ulink +> (<ulink url="http://www.tdevelop.org/index.html?filename=tutorial_autoconf.html" +>оригинал на английском</ulink +>), написанное Кристофером Картисом, и доступное на домашней странице KDevelop. В нём делается акцент на основные этапы редактирования <filename +>Makefile</filename +>. </para +></listitem> + <listitem +><para +>Более подробное руководство можно найти в большом сборнике руководств <ulink url="http://www.amath.washington.edu/~lf/tutorials/autoconf/toolsmanual_toc.html" +><quote +>Разработка ПО с GNU</quote +></ulink +>. </para +></listitem> + <listitem +><para +>Книжку про <quote +>Autoconf, Automake, and Libtool</quote +> можно найти по адресу <ulink url="http://sources.redhat.com/autobook" +></ulink +>. Это наиболее полное введение в &GNU; Autotools. Также прочитать о GNU Automake на русском вы можете здесь: <ulink url="http://www.asmodeus.com.ua/library/soft/GNU/automake/automake-ru_toc.html" +></ulink +> </para +></listitem> +</itemizedlist> + +</sect2 +> <!-- automake-references --> + +<sect2 id="automake-manager-basics"> +<title +>Что делает &automanag;?</title> + +<para +><link linkend="applicationwizard" +>Мастеру приложений</link +> потребуется инициализировать файлы <filename +>Makefile.am</filename +> при создании проекта, использующего Систему сборки &GNU;, например <menuchoice +><guimenuitem +>C++</guimenuitem +> <guimenuitem +>KDE</guimenuitem +></menuchoice +>. В процессе разработки, &automanag; создаёт файлы <filename +>Makefile.am</filename +> для проектов, использующих Систему сборки &GNU;, и сопровождает их. </para> +<para +>В каждом каталоге вашего проекта, содержащего файлы, которые требуется компилировать или устанавливать, находится один файл <filename +>Makefile.am</filename +>. В нём находятся указания ко компиляции, сборки и установке, а также список подкаталогов, также имеющих <filename +>Makefile.am</filename +>. </para> + +<note +><para +>Каталоги вашего проекта и исходники могут быть разбросаны в структуре любой глубины, или же в подкаталогах одного уровня. </para +></note> + +<para +>Цель Системы сборки &GNU; — создать структуру исходников, которую можно скомпилировать, построить и установить на любой системе &UNIX; или &Linux;, используя простые команды: </para> + +<screen +>./configure +make +make install # с правами "root". +</screen> + +<para +>и удалить установленную программу командой <command +>make uninstall</command +> (также от root). </para> + +<para +>Как это работает? <command +>configure</command +> — это сценарий, который <itemizedlist> + <listitem +><para +>собирает информацию о системе, на которой работает, например, какой компилятор в ней установлен и какие библиотеки доступны и где, а потом </para +></listitem> + <listitem +><para +>рекурсивно создаёт файлы <filename +>Makefile</filename +> используя <filename +>Makefile.in</filename +> как шаблон. </para +></listitem> +</itemizedlist> +</para> +<para +>Файлы <filename +>Makefile.in</filename +> — это <quote +>входные</quote +> файлы, шаблоны с базовой информацией для файлов <filename +>Makefile</filename +>, которые будут созданы из них путём заполнения в них определённой, зависимой от системы, информации. Всё это происходит под управлением <command +>Automake</command +>. </para> +<para +>Процесс перехода от <filename +>Makefile.am</filename +> (<filename +>.am</filename +> означает шаблон <quote +>Automake</quote +>) к <filename +>Makefile</filename +> управляется &promanag;, через утилиту <command +>Autoconf</command +>, макрос <command +>M4</command +> и пр. </para> +<para +>Когда выполняется <command +>make</command +>, он автоматически собирает информацию об окружении, такую как путь к компиляторам и библиотекам. Аналогично, <command +>make install</command +> перемещает компоненты приложения, такие как исполнимые файлы, документацию, в корректные места окружения. </para> + +<para +>Если вы распространяете ваше приложение как <quote +>tarball</quote +> (архив, который можно создать в KDevelop), в нём будут включены файлы <filename +>Makefile.in</filename +> и скрипт <filename +>configure</filename +>, чтобы его можно было собрать и установить на системе, где нет <command +>Automake</command +>, <command +>Autoconf</command +> или KDevelop. Файлы <filename +>Makefile.am</filename +> также включаются, для того случая, когда потребуется безболезненно вмешаться в исходный код. </para> +<note +><para +>Правила усложняются если вы также распространяете программу через хранилище, основанное на web, такое как . &cvs; &kde; </para +></note> + +</sect2 +> <!-- automake-manager-basics --> + +<sect2 id="automake-manager-basics-summary"> +<title +>Подытожим возможности Automake Manager</title> + +<itemizedlist> + <listitem +><para +>Генерирование файлов <filename +>Makefile.am</filename +> в подкаталогах (называемых <quote +>subprojects</quote +>). </para +></listitem> + <listitem +><para +>Обновление файлов <filename +>Makefile.am</filename +> при изменении структуры проекта. </para +></listitem> + <listitem +><para +>Обновление файлов <filename +>Makefile.am</filename +> при добавлении или удалении файлов из проекта. </para +></listitem> + <listitem +><para +>Настройка параметров сборки или установки отдельных файлов, изменение <filename +>Makefile.am</filename +> в соответствии с этим. </para +></listitem> + <listitem +><para +>Настройка параметров, используемых при сборке и установке (например имена библиотек). </para +></listitem> +</itemizedlist> + +</sect2 +> <!-- automake-manager-basics-summary --> + +<sect2 id="automake-file-contents"> +<title +>Содержание файлов Automake</title> + +<para +>Файл <filename +>Makefile.am</filename +> содержит строки с именами переменных, знаком равно и списком файлов или значением параметра. Имена <quote +>переменных</quote +> состоят из двух частей, например <varname +>bin_PROGRAMS</varname +>, <varname +>myapp_SOURCES</varname +> или <varname +>kdelnk_DATA</varname +>. Вторая часть называется <emphasis +>первичной</emphasis +> (<emphasis +>primary</emphasis +>) и представляет что-то, что нужно собрать или установить. Первая часть называется <emphasis +>приставкой</emphasis +> (<emphasis +>prefix</emphasis +>) и представляет: </para> +<itemizedlist> + <listitem +><para +><emphasis +>Каталог</emphasis +>, куда нужно устанавливать (например <filename +>bin</filename +>), </para +></listitem> + <listitem +><para +><emphasis +>Спецификатор</emphasis +> (например <varname +>myapp</varname +> для <varname +>SOURCES</varname +>, это говорит о том, что исходные файлы, перечисленные поле <varname +>myapp_SOURCES</varname +> входят в сборку <filename +>myapp</filename +>), </para +></listitem> + <listitem +><para +>Специальная <emphasis +>приставка</emphasis +> <varname +>noinst</varname +> (<quote +>no installation</quote +>), используется для перечисления заголовочных файлов (<filename +>.h</filename +>), </para +></listitem> + <listitem +><para +>Специальная приставка <varname +>EXTRA</varname +> для вещей, зависящих от конфигурации системы. </para +></listitem> +</itemizedlist> + +<para +>Для подробностей о <command +>Automake</command +> и файлах <filename +>Makefile.am</filename +> см. <userinput +>info Automake</userinput +>. </para> +<para +>&automanag; создаёт и обновляет переменные и их значения. Далее приведён пример <filename +>Makefile.am</filename +> для приложения с названием <filename +>myapp</filename +>. </para> + +<screen +>## Makefile.am для myapp + +# устанавливаемая программы. её имя используется +# для всех переменных Makefile.am +bin_PROGRAMS = myapp + +# путь include для X, qt и KDE +INCLUDES = $(all_includes) + +# пути к библиотекам. +myapp_LDFLAGS = $(KDE_RPATH) $(all_libraries) + +# библиотеки, с которыми компоновать. +myapp_LDADD = $(LIB_KFILE) $(LIB_TDEPRINT) + +# что компилировать для myapp +myapp_SOURCES = main.cpp myapp.cpp myappview.cpp + +# заголовки +noinst_HEADERS = myapp.h myappview.h + +# разрешить automoc обрабатывать все исходные meta файлы (moc) +METASOURCES = AUTO + +KDE_ICON = myapp + +# куда пойдёт файл kdelnk +kdelnkdir = $(kde_appsdir)/Utilities +kdelnk_DATA = myapp.desktop + +# куда пойдёт XML-GUI файл ресурсов +rcdir = $(kde_datadir)/myapp +rc_DATA = myappui.rc + +AM_CXXFLAGS = -DMY_C++_PREPROCESSOR_OPTION +</screen> + +<para +>Как вы видите, большинство пунктов справа — набор символов в форме <varname +>$(xxx)</varname +>. Это <emphasis +>переменные окружения</emphasis +>, определённые в собственно окружении &kde;. Они заменяются действительными значениями когда <command +>./configure</command +> генерирует файлы <filename +>Makefile</filename +> из шаблонов. </para> + +<para +>Также, команда <command +>./configure --help</command +> отобразит список вещей, которые вы можете изменить во время сборки/компиляции. В частности, команда: <screen> +./configure --prefix=/где/вы/желаете +</screen +> будет перенаправлять устанавливаемые файлы куда вы захотите, сменой значения внутренней переменной <varname +>$(prefix)</varname +> на <filename class="directory" +>/где/вы/желаете</filename +>. </para> + +</sect2 +> <!-- automake-file-contents --> + +</sect1 +> <!-- automake-manager-summary --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="automake-manager-operation"> +<title +>Использование менеджера Automake</title> + +<para +>В этой главе вы найдёте краткое описание элементов &automanag; и как их использовать. В частности: <itemizedlist> + <listitem +><para +><link linkend="automake-manager-operation-window" +>Окно &automanag;</link +> описывает структуру окна &automanag;. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-survey-window" +>Элементы верхнего окна</link +>. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-detail-window" +>Элементы нижнего окна с деталями</link +>. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-navigate" +>Навигация по &automanag;</link +> содержит список основных действий, которые вы можете выполнять в &automanag;. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-popups" +>Контекстные меню в &automanag;</link +> описывает окна, появляющиеся после выбора какого-либо действия в &automanag;. </para +></listitem> +</itemizedlist> +</para> + +<sect2 id="automake-manager-operation-window"> +<title +>Окно &automanag;</title> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automakemanager.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="top" +><itemizedlist> + <listitem +><para +>&automanag; запускается в отдельном окне. Верхняя часть называется <emphasis +>Верхним окном</emphasis +>, а нижняя — <emphasis +>окном деталей</emphasis +>. Между ними располагается разделитель, который можно перетаскивать для регулировки размеров верхнего и нижнего окон. В режиме IDEAl можно также изменять ширину окна. </para +></listitem> + <listitem +><para +>Вверху каждого окна есть <emphasis +>панель инструментов</emphasis +>, кнопки на которой активируются, когда выбирается элемент из списка в окне. роме того действия над элементами можно совершать через их контекстные меню. </para +></listitem> + <listitem +><para +>В режиме IDEAl также есть две дополнительные кнопки, слева на заголовке окна – треугольная стрелка вправо и точка. Первая <emphasis +>закрывает окно</emphasis +>, а вторая <emphasis +>сохраняет его открытым</emphasis +> даже если активировано другое окно &tdevelop; (иначе окно &automanag; будет автоматически закрыто сразу после передачи фокуса на другое окно). </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect2 +> <!-- automake-manager-operation-window --> + +<sect2 id="automake-manager-operation-survey-window"> +<title +>Окно Overall View</title> + +<para +>Окно Overall View содержит древовидный список каталогов вашего проекта, содержащих программные файлы, документацию или другие данные. В каждом из них находится файл <filename +>Makefile.am</filename +>, называемый в &automanag; <emphasis +>подпроектом</emphasis +> (<emphasis +>subproject</emphasis +>). Как показано на рисунке, есть три стандартных подпроекта: </para> + +<itemizedlist> + <listitem +><para +><filename +>src</filename +> – исходники вашего приложения, </para +></listitem> + <listitem +><para +><filename +>doc</filename +> – руководство приложения (Handbook), </para +></listitem> + <listitem +><para +><filename +>po</filename +> – файлы перевода, содержащие перевод всей текстовой информации вашего приложения (например, заголовки окон, пункты меню, названия кнопок). </para +></listitem> +</itemizedlist> + +<para +>Обратите внимание, что <filename +>doc</filename +> всегда содержит подкаталог <filename +>en</filename +>. Это потому, что основной язык документации KDE — английский (en). Если ваше приложение станет частью KDE, команды перевода KDE переведёт его с английского на другие языки, размещаемые в других каталогах, например <filename +>ru</filename +> (русский) или <filename +>uk</filename +> (украинский). Сообщения в файле <filename +>po</filename +> также будут переведены, что позволит использовать ваше приложение людям, не знающим английский. </para> + +<note +><para +>Подкаталоги <filename +>doc</filename +> и <filename +>po</filename +> служат для разных целей. <filename +>doc</filename +> содержит <emphasis +>документацию</emphasis +>, такую как руководство, <filename +>po</filename +> содержит сообщения для перевода <emphasis +>пользовательского интерфейса</emphasis +>, встроенного в исходники данного приложения. </para +></note> + +<para +>Окно Общее просмотр (Overall View) также служит как средство навигации. Если вы выберите подпроект, подробности о нём будут отображены в окне Detail View. </para> + +</sect2 +> <!-- automake-manager-operation-survey-window --> + +<sect2 id="automake-manager-operation-detail-window"> +<title +>Окно Detail View</title> + +<para +>Окно Detail View содержит древовидный список файлов подпроекта, выделенного в окне Overall View, а также правила компиляции, сборки и установки для них. </para> + +<sect3> +<title +>Цели</title> + +<para +>Древовидный список в Detail View имеет два уровня. Верхний состоит из т.н. <emphasis +>целей</emphasis +> (target) &automanag;, и нижний содержит списки файлов, составляющие каждую цель. </para> + +<para +>Принцип цели &automanag; отличается от цели <filename +>Makefile</filename +>. Коротко:</para> +<itemizedlist> + <listitem +><para +>Определение способа компиляции, сборки и установки набора файлов, известно как <emphasis +>цель</emphasis +> в &automanag;, и как <emphasis +>переменная</emphasis +> в <command +>Automake</command +>. </para +></listitem> + <listitem +><para +><emphasis +>Цель</emphasis +> в <command +>make</command +> — параметр команды <command +>make</command +> (например <userinput +>make install</userinput +>, <userinput +>make clean</userinput +>). </para> + <para +>Тем не менее, все переменные файла <filename +>Makefile.am</filename +> представляют<emphasis +>подцель</emphasis +> (sub-target) в <command +>make</command +>. </para +></listitem> +</itemizedlist> + +</sect3> +</sect2 +> <!-- automake-manager-operation-detail-window --> + +<sect2 id="automake-manager-operation-navigate"> +<title +>Навигация в &automanag;</title> + +<para +>При щелчке в окне Overall View или Detail View на <symbol +>+</symbol +> или <symbol +>-</symbol +>, рядом с именем подпроекта или цели, приведёт развёртыванию или свёртыванию дерева. </para> + +<variablelist> +<varlistentry> +<term +>Jткрытие файла для правки</term> +<listitem> +<para +>При щелчке на файле в окне "Детали", он откроется в окне редактирования . &tdevelop;</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Активирование кнопок &automanag;</term> +<listitem> +<para +>При щелчке на имени подпроекта в окне Overall View или цели в Detail View, активируются некоторые кнопки панели инструментов.</para> + +<note> + <para +>Рекомендуется использовать <emphasis +>контекстные меню</emphasis +> вместо панели инструментов, т.к. так легче видеть и понимать что вы делаете. </para> + <para +>Действия над подпроектами и целями широко действуют на структуру, компиляцию, сборку и установку вашего приложения. </para> +</note> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Контекстные меню</term> +<listitem> +<para +>В контекстном меню подпроекта, цели или файла можно выбрать действия над ними, например, добавить цель в подпроект, добавить или удалить файл из цели (не с диска). </para> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- automake-manager-operation-navigate --> + +<sect2 id="automake-manager-operation-popups"> +<title +>Контекстные меню &automanag;</title> + +<para +>Далее изложен обзор контекстных меню &automanag;. Более подробное их описание вы найдёте в следующей главе. </para> +<!-- ### add a link to this chapter when ready --> + +<sect3 id="automake-manager-operation-popups-file"> +<title +>Контекстное меню файла</title> + +<para +>На рисунке ниже показано контекстное меню для значка <filename +>hi-16app-myapp.png</filename +> из цели <guilabel +>Icon data in myapp</guilabel +> подпроекта <guilabel +>myapp/src</guilabel +>. </para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-file-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>Действие по умолчанию — <guimenuitem +>Удалить</guimenuitem +> файл из цели. </para +></listitem> + <listitem +><para +>Подменю <guimenuitem +>CVS</guimenuitem +> содержит действия над файлом, касающиеся CVS. </para +></listitem> + <listitem +><para +><guimenuitem +>Открыть в</guimenuitem +> позволяет открыть файл любой командой (например, в нашем случае, мы можем открыть значок в <application +>KIcon</application +>). </para +></listitem> + <listitem +><para +><guimenuitem +>Perforce</guimenuitem +> — проприетарный пакет, аналогичный CVS. </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-file --> + +<sect3 id="automake-manager-operation-popups-target"> +<title +>Контекстное меню цели</title> + +<para +>На рисунке ниже, выбрана цель <guilabel +>myapp (Program in bin)</guilabel +> подпроекта <guilabel +>myapp/src</guilabel +>. </para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-target-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +><guimenuitem +>Параметры</guimenuitem +> только для целей, содержащих исходные файлы. Вы сможете указать ключи компоновщика и пути, по которым производить поиск библиотек, а также вы можете указать список библиотек, с которыми нужно компоновать ваше приложение. </para +></listitem> + <listitem +><para +><guimenuitem +>Создать файл</guimenuitem +> приведёт к созданию нового файла. </para +></listitem> + <listitem +><para +><guimenuitem +>Добавить существующие файлы</guimenuitem +> приведёт к добавлению файла. </para +></listitem> + <listitem +><para +><guimenuitem +>Удалить</guimenuitem +> приведёт к удалению цели и всех её файлов с диска. </para +></listitem> + <listitem +><para +><guimenuitem +>Сделать цель активной</guimenuitem +> только для целей, содержащих исходные файлы. Активирует текущую цель — новые файлы всегда добавляются в неё </para +></listitem> + <listitem +><para +><guimenuitem +>Собрать цель</guimenuitem +> приведёт к сборке текущей цели. </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-target --> + +<sect3 id="automake-manager-operation-popups-subproject"> +<title +>Контекстное меню подпроекта</title> + +<para +>Меню <emphasis +>подпроекта</emphasis +> позволяет делать масштабные изменения в структуре вашего проекта, а также способ его компиляции, сборки и установки. </para> + + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-subproject-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +><guimenuitem +>Параметры</guimenuitem +> содержит параметры компиляции, сборки и установки проекта. В появившемся диалоге будут вкладки Compiler, Includes, Prefixes и Build Order. </para +></listitem> + <listitem +><para +><guimenuitem +>Добавить подпроект</guimenuitem +> создаст новый подкаталог в структуре проекта и начальный файл Makefile.am. </para +></listitem> + <listitem +><para +><guimenuitem +>Добавить цель</guimenuitem +> откроет диалог, где вы сможете установить правила компиляции, сборки и установки файлов подпроекта. </para +></listitem> + <listitem +><para +><guimenuitem +>Добавить сервис</guimenuitem +> (... в процессе написания ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Добавить приложение</guimenuitem +> (... в процессе написания ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Добавить существующие подпроекты...</guimenuitem +> (... в процессе написания ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Удалить подпроект</guimenuitem +> — правильный способ удаления подпроекта. При этом также "подправятся" файлы <filename +>Makefile.am</filename +>. Кроме того, будет предложено удалить все файлы, находящиеся в подкаталоге. Используйте это с осторожностью. </para +></listitem> + <listitem +><para +><guimenuitem +>Собрать</guimenuitem +> приведёт к сборке текущего подпроекта. </para +></listitem> + <listitem +><para +><guimenuitem +>Пересоздать</guimenuitem +> (... в процессе написания ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Очистить</guimenuitem +> (... в процессе написания ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Установить</guimenuitem +> (... в процессе написания ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Установить (с правами root)</guimenuitem +> (... в процессе написания ...) </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-subproject --> + +</sect2 +> <!-- automake-manager-operation-popups --> + +</sect1 +> <!-- automake-manager-operation --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="autoproject"> +<title +>Automake</title> +<indexterm zone="autoproject" +><primary +><command +>autoproject</command +></primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&automake;</primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&autoconf;</primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&libtool;</primary +></indexterm> + +<para +>(... в процессе написания ...) </para> + + +<sect2 id="autoconf"> +<title +>Autoconf</title> +<indexterm zone="autoconf" +><primary +>скрипт <filename +>configure</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +>скрипт <filename +>config.status</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>Makefile.in</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>config.h.in</filename +></primary +></indexterm> + +<para +><filename +>Makefile.in</filename +> в <filename +>Makefile</filename +> </para> + +<programlisting +>prefix = @prefix@ +INSTALL = @INSTALL@ +build_triplet = @build@ +CXX = @CXX@ +</programlisting> + +<programlisting +>prefix = /home/bernd/kde3 +INSTALL = /usr/bin/ginstall -c -p +build_triplet = i686-pc-linux-gnu +CXX = g++ +</programlisting> + +<para +><filename +>config.h.in</filename +> в <filename +>config.h</filename +> </para> + +<programlisting +>/* Define if you have libz */ +#undef HAVE_LIBZ +/* Размер `int', как подсчитано sizeof. */ +#undef SIZEOF_INT +</programlisting> + +<programlisting +>/* Define if you have libz */ +#define HAVE_LIBZ 1 +/* Размер `int', как подсчитано sizeof. */ +#define SIZEOF_INT 4 +</programlisting> + +</sect2 +> <!-- autoconf --> + + +<sect2 id="automake"> +<title +>Automake</title> + +<para +>(... в процессе написания ...) </para> + +</sect2 +> <!--automake --> + + +<sect2 id="automake-manager"> +<title +>&automanag;</title> + +<figure id="screenshot-automake-manager" float="1"> +<title +>Снимок экрана менеджера automake</title> +<mediaobject> +<imageobject +><imagedata fileref="automake-manager.png"/></imageobject> +</mediaobject> +</figure> + +</sect2 +> <!-- automake-manager --> + + +<sect2 id="automakelibrary"> +<title +>Сборка и установка библиотек</title> + +<para> +<itemizedlist> +<listitem +><para +>-rpath </para +></listitem> +<listitem +><para +>PIC </para +></listitem> +<listitem +><para +>static </para +></listitem> +<listitem +><para +>plugins: no-undefined </para +></listitem> +</itemizedlist> +</para> + +</sect2 +> <!-- automakelibrary --> + +</sect1 +> <!-- autoproject --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="customproject"> +<title +>Специальные файлы makefile и сценарии сборки</title> +<indexterm zone="customproject" +><primary +><filename +>Makefile</filename +></primary +></indexterm> +<indexterm zone="customproject" +><primary +><filename +>build.xml</filename +></primary +></indexterm> + +<para +>(... в процессе написания ...) </para> + +</sect1 +> <!-- customproject --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="compileroptions"> +<title +>Параметры компилятора</title> + +<para +>(... в процессе написания ...) </para> + +</sect1 +> <!-- compileroptions --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="makeoptions"> +<title +>Параметры make</title> + +<para +>(... в процессе написания ...) </para> + +</sect1 +> <!-- makeoptions --> + +</chapter +> <!-- project-management --> |