title: Makefile error: No rule to make target, needed by 'all'. Stop
body: <p>I write a Makefile within this directory: </p>
  
  <pre><code>    .
  ├── bin
  │   └── obj
  ├── include
  │   ├── globals.h
  │   ├── ma.h
  │   ├── mb.h
  │   ├── mc.h
  │   └── md.h
  ├── Makefile
  ├── Makefile.save
  ├── src
  │   ├── ma.c
  │   ├── main.c
  │   ├── mb.c
  │   ├── mc.c
  │   └── md.c
  └── test
      ├── main.c
      └── main.o
  </code></pre>
  
  <p>My Makefile is the following:</p>
  
  <pre><code>CFLAGS := -Wall -g -pedantic --std=c99
  
  objs := bin/obj/ma.o bin/obj/mb.o bin/obj/mc.o bin/obj/md.o bin/obj/main.o
  
  all: $(objs)
  
  %.o: %.c
      gcc -c $&lt; -o $@ $(CFLAGS)
  </code></pre>
  
  <p>But I can't execute with make order; the program gives me this error:</p>
  
  <pre><code>make: *** No rule to make target 'bin/obj/ma.o', needed by 'all'.  Stop.
  </code></pre>
  
  <p>Anyone have an idea?</p>