【发布时间】:2015-08-21 13:48:24
【问题描述】:
我正在尝试将 WSO2 WSF/C 自定义包包含到 buildroot 交叉编译 ARM 项目中。到目前为止,这是 wsfc.mk 文件:
################################################################################
#
# WSO2 WSF/C
#
################################################################################
WSFC_VERSION = 2.0.0
WSFC_SOURCE_BASENAME = wso2-wsf-c-src-$(WSFC_VERSION)
WSFC_SOURCE = $(WSFC_SOURCE_BASENAME).zip
WSFC_SITE = $(BR2_EXTERNAL)/package/wsfc/
WSFC_SITE_METHOD = file
WSFC_PREFIX = /usr/local/wso/wsf_c/
WSFC_CONF_OPTS = --prefix=$(WSFC_PREFIX) --exec-prefix=$(WSFC_PREFIX) \
--enable-rampart=no --enable-sandesha=no --enable-savan=no
define WSFC_EXTRACT_CMDS
unzip $(DL_DIR)/$(WSFC_SOURCE) -d $(@D)
mv $(@D)/$(WSFC_SOURCE_BASENAME)/* $(@D)
rmdir $(@D)/$(WSFC_SOURCE_BASENAME)
endef
$(eval $(autotools-package))
问题,
WSFC_PREFIX = /usr/local/wso/wsf_c/ 时尝试在主机中安装示例,因此权限被拒绝
[... lot of buildroot log output then:]
/usr/bin/make install-data-hook
make[5]: Entering directory `/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0/axis2c'
mkdir -p /usr/local/wso/wsf_c/samples/src/axis2c
mkdir: cannot create directory ‘/usr/local/wso’: Permission denied
make[5]: *** [install-data-hook] Error 1
make[5]: Leaving directory `/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0/axis2c'
make[4]: *** [install-data-am] Error 2
make[4]: Leaving directory `/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0/axis2c'
make[3]: *** [install-am] Error 2
make[3]: Leaving directory `/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0/axis2c'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0/axis2c'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0'
make: *** [/home/masteruser/Downloads/buildroot-2015.05/output/build/wsfc-2.0.0/.stamp_target_installed] Error 2
WSFC_PREFIX = $(TARGET_DIR)/usr/local/wso/wsf_c/的时候没有报错,但是重复了前缀,把几个文件安装在了错误的地方(..home../target/home/...)
[... lot of buildroot log output then:]
test -z "/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c" || /bin/mkdir -p "/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c"
test -z "/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/docs" || /bin/mkdir -p "/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/docs"
/usr/bin/install -c -m 644 'config/axis2.xml' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/axis2.xml'
/usr/bin/install -c -m 644 'README' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/README'
/usr/bin/install -c -m 644 'INSTALL' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/INSTALL'
/usr/bin/install -c -m 644 'COPYING' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/COPYING'
/usr/bin/install -c -m 644 'NEWS' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/NEWS'
/usr/bin/install -c -m 644 'CREDITS' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/CREDITS'
/usr/bin/install -c -m 644 'NOTICE' '/home/masteruser/Downloads/buildroot-2015.05/output/target/home/masteruser/Downloads/buildroot-2015.05/output/target/usr/local/wso/wsf_c/NOTICE'
[... lot of buildroot log output ]
我认为它需要修复补丁,但我不熟悉自动工具,我不知道我应该在哪里修补以及 buildroot 如何在 make 期间附加前缀以避免此类行为。
【问题讨论】:
标签: makefile autotools prefix buildroot