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