Как создать файл с помощью Makefile - PullRequest
7 голосов
/ 19 апреля 2010

Я хочу создать файл .c из Makefile. Содержимое этого файла C выглядит следующим образом:

char *variable1 = $(VAR1_FROM_MAKEFILE);
char *variable2 = $(VAR2_FROM_MAKEFILE);

Возможно ли это?

Заранее спасибо

Ответы [ 2 ]

8 голосов
/ 19 апреля 2010

Да, вы можете использовать перенаправление оболочки для записи переменных в исходный файл:

VAR1=foobar
all:
    @echo "char *variable1 = \"$(VAR1)\"" > generated.c

(здесь знак @ не должен отображать команду echo с помощью make).


РЕДАКТИРОВАТЬ: я не знаю, каково ваше намерение здесь, но может быть проще передать переменные Makefile в компилятор как макрос:

VAR="toco.conf"
CFLAGS = -DVAR='$(VAR)'
all:
    gcc  $(CFLAGS) prog.c

с prog.c, равным:

#include <stdio.h>

int main(int ac, char **av)
{
    printf("%s\n", VAR);
    exit(0);
}
6 голосов
/ 15 апреля 2016

А как насчет файловой опции make?

Для Gnu Make: https://www.gnu.org/software/make/manual/html_node/File-Function.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...