rendered paste body[vikky@server new]$ cat Makefile
CC=gcc
SRCDIR=./src
OBJDIR=./obj
LFLAGS=`xml2-config --libs`
AR=ar -r
LIBNAME=libcobex.a
PROGNAME=Cobex
CFLAGS=`xml2-config --cflags` -I./include
SRC= functions.c \
hash.c \
prompt.c \
system.c
OBJ= $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(SRC)))
SRC:=$(patsubst %.c,$(SRCDIR)/%.c,${SRC})
All: ${OBJ} ${LIBNAME} ${PROGNAME}
${LIBNAME}: ${OBJ}
$(AR) ${OBJDIR}/${LIBNAME} $(OBJ)
${PROGNAME}:${LIBNAME}
gcc -g -o Cobex ${SRCDIR}/cobex.c ${OBJDIR}/${LIBNAME} ${CFLAGS} ${LFLAGS}
clean:
rm -f ${OBJDIR}/*
${OBJ}:$(SRC)
@echo ${SRC}
@echo ${OBJ}
$(CC) $(CFLAGS) -c -o $@ $<
[vikky@server new]$
[vikky@server new]$ make
./src/functions.c ./src/hash.c ./src/prompt.c ./src/system.c
./obj/functions.o ./obj/hash.o ./obj/prompt.o ./obj/system.o
gcc `xml2-config --cflags` -I./include -c -o obj/functions.o src/functions.c
./src/functions.c ./src/hash.c ./src/prompt.c ./src/system.c
./obj/functions.o ./obj/hash.o ./obj/prompt.o ./obj/system.o
gcc `xml2-config --cflags` -I./include -c -o obj/hash.o src/functions.c
./src/functions.c ./src/hash.c ./src/prompt.c ./src/system.c
./obj/functions.o ./obj/hash.o ./obj/prompt.o ./obj/system.o
gcc `xml2-config --cflags` -I./include -c -o obj/prompt.o src/functions.c
./src/functions.c ./src/hash.c ./src/prompt.c ./src/system.c
./obj/functions.o ./obj/hash.o ./obj/prompt.o ./obj/system.o
gcc `xml2-config --cflags` -I./include -c -o obj/system.o src/functions.c
ar -r ./obj/libcobex.a ./obj/functions.o ./obj/hash.o ./obj/prompt.o ./obj/system.o
ar: creating ./obj/libcobex.a
gcc -g -o Cobex ./src/cobex.c ./obj/libcobex.a `xml2-config --cflags` -I./include `xml2-config --libs`
/tmp/ccYs4ADp.o: In function `build_element_names':
/home/vikky/Projects/C/cobex/new/./src/cobex.c:82: undefined reference to `hash'
/home/vikky/Projects/C/cobex/new/./src/cobex.c:96: undefined reference to `hash'
/tmp/ccYs4ADp.o: In function `statPhone':
/home/vikky/Projects/C/cobex/new/./src/cobex.c:113: undefined reference to `cmdExec'
/tmp/ccYs4ADp.o: In function `main':
/home/vikky/Projects/C/cobex/new/./src/cobex.c:174: undefined reference to `readPrompt'
collect2: ld returned 1 exit status
make: *** [Cobex] Error 1
[vikky@server new]$
Notice the object creation is creating different objects with the SAME source file