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} ${OBJDIR}/${LIBNAME} ${PROGNAME} ${OBJDIR}/${LIBNAME}: ${OBJ} $(AR) ${OBJDIR}/${LIBNAME} $(OBJ) ${PROGNAME}:${OBJDIR}/${LIBNAME} gcc -g -o Cobex ${SRCDIR}/cobex.c ${OBJDIR}/${LIBNAME} ${CFLAGS} ${LFLAGS} clean: rm -f ${OBJDIR}/* ./Cobex ${OBJDIR}/%.o:$(SRCDIR)/%.c $(CC) $(CFLAGS) -c -o $@ $<