似たような質問がありますが、ちょっと条件が違う(と思う)ので質問させてください。
makeを使って異なるディレクトリに散らばったファイルを一つのディレクトリにコピーしたいと思います。
(条件1)コピー元ディレクトリは、変数SRCDIRSで指定されるものとする。
(条件2)コピー先ディレクトリは、変数DSTDIRで指定されるものとする。
(条件3)コピーすべきファイルは、変数FILESで指定されるものとする。
で、次のようにmakefileを書いてみました。
SRCDIRS = dir-a dir-b dir-c
DSTDIR = out-dir
FILES = a.c b.c c.c d.c e.c
OUTFILES = $(addprefix $(DSTDIR)/ , $(FILES))
all : copyfiles
copyfiles : $(OUTFILES)
vpath %.c $(SRCDIRS)
$(OUTFILES) : %.c : $(notdir %.c)
____cp -u $@ $(DSTDIR)/
こんな感じです。
vpathを指定することで、カレントディレクトリにない%.cファイルはvpathの中から自動的に探してくれることを期待しているのですが、最後の依存関係ルールの書き方では%.cファイルの依存関係が自己参照になっているようで意図したようには解釈されていないようです。
上のような動作をさせるには、どのように書くのが適切でしょうか?
なお、SRCDIRSで指定したディレクトリ内に同じ名前のファイルは存在しないものとします。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
確認してないしやり方が全然違うので間違えているかもしれませんが
これじゃだめですか?
VPATHのなかに重複するファイルがあると破綻してしまいますが
更新されたファイルだけをコピーしてくるはずです。
個人的にはファイルの重複とか考えると find+grep -f +tarで 組み合わせた方が
よい気がしますけど。。。
----
VPATH=dir-a:dir-b:dir-c
FILES = a.c b.c c.c d.c e.c
DSTDIR=out-dir
OUTFILES=$(FILES:%=$(DSTDIR)/%)
$(OUTFILES):: $(FILES)
cp $? $(DSTDIR)/
----
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のCSVファイルを一つのCSV...
-
Windowsで複数のファイルを同じ...
-
テキストファイルの結合
-
batファイルでrenameができませ...
-
複数ファイルの読み込みについて
-
dos変数の%~dp0は powershellで...
-
ディレクトリのファイル作成を...
-
ファイル全てを .xlsm に変更し...
-
VBAで巨大なファイルの途中から...
-
ファイル名を複数個配列で確保...
-
エクセルVBAで素数だけを出力す...
-
2つのCSVファイルをマッチング
-
Firefox で file:// で始まる U...
-
fopenでディレクトリ内の全ファ...
-
巨大ファイルの行をを逆順に並...
-
openした後、closeしないでプロ...
-
CSVファイルをperlプログラムで...
-
VBScriptでファイル保存先のデ...
-
perl ファイルが開かない
-
ReadLineでの読み出し行を指定する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
FindFirstFileとFindNextFileで...
-
ディレクトリの判別
-
Windowsで複数のファイルを同じ...
-
vba dir の相対パス
-
パスから最後のディレクトリだ...
-
chdirがうまくできない
-
テキストファイルの結合
-
dos変数の%~dp0は powershellで...
-
Perlで フォルダ内の全て...
-
readdir()で得られるファイル・...
-
makefileでファイルをコピー(...
-
C言語でファイル名を取得
-
ディレクトリツリーの表示
-
サーバーにある特定の拡張子フ...
-
ファイル名と更新日付の取得に...
-
LinuxのC言語で、ファイル名の...
-
Director拡張子
-
複数ファイルの読み込みについて
-
ディレクトリ名を取得したい
おすすめ情報