#11
|
|||
|
|||
Re: Новые мейкфайлы
Zhenja Kaliuta написал(а) к Michael Dukelsky в Oct 21 10:10:54 по местному времени:
Нi, Michael! On Mon, 11 Oct 2021 08:59:02 +0300 Michael Dukelsky writes: MD> Привет, Zhenja! MD> 11 October 2021 01:17, Zhenja Kaliuta послал(а) письмо к Michael Dukelsky: ZK>> А в чём тайный смысл патча ZK>> quote names in PROGRAMS; bug report by Dmitriy Smirnov 2:5010/352? ZK>> Для make ' -- просто часть строчки, приходится в PROGRAMS писать ZK>> 'hpt'. MD> Никакой тайны нет. Функция $(findstring hpt,$(PROGRAMS)) срабатывает MD> не только на hpt, но и на hptlink, hptsqfix. Сначала я для MD> различения ну значит использовать filter: % cat Makefile P1 = hpt hptsuffix P2 = hptsuffix all: @echo "With '$(filter hpt,$(P1))'" @echo "Without '$(filter hpt,$(P2))'" % make With 'hpt' Without '' MD> поставил пробел после hpt, но Дмитрий указал мне на возникающую при MD> этом ошибку, когда в PROGRAMS есть только hpt и поэтому пробела MD> после hpt нет. Собственно, достаточно было бы поставить один MD> апостроф после hpt, но я побоялся, что это может привести к MD> путанице и ошибкам, поэтому поставил апострофы везде. MD> И всё это надо было написать в сообщении коммита? Да, именно так, именно всё. --- Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
#12
|
|||
|
|||
Новые мейкфайлы
Michael Dukelsky написал(а) к Zhenja Kaliuta в Oct 21 10:31:10 по местному времени:
Привет, Zhenja! 11 October 2021 10:10, Zhenja Kaliuta послал(а) письмо к Michael Dukelsky: ZK>>> А в чём тайный смысл патча ZK>>> quote names in PROGRAMS; bug report by Dmitriy Smirnov ZK>>> 2:5010/352? Для make ' -- просто часть строчки, приходится в ZK>>> PROGRAMS писать 'hpt'. MD>> Никакой тайны нет. Функция $(findstring hpt,$(PROGRAMS)) MD>> срабатывает не только на hpt, но и на hptlink, hptsqfix. Сначала MD>> я для различения ZK> ну значит использовать filter: Можно было использовать filter-out, я выбрал другое решение. Желаю успехов, Zhenja! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20180707 |
#13
|
|||
|
|||
Re: Новые мейкфайлы
Zhenja Kaliuta написал(а) к Michael Dukelsky в Oct 21 10:48:05 по местному времени:
Нi, Michael! On Mon, 11 Oct 2021 09:31:10 +0300 Michael Dukelsky writes: ZK>>>> А в чём тайный смысл патча ZK>>>> quote names in PROGRAMS; bug report by Dmitriy Smirnov ZK>>>> 2:5010/352? Для make ' -- просто часть строчки, приходится в ZK>>>> PROGRAMS писать 'hpt'. MD>>> Никакой тайны нет. Функция $(findstring hpt,$(PROGRAMS)) MD>>> срабатывает не только на hpt, но и на hptlink, hptsqfix. Сначала MD>>> я для различения ZK>> ну значит использовать filter: MD> Можно было использовать filter-out, я выбрал другое решение. Очевидно, ты как ментейнер можешь выбирать, что больше нравится, но имей ввиду, что решение с '' в упомянутом патче, мягко говоря, плохое: 1) не идиоматично для make оформлен список 2) misleading -- создаётся ложное ощущение, что '' ограничивает подстрочки (и туда можно пробельчик или ещё чего всунуться) 3) проверка 'hpt' в коде отличается от всех остальных, хотя по сути это такая же проверка элемента из списка А почему filter-out, если по существующей логике как раз filter, как в примере? --- Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
#14
|
|||
|
|||
Новые мейкфайлы
Michael Dukelsky написал(а) к Zhenja Kaliuta в Oct 21 11:30:04 по местному времени:
Привет, Zhenja! 11 October 2021 10:48, Zhenja Kaliuta послал(а) письмо к Michael Dukelsky: ZK> А почему filter-out, если по существующей логике как раз filter, как в ZK> примере? Твой пример не имеет абсолютно никакого отношения к моему коду. Если ты посмотришь, например, на need_areafix, там надо проверить есть ли в списке hpt. Это можно проверить, например, так: $(filter-out hptkill hptsqfix,$(findstring hpt,$(PROGRAMS))) Желаю успехов, Zhenja! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20180707 |
#15
|
|||
|
|||
Re: Новые мейкфайлы
Zhenja Kaliuta написал(а) к Michael Dukelsky в Oct 21 11:54:58 по местному времени:
Нi, Michael! On Mon, 11 Oct 2021 10:30:04 +0300 Michael Dukelsky writes: ZK>> А почему filter-out, если по существующей логике как раз filter, как в ZK>> примере? MD> Твой пример не имеет абсолютно никакого отношения к моему коду. Если MD> ты посмотришь, например, на need_areafix, там надо проверить есть ли в MD> списке hpt. Это можно проверить, например, так: MD> $(filter-out hptkill hptsqfix,$(findstring hpt,$(PROGRAMS))) Нmmm, мне кажется, мой пример имеет прямое отношение к твоему коду, ибо $(filter hpt,$(PROGRAMS)) делает то, что ты хочешь добиться с помощью $(findstring hpt,$(PROGRAMS)) А need_areafix: $(eval $(if $(or $(findstring 'hpt',$(PROGRAMS)), \ $(findstring htick,$(PROGRAMS)) \ ),needareafix:=1,needareafix:=0)) вполне превращается в need_areafix := $(if $(filter hpt,$(PROGRAMS))$(filter htick,$(PROGRAMS)),1,0) % cat Makefile need_areafix := $(if $(filter hpt,$(PROGRAMS))$(filter htick,$(PROGRAMS)),1,0) all: @echo "Need areafix $(need_areafix)" % make PROGRAMS="hpt htick hptkill hptsqfix sqpack msged fidoroute util" Need areafix 1 % make PROGRAMS="htick hptkill hptsqfix sqpack msged fidoroute util" Need areafix 1 % make PROGRAMS="hpt hptkill hptsqfix sqpack msged fidoroute util" Need areafix 1 % make PROGRAMS="hptkill hptsqfix sqpack msged fidoroute util" Need areafix 0 --- Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
#16
|
|||
|
|||
Re: Новые мейкфайлы
Zhenja Kaliuta написал(а) к Michael Dukelsky в Oct 21 12:04:10 по местному времени:
Нi, Zhenja! On Mon, 11 Oct 2021 11:54:58 +0300 Zhenja Kaliuta writes: ZK> On Mon, 11 Oct 2021 10:30:04 +0300 Michael Dukelsky writes: ZK>>> А почему filter-out, если по существующей логике как раз filter, как в ZK>>> примере? MD>> Твой пример не имеет абсолютно никакого отношения к моему коду. Если MD>> ты посмотришь, например, на need_areafix, там надо проверить есть ли в MD>> списке hpt. Это можно проверить, например, так: MD>> $(filter-out hptkill hptsqfix,$(findstring hpt,$(PROGRAMS))) ZK> Нmmm, мне кажется, мой пример имеет прямое отношение к твоему коду, ибо ZK> $(filter hpt,$(PROGRAMS)) ZK> делает то, что ты хочешь добиться с помощью ZK> $(findstring hpt,$(PROGRAMS)) ZK> А need_areafix: ZK> $(eval $(if $(or $(findstring 'hpt',$(PROGRAMS)), \ ZK> $(findstring htick,$(PROGRAMS)) \ ZK> ),needareafix:=1,needareafix:=0)) ZK> вполне превращается в ZK> need_areafix := $(if $(filter hpt,$(PROGRAMS))$(filter htick,$(PROGRAMS)),1,0) ZK> % cat Makefile ZK> need_areafix := $(if $(filter hpt,$(PROGRAMS))$(filter htick,$(PROGRAMS)),1,0) ZK> all: ZK> @echo "Need areafix $(need_areafix)" ZK> % make PROGRAMS="hpt htick hptkill hptsqfix sqpack msged fidoroute util" ZK> Need areafix 1 ZK> % make PROGRAMS="htick hptkill hptsqfix sqpack msged fidoroute util" ZK> Need areafix 1 ZK> % make PROGRAMS="hpt hptkill hptsqfix sqpack msged fidoroute util" ZK> Need areafix 1 ZK> % make PROGRAMS="hptkill hptsqfix sqpack msged fidoroute util" ZK> Need areafix 0 Можно дальше извращаться :) check_prog = $(if $(filter $1,$(PROGRAMS)),1,) withhpt := $(call checkprog,hpt) withhtick := $(call checkprog,htick) needareafix := $(if $(with_hpt)$(withhtick),1,0) (0 тут под вопросом, в make более традиционно проверять на пустую строку) --- Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
#17
|
|||
|
|||
Новые мейкфайлы
Michael Dukelsky написал(а) к Zhenja Kaliuta в Oct 21 13:09:10 по местному времени:
Привет, Zhenja! 11 October 2021 11:54, Zhenja Kaliuta послал(а) письмо к Michael Dukelsky: ZK> need_areafix := $(if $(filter hpt,$(PROGRAMS))$(filter ZK> htick,$(PROGRAMS)),1,0) Можно и так. Но без $(or ...) всё равно не обойтись, потому что для need_huskylib строка получается под 200 символов, а ставить перенос строки после filter как-то криво. Желаю успехов, Zhenja! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20180707 |
#18
|
|||
|
|||
Re: Новые мейкфайлы
Zhenja Kaliuta написал(а) к Michael Dukelsky в Oct 21 13:10:47 по местному времени:
Нi, Michael! Мне кажется, вот это ifneq ($(MAKECMDGOALS),update) ifeq ($(MAKECMDGOALS),depend) не работает в случае указания нескольких таргетов, a-la make update depend all --- Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
#19
|
|||
|
|||
Новые мейкфайлы
Michael Dukelsky написал(а) к Zhenja Kaliuta в Oct 21 13:26:46 по местному времени:
Привет, Zhenja! 11 October 2021 13:10, Zhenja Kaliuta послал(а) письмо к Michael Dukelsky: ZK> Мне кажется, вот это ZK> ifneq ($(MAKECMDGOALS),update) ZK> ifeq ($(MAKECMDGOALS),depend) ZK> не работает в случае указания нескольких таргетов, a-la ZK> make update depend all Вместо такого вызова make предлагается вызывать скрипт build.sh Желаю успехов, Zhenja! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20180707 |
#20
|
|||
|
|||
Новые мейкфайлы
Michael Dukelsky написал(а) к Zhenja Kaliuta в Oct 21 13:32:34 по местному времени:
Привет, Zhenja! 11 October 2021 13:26, Michael Dukelsky послал(а) письмо к Zhenja Kaliuta: ZK>> Мне кажется, вот это ZK>> ifneq ($(MAKECMDGOALS),update) ZK>> ifeq ($(MAKECMDGOALS),depend) ZK>> не работает в случае указания нескольких таргетов, a-la ZK>> make update depend all MD> Вместо такого вызова make предлагается вызывать скрипт build.sh А вообще давай перейдём в нетмейл, эта эха не по программированию. Желаю успехов, Zhenja! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20180707 |