У меня есть довольно большая программа, написанная на C. Она охватывает несколько файлов и немного переделана, чтобы попытаться компенсировать проблемы с платформой. В частности, у меня есть файлы заголовков для разных ОС, архитектур и компиляторов, которые определяют макросы, которые он использует для обработки вещей. В качестве примера флаг -v
печатает информацию о версии, включая имя созданного им компилятора, а также операционную систему и архитектуру, на которых она была построена. В качестве примера, почему это важно, программа может создать файл кода C и, если хотите, скомпилировать его - задачу, для которой она просто делает системный вызов любому компилятору , он был создан с.Как перенастроить большую программу для GNU Autotools
Он также имеет поддержку библиотеки GNU Readline (или библиотеки редактирования BSD - то же самое), если она найдена в вашей системе, а также эквивалент без всех приятных функций Readline, которые являются чистыми ANSI, это есть.
Суть в том, что я не могу вынуть ни один из битов, зависящих от платформы, поскольку несколько функций зависят в значительной степени от того, какая у вас OS/архитектура/компилятор. Я также хочу обеспечить хорошую функциональность тем, у кого есть это. И я хочу, чтобы люди загружали и устанавливали его со стандартными интерфейсами ./configure
, make
и make install
.
В настоящее время я использую сценарий оболочки ручной работы для configure
, который создает Makefile с нуля и определяет, какие файлы заголовков должны включаться на основе вашей ОС/архитектуры/компилятора. Мне нужен более эффективный подход, и я бы хотел использовать более стандартную систему сборки с помощью GNU Autotools. Таким образом, я знаю, что то, что я делаю, будет работать на чужом компьютере, без необходимости проверять его на своих компьютерах.
Мой вопрос, для тех из вас, кто провалился через все это (спасибо!), Является: 1) Как мне перейти на переход от домостроительной системы к GNU Autotools? 2) Какие хорошие учебные пособия для начала работы с GNU Autotools? 3) Как я могу сделать это относительно безболезненным процессом?