2012-03-27 2 views
1

이전 SO 게시물 1, 2 등을 보았습니다. 컴파일시 사전 처리기 지시문을 전달하고 싶습니다. SCons는 함께, 내가 할 수있는 :메이크 파일 : 메이크 파일을 통해 전처리기를 g ++로 전달

num_times = ARGUMENTS.get('c', 1) 
env.Append(CCFLAGS = '-DNUM_TIMES=%d' % int(num_times)) 

I 희망, 그것은 또한하게 사용 가능해야한다. 내가 발행하고 싶습니다

make c=4 

또는 그와 비슷한 것. 누군가가 방법을 제안 할 수 있습니까? 나는 자신의 메이크 파일을 가진 하위 폴더가있는 폴더를 컴파일 중이다. 미리 감사드립니다. make c=2

CFLAGS += -DNUM_TIMES=$(c) 
export CFLAGS 

all: 
    $(MAKE) -C your_subfolder 

전화를하고, 하위 폴더 메이크에 CFLAGS을 만지지 않도록 :

답변

1

한 가지 간단한 방법은하는 것입니다.

루트 폴더에 서브 디렉토리 makefile (include)에있는 include의 모든 공통 설정으로 Makefile 부분을 갖는 것이 좋습니다. ($(MAKE)) make에 부여한 명령 줄 인수도 하위 작성자에게 전달됩니다.

+0

감사합니다. CFLAGS + = $ (CXXFLAGS) – user984260

+0

메인 메이크 파일과 서브 파일에서 똑같은 일을하지 말고 동시에 메인 - 변수에서 물건을 두 배로 늘리면 문제가 될 수 있습니다. 가장 좋은 것은 (아마도)'export'가 아니라 당신이 원하는 설정으로 어디 에나 포함시키는 일반적인 make snippet을가집니다. – Mat