makefile.in and makefile.am - можно сказать, заготовки. Во всяком случае, они остаются, добавляется Makefile - вот так, с большой буквы и без расширений.Вкстате, после ./configure и make в папке с прогой живут исходники плюс собраная прога и её Makefile. Если она уже установлена с помощью make install, деинсталировать её часто можно при помощи make uninstall. Если нужно пересобрать её с другими опциями ./configure (напр. для установки в /opt вместо /usr/local, или включить/выключить поддержку чего-нибудь, короче см. ./configure --help конкретной проги) , нужно дать команду make clean. Тогда будет удалён Makefile и собранные куски программы, т.е. папка примет такой вид, как будто ты её только что скачал и распаковал.
Теперь важнейший для порядка в голове момент(упрощённо). Програмёры пишут собственно исходный код -пока не программу. Машине (конкретно процессору) эти буквы, цифры и команды.. эээ... до спины - ей нужны процессорные инструкции. Для этого в винде запускают компиллятор, который и собирает из исходного кода файл бла-бла.exe - собственно рабочую прогу Блабла. Потом эту программу тем или иным способом распространяют среди пользователей винды (продают, взламывают, воруют...
). Как правило, этот *.exe включают в другую программу - инсталятор (напр. setup.exe), который показывает лицензию, задаёт дурные вопросы, потом помещает, куда надо *.exe и всякие иконки для доступа, добавляет записи в реестр. В результате пользователь винды получает готовый продукт в конкретной конфигурации. При этом исходный код ("сорцы", "сырцы","исходники","source","source code"..) часто тщательно скрываются - типа ноу-хау-сам-всё-схау.
Традиционно в Линуксе автор распространяет свою программу прямо в виде исходников (папка с ними пакуется в *.tar.gz, *.tar.bz,*.tar.bz2 - отличаются размером, но не содержимым) с которыми пользователь волен делать всё, что угодно, вплоть до переделки под свои нужды самого кода программы. Все обычно так и делают
. Шутка. Но пользователь может собрать программу под свой проц, с поддержкой только своего языка, повыкинуть поддержку ненужных ему функций, указать, где лежат нужные проге библиотеки, если та сама не нашла и т.д. Автор предусматривает это на этапе ,/ configure (снова см. ./configure --help данной проги, там же указывают, какие опции выставлены по умолчанию) . Выглядит это примерно так:
Код: Выделить всё
./ configure --prefix=/opt --with-kde --without-gnome --with-ogg --without-mp3 --with-x
Пример от фонаря, но похож на правду. В данном примере пога будет собрана для установки в каталог /opt, поддержку КДЕ улучшить, Гнома - выкинуть, работать будем со звуком формата ogg, mp3- выкидываем, возможность работы в иксах подключаем. В простейшем случае, не заморачиваемся, собираем с авторскими опциями - просто ./configure. Дальше я бегло рассказывал.
Но не всем в радость заниматься таким шаманством. Производители дистров идут навстречу пользователям,и развивают разные пакетные системы. В моём Slackware это пакеты *.tgz; в Lindows/Linspire,Debian и Ubuntu - *.deb; в Suse, Mandrake/Mandriva, ASP, Alt, RedHat/Fedora - *.rpm. RPM - это тоже особый архив. Ради любопытства в него можно зайти в консоли при помощи mc. Внутри видим несколько файлов с характеристиками совместимости и т.п., файл install, который запускает установку, и собственно устанавливаемые файлы, рассованые по папкам внутри rpm. Откуда это берётся?
Кто-то добрый до нас взял исходники, сконфигурировал (configure) и откомпилировал (make) программу по своему усмотрению (про опции см. выше). Но устанавливать (make install) не стал, а запаковал это в *rpm, и подарил нам через инет, или недорого продал на диске. Причём, ИСХОДНИКОВ В ПАКЕТЕ УЖЕ НЕТ - ТОЛЬКО ИСПОЛНЯЕМЫЕ ФАЙЛЫ И ФАЙЛЫ КОНФИГУРАЦИИ, да картинки-иконки.Теперь нам достаточно сделать двойной клик на этом пакете, чтобы запустилась установка. Или в консоли в папке с рпмкой дать команду rpm -Uhv бла-бла.rpm .
НО! У доброго человека на машине столяли такие-то библиотеки ИМЕННО таких-то версий, ИМЕННО в таких-то папках, и в ./configure он сказал нашей проге установиться туда-то. Причём вся эта прелесть, от которой наша прога зависит, тоже была установлена при помощи rpm.
Первым делом система проверяет, установлены ли пакеты с прелестью, причём она не шмонает всю систему в поисках библиотек, а тупо просматривает список установленных rpm-пакетов. Нету библиотеки? - "До свидания, сначала установите такие-то пакеты". Т.е. если я эту библиотеку сам собрал из исходников - систему rpm это не волнует. Пакет ей родной нужен.Мандрива, правда, сама предлагает доустановить то, что нужно.То же происходит с рпмками от другого дистра. Я когда-то развлекался, пихая пакеты от Suse в Mandrake - устанавливал без проверки зависимостей, запускал из консоли, смотрел, где оно что ищет, делал симлинки из места, где оно ищет, в место, где реально лежат нужные файлы (у них даже KDE по разным каталогам лежит) - увлекательно
. Всё это описано в литературе. Чтобы не мучится, конечно, можно найти rpm-пакет с xmms под твою Mandriv'у, подозреваю, что прямо на их сайте и со всеми зависимыми пакетами.
Для добавления новых функций в чужую программу выпускают патчи - исправления. Берём сырцы, распаковываем, применяем патч - там некоторые файлы соответственно изменятся, и после конфигурирования - сборки - установки программа обретёт новые функции. Например, я пропатчил свой mc для работы с Юникодом.
Книги. Литературу типа "Для чайников", "Линукс за три часа", "Читая меньше-узнавай больше" (ваще улёт - лежат такие в магазинах) следует выбирать по качеству бумаги. Она должна быть мягкой и нежной.
Серъёзных книг по Линукс у меня три (600-900 стр, мелочи не считаем) :
Д.Колисниченко "Самоучитель Linux"
Д. Бендел, Р. Нейпир "Использование Linux"
М. Кофлер "Весь Linux"
Приобретались с интервалом год-два, каждую выжимал до предела, потом покупал следующую. Конечно, регулярно возвращаюсь к "выжатым" - там ещё стоолько остаётся!
Обходится только инетом не очень... гигиенично. Иногда в системе такого наворотишь - в инет выйти не на чем. Правда, спасает спасательный дистр (я привык к SLAX)
Тебе достаточно книги в 597 страниц - три я уже пересказал