makefile将相对路径转换为绝对路径

左手 posted @ 2012年11月04日 17:24 in 积累点滴 with tags make makefile 相对路径转绝对路径 , 15967 阅读

工作中用makefile执行打包、压缩、转换等功能,一个需求涉及到多层相对路径嵌套,于是想到将相对路径转换为绝对路径。百度谷歌数遍,找到一曲径通幽的方法。

PUBLICDIR = $(shell cd ../public; pwd)

*2012年11月16日更新

经依云大大提点,又上网搜索了一下Makefile相关函数。Makefile自带有两个函数可以得到绝对路径。
1. realpath 函数获取文件名序列中存在的文件和目录的真实路径,会判断文件和目录是否存在,如果不存在,则返回空。
2. abspath 函数获取文件名序列中存在的文件和目录的真实路径,函数不会检查文件或者目录是否存在。
示例:
PUBLICDIR = $(abspath ../public; pwd)

经本人测试,realpath abspath 能跨过软链接,获取文件的真实路径。

例如:
ln -s /usr/local/www /www

Makefile:

WWWDIR = $(abspath /www)
test:
    echo $(WWWDIR) #output /usr/local/www

make test #output /usr/local/www

 

Avatar_small
依云 说:
2012年11月04日 18:35

囧……可以直接用 realpath 命令搞到的。

Avatar_small
左手 说:
2012年11月16日 21:27

@依云: 多谢依云大大提点,网上搜索了一下Makefile函数。又学到一招。^_^


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter