Вы можете использовать сценарий оболочки, который принимает некоторые подсказки в зависимости от того, как он вызывается, и вызывает make
после установки CFLAGS
соответственно для случайной одноразовой сборки.
Допустим, у вас есть /usr/bin/compile
, который представляет собой сценарий оболочки, который просматривает $0
, чтобы увидеть, какое имя на самом деле вызвало его. Затем вы делаете символические ссылки на него с именами pedantic
, fullwarn
и т. Д.
В самом сценарии оболочки что-то вроде:
OLDCFLAGS=$CFLAGS
WHATAMI=$(basename $0)
case "$WHATAMI" in
pedantic)
export CFLAGS="-Wall -pedantic -ansi"
make $@
exit $?
;;
c99)
export CFLAGS="-std=c99 ... ... ..."
....
Затем, чтобы скомпилировать foo.c с дополнительными флагами:
pedantic foo
Это удобно, как я сказал для одноразовых сборок, например, попытка скомпилировать код, который кто-то опубликовал в вопросе, или разработка, как использовать новую библиотеку и т. Д.
Для всего остального, просто используйте make-файл, как говорили другие.