- prefix = /usr/local
- sbindir = $(prefix)/sbin
- mandir = $(prefix)/man
- man8dir = $(mandir)/man8
-
- PRG = ptp4l hwstamp_ctl nsm phc2sys phc_ctl pmc timemaster ts2phc
-
- install: $(PRG)
- install -p -m 755 -d $(DESTDIR)$(sbindir) $(DESTDIR)$(man8dir)
- install $(PRG) $(DESTDIR)$(sbindir)
- for x in $(PRG:%=%.8); do \
- [ -f $$x ] && install -p -m 644 -t $(DESTDIR)$(man8dir) $$x ; \
- done
上面是随便找的一个开源库关于makefile中的install写法
- install: $(PRG)
make install的时候是把$(PRG)对应的可执行文件用来做install- install -p -m 755 -d $(DESTDIR)$(sbindir) $(DESTDIR)$(man8dir)
- install $(PRG) $(DESTDIR)$(sbindir)
- for x in $(PRG:%=%.8); do \
[ -fx ; \" role="presentation"> x ] && install -p -m 644 -t $(DESTDIR)$(man8dir)
done
- 关于install的参数
--backup[=CONTROL]:为每个已存在的目的地文件进行备份。
-b:类似 --backup,但不接受任何参数。
-c:(此选项不作处理)。
-d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。
-D:创建<目的地>前的所有主目录,然后将<来源>复制至 <目的地>;在第一种使用格式中有用。
-g,--group=组:自行设定所属组,而不是进程目前的所属组。
-m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。
-o,--owner=所有者:自行设定所有者 (只适用于超级用户)。
-p,--preserve-timestamps:以<来源>文件的访问/修改时间作为相应的目的地文件的时间属性。
-s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。
-S,--suffix=后缀:自行指定备份文件的<后缀>。
-v,--verbose:处理每个文件/目录时印出名称。
--help:显示此帮助信息并离开。
--version:显示版本信息并离开。
- 所以这是install存在比较核心的原因: 有了install不用 在可执行程序编好了,手动去拷贝,改权限,设置user等等操作
(1)提供可执行程序的权限-m
(2)设置可执行程序的时间-p
(3)设置APP的owner -o
(4)设置文件的目标位置 -d