Я едва знаю достаточно файлов makefile, чтобы взломать файлы make других людей, а иногда даже не так много.У моего нынешнего работодателя довольно сложная среда сборки, и я добавил пару целей в файл сборки, в основном для самостоятельного документирования всех необходимых мне ключей.(Возможно, есть лучший способ сделать это ... если есть, пожалуйста, дайте мне знать !!)
В любом случае, первая цель работает, как и ожидалось.Вторая цель идентична первой, за исключением того, что назначение BENCH имеет «2» в конце.В противном случае это точно такой же вызов.В какой-то момент во время выполнения переменная BENCH используется для создания каталога. Первая цель создает каталог, как и ожидалось.Вторая цель создает каталог, используя имя BENCH по умолчанию вместо того, которое было передано ему. Каким-то образом он потерял настройку переменной в командной строке, хотя для первой цели работал почти идентичный синтаксис.
Почему он теряет мои переменные настройки, когда вызывает сам?Есть ли какая-то тонкость, которую мне не хватает?Это даже действительная вещь, чтобы сделать?
comp_gate_oct04_ff:
make clean all BENCH=GATE_OCT04_FF SIMULATOR=NC SIM_64BIT=1 CORNER=FF NETLIST=oct04 | tee all_gate_oct04_ff.log
@tail all_gate_oct04_ff.log | mail -s "Compile for GATE_OCT04_FF is complete" $(SMS_ADDR) $(USER)
comp_gate_oct04_ff2:
make clean all BENCH=GATE_OCT04_FF2 SIMULATOR=NC SIM_64BIT=1 CORNER=FF NETLIST=oct04 | tee all_gate_oct04_ff2.log
@tail all_gate_oct04_ff2.log | mail -s "Compile for GATE_OCT04_FF2 is complete" $(SMS_ADDR) $(USER)