makefile define macro問題 - Linux

Andrew avatar
By Andrew
at 2020-03-09T14:48

Table of Contents

在makefile撰寫上遇到了一個問題,以下是我makefile內的一段程式

define collect-names:
cd $1; \
shopt -s nullglob; \
for f1 in $(foreach sub_dir,$2,'(sub_dir)'); do \
echo "Collect Files from...$1$$f1"; \
for f2 in $(foreach file_ext,$3,'$(file_ext)'); do \
echo "**Collect File Type : *$$f2"; \
files=( `echo$$f1$/*$(if $$f2,$$f2)` ); \
if (( $${#files[@] >0} )); \
then \
printf '"%s"\n' $${fiels[@]}; \
fi; \
echo ""; \
done \
done
endef

all:
@$(call collect-names,/root_dir/,sub_dir1/ sub_dir2/,.v .sv)

但是我發現如果將第二層for loop內的 echo ""; \
往上移至第一層for loop內,如下所示

define collect-names:
cd $1; \
shopt -s nullglob; \
for f1 in $(foreach sub_dir,$2,'(sub_dir)'); do \
echo "Collect Files from...$1$$f1"; \
for f2 in $(foreach file_ext,$3,'$(file_ext)'); do \
echo "**Collect File Type : *$$f2"; \
files=( `echo$$f1$/*$(if $$f2,$$f2)` ); \
if (( $${#files[@] >0} )); \
then \
printf '"%s"\n' $${fiels[@]}; \
fi; \
done \
echo ""; \
done
endef

all:
@$(call collect-names,/root_dir/,sub_dir1/ sub_dir2/,.v .sv)

程式便會產生error,想請問這是什麼緣故呢?
謝謝各位

--
Tags: Linux

All Comments

Skylar Davis avatar
By Skylar Davis
at 2020-03-10T14:26
為什麼你的第一個 for 雙引號右邊是單引號?
Kama avatar
By Kama
at 2020-03-11T10:25
sorry,是筆誤,已改正

Centos7.5 識別主機板sata插槽

Hardy avatar
By Hardy
at 2020-03-06T17:26
主板上有4個sata插槽(I-SATA1~4) 分別安裝了4顆hdd,sda做為開機碟 用lsblk 可以認到sda ~sdd 想請問有沒有辦法可以用指令讀出sda 是對應到I-SATA幾,sdb是對應到I-SATA幾呢? - ...

Lubuntu 18.04 MAC位置亂跳

Jake avatar
By Jake
at 2020-03-05T14:56
各位大大好 本人是linux新手,最近在舊筆電安裝Lubuntu 18.04卻發現個奇怪的狀況 安裝過程正常,且可正常進入桌面並連上有線網路,但卻發現每次開機 網卡的MAC位置均不一樣,雖然不影響ㄧ般使用,但卻間接造成固定IP設定失敗 舊筆電型號為ASUS F6V,網路晶片是Realtek RTL81 ...

教學影片分享-用圖片輕鬆學Docker

Isabella avatar
By Isabella
at 2020-03-04T23:07
※ [本文轉錄自 Soft_Job 看板 #1UJcsP77 ] 作者: uopsdod (pcman) 看板: Soft_Job 標題: [心得] 教學影片分享-用圖片輕鬆學Docker 時間: Thu Feb 20 19:29:21 2020 記得四年前當兵放榮譽假那天,閒來沒事錄了一個Docker ...

Re: 公用電腦系統逐年更換至 linux 連署

Emma avatar
By Emma
at 2020-03-04T15:20
身為一個全面採用Linux 辦公環境的打雜小弟 對於這話題有些感想也是理所當然的 底下就分成幾個部份跟大家說說我們在採用Linux環境時,在實務上碰到的狀況 1. 系統 在2015年,我們採用ubuntu 14.04 LTS 本來應該在去年做升級的,但是一直卡著沒動 2. 硬體 經過大概兩個多月的測 ...

Re: 公用電腦系統逐年更換至 linux 連署

Frederica avatar
By Frederica
at 2020-03-03T14:18
Linux 罵倒大會 我自己是Linux使用者,名下desktop和server全部都是Linux 不過我絕對不會推薦在文書環境下使用Linux 或者家裡有老人強迫他們使用Linux ※ 引述《fjm31714 (float)》之銘言: : 標題: 公用電腦系統逐年更換至 linux 連署 : 時間: S ...