求make与shell的联系与区别?

求make与shell的联系与区别?

我看到在make中可以有shell命令,那是不是两者可以混合来用?   哪位能说的明白写呀?   我是新手 请大家帮帮我吧!      
你可以将make 当作一种shell。      
makefile 里面的 commands 是由 shell (一般是 /bin/sh) 来解释执行的
建议你看看 make 的 manual      
[QUOTE=zhuomingliang]你可以将make 当作一种shell。[/QUOTE]
愿闻其详 ...      
复制内容到剪贴板
代码:
DESTDIR = /usr/local
BINDIR = $(DESTDIR)/sbin
INCDIR = $(DESTDIR)/include
MANDIR = $(DESTDIR)/share/man
ETCDIR = /etc/ppp

INSTALL= install

all:
        cd chat; $(MAKE) $(MFLAGS) all
        cd pppd/plugins; $(MAKE) $(MFLAGS) all
        cd pppd; $(MAKE) $(MFLAGS) all
        cd pppstats; $(MAKE) $(MFLAGS) all
        cd pppdump; $(MAKE) $(MFLAGS) all

install: $(BINDIR) $(MANDIR)/man8 install-progs install-devel

install-progs:
        cd chat; $(MAKE) $(MFLAGS) install
        cd pppd/plugins; $(MAKE) $(MFLAGS) install
        cd pppd; $(MAKE) $(MFLAGS) install
        cd pppstats; $(MAKE) $(MFLAGS) install
        cd pppdump; $(MAKE) $(MFLAGS) install

install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
        $(ETCDIR)/chap-secrets

install-devel:
        cd pppd; $(MAKE) $(MFLAGS) install-devel

$(ETCDIR)/options:
        $(INSTALL) -c -m 644 etc.ppp/options $@
$(ETCDIR)/pap-secrets:
        $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@
$(ETCDIR)/chap-secrets:
        $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@

$(BINDIR):
        $(INSTALL) -d -m 755 $@
$(MANDIR)/man8:
        $(INSTALL) -d -m 755 $@
$(ETCDIR):
        $(INSTALL) -d -m 755 $@

clean:
        rm -f `find . -name '*.[oas]' -print`
        rm -f `find . -name 'core' -print`
        rm -f `find . -name '*~' -print`
        cd chat; $(MAKE) clean
        cd pppd/plugins; $(MAKE) clean
        cd pppd; $(MAKE) clean
        cd pppstats; $(MAKE) clean
        cd pppdump; $(MAKE) clean

dist-clean:        clean
        rm -f Makefile `find . -name Makefile -print`

installcheck:
        true
这个makefile文件有几个地方不明白,all后面不就应该是要生成的目标文件了吗?  这里怎么变成shell命令了?  
还有这句 install: $(BINDIR) $(MANDIR)/man8 install-progs install-devel  $(BINDIR) 和$(MANDIR)是两个不同的目录?   前面是不是应该加上比如cd 这样的shell命令 呀? 没有操作只有目录这样算什么?
还有这个 install-progs:  执行的时候是不是需要  make install-progs      
看来你对 makefile 的语法还不熟悉, 建议系统的看看 make/makefile 的 manual      
[QUOTE=dearvoid]愿闻其详 ...[/QUOTE]当成shell 仅用于理解“为什么make里面会有shell命令”