Существует несколько шаблонов для автотюнов, но я не нашел смысла использовать их. Вот простой скрипт, чтобы создать новый проект:
#!/bin/sh
set -e
DIR=${1:-$HOME/new-project}
mkdir $DIR
cd $DIR
mkdir tests
mkdir src
cat > tests/basic.in << EOF
#!/bin/sh
set -e
@[email protected]/../src/hello
EOF
: ${EMAIL=$(id -un)@$(hostname)}
echo TESTS = basic > tests/Makefile.am
echo bin_PROGRAMS = hello > src/Makefile.am
echo SUBDIRS = src tests > Makefile.am
echo 'int main(void) { return 1; }' > src/hello.c
touch configure.ac
autoscan
sed -e [email protected]@$(basename $1)@ \
-e s/VERSION/0.0.0/ \
-e s/BUG-REPORT-ADDRESS/$EMAIL/ \
-e '/AC_CONFIG_HEADERS/a\
: ${enable_silent_rules=yes} ' \
-e '/AC_CONFIG_HEADERS/a\
AM_INIT_AUTOMAKE([foreign color-tests silent-rules])' \
-e '/AC_OUTPUT/i\
AC_CONFIG_FILES([tests/basic],[chmod +x tests/basic])' \
configure.scan > configure.ac
Заметьте, что это выглядит более сложным, чем это, и дизайн создает проект, в котором тестовый набор терпит неудачу (или, скорее, набор тестов успешно ловил тот факт, что программа терпит неудачу!) Вам в основном нужна одна строка в каждом Makefile.am, и вам нужно добавить данные, специфичные для проекта, на автогенерированный файл configure.ac. С этого основания вы можете делать все, что вам нужно.
Autoconf, CMake, или SCons твердые выборы - Autotools, безусловно, доминирующий игрок. – Borealid
У меня никогда не было проблем с написанием самого файла makefile :) Вы узнаете немного опрятного материала о каждом дистрибутиве/ОС –