私は自分のディレクトリに複数のFPGAビルドを管理するMakefileを持っています。私は各FPGAの一意の名前を持つ変数CS_FPGA_FETCH
を持っています。 (私のプロジェクトの多くのサブフォルダはこの名前に基づいています)。リストから作られたMakefileターゲットの基本変数を取得
私は、FPGAごとにターゲットを追加するというきちんとした方法を考えています。私が思いついたのはaddprefix
で、プレフィックスを削除しています。
# Every FPGA
CS_FPGAS_FETCH := cs00 cs01 cs02 cs03 cs10 cs11 cs12 cs13 cs20 cs21 cs22 cs23 cs30 cs31 cs32 cs33
# this is a list of variables that has the words copy_official_ prefixed
# to all of the cs00, cs01
COPY_OFFICIAL_CS_TARGETS=$(addprefix copy_official_,$(CS_FPGAS_FETCH))
# because we use add prefix, we HAVE to strip it off
# this replases $(@) for guys with a prefix, so we can access the base variable inside the loop below
COPY_TARGET_FPGA_NAME=$(@:copy_official_%=%)
# this evaluates out to targets named:
# copy_official_cs00, copy_official_cs01 etc
$(COPY_OFFICIAL_CS_TARGETS):
@echo In $(@) target. Here i copy file $(COPY_TARGET_FPGA_NAME)
cp build/$(COPY_TARGET_FPGA_NAME)/file.bit install/$(COPY_TARGET_FPGA_NAME)
この方法は私には逆のようです。私は使用したいプレフィックスごとにCOPY_TARGET_FPGA_NAME
を作成する必要があります。これは非常に混乱しているようです。私は、プレフィックスの異なるこれらのターゲットを多く追加する必要があります。
あなたの助けを借りて接頭辞は 'copy_official_'です! – portforwardpodcast