hello.
I'm attempting to work with MySQL, and I'm reading stuff about C API or DBI 
(I forget the acronyms). Anyway, there's a section on my reading about 
creating a makefile to build programs. It looks more complicated than just 
typing out 'gcc' in front of the source file name. The example given is as 
follows: 
=====================================
# excerpt from book MySQL, by Paul DuBois, (2000) page 224
CC=gcc
INCLUDES = -I/usr/local/include/mysql  #-I is capital i
LIBS = L/usr/local/lib/myql -lmysqlclient

all: myclient

main.o: main.c myclient.h
	$(CC) -c $(INCLUDES) main.c
aux.o: aux.c myclient.h
	$(CC) -c $(INCLUDES) aux.c

myclient: main.o aux.o
	$(CC) -o myclient main.o aux.o $(LIBS)

clean:
	rm -f myclient main.o aux.o
=======================================
My question is, I don't know what the author is saying. Where did main.o and 
aux.o come from? What is CC=gcc, and why is it shown like this? Finally, what 
is make, what is makefile, and what's the difference between the two? I have 
a commercial C/C++ package (Watcom) which does the make stuff via a button. 
If I do a makefile on this (which runs on a Windows platform) will resulting 
program work on a Linux platform? 

Marc Olivier