2013-08-30 28 views
0

在我的Makefile中,我知道目录的路径,并且需要回滚目录。在makefile中,如何用../../../替换目录aaa/bbb/ccc/

这里是我的工作情况: 我写了Android makefile文件,下面是一些代码:

LOCAL_PATH :=$(call my-dir) #this will get the path that Android.mk locate. 
... 
LOCAL_MODULE := mymod 
LOCAL_SRC_FILES := /tmp/mymod.ko 
include $(BUILD_PREBUILT) 
..... 

根据预生成的Android系统(在建/核心/ prebuild.mk实现),这将将$(LOCAL_PATH)/tmp/mymod.ko复制到目标(由prebuid.mk添加的$(LOCAL_PATH)),但是我想将mymod.ko定位到/ tmp,所以我必须添加一些../ ../../到我的LOCAL_SRC_FILES,我可以删除$(LOCAL_PATH)。

也就是说,我需要更换$(LOCAL_PATH)一些../../ ..

回答

0

你可以尝试这样的事:

empty := 
spaces := $(empty) $(empty) 
to-root = $(subst $(space),/,$(patsubst %,..,$(subst /,$(space),$1))) 

# Test 
$(info aaa/bbb/ccc -> $(call to-root,aaa/bbb/ccc)) 

这将打破,如果路径之一组件包含一个空间,但make无论如何不能处理这些。

+0

非常感谢,它的工作原理! – Yingchun