• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Makefile
2#
3# Copyright (C) 2008 Daniel Baumann <daniel@debian.org>
4#
5# This program is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17#
18# On Debian systems, the complete text of the GNU General Public License
19# can be found in /usr/share/common-licenses/GPL-3 file.
20
21DESTDIR =
22PREFIX = /usr/local
23SBINDIR = $(PREFIX)/sbin
24DOCDIR = $(PREFIX)/share/doc
25MANDIR = $(PREFIX)/share/man
26
27#OPTFLAGS = -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
28OPTFLAGS = -O2 -fomit-frame-pointer $(shell getconf LFS_CFLAGS)
29#WARNFLAGS = -Wall -pedantic -std=c99
30WARNFLAGS = -Wall
31DEBUGFLAGS = -g
32CFLAGS += $(OPTFLAGS) $(WARNFLAGS) $(DEBUGFLAGS)
33
34VPATH = src
35
36all: build
37
38build: dosfsck dosfslabel mkdosfs
39
40dosfsck: boot.o check.o common.o fat.o file.o io.o lfn.o dosfsck.o
41
42dosfslabel: boot.o check.o common.o fat.o file.o io.o lfn.o dosfslabel.o
43
44mkdosfs: mkdosfs.o
45
46rebuild: distclean build
47
48install: install-bin install-doc install-man
49
50install-bin: build
51	install -d -m 0755 $(DESTDIR)/$(SBINDIR)
52	install -m 0755 dosfsck dosfslabel mkdosfs $(DESTDIR)/$(SBINDIR)
53
54	ln -sf dosfsck $(DESTDIR)/$(SBINDIR)/fsck.msdos
55	ln -sf dosfsck $(DESTDIR)/$(SBINDIR)/fsck.vfat
56	ln -sf mkdosfs $(DESTDIR)/$(SBINDIR)/mkfs.msdos
57	ln -sf mkdosfs $(DESTDIR)/$(SBINDIR)/mkfs.vfat
58
59install-doc:
60	install -d -m 0755 $(DESTDIR)/$(DOCDIR)/dosfstools
61	install -m 0644 doc/* $(DESTDIR)/$(DOCDIR)/dosfstools
62
63install-man:
64	install -d -m 0755 $(DESTDIR)/$(MANDIR)/man8
65	install -m 0644 man/*.8 $(DESTDIR)/$(MANDIR)/man8
66
67	ln -sf dosfsck.8 $(DESTDIR)/$(MANDIR)/man8/fsck.msdos.8
68	ln -sf dosfsck.8 $(DESTDIR)/$(MANDIR)/man8/fsck.vfat.8
69	ln -sf mkdosfs.8 $(DESTDIR)/$(MANDIR)/man8/mkfs.msdos.8
70	ln -sf mkdosfs.8 $(DESTDIR)/$(MANDIR)/man8/mkfs.vfat.8
71
72uninstall: uninstall-bin uninstall-doc uninstall-man
73
74uninstall-bin:
75	rm -f $(DESTDIR)/$(SBINDIR)/dosfsck
76	rm -f $(DESTDIR)/$(SBINDIR)/dosfslabel
77	rm -f $(DESTDIR)/$(SBINDIR)/mkdosfs
78
79	rm -f $(DESTDIR)/$(SBINDIR)/fsck.msdos
80	rm -f $(DESTDIR)/$(SBINDIR)/fsck.vfat
81	rm -f $(DESTDIR)/$(SBINDIR)/mkfs.msdos
82	rm -f $(DESTDIR)/$(SBINDIR)/mkfs.vfat
83
84	rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(SBINDIR)
85
86uninstall-doc:
87	rm -rf $(DESTDIR)/$(DOCDIR)/dosfstools
88
89	rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(DOCDIR)
90
91uninstall-man:
92	rm -f $(DESTDIR)/$(MANDIR)/man8/dosfsck.8
93	rm -f $(DESTDIR)/$(MANDIR)/man8/dosfslabel.8
94	rm -f $(DESTDIR)/$(MANDIR)/man8/mkdosfs.8
95
96	rm -f $(DESTDIR)/$(MANDIR)/man8/fsck.msdos.8
97	rm -f $(DESTDIR)/$(MANDIR)/man8/fsck.vfat.8
98	rm -f $(DESTDIR)/$(MANDIR)/man8/mkfs.msdos.8
99	rm -f $(DESTDIR)/$(MANDIR)/man8/mkfs.vfat.8
100
101	rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(MANDIR)/man8
102	rmdir --ignore-fail-on-non-empty $(DESTDIR)/$(MANDIR)
103
104reinstall: distclean install
105
106clean:
107	rm -f *.o
108
109distclean: clean
110	rm -f dosfsck dosfslabel mkdosfs
111
112.PHONY: build rebuild install install-bin install-doc install-man uninstall uninstall-bin uninstall-doc uninstall-man reinstall clean distclean
113