PROGRAM=xcompress

CC=gcc

CFLAGS=-I. -Wall -O3
LDFLAGS=

SOURCES=$(wildcard *.c)
HEADERS=$(wildcard *.h)

OBJECTS=$(patsubst %.c,%.o,$(SOURCES))

TEST=xcompress xcompress.c makefile

all:		$(PROGRAM)

$(PROGRAM):	$(OBJECTS)
		$(CC) -o $(PROGRAM) $(OBJECTS) $(LDFLAGS)

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

clean:
		rm -f $(PROGRAM) $(OBJECTS)

test:		$(PROGRAM) $(TEST)
		@for file in $(TEST); do \
			stat --printf "%n %s" $$file; \
			./$(PROGRAM) -i $$file -o $$file.xcomp; \
			stat --printf " to %s" $$file.xcomp; \
			./$(PROGRAM) -d -i $$file.xcomp -o $$file.xcomp.d; \
			if(diff -q $$file $$file.xcomp.d > /dev/null); then \
				echo; \
			else \
				echo " failed"; \
			fi; \
			rm -f $$file.xcomp $$file.xcomp.d; \
		done
