anonymous@RULINUX.NET~# Last login: 2024-11-24 10:47:10
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

cat внутри Makefile или как создать файл через make?

В консоли можно легко создавать текстовые файлы из сценариев:

bash

#!/bin/sh

# запишет в some.txt все строки между ПУТИН и ПУТИН
cat > some.txt << ПУТИН
asjflsg
dsfg
sdfg
s dfgsdf
g
sd fg
sdf
gsd
f g
sdf g
sdfgds
sdg
ПУТИН
 


А можно ли также непренуждённо создавать файлы через make/Makefile? Желательно без кучи дополнительных символов и экранирования всего и вся. Просто кусок текста внутри Makefile, который записывается в нужный нам другой файл.

В лоб не работает:

make

# не работает ни с экранированием переносов \, ни с \n, никак
foo:
        cat > some.txt << ПУТИН
sdf g
sdfgds
sdg
ПУТИН

# работает, но дюже извращённый метод
bar:
        echo "sdf g" > some.txt
        echo "sdfgds" >> some.txt
        echo "sdf" >> some.txt
 

anonymous(*) (2018-10-05 15:27:05)

[Ответить на это сообщение]
avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

Сделай Путин.sh

lockywolf(*)(2018-10-05 15:37:48)

avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

Не хочу плодить лишние файлы. Надо создать не один файл, а больше (разных).

anonymous(*)(2018-10-05 15:39:27)

avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

Сделай путин.sh с аргументами.

lockywolf(*)(2018-10-05 18:19:08)

avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

В итоге закончится тем, что я схвачу Makefile и побегу с ним в другую директории или вообще на другой компьютер и там неожижанно выяснится, что без Путина.sh это всё не работает. Хочу всё внутри Makefile!

anonymous(*)(2018-10-05 19:37:16)

avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

Мейкфайл таскать? Вы неправы.

Для этого есть autoconf+automake+libtool, и вообще GNU autotools

lockywolf(*)(2018-10-06 04:56:23)

avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

> Хочу всё внутри Makefile!

Можно, например пожать вспомогательные скрипты гзипом, закодировать в base64 и назначить получившиеся строки переменным мейк-файла. Внести скрипт в зависимости и распаковывать по необходимости куда-нибудь в /tmp. Только неудобно это ИМХО.

anonymous(*)(2018-10-06 21:51:07)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0
avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

> Для этого есть autoconf+automake+libtool, и вообще GNU autotools
Для чего нужно написать Makefile.am. Круг замкнулся.

anonymous(*)(2018-10-08 12:22:39)

avatar
Скрыть

Re:cat внутри Makefile или как создать файл через make?

> Можно, например пожать вспомогательные скрипты гзипом, закодировать в base64 и назначить получившиеся строки переменным мейк-файла.
Угу, так пока и сделал почти так и сделал, только паковал не сценарий а сам текст. Только от сжатия отказался, т. к. гзип получался больше, чем сам текст. Распаковывать, кстати, никуда не надо:

echo "<тут длинная строка в base64>" | [gzip -dc |] base64 -d > some.txt

anonymous(*)(2018-10-08 12:26:13)
Отредактировано anonymous по причине невнимательного чтения
Этот тред читают 2 пользователя:
Анонимных: 2
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!