ソースコードとオブジェクトコードを別のディレクトリに分けたい。
以下は私のディレクトリツリーです。
.
|-- bsp
| |-- Makefile
| `-- x86
| |-- begin.s
| |-- dummy.s
| |-- helloos.s
| |-- lowlevel_init.s
| `-- Makefile
|-- buildrules
| |-- builder.rules
| |-- linker.rules
| `-- subdir.rules
|-- configure
| `-- helloos.lds
|-- hypervisor
| |-- font.c
| |-- int.c
| |-- int_entry.s
| |-- Makefile
| |-- mouse.c
| `-- start.c
|-- include
| |-- common.h
| `-- font.h
|-- lib
| |-- lib.s
| `-- Makefile
|-- Makefile
`-- README.md
root(TOP)ディレクトリに「obj」サブディレクトリを作成したい。すべてのobjファイルをその中に入れます。
次のように:
。
|-- bsp
| |-- Makefile
| `-- x86
| |-- begin.s
| |-- dummy.s
| |-- helloos.s
| |-- lowlevel_init.s
| `-- Makefile
|-- buildrules
| |-- builder.rules
| |-- linker.rules
| `-- subdir.rules
|-- configure
| `-- helloos.lds
|-- hypervisor
| |-- font.c
| |-- int.c
| |-- int_entry.s
| |-- Makefile
| |-- mouse.c
| `-- start.c
|-- include
| |-- common.h
| `-- font.h
|-- lib
| |-- lib.s
| `-- Makefile
|-- Makefile
|-- obj
| |-- begin.o
| |-- dummy.o
| |-- font.o
| |-- helloos.o
| |-- int_entry.o
| |-- int.o
| |-- lib.o
| |-- lowlevel_init.o
| |-- mouse.o
| `-- start.o
`-- README.md
そして、これは私の実装です:
%.o: %.c
$(CC) $(CFLAGS) -c -o $(OBJDIR)/$@ $<
%.o: %.s
$(AS) $(ASFLAGS) -o $(OBJDIR)/$@ $<
しかし、私はこの実装が好きではありません。
私はそれをこのように書きたいです:
$(OBJDIR)/%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
$(OBJDIR)/%.o: %.s
$(AS) $(ASFLAGS) -o $@ $<
私がそうするなら、これらの規則に従わないでください、しかしそれは暗黙の規則を使用します。
助けてくれてありがとう!!!!!!!!!!!!!!!
困惑した人を歓迎します。