2012-02-27 3 views
0

다른 소스 파일을 컴파일하기 위해 menuconfig에서 선택한 플래그에 따라 단일 오브젝트 파일을 컴파일하고 링크하고 싶습니다.linux kbuild makefile

;

OBJ - $ (CONFIG1) : sample.o (하지만 sample_1.c에서 구축해야한다) OBJ - $ (config2) : sample.o (하지만 sample_2.c에서 구축해야한다)

인가 makefile을 통해 가능하거나 리눅스 kbuild를 통해 가능하지 않은 경우이를 달성하기위한 모든 트릭은 매우 높이 평가됩니다. 당신이 그들에 메이크 조건문을 사용할 수 있도록

RGDS, Sharanu 자동으로 수행하기 위해 내가 알고 거기에 아무것도

+0

없음 완벽하게이 작업을 수행하는 방법은 여러 가지가 있습니다. 우리는 당신의 의도/우선 순위에 대한 더 많은 정보가 필요합니다. 왜 두 개의 다른 파일에'sample.o'라는 이름을 사용하고 싶습니까? – Beta

+0

많은 의존성이 있기 때문에 모듈을로드하는 스크립트 파일을 변경하고 싶지 않습니다. 대신 단일 모듈을로드해야하지만 컴파일 지시문에 따라 빌드해야합니다. –

+0

완벽한 솔루션이 아닙니다. –

답변

0

그러나,는 kbuild 파일은 메이크입니다. 당신이 뭔가를 할 수 있습니다 :

ifneq ($(findstring $(config1),"ym"),) 
    $(obj)sample.o: $(obj)sample_1.o 
     $(Q)$(CC) $(CFLAGS) $< -c -o [email protected] 
else 
ifneq ($(findstring $(config2),"ym"),) 
    $(obj)sample.o: $(obj)sample_2.o 
     $(Q)$(CC) $(CFLAGS) $< -c -o [email protected] 
endif 
endif 

obj-($config1) += sample.o 
obj-($config2) += sample.o 

희망이

존에게 도움이