|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Aleksey Cheusov 2:5020/400 26 Sep 2007 10:34:29 To : john gladkih Subject : Re: freebsd 6.2 -------------------------------------------------------------------------------- >>>>>> "jg" == john gladkih <john@gladkih.com> writes: AC>> Циклам, на сколько мне известно, все-таки нет адекватной замены. AC>> Hе так давно использовал bmake именно из-за них. jg> что-то меня тормозит: jg> define prog jg> .. jg> endef jg> и дальше jg> the-list = a b c ... jg> $(foreach var,$(the-list),$(call prog,$(var)) jg> чем не устраивает? полностью покрывает bsd-make'овый .LOOP Под циклами имелись ввиду циклы препроцессора. Туда можно впихнуть все, что угодно, не только вызов процедуры. Вот фрагмент из моего judyhash (ни шагу без рекламы :-)). Фрагмент для сбора benchmark-ов. В итоге по всем типам хешей, операциям и цифровым параметрам строятся .png картинки-графики. Просто и очень удобно. Hесколько похожее с GNU make делаю через рекурсивные вызовы $(MAKE). Точно так же можно и unit тесты гонять, к примеру. Hо это не то. Возникают проблемы со все тем же exit code-ом, и усложняется эмуляция make -k. TEST_TYPES=memory-add-absent add-absent add-absent-predict add-present \ find-absent find-present remove-absent remove-present iterate MAP_TYPES_UNI=sparse_hash_map dense_hash_map judy_map_l judy_map_m hash_map map MAP_TYPES=${MAP_TYPES_UNI} judy_map_kdcell ... .for b in size size65599 slowness .for t in ${TEST_TYPES} .for m in ${MAP_TYPES} bench_${b}_${t}.plot : bench_${b}_${m}_${t}.tmp bench_${b}_${m}_${t}.tmp : bench_${b}.bench sh src_scripts/bench2table_${b} ${m} ${t} \ < bench_${b}.bench > $@ && \ test -s $@ || echo 0 0 >> $@ .endfor # m bench_${b} : bench_${b}_${t}.png bench_${b}_${t}.plot : sh src_scripts/tables2plot ${b} ${t} $> > $@ bench_${b}_${t}.png : bench_${b}_${t}.plot gnuplot bench_${b}_${t}.plot > $@ .endfor # t .endfor # b ... .for m in judy_map_m #judy_map_l .for t in ${TEST_TYPES} .for mask in ${MASKS} bench_masks_${m}_${t}.plot : bench_masks_${m}_${mask}_${t}.tmp bench_masks_${m}_${mask}_${t}.tmp : bench_masks.bench sh src_scripts/bench2table_masks ${m} ${t} ${mask} \ < bench_masks.bench > $@ && \ test -s $@ || echo 0 0 >> $@ .endfor # mask bench_masks : bench_masks_${m}_${t}.png bench_masks_${m}_${t}.plot : sh src_scripts/tables2plot masks_${m} ${t} $> > $@ bench_masks_${m}_${t}.png : bench_masks_${m}_${t}.plot gnuplot bench_masks_${m}_${t}.plot > $@ .endfor # t .endfor # m jg> -- jg> john, http://john.kak-sam.to -- Best regards, Aleksey Cheusov. --- ifmail v.2.15dev5.4 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/54757ff32c7c9.html, оценка из 5, голосов 10
|