What is the meaning of "tab" in script ?

Hi,
GOD bless you every body

I have some script to compile a COBOL program - listed bellow -
I have many questions about the syntax of this script:

1- There is many "tab" in the script, what does it means?
Note: the tab is invisible, so I have colored it into red.

2- The "rm" command is executed only in case of successful compilation,
How does it happen according to the syntax?

3- There is some words, which written as a label name such as "build:" ,
"build_static:", "$(Prog):"
What does it mean?

The script :
---------------------------------------------------------------------
COB=cob

LIBDIR=lib

build: $(COBS)
$(COB) $(COBFLAGS) $(COBS) -U $(LDPATHFLAG)$(LIBHOME) (COBSQLINTF) $(COBOL_PROLDLIBS) -C ECHOALL

build_static: $(COBS)
tab $(COB) $(COBFLAGS) $(COBS) -U $(LDPATHFLAG)$(LIBHOME) $(COBSQLINTF) $
(COBOL_STATICPROLDLIBS) -C ECHOALL

$(Prog):
tab $(PROCOB) $(PCCFLAGS) DBMS=V7 MODE=ORACLE unsafe_null=yes iname=$(Prog).pco >$(Prog).err 2>&1
tab $(MAKE) -f $(MAKEFILE) build COBS=$(Prog).cob >> $(Prog).err 2>&1
tab rm $(Prog).err
# These macro definitions fill in some details or override some defaults
MAKEFILE=/export/home0/appl/cslib/com-int.mk
PCCPLSFLAGS=sqlcheck=full userid=$(USERID) picx=varchar2

------------------------------------

I appreciate your help
Thank

1-It's part of makefile syntax. It marks the start of a command

2 -rm - deletes intermediate files (not used except by make )created when the compile

3 -Those are labels. When you say make -f makefile.mk progamname
$PROG becomes programename

Just look at

A great Thanks to jim mcnamara and Hitori
Your reply is helping me.
Now I understand
Thanks again