summaryrefslogtreecommitdiffstats
path: root/dosfstools/Makefile
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dosfstools/Makefile170
1 files changed, 170 insertions, 0 deletions
diff --git a/dosfstools/Makefile b/dosfstools/Makefile
new file mode 100644
index 000000000..fa993559c
--- /dev/null
+++ b/dosfstools/Makefile
@@ -0,0 +1,170 @@
+# Makefile
+#
+# Copyright (C) 2008-2014 Daniel Baumann <mail@daniel-baumann.ch>
+#
+# 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/>.
+#
+# The complete text of the GNU General Public License
+# can be found in /usr/share/common-licenses/GPL-3 file.
+
+SHELL := sh -e
+LANGUAGES = $(shell cd manpages/po && ls)
+
+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 -D_GNU_SOURCE $(shell getconf LFS_CFLAGS)
+#WARNFLAGS = -Wall -pedantic -std=c99
+WARNFLAGS = -Wall -Wextra -Wno-sign-compare -Wno-missing-field-initializers -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings
+DEBUGFLAGS = -g
+CFLAGS += $(OPTFLAGS) $(WARNFLAGS) $(DEBUGFLAGS)
+
+VPATH = src
+
+all: build
+
+build: fatlabel fsck.fat mkfs.fat
+
+fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o fatlabel.o
+
+fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o fsck.fat.o
+
+mkfs.fat: mkfs.fat.o
+
+rebuild: distclean build
+
+install: install-bin install-doc install-man install-symlinks
+
+install-bin: build
+ install -d -m 0755 $(DESTDIR)/$(SBINDIR)
+ install -m 0755 fatlabel fsck.fat mkfs.fat $(DESTDIR)/$(SBINDIR)
+
+install-doc:
+ install -d -m 0755 $(DESTDIR)/$(DOCDIR)/dosfstools
+ install -p -m 0644 ChangeLog doc/* $(DESTDIR)/$(DOCDIR)/dosfstools
+
+install-man:
+ for MANPAGE in manpages/en/*; \
+ do \
+ SECTION="8"; \
+ mkdir -p $(DESTDIR)/$(MANDIR)/man$${SECTION}/; \
+ install -m 0644 $${MANPAGE} $(DESTDIR)/$(MANDIR)/man$${SECTION}/$$(basename $${MANPAGE}); \
+ done
+
+ for LANGUAGE in $(LANGUAGES); \
+ do \
+ for MANPAGE in manpages/$${LANGUAGE}/*; \
+ do \
+ SECTION="8"; \
+ mkdir -p $(DESTDIR)/$(MANDIR)/$${LANGUAGE}/man$${SECTION}/; \
+ install -m 0644 $${MANPAGE} $(DESTDIR)/$(MANDIR)/$${LANGUAGE}/man$${SECTION}/$$(basename $${MANPAGE} .$${LANGUAGE}.$${SECTION}).$${SECTION}; \
+ done; \
+ done
+install-symlinks: install-bin install-man
+ if [ -e $(DESTDIR)/$(SBINDIR)/fatlabel ]; \
+ then \
+ ln -sf fatlabel $(DESTDIR)/$(SBINDIR)/dosfslabel; \
+ if [ -e $(DESTDIR)/$(MANDIR)/man8/fatlabel.8 ]; \
+ then \
+ ln -sf fatlabel.8 $(DESTDIR)/$(MANDIR)/man8/dosfslabel.8; \
+ fi; \
+ fi
+
+ if [ -e $(DESTDIR)/$(SBINDIR)/fsck.fat ]; \
+ then \
+ ln -sf fsck.fat $(DESTDIR)/$(SBINDIR)/dosfsck; \
+ ln -sf fsck.fat $(DESTDIR)/$(SBINDIR)/fsck.msdos; \
+ ln -sf fsck.fat $(DESTDIR)/$(SBINDIR)/fsck.vfat; \
+ if [ -e $(DESTDIR)/$(MANDIR)/man8/fsck.fat.8 ]; \
+ then \
+ ln -sf fsck.fat.8 $(DESTDIR)/$(MANDIR)/man8/dosfsck.8; \
+ ln -sf fsck.fat.8 $(DESTDIR)/$(MANDIR)/man8/fsck.msdos.8; \
+ ln -sf fsck.fat.8 $(DESTDIR)/$(MANDIR)/man8/fsck.vfat.8; \
+ fi; \
+ fi
+
+ if [ -e $(DESTDIR)/$(SBINDIR)/mkfs.fat ]; \
+ then \
+ ln -sf mkfs.fat $(DESTDIR)/$(SBINDIR)/mkdosfs; \
+ ln -sf mkfs.fat $(DESTDIR)/$(SBINDIR)/mkfs.msdos; \
+ ln -sf mkfs.fat $(DESTDIR)/$(SBINDIR)/mkfs.vfat; \
+ if [ -e $(DESTDIR)/$(MANDIR)/man8/mkfs.fat.8 ]; \
+ then \
+ ln -sf mkfs.fat.8 $(DESTDIR)/$(MANDIR)/man8/mkdosfs.8; \
+ ln -sf mkfs.fat.8 $(DESTDIR)/$(MANDIR)/man8/mkfs.msdos.8; \
+ ln -sf mkfs.fat.8 $(DESTDIR)/$(MANDIR)/man8/mkfs.vfat.8; \
+ fi; \
+ fi
+
+uninstall: uninstall-symlinks uninstall-man uninstall-doc uninstall-bin
+
+uninstall-bin:
+ rm -f $(DESTDIR)/$(SBINDIR)/fatlabel
+ rm -f $(DESTDIR)/$(SBINDIR)/fsck.fat
+ rm -f $(DESTDIR)/$(SBINDIR)/mkfs.fat
+
+ 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:
+ for MANPAGE in manpages/en/*; \
+ do \
+ SECTION="8"; \
+ rm -f $(DESTDIR)/$(MANDIR)/man$${SECTION}/$$(basename $${MANPAGE} .en.$${SECTION}).$${SECTION}; \
+ done
+
+ for LANGUAGE in $(LANGUAGES); \
+ do \
+ for MANPAGE in manpages/$${LANGUAGE}/*; \
+ do \
+ SECTION="8"; \
+ rm -f $(DESTDIR)/$(MANDIR)/$${LANGUAGE}/man$${SECTION}/$$(basename $${MANPAGE} .$${LANGUAGE}.$${SECTION}).$${SECTION}; \
+ done; \
+ done
+
+uninstall-symlinks:
+ rm -f $(DESTDIR)/$(SBINDIR)/dosfslabel
+ rm -f $(DESTDIR)/$(MANDIR)/man8/dosfslabel.8
+
+ rm -f $(DESTDIR)/$(SBINDIR)/dosfsck
+ rm -f $(DESTDIR)/$(MANDIR)/man8/dosfsck.8
+ rm -f $(DESTDIR)/$(SBINDIR)/fsck.msdos
+ rm -f $(DESTDIR)/$(MANDIR)/man8/fsck.msdos.8
+ rm -f $(DESTDIR)/$(SBINDIR)/fsck.vfat
+ rm -f $(DESTDIR)/$(MANDIR)/man8/fsck.vfat.8
+
+ rm -f $(DESTDIR)/$(SBINDIR)/mkdosfs
+ rm -f $(DESTDIR)/$(MANDIR)/man8/mkdosfs.8
+ rm -f $(DESTDIR)/$(SBINDIR)/mkfs.msdos
+ rm -f $(DESTDIR)/$(MANDIR)/man8/mkfs.msdos.8
+ rm -f $(DESTDIR)/$(SBINDIR)/mkfs.vfat
+ rm -f $(DESTDIR)/$(MANDIR)/man8/mkfs.vfat.8
+
+reinstall: distclean install
+
+clean:
+ rm -f *.o
+
+distclean: clean
+ rm -f fatlabel fsck.fat mkfs.fat
+
+.PHONY: build rebuild install install-bin install-doc install-man install-symlinks uninstall uninstall-bin uninstall-doc uninstall-man uninstall-symlinks reinstall clean distclean