実現したいこと
作業ディレクトリにあるサブディレクトリ内のMakefileを、作業ディレクトリ直下のMakefileから呼び出したい
前提
Gitのsubmodule機能を使っているので、サブディレクトリのMakefileを実行しなくてはならない状況です。以下はその再現になります。なお、サブディレクトリ内でmakeしたときは問題なくビルドできます。
試したこと
実際のものとは異なりますが、簡略化して再現したものです。
ディレクトリ階層↓
作業ディレクトリ(.) |-Sub | |-sub.c | '-Makefile |-Makefile '-main.c
./Makefile
makefile
1include Sub/Makefile 2 3main.exe: main.o 4 cd Sub 5 make 6 cd .. 7 x86_64-w64-mingw32-gcc -shared -o $@ $^ Sub/sub.dll 8 9main.o: main.c 10 x86_64-w64-mingw32-gcc -c -o $@ $^
c
1#include <stdio.h>2 3int add(int x , int y);4 5int main()6{7 const int x = 4 , y = 5;8 printf("%d + %d = %d" , x , y , add(x , y));9 10 return 0;11}
./Sub/Makefile
makefile
1sub.dll: sub.o 2 x86_64-w64-mingw32-gcc -shared -o $@ $^3 4sub.o: sub.c 5 x86_64-w64-mingw32-gcc -c -o $@ $^
./Sub/sub.c
c
1int add(int x , int y) { return x + y; }
発生したエラー
上図の作業ディレクトリ内でmakeするとmake: *** 'sub.o' に必要なターゲット 'sub.c' を make するルールがありません. 中止.となります。

0 コメント