2014-11-18 4 views
0

buildroot에 Qmake 패키지를 추가하려고하는데이 패키지의 이름은 DummyPgm입니다. 나는 그것을 메뉴에 넣고 그것을 선택할 수 있었지만, 빌드 과정 중에 Makefile을 찾을 수 없습니다.buildroot에 Qmake 패키지 추가

>>> dummypgm 0.1.0 Extracting 
gzip -d -c /home/kellyj/BuildSystem/buildroot/dl/DummyPgm-0.1.0.tar.gz | tar --strip-components=1 -C /home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0 -xf - 

>>> dummypgm 0.1.0 Patching 

>>> dummypgm 0.1.0 Configuring 
/home/kellyj/BuildSystem/buildroot/output/host/usr/bin/qmake -o Makefile -v /home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0/MsgDisplay.pro 
QMake version 3.0 
Using Qt version 5.3.1 in /home/kellyj/BuildSystem/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib 

>>> dummypgm 0.1.0 Building 
/usr/bin/make -j3 -C /home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0 
make[1]: Entering directory `/home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0' 
make[1]: *** No targets specified and no makefile found. Stop. 
make[1]: Leaving directory `/home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0' 
make: *** [/home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0/.stamp_built] Error 2 

.mk 파일에는 다음이 포함 :

DUMMYPGM_VERSION = 0.1.0 
DUMMYPGM_SOURCE = DummyPgm-$(DUMMYPGM_VERSION).tar.gz 
DUMMYPGM_INSTALL_STAGING = YES 
DUMMYPGM_INSTALL_TARGET = YES 

define DUMMYPGM_CONFIGURE_CMDS 
    $(HOST_DIR)/usr/bin/qmake -o Makefile -v $(@D)/MsgDisplay.pro 
endef 

define DUMMYPGM_BUILD_CMDS 
    $(MAKE) -C $(@D) 
endef 

define DUMMYPGM_INSTALL_TARGET_CMDS 
    install -D -m 0755 $(@D) 
$(TARGET_DIR)/usr/bin/MsgDisplay 
endef 

$(eval $(generic-package)) 

Makefile가 생성되지 않습니다 것을, 또는이 잘못된 위치에 만들어 적어도 것으로 보인다 나는 오류 메시지가 말하는 얻을. 디렉토리 output/build/dummypgm-0.1.0 다음 파일이 포함

MsgDisplay.pri MsgDisplay.pro MsgDisplay.pro.user MsgHandler.cpp MsgHandler.h MsgServer.cpp MsgServer.h Tcp Tools main.cpp 

그렇게 MsgDisplay.pro이 존재합니다.

내 고향에서 직접 /home/kellyj/BuildSystem/buildroot/output/host/usr/bin/qmake -o Makefile -v /home/kellyj/BuildSystem/buildroot/output/build/dummypgm-0.1.0/MsgDisplay.pro 명령을 실행하려고 시도했지만 아무런 오류 메시지도 표시되지 않지만 어떤 Makefile도 생성되지 않았습니다.

누군가 내가 이것을 이해하도록 도울 수 있다면 나는 매우 감사 할 것입니다.

define DUMMYPGM_CONFIGURE_CMDS 
    $(HOST_DIR)/usr/bin/qmake -o Makefile -v $(@D)/MsgDisplay.pro 
endef 

그것은 첫눈에 명확하지 않을 수 있습니다,하지만 당신은 모든 명령이 Buildroot의 최상위 소스 디렉토리에 실행된다는 점을 인식해야한다 :

+0

QMake에 대한 경험이 많지 않지만 자신의 패키지 인 경우 CMake를 사용해보십시오. 적어도 Qt4와 BR에는 문제가 없었습니다. – yegorich

+0

불행히도 그것은 내 패키지가 아닙니다. 다른 사람의 패키지를 buildroot에 추가하려고합니다. 소스 코드에 액세스 할 수 없으며 패키지를 다시 포장하기를 꺼립니다. CMake로 리 패키징이 복잡합니까? 나는 그들을 설득하는 또 다른 발사를 취할 수 있었다. 그러나 나는 지금까지 어떤 표정도 가지지 않고 있었다. – James

+0

CMake는 일반적으로 좋은 도구입니다. 그러나 리 패키징을하지 않을 경우 BR의 [메일 링리스트] (http://buildroot.uclibc.org/support.html)에 질문을 올리시기 바랍니다. – yegorich

답변

3

예, 코드의이 부분은 잘못된 것입니다. 그래서 나는 당신이 예상대로 output/build/dummypgm-0.1.0에 Makefile을 만드는 대신 Buildroot Makefile을 덮어 쓸 가능성이 높다고 생각합니다.

당신은 그러므로 (패키지/qwt/qwt.mk 참조) Buildroot에 QWT 패키지에서 수행처럼 수행해야합니다

define DUMMYPGM_CONFIGURE_CMDS 
    (cd $(@D); $(TARGET_MAKE_ENV) $(QT_QMAKE)) 
endef 

이/dummypgm-0.1.0을 구축/출력으로 이동합니다 (즉 $(@D)) 거기에서 qmake를 호출합니다. QT_QMAKE은 Buildroot에서 다른 패키지가 적절한 인수로 qmake를 호출 할 수 있도록 허용하는 변수입니다.