File: Makefile

package info (click to toggle)
defrag 0.73-1
  • links: PTS
  • area: main
  • in suites: hamm, potato, slink
  • size: 384 kB
  • ctags: 599
  • sloc: ansic: 4,463; makefile: 137; sh: 37
file content (146 lines) | stat: -rw-r--r-- 3,793 bytes parent folder | download
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