Autotools.
Вам нужно написать сценарии configure.ac и Makefile.am.
Configure.ac довольно прост и может быть автоматически сгенерирован из запуска autoscan в вашем исходном коде. Это сгенерирует файл 'configure.scan', который вам нужно настроить для создания окончательного файла configure.ac.
Файл Automake.am основан на соглашениях. Вам, вероятно, понадобится что-то вроде:
AUTOMAKE_OPTIONS = foreign subdir-objects
AM_CXXFLAGS = -std=c++11 -static-libstdc++ -Wall -Werror \
-Wfatal-errors -I blah
AM_LDFLAGS = blah
bin_PROGRAMS = mybinary
mybinary_SOURCES = \
blah.h blah.cc
все основано на схеме именования:
- dist vs nodist = должен ли он быть построен
- inst vs noinst = должен ли он быть установлен
- ДАННЫЕ = файлы данных
- MANS = man-страницы
- SOURCES = исходный код
поэтому dist_noinst_DATA предназначен для файлов данных, необходимых для построения, но не установленных.
Когда у вас есть оба этих файла, вам обычно нужно запустить что-то вроде:
aclocal && autoheader && automake --add-missing && autoconf
для установки файлов автоинструментов, необходимых для сборки. Это можно поместить в сценарий оболочки и запустить до запуска ./configure.