
似たような質問がありますが、ちょっと条件が違う(と思う)ので質問させてください。
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ランキング
-
ファイルの削除について
-
パスから最後のディレクトリだ...
-
フォルダに入っているファイル...
-
モードの数字はどのようなもの...
-
ファイル名が日本語の物をダウ...
-
Windowsで複数のファイルを同じ...
-
ファイル名と更新日付の取得に...
-
ディレクトリー内のリスト出力...
-
フォルダ内のファイルのコピー...
-
サーバーにある特定の拡張子フ...
-
FindFirstFileとFindNextFileで...
-
複数ファイルの読み込みについて
-
2つ質問があり、まず1つ目な...
-
データ項目の並び替えについて
-
レコードの書込み判断
-
cgiでdocument.writeの書き出し
-
perl で作成された文書と知るに...
-
ディスク残量が無くなってしま...
-
どのようなプログラムをつくれ...
-
データファイルからのデータの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
readdir()で得られるファイル・...
-
vba dir の相対パス
-
FindFirstFileとFindNextFileで...
-
C言語でファイル名を取得
-
ディレクトリの判別
-
dos変数の%~dp0は powershellで...
-
スクロールバーを左側に、又は...
-
Net::FTPを使いファイル一覧の...
-
perlのNet::FTPで、ファイルか...
-
パスから最後のディレクトリだ...
-
コマンド「dir」の結果を、テキ...
-
テーブルの更新について
-
ファイル名と更新日付の取得に...
-
chdirがうまくできない
-
文字列$fileがファイル名として
-
Perlについて
-
フォルダの中身を知りたい
-
ディレクトリ名を取得したい
おすすめ情報