# Makefile
#
# Copyright (C) 2008 Daniel Baumann <daniel@debian.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# On Debian systems, the complete text of the GNU General Public License
# can be found in /usr/share/common-licenses/GPL-3 file.

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 = -g
CFLAGS += $(OPTFLAGS) $(WARNFLAGS) $(DEBUGFLAGS)

VPATH = src

all: build

build: dosfsck dosfslabel mkdosfs

dosfsck: boot.o check.o common.o fat.o file.o io.o lfn.o dosfsck.o

dosfslabel: boot.o check.o common.o fat.o file.o io.o lfn.o dosfslabel.o

mkdosfs: mkdosfs.o

rebuild: distclean build

install: install-bin install-doc install-man

install-bin: build
	install -d -m 0755 $(DESTDIR)/$(SBINDIR)
	install -m 0755 dosfsck dosfslabel mkdosfs $(DESTDIR)/$(SBINDIR)

	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

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
