All pastes #575413 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-06-19 00:45 UTC
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