On Mon, 24 Nov 2003, Noel Yap wrote:

> The usual way to do what you want /is/ to make all a prereq of gzip.  I
> don't understand your reasoning as to why this wouldn't work.  Can you
> elaborate with an example?

Sure.  I've attached a stripped down version of my makefile to the end of 
this message.  Notice that I get different output depending on whether I 
use targets of basic, standard, or emacs.  If gzip is specified as a 
target on the command line, I want it to execute last no matter what other 
targets have been specifed, if any.  But gzip should be optional.

 - .\\


archive  = config-$(shell date +%Y%m%d).tar
emacsarc = emacs-$(archive)

basic    = .bash_logout .bash_profile .bashrc .exrc .vimrc
standard = .cvsrc .mailcap .screenrc .slrnrc .wgetrc .ytalkrc
emacs    = .emacs elisp

.NOTPARALLEL:
.PHONY: dummy clean
dummy:
        @echo "Usage: make <target>"

basic:
        tar -rf $(archive) $(basic)

standard: basic emacs
        tar -rf $(archive) $(standard)
        tar -Af $(archive) $(emacsarc)
        rm -f $(emacsarc)

emacs:
        tar -rf $(emacsarc) $(emacs)

gzip:
        for file in $(archive) $(emacsarc) ; do \
          if [ -f $$file ]; then \
            gzip $$file ; \
          fi ; \
        done

clean:
        $(RM) $(archive) $(emacsarc)



_______________________________________________
Help-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/help-make

Reply via email to