make install在makefile的写法

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 \
            [ -f $$x ] && install -p -m 644 -t $(DESTDIR)$(man8dir) $$x ; \
        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                                                                          

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
makefile是一种用于自动化构建和编译程序的脚本文件。makefile的基本写法包括目标、依赖、规则和命令这三个要素。 1. 目标:目标是指需要生成的文件或执行的任务。在makefile中,目标通常是一个可执行文件或一个文件的对象文件。可以有多个目标,每个目标占据一行,并以冒号(:)结尾。 2. 依赖:依赖是指目标生成所依赖的文件或任务。在makefile中,依赖通常是源文件或其他目标。依赖也可以有多个,每个依赖之间用空格分隔,放在目标的后面。 3. 规则:规则是指定义了目标和依赖之间关系的部分。在makefile中,规则以目标为开头,后面是一个冒号(:),然后是依赖。规则可以有多行,每行以一个Tab键开头,表示规则所对应的命令。 例如,下面是一个简单的makefile示例: ``` target: dependency command ``` 其中,`target`是目标,`dependency`是依赖,`command`是需要执行的命令。 通过这样的规则,当依赖发生变化时,可以使用make命令来自动更新目标。make工具会自动识别目标和依赖之间的关系,并执行相应的命令来生成目标。 需要注意的是,makefile中的命令必须以Tab键开头,否则make工具无法正确解析。 这只是makefile的一种简单写法,实际上,makefile可以包含更复杂的规则和命令,以满足具体项目的需求。可以通过学习更多的makefile语法和使用方法来进一步掌握makefile写法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [手把手教你写makefile](https://blog.csdn.net/weixin_43574962/article/details/104108641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值