
# Makefile configuration
include 	../Make.conf


# Common headers to be included in each .o's dependencies
HEADERS		= debug.h

# Mostly intended for make clean
OBJECTS		= debug.o ringbuf.o textfile.o subprocs.o
OBJECTS        += metadata.o metatype.o metadict.o metaops.o md5.o misc.o
TARGETS		= common.a

# Add base- and common directory to include path
CFLAGS         += -I.. -I.


# Everything
all:		$(TARGETS)

testprogs:	$(TARGETS)
		cd test && $(MAKE)


# The objects
debug.o:	debug.c $(HEADERS)
		$(CC) $(CFLAGS) -DHAVE_VSNPRINTF=$(HAVE_VSNPRINTF) -DHAVE_SYSLOG=$(HAVE_SYSLOG) -o $@ -c $<

ringbuf.o:	ringbuf.c ringbuf.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

textfile.o:	textfile.c textfile.h ringbuf.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

subprocs.o:	subprocs.c subprocs.h ringbuf.h ../constants.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

metadata.o:	metadata.c metadata.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

metatype.o:	metatype.c metatype.h metadata.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

metadict.o:	metadict.c metadict.h metatype.h metadata.h \
			textfile.h ringbuf.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

metaops.o:	metaops.c metaops.h metadata.h ../constants.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

md5.o:		md5.c md5.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

misc.o:		misc.c misc.h $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

# The targets
common.a:	$(OBJECTS)
		$(AR) rc $@ $(OBJECTS)
		$(RANLIB) $@
#		$(AR) s $@


# Clean
clean:		
		rm -f $(OBJECTS) $(TARGETS)
		cd test && $(MAKE) clean

