I am using Ubuntu-gcc and have a large C code which uses routines from numerical recipes and GNU scientific library. It needs a compilation compilation because each library, i.e. nr and GNUsl, needs its own flags for gcc. Therefore I use a makefile. It works well when the code is only one file. But when the code is distributed into many files it does not work! My question is that what should I write as the TARGET in the makefile. Either *.c or complete list of files do not work. The scripts is : CC = gcc CFLAGS = -Wall -lgsl -lgslcblas INSTALL_INCLUDEDIR = /usr/include/nr INSTALL_LIBDIR = /usr/lib/nr INSTALL_LIB = nr2c INCLUDEDIR = $(INSTALL_INCLUDEDIR) INCLUDES = -I$(INSTALL_INCLUDEDIR) LIBDIR = -L$(INSTALL_LIBDIR) LIBS = -l$(INSTALL_LIB) -lm #### What should I write here ????????? #### TARGET = build_grid.c cheb_2D_tring.c headers.c interp_tring.c nr_test.c polin2.c polint.c pre_proc.c read.c utilities.c OBJS = $(TARGET).o $(TARGET): $(OBJS) $(CC) $(OBJS) $(LIBDIR) $(LIBS) -o $(TARGET) .c.o: $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ clean: rm -f $(OBJS) $(TARGET) Please help me ! Thanks in advance.