Понятно, что цель новее, чем источник из этих двух ls
comands:
[metaperl@andLinux ~/edan/pkg/gist.el] ls -l ../../wares/gist.el/gist.elc #target
-rw-r--r-- 1 metaperl metaperl 10465 Jul 18 10:56 ../../wares/gist.el/gist.elc
[metaperl@andLinux ~/edan/pkg/gist.el] ls -l yank/gist.el/gist.el #source
-rw-r--r-- 1 metaperl metaperl 13025 Jul 18 10:57 yank/gist.el/gist.el
[metaperl@andLinux ~/edan/pkg/gist.el]
Однако, когда я запускаю makepp -v
, мне говорят, что это правило зависит не только
для указанной цели, но также для команд cd и mv.
makepplog: цели
/home/metaperl/edan/wares/gist.el/gist.elc'
depend on
/ USR / местные / бен / Emacs',
/home/metaperl/edan/pkg/gist.el/yank/gist.el/gist.el',
/ бен / мв "
Какой аспект логики создания диктует, что действия по созданию
цели являются частью цепочки зависимости принятия решения о том, чтобы сделать
цель?
На мой взгляд, только перечисленные источники должны влиять на
цель восстановлена.
Весь вывод makepp -v
довольно длинный и существует по адресу:
http://gist.github.com/480468
Мой файл makepp:
include main.makepp
#VER
PKG := gist.el
URL := http://github.com/defunkt/$(PKG).git
TARGET := $(WARES)gist.el/gist.elc
$(TARGET) : yank/gist.el/gist.el
cd $(dir $(input)) && $(BYTECOMPILE) gist.el
mv $(dir $(input)) $(WARES)
perl {{
print 'github username: ';
my $username = <STDIN>;
print 'github API token: ';
my $api_token = <STDIN>;
system "git config --global github.user $username";
system "git config --global github.token $api_token";
use File::Butler;
my $lines = Butler('init.el', 'read');
my $loc = sprintf '%s%s', $EDAN_PKG, "$PKG/";
$lines =~ s/__LOC__/$loc/g;
$lines =~ s/__PKG__/$PKG/g;
Butler( $EDAN_EL, prepend => \$lines );
}}
yank/gist.el/gist.el : yank
cd yank && git clone http://github.com/defunkt/gist.el.git
yank:
mkdir yank
$(phony clean):
$(RM) -rf $(dir $(TARGET)) yank