Збірка в середовищі linux

Збірка в середовищі Linux / Unix

Система збирання Gwyddion на Unix заснована на GNU autotools (autoconf. Automake. Libtool), так само, як і більшість сучасного вільного програмного забезпечення та програм з відкритим вихідним кодом під Unix. Якщо ви коли-небудь збирали програми з початкових кодів, ви, ймовірно, вже зустрічалися з autotools і знаєте, що робити далі. Этот раздел, тем не менее, будет описывать процесс сборки достаточно детально, чтобы быть понятным и тем, кто ещё этого не делал. Файл INSTALL в каталозі верхнього рівня архіву з вихідним кодом містить загальні інструкції з установки за допомогою GNU autotools.

короткі інструкції

Якщо вам вже знайома послідовність дій:

tar -jxvf gwyddion-2.49.tar.xz
cd gwyddion-2.49
./ configure
make
make install

Розпакування вихідного коду

Розпакуйте архів з вихідним кодом командою

tar -Jxvf gwyddion-2.49.tar.xz

замінюючи 2.49 поточним номером версії. При цьому буде створено каталог gwyddion-2.49 (знову з поточним номером версії замість 2.49), перейдіть за допомогою cd в цей каталог. Всі інші дії по збірці будуть проходити там.

Якщо в операційній системі відсутній xz, можна завантажити gwyddion-2.49.tar.gz (стиснений за допомогою gzip) замість попереднього архіву і розпакувати його за допомогою

tar -zxvf gwyddion-2.49.tar.gz

Однак, сучасні Unix і подібні до них системи підтримують і gzip, і xz, і помітно менший gwyddion-2.49.tar.xz зазвичай буде більш вдалим варіантом.

щоб настроїти збірку Gwyddion.

Скрипт оболонки configure намагається вгадати правильні значення для різних змінних, що міняються від системи до системи і використовуваних в процесі компіляції. Він використовує ці змінні щоб створити Makefile в кожному каталозі пакета, набір заголовків файлів з розширенням .h. які містять залежні від системи визначення та деякі інші допоміжні файли. В конце своей работы он создаёт другой скрипт оболочки config.status. який можна потім використовувати для повторення поточної конфігурації, і файл config.log. який містить подробиці процесу детектування і який корисно включати в повідомлення про помилки компіляції. В кінці команда configure також виводить сумарну зведення про включених і виключених додаткових опціях, включаючи причини чому опція була виключена.

Якщо configure пише про відсутність потрібних пакетів, встановіть ці пакети і перезапустіть її. Те ж саме справедливо і для випадку, якщо configure закінчується успішно, але ви виявили, що забули встановити опціональний компонент, з яким хотіли зібрати Gwyddion. Можливо, що пакет не був знайдений або був неправильно визначений навіть якщо ви його встановили, а саме якщо він був встановлений в нестандартний каталог. В цьому випадку необхідно налаштувати певні змінні оточення щоб дати configure можливість знайти ці пакети:

Більшість пакетів йдуть разом з так званими файлами pkg-config (.pc), які описують як програми повинні збиратися і лінкуватися з ними. configure використовує інформацію з цих файлів, отже, PKG_CONFIG_PATH повинна бути встановлена ​​таким чином, щоб там були перераховані всі нестандартні какталогі з потрібними файлами pkg-config. Щоб додати, наприклад, встановлену бібліотеку GTK + в / opt / gnome і встановлену бібліотеку FFTW3 в $ HOME / opt / fftw3. потрібно виконати:

PKG_CONFIG_PATH = / opt / gnome / lib / pkgconfig: $ HOME / opt / fftw3 / lib / pkgconfig
export PKG_CONFIG_PATH

PATH. LD_LIBRARY_PATH. DYLD_LIBRARY_PATH

Може знадобитися налаштувати ці змінні щоб включити нестандартні каталоги з виконуваними файлами і бібліотеками відповідних пакетів. Змінні LD_LIBRARY_PATH і DYLD_LIBRARY_PATH обидві задають шлях пошуку для поділюваних бібліотек, але перша використовується в системах на основі Linux і BSD, в той час, як друга на OS X.

CPPFLAGS = -I / usr / local / include
export CPPFLAGS

export LDFLAGS

Опція --prefix команди configure задає базовий каталог установки. Компоненты программы будут установлены в его подкаталоги bin. lib. share. і т.д. (Які будуть створені якщо вони не існують). Більш детальне управління можливе за допомогою опцій, які задають окремі підкаталоги, таких як --bindir. --libdir. Префікс за замовчуванням - / usr / local / bin. щоб встановити Gwyddion в домашній каталог користувача можна використовувати, наприклад команду

Якщо ви встановлюєте Gwyddion для особистого використання це є рекомендованим варіантом, оскільки в цьому випадку не потрібно виконувати дій з правами суперкористувача.

Налаштування конфігурування може виникнути ситуація

Необов'язкові можливості можна включити / вимкнути за допомогою опцій на зразок --with-foo / --without-foo або --enable-foo / --disable-foo. Наприклад, компіляція з zlib може бути відключена командою:

За замовчуванням всі опціональні можливості включені, якщо знайдені всі необхідні для їх реалізації бібліотеки. Коротка інформація про активні і неактивні опціональних можливості друкується у висновку команди configure недалеко від його кінця.

Повний список опцій і важливих змінних configure можна отримати за допомогою команди:

Список буде довгим і велика частина опцій контролюється включення / вимикання окремих опціональних можливостей або передачу необхідних прапорів компіляції і зв'язування для різних бібліотек. Наприклад, задаючи FFTW3_CFLAGS і FFTW3_LIBS можна задати (або перевизначити) як буде здійснюватися компіляція і зв'язування з FFTW3. Однак, таке ручне завдання є резервним варіантом для набагато більш зручного методу, заснованого на використанні pkg-config в тому випадку якщо він чомусь не працює.

Деякі цікаві загальні опції описані в наступних параграфах.

C Gwyddion поставляються різні файли взаємодії з середовищем робочого столу, які визначають типи MIME, елементи меню, прив'язки файлів, генерацію мініатюр і т.п. Якщо Gwyddion встановлюється в системний каталог, вони зазвичай знаходяться в правильних місцях файлової системи. Однак, якщо ви встановлюєте його кудись в свій каталог користувача, то ці файли потрібно помістити в інше місце. а саме в певні приховані каталоги, що починаються з точки в вашому домашньому каталозі.

Це можна задати за допомогою опції --enable-home-installation команди configure. Слід зазначити, що використання цієї опції призводить до встановлення файлів в каталоги поза заданого префікса.

Налаштування творців пакетів

Якщо Gwyddion встановлюється в тимчасовий каталог для подальшого створення пакету, необхідно відключити певні дії після установки, які потрібно виробляти з системою, де пакет буде встановлений, а не в момент створення пакета.

Оновлення файлів FreeDesktop може бути відключено за допомогою --disable-desktop-file-update. Установка схем GConf2 може бути відключена за допомогою --disable-schemas-install. Обычно это не надо делать в явной форме т.к. установки в тимчасовий каталог використовують непорожню змінну DESTDIR (див. розділ установка). Якщо змінна DESTDIR не порожня, система збирання пропустить автоматично дії після установки. Проте, звичайної причиною відключення цих дій є те. що Gwyddion встановлюється на тимчасове місце замість фінального каталогу (що зазвичай відбувається при формуванні архівів пакунків в Linux). В цьому випадку допоміжні дії відключаються автоматично при непорожній змінної DESTDIR (див. Розділ установка) і, отже, немає потреби відключати їх в configure.

Передаючи параметр --enable-library-bloat скрипту configure змушує зв'язуватися модулів з усіма бібліотеками. Це автоматично включається на MS Windows, де це є обов'язковою вимогою. У заснованих на Unix системах, зв'язування модулів з усіма бібліотеками, які вже завантажені основною програмою тільки марно уповільнює роботу (як під час складання, так і під час виконання). Таким чином, комутаторів для послуг не зв'язуються безпосередньо з основними бібліотеками на кшталт GLib. якщо ваша система або правила складання вимагають зв'язування модулів з усіма бібліотеками (наприклад, в системах, заснованих на AltLinux), використання цієї опції включає дану поведінку.

Передачею опції --disable-module-bundling команді configure можна заборонити об'єднання всіх модулів одного типу (файлових, обробки даних.) В одну розділяється бібліотеку, що зазвичай робиться для збереження місця на диску та підвищити швидкість завантаження. Хоча подібне об'єднання не змінює функціональність, воно помітно змінює набір встановлюваних файлів. Якщо ви, з тієї чи іншої причини, покладаєтеся на наявність на диску файлу gwyfile.so. самое время остановиться и перестать так делать. Проте, можна використовувати дану опцію щоб примусово отримати традиційний варіант установки, де кожен модуль знаходився в окремому файлі.

Налаштування для розробників

Якщо ви збираєтеся накладати патч або іншим чином модифікувати вихідний код Gwyddion запустіть configure з опцією --enable-maintainer-mode щоб включити різні правила поновлення та пересборки, які не використовуються при звичайній компіляції. Залежно від виду змін можуть знадобитися деякі додаткові інструменти, описані в розділі Знімок Subversion, розробка.

За замовчуванням довідкове керівництво по C API НЕ збирати заново. Підготовлені файли HTML поширюються з архівом, документація змінюється рідко і її генерація вимагає досить тривалого час. Для того, чтобы включить генерацию документации по API нужно передать опцию --enable-gtk-doc скрипту configure. Природно, вам буде потрібно gtk-doc.

компіляція