make命令的菜鸟极问题?

//-----1.c------
#include "1.h"
void f()
{}

//------1.h-----
void f();

//------2.c------
#include "1.h"
extern void f()
int main()
{
f();
exit(1);
}

//----a.makefile---
1.o: 1.c 1.h
cc -o 1 1.c
2.o: 2.c 1.h
cc -o 2 2.c

//-------------------
用make命令编译报错,为什么啊?
[398 byte] By [cdhit-积极态度] at [2008-5-2]
# 1
all: 2

1.o: 1.c 1.h
gcc -c 1.c
2: 2.c 1.o 1.h
gcc -o 2 2.c 1.o
fytzzh-我爱summer at 2007-10-20 > top of Msdn China Tech,Linux/Unix社区,程序开发...