GNU Make ma opcję -B
, która zmusza make
do ignorowania istniejących celów. Pozwala to na odbudowanie celu, ale także przebudowuje wszystkie drzewa zależności celu. Zastanawiam się, czy istnieje sposób na wymuszenie przebudowy celu bez odbudowywania jego zależności (używając opcji GNU Make, ustawień w Makefile, kompatybilnym oprogramowaniu podobnym do make
)?Czy istnieje sposób na wymuszenie przebudowy celu (make -B) bez odbudowywania jego zależności?
Ilustracja problemu:
$ mkdir test; cd test
$ unexpand -t4 >Makefile <<EOF
huge:
@echo "rebuilding huge"; date >huge
small: huge
@echo "rebuilding small"; sh -c 'cat huge; date' >small
EOF
$ make small
rebuilding huge
rebuilding small
$ ls
huge Makefile small
$ make small
make: 'small' is up to date.
$ make -B small
rebuilding huge # how to get rid of this line?
rebuilding small
$ make --version | head -n3
GNU Make 4.0
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2013 Free Software Foundation, Inc.
Oczywiście można rm small; make small
, ale jest tam wbudowany w sposób?
Does [to pytanie] (http://stackoverflow.com/questions/12199237/telling-make-to-ignore-dependencies-when-the-top-target-have-been-created)? – sycko
Dzięki, ale niewiele: jak pokazałem przy użyciu 'ls', zachowano tutaj' ogromny' (bez '.SECONDARY:' target), a odbudowanie jest raczej wynikiem '-B'. –