문제

나는 맞춤형 우분투 커널 구축 소스 파일 중 하나를 수정했습니다. 빌드 명령을 발행 할 때 :

NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-insp8600

DEB를 재구성하지만 수정 된 소스 파일 중 어느 것도 재건되지 않습니다.

무슨 일이야? 소스 파일을 수정할 때마다 완전히 깨끗한 재건을해야합니까?

그것은 말이되지 않습니다.

수정 된 파일이있었습니다 ./init/main.c.

NEATS BAINID-insp8600은 Inspiron 8600 노트북을 위해 만든 맞춤형 맛입니다.

도움이 되었습니까?

해결책

debian/rules 커널 makefile이 아닙니다. 편집 한 파일이 최종 커널의 종속성이라는 것을 알 수있는 방법이 없습니다. 이러한 종속성은 실제 makefile에 있기 때문입니다.

사실, 나는 기대할 것이다 debian/rules build 대상 (실제로 컴파일을 수행하는 사람)은 빌드를 완료 한 후 작성하는 "플래그"파일에만 의존합니다. 이 경우 간단한 해결 방법은 해당 "플래그"파일을 제거하는 것입니다. 그런 다음 모든 것을 다시 컴파일합니다 (커널을 호출하여 Makefile, 부분 재건을 수행하는 방법을 알고 있습니다. 물론, 그것은 가정입니다 build 대상은 깔끔하려고하지 않고 make clean 또는 동등한 ...)

(나는 보지 않았다 debian/rules 당신이 사용하는 패키지의 경우, 그래서 나는 틀렸을 수도 있지만 적어도 그것은 시작입니다.)

다른 팁

Makefile의 종속성이 올바른 경우 깨끗한 빌드를 할 필요가 없습니다.

헤더 파일을 변경 한 파일입니까? 그런 다음 헤더 파일 종속성을 자동으로 추가하기 위해 Makedepend를 실행하면 :)

헤더 파일이 아닌 경우 컴파일의 일부인 경우 MakeFile의 종속성이어야합니다. 검색하고 사용중인 대상이 컴파일하려는 모듈에 따라 달라야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top