This is part of the Makefile coming with vim and shows how a makefile is highlighted. Note that the colors may look strange on your screen, but they look very nice on mine.
###########################################################################

# Used when .o files are in src directory
.c.o:
     $(CC) -c -I$(srcdir) $(ALL_CFLAGS) $<

.cc.o:
     $(CC) -c -I$(srcdir) $(ALL_CFLAGS) $<

# Used when .o files are in src/objects directory
#$(OBJ): $$(*F).c
#	$(CC) -c -I$(srcdir) $(ALL_CFLAGS) $(*F).c -o $@

if_perl.c: if_perl.xs
     $(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
         $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@

# used when python is being built
py_getpath.o: $(PYTHON_CONFDIR)/getpath.c
     $(CC) -c -o $@ $(PYTHON_CONFDIR)/getpath.c \
		-I$(PYTHON_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN \
	  $(ALL_CFLAGS) \
	  $(PYTHON_GETPATH_CFLAGS)

py_config.o: $(PYTHON_CONFDIR)/config.c
     $(CC) -c -o $@ $(PYTHON_CONFDIR)/config.c \
		-I$(PYTHON_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN \
	  $(ALL_CFLAGS)

osdef.h: osdef.sh config.h osdef1.h.in osdef2.h.in
     CC="$(CC) $(ALL_CFLAGS)" srcdir=${srcdir} sh $(srcdir)/osdef.sh

pathdef.c: Makefile config.mk
	-@echo creating pathdef.c
	-@echo '/* pathdef.c */' > pathdef.c
	-@echo '/* This file is automatically created by Makefile' >> pathdef.c
	-@echo ' * DO NOT EDIT!  Change Makefile only. */' >> pathdef.c
	-@echo '#include "vim.h"' >> pathdef.c
	-@echo 'char_u *default_vim_dir = (char_u *)"$(VIMLOC)";' >> pathdef.c
	-@echo 'char_u *all_cflags = (char_u *)"$(CC) -c -I$(srcdir) $(ALL_CFLAGS)";' >> pathdef.c
	-@echo 'char_u *all_lflags = (char_u *)"$(CC) $(LDFLAGS) -o $(VIMTARGET) $(ALL_LIBS)";' >> pathdef.c
	-@sh $(srcdir)/pathdef.sh

Makefile:
	@echo The name of the makefile MUST be "Makefile" (with capital M)!!!!