make
обычно использует переменные для этого; в частности:
CC
указывает компилятор C для использования; CFLAGS
указывает флаги компилятора C для передачи компилятору; LDLIBS
указывает библиотеки для добавления (хотя в целом вы должны написать Makefile
, который определяет всё, что вашей программе нужно для сборки, что обычно включает библиотеки). Таким образом, вы должны выполнить
make CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror" LDLIBS="-lm" x
to get
cc -ggdb3 -O0 -std=c99 -Wall -Werror x.c -lm -o x
и
make CC="clang" CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror" LDLIBS="-lm" x
to get
clang -ggdb3 -O0 -std=c99 -Wall -Werror x.c -lm -o x
Вы также можете установить переменные в вашем окружении (что позволяет установить значения по умолчанию в сценариях запуска оболочки):
export CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror"
make LDLIBS="-lm" x
Учитывая отсутствие Makefile
в вашем случае, вы, вероятно, найдете How does this Makefile makes C program without even specified a compiler? интересным! Также пригодится Руководство по GNU Make.