Должен ли я использовать automake / autoconf для распространения небольшого приложения ANSI C? - PullRequest
2 голосов
/ 28 октября 2009

У меня есть небольшое приложение ANSI C, которое аккуратно компилируется под разные протестированные компиляторы и платформы. Он не использует никаких переключателей препроцессора или внешних зависимостей, а make-файл просто похож на:

myapp: *.c
    gcc *.c -Wall -o myapp

Если я хочу распространить этот проект в виде исходного кода как можно более переносимым, следует ли мне обернуть его с помощью automake / autoconf? Это на самом деле увеличит портативность или оно будет таким же портативным, как оно есть?

Единственное, что я могу думать, это то, что он автоматически выберет системный компилятор, но это также добавит много сложностей. Стоит ли это того?

Ответы [ 3 ]

4 голосов
/ 28 октября 2009

Вам не нужно указывать правило компиляции, поэтому нет необходимости в $(CC), $(CFLAGS) и $(LDFLAGS), поскольку make имеет неявное правило для создания исполняемого файла из источника C.

Сохраняйте Makefile простым:

all: myapp

myapp: *.c

clean:
    rm -f myapp

.PHONY: all clean

Кстати, было бы лучше указать список исходных файлов, потому что нет никакой гарантии, что ваши источники будут единственными файлами C в этом каталоге

4 голосов
/ 28 октября 2009

Я сомневаюсь, что оно того стоит. ANSI C без каких-либо вызовов, специфичных для ОС, должен поддерживаться на каждой платформе с работающим компилятором C, и добавление в него automake / autoconf делает обслуживание, вероятно, менее приятным, чем в настоящее время.

Однако вы можете использовать переменную $(CC) в вашем make-файле, чтобы автоматически использовать системный компилятор:

myapp: *.c
    $(CC) *.c $(CFLAGS) -o myapp
0 голосов
/ 28 октября 2009

Хотя вам может показаться, что вы мало что получите в плане функциональности, вы все же можете рассмотреть его по следующим причинам:

  • Использование autoconf является очень распространенным способом распространения кода C. Следовательно, большинству людей должно быть удобно строить и устанавливать с использованием этого, что облегчает пользователю.
  • После того, как вы попытаетесь настроить autoconf для работы с вашим проектом, вам будет значительно легче, если и когда вы do захотите использовать некоторые из его дополнительных функций.
...