CC=gcc
LD=gcc
CFLAGS += -g -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
LDFLAGS = -s 
SBINDIR=/usr/local/sbin

all: fatsort

fatsort: fatsort.o FAT_fs.o fileio.o endianness.o signal.o entrylist.o errors.o options.o clusterchain.o sort.o misc.o Makefile
	${LD} ${LDFLAGS} *.o -o fatsort

fatsort.o: fatsort.c endianness.h signal.h FAT_fs.h options.h errors.h sort.h misc.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

FAT_fs.o: FAT_fs.c FAT_fs.h fileio.h endianness.h errors.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

fileio.o: fileio.c fileio.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

endianness.o: endianness.c endianness.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

signal.o: signal.c signal.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

entrylist.o: entrylist.c entrylist.h options.h errors.h FAT_fs.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

errors.o: errors.c errors.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

options.o: options.c options.h errors.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

clusterchain.o: clusterchain.c clusterchain.h errors.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

sort.o: sort.c sort.h options.h FAT_fs.h fileio.h entrylist.h errors.h endianness.h clusterchain.h signal.h misc.h platform.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

misc.o: misc.c misc.h options.h Makefile
	$(CC) ${CFLAGS} -c $< -o $@

install:
	install -m 0755 -p -D fatsort $(DESTDIR)$(SBINDIR)

clean:
	rm -f *.o fatsort

.PHONY: all clean
