Redoing Makefile from scratch.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
This commit is contained in:
parent
b4feb7319f
commit
f8d6127d8b
153
Makefile
153
Makefile
@ -1,91 +1,94 @@
|
||||
#
|
||||
# Makefile for dosfstools (mkdosfs and dosfsck)
|
||||
#
|
||||
# Makefile
|
||||
|
||||
CC ?= gcc
|
||||
CPP = $(CC) -E
|
||||
OPTFLAGS = -D_FILE_OFFSET_BITS=64
|
||||
DESTDIR =
|
||||
PREFIX = /usr/local
|
||||
SBINDIR = $(PREFIX)/sbin
|
||||
DOCDIR = $(PREFIX)/share/doc
|
||||
MANDIR = $(PREFIX)/share/man
|
||||
|
||||
#OPTFLAGS = -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
|
||||
OPTFLAGS = -O2 -fomit-frame-pointer $(shell getconf LFS_CFLAGS)
|
||||
#WARNFLAGS = -Wall -pedantic -std=c99
|
||||
WARNFLAGS = -Wall
|
||||
DEBUGFLAGS =
|
||||
DEBUGFLAGS = -g
|
||||
CFLAGS += $(OPTFLAGS) $(WARNFLAGS) $(DEBUGFLAGS)
|
||||
|
||||
PREFIX =
|
||||
SBINDIR = $(PREFIX)/sbin
|
||||
MANDIR = $(PREFIX)/usr/man/man8
|
||||
VPATH = src
|
||||
|
||||
.PHONY: clean distclean install depend
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
all: build
|
||||
|
||||
all dep clean install:
|
||||
$(MAKE) -C mkdosfs $@
|
||||
$(MAKE) -C dosfsck $@
|
||||
build: dosfsck dosfslabel mkdosfs
|
||||
|
||||
distclean:
|
||||
$(MAKE) -C mkdosfs $@
|
||||
$(MAKE) -C dosfsck $@
|
||||
rm -f TAGS .#* .new* \#*# *~
|
||||
dosfsck: boot.o check.o common.o fat.o file.o io.o lfn.o dosfsck.o
|
||||
|
||||
TAGS:
|
||||
etags -d -T `find . -name '*.[ch]'`
|
||||
dosfslabel: boot.o check.o common.o fat.o file.o io.o lfn.o dosfslabel.o
|
||||
|
||||
dist: binary tar
|
||||
mkdosfs: mkdosfs.o
|
||||
|
||||
tar: distclean
|
||||
cd ..; \
|
||||
name="$(notdir $(shell pwd))"; \
|
||||
namev="$$name-$(shell perl -ne 'print "$$1\n" if /VERSION.*"(\S+)"/;' version.h)"; \
|
||||
mv $$name $$namev; \
|
||||
tar cf $$namev.src.tar `find $$namev \( -name CVS -o -path $$namev/debian \) -prune -o ! -type d -print`; \
|
||||
gzip -9f $$namev.src.tar; \
|
||||
mv $$namev $$name
|
||||
rebuild: distclean build
|
||||
|
||||
binary: all
|
||||
doit=""; [ root = "`whoami`" ] || doit=sudo; $$doit $(MAKE) binary-sub
|
||||
cd tmp; \
|
||||
name="$(notdir $(shell pwd))"; \
|
||||
namev="$$name-$(shell perl -ne 'print "$$1\n" if /VERSION.*"(\S+)"/;' version.h)"; \
|
||||
arch=`uname -m | sed 's/i.86/i386/'`; \
|
||||
nameva=$$namev.$$arch.tar; \
|
||||
tar cf ../../$$nameva * ; \
|
||||
gzip -9f ../../$$nameva
|
||||
doit=""; [ root = "`whoami`" ] || doit=sudo; $$doit rm -rf tmp
|
||||
install: install-bin install-doc install-man
|
||||
|
||||
binary-sub:
|
||||
@[ root = "`whoami`" ] || (echo "Must be root for this!"; exit 1)
|
||||
mkdir -p tmp/$(SBINDIR) tmp/$(MANDIR)
|
||||
$(MAKE) install PREFIX=$(shell pwd)/tmp
|
||||
install-bin: build
|
||||
install -d -m 0755 $(DESTDIR)/$(SBINDIR)
|
||||
install -m 0755 dosfsck dosfslabel mkdosfs $(DESTDIR)/$(SBINDIR)
|
||||
|
||||
# usage: make diff OLDVER=<last-release-number>
|
||||
diff:
|
||||
@if [ "x$(OLDVER)" = "x" ]; then \
|
||||
echo "Usage: make diff OLDVER=<last-release-number>"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
name="$(notdir $(shell pwd))"; \
|
||||
namev="$$name-$(shell perl -ne 'print "$$1\n" if /VERSION.*"(\S+)"/;' version.h)"; \
|
||||
cvs diff -u -rRELEASE-$(OLDVER) >../$$namev.diff; \
|
||||
gzip -9f ../$$namev.diff
|
||||
ln -sf dosfsck $(DESTDIR)/$(SBINDIR)/fsck.msdos
|
||||
ln -sf dosfsck $(DESTDIR)/$(SBINDIR)/fsck.vfat
|
||||
ln -sf mkdosfs $(DESTDIR)/$(SBINDIR)/mkfs.msdos
|
||||
ln -sf mkdosfs $(DESTDIR)/$(SBINDIR)/mkfs.vfat
|
||||
|
||||
install-doc:
|
||||
install -d -m 0755 $(DESTDIR)/$(DOCDIR)/dosfstools
|
||||
install -m 0644 doc/* $(DESTDIR)/$(DOCDIR)/dosfstools
|
||||
|
||||
# usage: make release VER=<release-number>
|
||||
release:
|
||||
@if [ "x$(VER)" = "x" ]; then \
|
||||
echo "Usage: make release VER=<release-number>"; \
|
||||
exit 1; \
|
||||
fi
|
||||
if [ -d CVS ]; then \
|
||||
modified=`cvs status 2>/dev/null | awk '/Status:/ { if ($$4 != "Up-to-date") print $$2 }'`; \
|
||||
if [ "x$$modified" != "x" ]; then \
|
||||
echo "There are modified files: $$modified"; \
|
||||
echo "Commit first"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi
|
||||
sed "/VERSION/s/\".*\"/\"$(VER)\"/" <version.h >version.h.tmp
|
||||
date="`date +'%d %b %Y'`"; sed "/VERSION_DATE/s/\".*\"/\"$$date\"/" <version.h.tmp >version.h
|
||||
rm version.h.tmp
|
||||
if [ -d CVS ]; then \
|
||||
cvs commit -m"Raised version to $(VER)" version.h; \
|
||||
cvs tag -c -F RELEASE-`echo $(VER) | sed 's/\./-/g'`; \
|
||||
fi
|
||||
install-man:
|
||||
install -d -m 0755 $(DESTDIR)/$(MANDIR)/man8
|
||||
install -m 0644 man/*.8 $(DESTDIR)/$(MANDIR)/man8
|
||||
|
||||
ln -sf dosfsck.8 $(DESTDIR)/$(MANDIR)/man8/fsck.msdos.8
|
||||
ln -sf dosfsck.8 $(DESTDIR)/$(MANDIR)/man8/fsck.vfat.8
|
||||
ln -sf mkdosfs.8 $(DESTDIR)/$(MANDIR)/man8/mkfs.msdos.8
|
||||
ln -sf mkdosfs.8 $(DESTDIR)/$(MANDIR)/man8/mkfs.vfat.8
|
||||
|
||||
uninstall: uninstall-bin uninstall-doc uninstall-man
|
||||
|
||||
uninstall-bin:
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/dosfsck
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/dosfslabel
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/mkdosfs
|
||||
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/fsck.msdos
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/fsck.vfat
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/mkfs.msdos
|
||||
rm -f $(DESTDIR)/$(SBINDIR)/mkfs.vfat
|
||||
|
||||
rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(SBINDIR)
|
||||
|
||||
uninstall-doc:
|
||||
rm -rf $(DESTDIR)/$(DOCDIR)/dosfstools
|
||||
|
||||
rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(DOCDIR)
|
||||
|
||||
uninstall-man:
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/dosfsck.8
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/dosfslabel.8
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/mkdosfs.8
|
||||
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/fsck.msdos.8
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/fsck.vfat.8
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/mkfs.msdos.8
|
||||
rm -f $(DESTDIR)/$(MANDIR)/man8/mkfs.vfat.8
|
||||
|
||||
rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(MANDIR)/man8
|
||||
rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(MANDIR)
|
||||
|
||||
reinstall: distclean install
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
|
||||
distclean: clean
|
||||
rm -f dosfsck dosfslabel mkdosfs
|
||||
|
||||
.PHONY: build rebuild install install-bin install-doc install-man uninstall uninstall-bin uninstall-doc uninstall-man reinstall clean distclean
|
||||
|
||||
63
src/Makefile
63
src/Makefile
@ -1,63 +0,0 @@
|
||||
|
||||
all: dosfsck dosfslabel mkdosfs
|
||||
|
||||
dosfsck: boot.o check.o common.o fat.o file.o io.o lfn.o dosfsck.o
|
||||
$(CC) -o $@ $(LDFLAGS) $^
|
||||
|
||||
dosfslabel : boot.o check.o common.o fat.o file.o io.o lfn.o dosfslabel.o
|
||||
$(CC) -o $@ $(LDFLAGS) $^
|
||||
|
||||
mkdosfs: mkdosfs.o
|
||||
$(CC) -o $@ $(LDFLAGS) $^
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CFLAGS) $*.c
|
||||
|
||||
install: dosfsck
|
||||
mkdir -p $(SBINDIR) $(MANDIR)
|
||||
install -m 755 dosfsck $(SBINDIR)
|
||||
install -m 644 dosfsck.8 $(MANDIR)
|
||||
install -m 755 dosfslabel $(SBINDIR)
|
||||
rm -f $(SBINDIR)/fsck.msdos
|
||||
rm -f $(SBINDIR)/fsck.vfat
|
||||
ln -s dosfsck $(SBINDIR)/fsck.msdos
|
||||
ln -s dosfsck $(SBINDIR)/fsck.vfat
|
||||
rm -f $(MANDIR)/fsck.msdos.8
|
||||
ln -s dosfsck.8 $(MANDIR)/fsck.msdos.8
|
||||
ln -s dosfsck.8 $(MANDIR)/fsck.vfat.8
|
||||
|
||||
mkdir -p $(SBINDIR) $(MANDIR)
|
||||
install -m 755 mkdosfs $(SBINDIR)
|
||||
install -m 644 mkdosfs.8 $(MANDIR)
|
||||
rm -f $(SBINDIR)/mkfs.msdos
|
||||
rm -f $(SBINDIR)/mkfs.vfat
|
||||
ln -s mkdosfs $(SBINDIR)/mkfs.msdos
|
||||
ln -s mkdosfs $(SBINDIR)/mkfs.vfat
|
||||
rm -f $(MANDIR)/mkfs.msdos.8
|
||||
ln -s mkdosfs.8 $(MANDIR)/mkfs.msdos.8
|
||||
ln -s mkdosfs.8 $(MANDIR)/mkfs.vfat.8
|
||||
|
||||
clean:
|
||||
rm -f *.o *.s *.i *~ \#*# tmp_make .#* .new*
|
||||
|
||||
distclean: clean
|
||||
rm -f *.a dosfsck dosfslabel mkdosfs
|
||||
|
||||
dep:
|
||||
sed '/\#\#\# Dependencies/q' <Makefile >tmp_make
|
||||
$(CPP) $(CFLAGS) -MM *.c >>tmp_make
|
||||
mv tmp_make Makefile
|
||||
|
||||
### Dependencies
|
||||
boot.o: boot.c common.h dosfsck.h io.h boot.h
|
||||
check.o: check.c common.h dosfsck.h io.h fat.h file.h lfn.h check.h
|
||||
common.o: common.c common.h
|
||||
dosfsck.o: dosfsck.c version.h common.h dosfsck.h io.h boot.h fat.h \
|
||||
file.h check.h
|
||||
dosfslabel.o: dosfslabel.c version.h common.h dosfsck.h io.h boot.h fat.h \
|
||||
file.h check.h
|
||||
fat.o: fat.c common.h dosfsck.h io.h check.h fat.h
|
||||
file.o: file.c common.h file.h
|
||||
io.o: io.c dosfsck.h common.h io.h
|
||||
lfn.o: lfn.c common.h io.h dosfsck.h lfn.h file.h
|
||||
mkdosfs.o: mkdosfs.c version.h
|
||||
Loading…
x
Reference in New Issue
Block a user