# Makefile for edefrag, the Linux file system defragmenter
#
# Copyright (C) 1992, 1993 Stephen Tweedie (sct@dcs.ed.ac.uk)
# This file may be distributed under the terms of the GNU
# General Public License. 

CC = gcc
# For 486-specific optimisations:
#CC = gcc -m486

#For the brave...
#CFLAGS = -N -O6 -fomit-frame-pointer -Wall -DDEBUG

CFLAGS = -Wall 
LDFLAGS = -N -s
LIBS= -lncurses

PROGS = e2defrag e2dump xdefrag xdump defrag edefrag 

all:	$(PROGS)

defrag:		defrag.o minix.o misc.o buffers.o display.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)

edefrag:	edefrag.o ext.o misc.o ebuffers.o display.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)

e2defrag:	e2defrag.o ext2.o misc.o e2buffers.o display.o 
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)

xdefrag:	xdefrag.o xia.o misc.o xbuffers.o display.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)

e2dump:	e2dump.o display.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)

xdump: 	xdump.o display.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)

defrag.o:	defrag.c
	$(CC) $(CFLAGS) -DMINIXFS -c -o $@ $<

edefrag.o:	defrag.c
	$(CC) $(CFLAGS) -DEXTFS -c -o $@ $<

e2defrag.o:	defrag.c
	$(CC) $(CFLAGS) -DEXT2FS -c -o $@ $<

xdefrag.o:	defrag.c
	$(CC) $(CFLAGS) -DXIAFS -c -o $@ $<

buffers.o:	buffers.c
	$(CC) $(CFLAGS) -DMINIXFS -c -o $@ $<

ebuffers.o:	buffers.c
	$(CC) $(CFLAGS) -DEXTFS -c -o $@ $<

e2buffers.o:	buffers.c
	$(CC) $(CFLAGS) -DEXT2FS -c -o $@ $<

xbuffers.o:	buffers.c
	$(CC) $(CFLAGS) -DXIAFS -c -o $@ $<

minix.o:	minix.c
	$(CC) $(CFLAGS) -DMINIXFS -c -o $@ $<

ext.o:	ext.c
	$(CC) $(CFLAGS) -DEXTFS -c -o $@ $<

ext2.o:	ext2.c ext2.h
	$(CC) $(CFLAGS) -DEXT2FS -c -o $@ $<

xia.o:	xia.c xia.h
	$(CC) $(CFLAGS) -DXIAFS -c -o $@ $<

clean:
	rm -f $(PROGS) *.o core

spotless: clean
	rm -f *~ .depend
	
tags:
	/usr/emacs/etc/etags *.[ch] README CHANGES INSTALL

PHONY: dep
dep .depend:
	rm -f .depend
# fudge for extfs dependencies
	$(CPP) -M -DEXT2FS defrag.c | sed "s/defrag.o/e2defrag.o/" >> .depend
	$(CPP) -M -DEXT2FS buffers.c | sed "s/buffers.o/e2buffers.o/" >> .depend
	$(CPP) -M -DEXT2FS ext2.c >> .depend
	$(CPP) -M -DEXTFS defrag.c | sed "s/defrag.o/edefrag.o/" >> .depend
	$(CPP) -M -DEXTFS buffers.c | sed "s/buffers.o/ebuffers.o/" >> .depend
	$(CPP) -M -DEXTFS ext.c >> .depend
	$(CPP) -M -DMINIXFS defrag.c | sed "s/defrag.o/edefrag.o/" >> .depend
	$(CPP) -M -DMINIXFS buffers.c | sed "s/buffers.o/ebuffers.o/" >> .depend
	$(CPP) -M -DMINIXFS minix.c >> .depend
	$(CPP) -M -DXIAFS defrag.c | sed "s/defrag.o/xdefrag.o/" >> .depend
	$(CPP) -M -DXIAFS buffers.c | sed "s/buffers.o/xbuffers.o/" >> .depend
	$(CPP) -M -DXIAFS xia.c >> .depend
	for i in minix.c misc.c ; do $(CPP) -M $$i; done >> .depend
	for i in e2dump.c xdump.c ; do $(CPP) -M $$i; done >> .depend

include .depend



