0

在我的 Makefile 中,我知道目录的路径,并且需要回滚目录。

这是我的工作案例:我正在编写 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 system(在build/core/prebuild.mk中实现),这会将$(LOCAL_PATH)/tmp/mymod.ko复制到prebuid.mk添加的目的地($(LOCAL_PATH)),但我想要将 mymod.ko 定位到 /tmp,所以我必须在我的 LOCAL_SRC_FILES 中添加一些 ../../../,以便删除 $(LOCAL_PATH)。

也就是说,我需要将 $(LOCAL_PATH) 替换为某些 ../../..

4

1 回答 1

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无论如何都不能很好地处理这些。

于 2013-09-02T07:55:49.780 回答