1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
# Makefile for defrag, the Linux filesystem defragmenter
#
# Copyright (C) 1992, 1993, 1994, 1997 Stephen Tweedie (sct@dcs.ed.ac.uk)
# This file may be distributed under the terms of the GNU
# General Public License.
#
# Note - you need GNU make version 3.70 or later to run this makefile.
VERSION = 0.73
BINDIR = $(DESTDIR)/sbin
MANDIR = $(DESTDIR)/usr/man
CC = gcc -pipe
RANLIB = ranlib
ETAGS = etags -T
# CPU-type definition
#CPU = -m486
# Optimization
#OPTI = -O3
# Define this only if your libc already defines llseek. Modern libcs
# should do so.
DFLAGS = -DHAVE_LLSEEK
ifdef DEBUG
CFLAGS = -Wall -g $(CPU) $(OPTI) $(DFLAGS)
LDFLAGS = -g
else
CFLAGS = -Wall -fomit-frame-pointer $(CPU) $(OPTI) $(DFLAGS)
LDFLAGS = -s
endif
LIBS= -lncurses
# Comment this out if you don't want QMAGIC executables.
#LDFLAGS:=$(LDFLAGS) -Xlinker -qmagic
PROGS = e2defrag defrag edefrag xdefrag e2dump xdump frag
MAN = defrag.8 frag.8
OBJS = defrag.o buffers.o display.o misc.o llseek.o
all: $(PROGS)
defrag: libminix.a
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
edefrag: libext.a
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
e2defrag: libext2.a
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
xdefrag: libxia.a
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
e2defrag.static: display-plain.o libext2.a
$(CC) -static $(LDFLAGS) -o $@ $^ $(LIBS)
e2dump: e2dump.ext2.o libext2.a
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
xdump: xdump.xia.o libxia.a
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
libminix.a: libminix.a($(OBJS:.o=.minix.o) minix.minix.o)
$(RANLIB) $@
libext.a: libext.a($(OBJS:.o=.ext.o) ext.ext.o)
$(RANLIB) $@
libext2.a: libext2.a($(OBJS:.o=.ext2.o) ext2.ext2.o)
$(RANLIB) $@
libxia.a: libxia.a($(OBJS:.o=.xia.o) xia.xia.o)
$(RANLIB) $@
%.minix.o: %.c
$(CC) $(CFLAGS) -DMINIXFS -c -o $@ $<
%.ext.o : %.c
$(CC) $(CFLAGS) -DEXTFS -c -o $@ $<
%.ext2.o : %.c
$(CC) $(CFLAGS) -DEXT2FS -c -o $@ $<
%.xia.o : %.c
$(CC) $(CFLAGS) -DXIAFS -c -o $@ $<
version.h:
echo "char *version = \"$(VERSION)\";" >> version.h
install: all
install $(PROGS) $(BINDIR)
install -m644 $(MAN) $(MANDIR)/man8
clean:
rm -f $(PROGS) *.o *.a core .depend version.h
spotless: clean
rm -f a.out *.i *.s *~ .depend TAGS
tags:
$(ETAGS) *.[ch] README CHANGES INSTALL
distribution: spotless
(cd ..; \
(echo RCS CVS | \
tar -cvzf defrag-$(VERSION).tar.gz -X - defrag-$(VERSION)/*))
.PHONY: changes changelog ChangeLog
changelog: ChangeLog
changes: ChangeLog
ChangeLog:
rcs2log -u "sct:Stephen C. Tweedie:sct@dcs.ed.ac.uk" > ChangeLog.new
cat ChangeLog >> ChangeLog.new
mv ChangeLog.new ChangeLog
PHONY: dep depend
dep depend .depend: version.h
rm -f .depend
# fudge for dependencies for separate filesystem binaries.
# Try to avoid referring to intermediate object files in the .depend
# file, so that make will delete them automatically once they have
# been incorporated into their lib???.a archive files.
for f in $(OBJS) ; do \
g=`basename $$f .o`; \
$(CPP) -M -DMINIX $$g.c \
| sed "s/$$f/libminix.a($$g.minix.o)/" >> .depend; \
$(CPP) -M -DEXT2FS $$g.c \
| sed "s/$$f/libext2.a($$g.ext2.o)/" >> .depend; \
$(CPP) -M -DXIAFS $$g.c \
| sed "s/$$f/libxia.a($$g.xia.o)/" >> .depend; \
$(CPP) -M -DEXTFS $$g.c \
| sed "s/$$f/libext.a($$g.ext.o)/" >> .depend; \
done
\
$(CPP) -M -DMINIXFS minix.c \
| sed "s/^\([a-z0-9]*\).o/libminix.a(\1.minix.o)/" >> .depend
$(CPP) -M -DEXT2FS ext2.c \
| sed "s/^\([a-z0-9]*\).o/libext2.a(\1.ext2.o)/" >> .depend
$(CPP) -M -DXIAFS xia.c \
| sed "s/^\([a-z0-9]*\).o/libxia.a(\1.xia.o)/" >> .depend
$(CPP) -M -DEXTFS ext.c \
| sed "s/^\([a-z0-9]*\).o/libext.a(\1.ext.o)/" >> .depend
\
$(CPP) -M -DEXT2FS e2dump.c\
| sed "s/^\([a-z0-9]*\).o/\1.ext2.o/" >> .depend
$(CPP) -M -DXIAFS xdump.c \
| sed "s/^\([a-z0-9]*\).o/\1.xia.o/" >> .depend
include .depend
|