OSDN Git Service

Fix Makefile dependencies for libcom_err
[android-x86/external-e2fsprogs.git] / misc / Makefile.in
index e29ece2..d3dd2d0 100644 (file)
@@ -14,77 +14,182 @@ INSTALL = @INSTALL@
 @IMAGER_CMT@E2IMAGE_PROG= e2image
 @IMAGER_CMT@E2IMAGE_MAN= e2image.8
 
-SPROGS=                mke2fs badblocks tune2fs dumpe2fs blkid logsave \
-                       $(E2IMAGE_PROG) @FSCK_PROG@ 
-USPROGS=       mklost+found filefrag
+@UUIDD_CMT@UUIDD_PROG= uuidd
+@UUIDD_CMT@UUIDD_MAN= uuidd.8
+
+@BLKID_CMT@BLKID_PROG= blkid
+@BLKID_CMT@BLKID_MAN= blkid.8
+
+@BLKID_CMT@FINDFS_LINK= findfs
+@BLKID_CMT@FINDFS_MAN= findfs.8
+
+SPROGS=                mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
+                       $(E2IMAGE_PROG) @FSCK_PROG@ e2undo
+USPROGS=       mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=     tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
-                       e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
-                       logsave.8 filefrag.8 @FSCK_MAN@ 
+                       e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
+                       logsave.8 filefrag.8 e2undo.8 $(UUIDD_MAN) @FSCK_MAN@
+FMANPAGES=     mke2fs.conf.5
 
-UPROGS=                chattr lsattr uuidgen
-UMANPAGES=     chattr.1 lsattr.1 uuidgen.1
+UPROGS=                chattr lsattr @UUID_CMT@ uuidgen
+UMANPAGES=     chattr.1 lsattr.1 @UUID_CMT@ uuidgen.1
 
 LPROGS=                @E2INITRD_PROG@
 
 TUNE2FS_OBJS=  tune2fs.o util.o
 MKLPF_OBJS=    mklost+found.o
-MKE2FS_OBJS=   mke2fs.o util.o 
+MKE2FS_OBJS=   mke2fs.o util.o profile.o prof_err.o default_profile.o
 CHATTR_OBJS=   chattr.o
 LSATTR_OBJS=   lsattr.o
 UUIDGEN_OBJS=  uuidgen.o
+UUIDD_OBJS=    uuidd.o
 DUMPE2FS_OBJS= dumpe2fs.o
 BADBLOCKS_OBJS=        badblocks.o
 E2IMAGE_OBJS=  e2image.o
-FSCK_OBJS=     fsck.o base_device.o
+FSCK_OBJS=     fsck.o base_device.o ismounted.o
 BLKID_OBJS=    blkid.o
 FILEFRAG_OBJS= filefrag.o
+E2UNDO_OBJS=  e2undo.o
+
+PROFILED_TUNE2FS_OBJS= profiled/tune2fs.o profiled/util.o
+PROFILED_MKLPF_OBJS=   profiled/mklost+found.o
+PROFILED_MKE2FS_OBJS=  profiled/mke2fs.o profiled/util.o profiled/profile.o \
+                       profiled/prof_err.o profiled/default_profile.o
+PROFILED_CHATTR_OBJS=  profiled/chattr.o
+PROFILED_LSATTR_OBJS=  profiled/lsattr.o
+PROFILED_UUIDGEN_OBJS= profiled/uuidgen.o
+PROFILED_UUIDD_OBJS=   profiled/uuidd.o
+PROFILED_DUMPE2FS_OBJS=        profiled/dumpe2fs.o
+PROFILED_BADBLOCKS_OBJS=       profiled/badblocks.o
+PROFILED_E2IMAGE_OBJS= profiled/e2image.o
+PROFILED_FSCK_OBJS=    profiled/fsck.o profiled/base_device.o \
+                       profiled/ismounted.o
+PROFILED_BLKID_OBJS=   profiled/blkid.o
+PROFILED_FILEFRAG_OBJS=        profiled/filefrag.o
+PROFILED_E2UNDO_OBJS=  profiled/e2undo.o
+
+
+XTRA_CFLAGS=   -I$(srcdir)/../e2fsck -I.
 
 SRCS=  $(srcdir)/tune2fs.c $(srcdir)/mklost+found.c $(srcdir)/mke2fs.c \
                $(srcdir)/chattr.c $(srcdir)/lsattr.c $(srcdir)/dumpe2fs.c \
                $(srcdir)/badblocks.c $(srcdir)/fsck.c $(srcdir)/util.c \
                $(srcdir)/uuidgen.c $(srcdir)/blkid.c $(srcdir)/logsave.c \
-               $(srcdir)/filefrag.c $(srcdir)/base_device.c
+               $(srcdir)/filefrag.c $(srcdir)/base_device.c \
+               $(srcdir)/ismounted.c $(srcdir)/../e2fsck/profile.c \
+               $(srcdir)/e2undo.c
 
 LIBS= $(LIBEXT2FS) $(LIBCOM_ERR) 
-DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) 
+DEPLIBS= $(LIBEXT2FS) $(DEPLIBCOM_ERR)
+PROFILED_LIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR)
+PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS) $(DEPPROFILED_LIBCOM_ERR)
 
 STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) 
-STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) 
-
-LIBS_BLKID= $(LIBBLKID) $(LIBUUID)
-DEPLIBS_BLKID= $(LIBBLKID) $(DEPLIBUUID)
+STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) 
 
 LIBS_E2P= $(LIBE2P) $(LIBCOM_ERR) 
-DEPLIBS_E2P= $(LIBE2P) $(LIBCOM_ERR) 
+DEPLIBS_E2P= $(LIBE2P) $(DEPLIBCOM_ERR) 
+
+COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree
 
 .c.o:
        @echo " CC $<"
        @$(CC) -c $(ALL_CFLAGS) $< -o $@
+@PROFILE_CMT@  @$(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $<
+
+all:: profiled $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) \
+       $(FMANPAGES) $(LPROGS)
 
-all:: $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) $(LPROGS)
+@PROFILE_CMT@all:: tune2fs.profiled blkid.profiled e2image.profiled \
+       e2undo.profiled mke2fs.profiled dumpe2fs.profiled fsck.profiled \
+       logsave.profiled filefrag.profiled uuidgen.profiled uuidd.profiled \
+       e2image.profiled
+
+profiled:
+@PROFILE_CMT@  @echo " MKDIR $@"
+@PROFILE_CMT@  @mkdir profiled
+
+prof_err.c prof_err.h: $(srcdir)/../e2fsck/prof_err.et
+       @echo " COMPILE_ET prof_err.et"
+       @$(COMPILE_ET) $(srcdir)/../e2fsck/prof_err.et
+
+default_profile.c: $(srcdir)/mke2fs.conf $(srcdir)/profile-to-c.awk
+       @echo " PROFILE_TO_C mke2fs.conf"
+       @$(AWK) -f $(srcdir)/profile-to-c.awk < $(srcdir)/mke2fs.conf \
+               >  default_profile.c
+profile.o:
+       @echo " CC $<"
+       @$(CC) -c $(ALL_CFLAGS) $(srcdir)/../e2fsck/profile.c -o $@
+@PROFILE_CMT@  @$(CC) $(ALL_CFLAGS) -g -pg -o profiled/profile.o -c \
+@PROFILE_CMT@  $(srcdir)/../e2fsck/profile.c
 
 findsuper: findsuper.o
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o findsuper findsuper.o
 
-e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBS_BLKID)
+partinfo: partinfo.o
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -o partinfo partinfo.o
+
+e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBBLKID) $(LIBEXT2FS)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o e2initrd_helper e2initrd_helper.o $(LIBS) \
-               $(LIBS_BLKID) $(LIBS_E2P) $(LIBINTL)
+               $(LIBBLKID) $(LIBEXT2FS) $(LIBINTL)
 
-tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBS_BLKID)
+tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBBLKID) \
+               $(DEPLIBUUID) $(LIBEXT2FS) 
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o tune2fs $(TUNE2FS_OBJS) $(LIBS) \
-               $(LIBS_BLKID) $(LIBS_E2P) $(LIBINTL)
+               $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBS_E2P) $(LIBINTL)
+
+tune2fs.static: $(TUNE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBBLKID)
+       @echo " LD $@"
+       @$(CC) $(LDFLAGS_STATIC) -o tune2fs.static $(TUNE2FS_OBJS) \
+               $(STATIC_LIBS) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
+               $(STATIC_LIBE2P) $(LIBINTL)
+
+tune2fs.profiled: $(PROFILED_TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \
+               $(PROFILED_E2P) $(DEPPROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o tune2fs.profiled \
+               $(PROFILED_TUNE2FS_OBJS) $(PROFILED_LIBBLKID) \
+               $(PROFILED_LIBUUID) $(PROFILED_LIBE2P) $(LIBINTL) \
+               $(PROFILED_LIBS) 
 
-blkid: $(BLKID_OBJS) $(DEPLIBS_BLKID)
+blkid: $(BLKID_OBJS) $(DEPLIBBLKID) $(LIBEXT2FS)
        @echo " LD $@"
-       @$(CC) $(ALL_LDFLAGS) -o blkid $(BLKID_OBJS) $(LIBS_BLKID) $(LIBINTL)
+       @$(CC) $(ALL_LDFLAGS) -o blkid $(BLKID_OBJS) $(LIBBLKID) $(LIBINTL) \
+               $(LIBEXT2FS)
+
+blkid.static: $(BLKID_OBJS) $(STATIC_DEPLIBS) $(DEPSTATIC_LIBBLKID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -o blkid.static $(BLKID_OBJS) $(STATIC_LIBS) \
+               $(STATIC_LIBBLKID) $(LIBINTL)
+
+blkid.profiled: $(PROFILED_BLKID_OBJS) $(DEPPROFILED_LIBBLKID) \
+               $(PROFILED_LIBEXT2FS)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o blkid.profiled $(PROFILED_BLKID_OBJS) \
+               $(PROFILED_LIBBLKID) $(LIBINTL) $(PROFILED_LIBEXT2FS)
 
 e2image: $(E2IMAGE_OBJS) $(DEPLIBS)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o e2image $(E2IMAGE_OBJS) $(LIBS) $(LIBINTL)
 
+e2image.profiled: $(PROFILED_E2IMAGE_OBJS) $(PROFILED_DEPLIBS)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o e2image.profiled \
+               $(PROFILED_E2IMAGE_OBJS) $(PROFILED_LIBS) $(LIBINTL)
+
+e2undo: $(E2UNDO_OBJS) $(DEPLIBS)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -o e2undo $(E2UNDO_OBJS) $(LIBS) $(LIBINTL)
+
+e2undo.profiled: $(PROFILED_E2UNDO_OBJS) $(PROFILED_DEPLIBS)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o e2undo.profiled \
+               $(PROFILED_E2UNDO_OBJS) $(PROFILED_LIBS) $(LIBINTL)
+
 base_device: base_device.c
        @echo " LD $@"
        @$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(srcdir)/base_device.c \
@@ -98,10 +203,11 @@ mklost+found: $(MKLPF_OBJS)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o mklost+found $(MKLPF_OBJS) $(LIBINTL)
 
-mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) $(LIBE2P) $(DEPLIBUUID) $(DEPLIBS_BLKID)
+mke2fs: $(MKE2FS_OBJS) $(DEPLIBS) $(LIBE2P) $(DEPLIBBLKID) $(DEPLIBUUID) \
+               $(LIBEXT2FS) 
        @echo " LD $@"
-       @$(CC) $(ALL_LDFLAGS) -o mke2fs $(MKE2FS_OBJS) $(LIBS) $(LIBS_BLKID) \
-               $(LIBE2P) $(LIBUUID) $(LIBINTL)
+       @$(CC) $(ALL_LDFLAGS) -o mke2fs $(MKE2FS_OBJS) $(LIBS) $(LIBBLKID) \
+               $(LIBUUID) $(LIBEXT2FS) $(LIBE2P) $(LIBINTL)
 
 mke2fs.static: $(MKE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBUUID) $(DEPSTATIC_LIBBLKID)
        @echo " LD $@"
@@ -109,9 +215,13 @@ mke2fs.static: $(MKE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIB
                $(STATIC_LIBS) $(STATIC_LIBE2P) $(STATIC_LIBBLKID) \
                $(STATIC_LIBUUID) $(LIBINTL)
 
-resize2fs: resize2fs.o $(DEPLIBS)
+mke2fs.profiled: $(PROFILED_MKE2FS_OBJS) $(PROFILED_DEPLIBS) \
+       $(PROFILED_LIBE2P) $(PROFILED_DEPLIBBLKID) $(PROFILED_DEPLIBUUID) 
        @echo " LD $@"
-       @$(CC) $(ALL_LDFLAGS) -o resize2fs resize2fs.o $(LIBS) $(LIBINTL)
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o mke2fs.profiled \
+               $(PROFILED_MKE2FS_OBJS) $(PROFILED_LIBBLKID) \
+               $(PROFILED_LIBUUID) $(PROFILED_LIBE2P) $(LIBINTL) \
+               $(PROFILED_LIBS)
 
 chattr: $(CHATTR_OBJS) $(DEPLIBS_E2P)
        @echo " LD $@"
@@ -125,27 +235,72 @@ uuidgen: $(UUIDGEN_OBJS) $(DEPLIBUUID)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o uuidgen $(UUIDGEN_OBJS) $(LIBUUID) $(LIBINTL)
 
+uuidgen.profiled: $(PROFILED_UUIDGEN_OBJS) $(PROFILED_DEPLIBUUID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o uuidgen.profiled \
+               $(PROFILED_UUIDGEN_OBJS) $(PROFILED_LIBUUID) $(LIBINTL)
+
+uuidd: $(UUIDD_OBJS) $(DEPLIBUUID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -o uuidd $(UUIDD_OBJS) $(LIBUUID) $(LIBINTL)
+
+uuidd.profiled: $(PROFILED_UUIDD_OBJS) $(PROFILED_DEPLIBUUID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o uuidd.profiled $(PROFILED_UUIDD_OBJS) \
+               $(PROFILED_LIBUUID) $(LIBINTL)
+
 dumpe2fs: $(DUMPE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBUUID)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) \
                $(LIBS_E2P) $(LIBUUID) $(LIBINTL)
 
-fsck: $(FSCK_OBJS) $(DEBLIBS_BLKID)
+dumpe2fs.profiled: $(PROFILED_DUMPE2FS_OBJS) $(PROFILED_DEPLIBS) \
+               $(PROFILED_LIBE2P) $(PROFILED_DEPLIBUUID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o dumpe2fs.profiled \
+               $(PROFILED_DUMPE2FS_OBJS) $(PROFILED_LIBS) \
+               $(PROFILED_LIBE2P) $(PROFILED_LIBUUID) $(LIBINTL)
+
+fsck: $(FSCK_OBJS) $(DEPLIBBLKID)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBINTL)
+
+fsck.profiled: $(PROFILED_FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
        @echo " LD $@"
-       @$(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBS_BLKID) $(LIBINTL)
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o fsck.profiled $(PROFILED_FSCK_OBJS) \
+               $(PROFILED_LIBBLKID) $(LIBINTL)
 
 badblocks: $(BADBLOCKS_OBJS) $(DEPLIBS)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) $(LIBINTL)
 
+badblocks.profiled: $(PROFILED_BADBLOCKS_OBJS) $(PROFILED_DEPLIBS)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o badblocks.profiled \
+               $(PROFILED_BADBLOCKS_OBJS) $(PROFILED_LIBS) $(LIBINTL)
+
 logsave: logsave.o
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o logsave logsave.o
 
+logsave.profiled: profiled/logsave.o
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o logsave.profiled profiled/logsave.o
+
 filefrag: $(FILEFRAG_OBJS)
        @echo " LD $@"
        @$(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS) 
 
+filefrag.profiled: $(PROFILED_FILEFRAG_OBJS)
+       @echo " LD $@"
+       @$(CC) $(ALL_LDFLAGS) -g -pg -o filefrag.profiled \
+               $(PROFILED_FILEFRAG_OBJS) 
+
+tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+       @echo " LD $@"
+       $(CC) -o tst_ismounted $(srcdir)/ismounted.c -DDEBUG $(ALL_CFLAGS) \
+               $(LIBCOM_ERR)
+
 tune2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/tune2fs.8.in
        @echo " SUBST $@"
        @$(SUBSTITUTE_UPTIME) $(srcdir)/tune2fs.8.in tune2fs.8
@@ -158,10 +313,18 @@ mke2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/mke2fs.8.in
        @echo " SUBST $@"
        @$(SUBSTITUTE_UPTIME) $(srcdir)/mke2fs.8.in mke2fs.8
 
+mke2fs.conf.5: $(DEP_SUBSTITUTE) $(srcdir)/mke2fs.conf.5.in
+       @echo " SUBST $@"
+       @$(SUBSTITUTE_UPTIME) $(srcdir)/mke2fs.conf.5.in mke2fs.conf.5
+
 e2label.8: $(DEP_SUBSTITUTE) $(srcdir)/e2label.8.in
        @echo " SUBST $@"
        @$(SUBSTITUTE_UPTIME) $(srcdir)/e2label.8.in e2label.8
 
+e2undo.8: $(DEP_SUBSTITUTE) $(srcdir)/e2undo.8.in
+       @echo " SUBST $@"
+       @$(SUBSTITUTE_UPTIME) $(srcdir)/e2undo.8.in e2undo.8
+
 findfs.8: $(DEP_SUBSTITUTE) $(srcdir)/findfs.8.in
        @echo " SUBST $@"
        @$(SUBSTITUTE_UPTIME) $(srcdir)/findfs.8.in findfs.8
@@ -190,6 +353,10 @@ logsave.8: $(DEP_SUBSTITUTE) $(srcdir)/logsave.8.in
        @echo " SUBST $@"
        @$(SUBSTITUTE_UPTIME) $(srcdir)/logsave.8.in logsave.8
 
+uuidd.8: $(DEP_SUBSTITUTE) $(srcdir)/uuidd.8.in
+       @echo " SUBST $@"
+       @$(SUBSTITUTE_UPTIME) $(srcdir)/uuidd.8.in uuidd.8
+
 chattr.1: $(DEP_SUBSTITUTE) $(srcdir)/chattr.1.in
        @echo " SUBST $@"
        @$(SUBSTITUTE_UPTIME) $(srcdir)/chattr.1.in chattr.1 
@@ -211,49 +378,123 @@ filefrag.8: $(DEP_SUBSTITUTE) $(srcdir)/filefrag.8.in
        @$(SUBSTITUTE_UPTIME) $(srcdir)/filefrag.8.in filefrag.8
 
 installdirs:
-       $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sbindir) \
+       @echo " MKINSTALLDIRS $(sbindir) $(root_sbindir) $(bindir) $(man1dir) $(man8dir) $(libdir) $(root_sysconfdir)"
+       @$(MKINSTALLDIRS) $(DESTDIR)$(sbindir) \
                $(DESTDIR)$(root_sbindir) $(DESTDIR)$(bindir) \
-               $(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir) $(DESTDIR)$(libdir)
+               $(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir) \
+               $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) \
+               $(DESTDIR)$(libdir) $(DESTDIR)/$(root_sysconfdir)
 
 install: all $(SMANPAGES) $(UMANPAGES) installdirs
-       for i in $(SPROGS); do \
+       @for i in $(SPROGS); do \
+               echo "  INSTALL $(root_sbindir)/$$i"; \
                $(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \
-               $(STRIP) $(DESTDIR)$(root_sbindir)/$$i; \
        done
-       for i in $(USPROGS); do \
+       @for i in $(USPROGS); do \
+               echo "  INSTALL $(sbindir)/$$i"; \
                $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir)/$$i; \
-               $(STRIP) $(DESTDIR)$(sbindir)/$$i; \
        done
-       $(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \
+       @echo " LINK $(root_sbindir)/mkfs.ext2"
+       @$(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \
                $(DESTDIR)$(root_sbindir)/mkfs.ext2
-       $(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \
+       @echo " LINK $(root_sbindir)/mkfs.ext3"
+       @$(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \
                $(DESTDIR)$(root_sbindir)/mkfs.ext3
-       $(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+       @echo " LINK $(root_sbindir)/mkfs.ext4"
+       @$(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \
+               $(DESTDIR)$(root_sbindir)/mkfs.ext4
+       @echo " LINK $(root_sbindir)/mkfs.ext4dev"
+       @$(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \
+               $(DESTDIR)$(root_sbindir)/mkfs.ext4dev
+       @echo " LINK $(root_sbindir)/e2label"
+       @$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
                $(DESTDIR)$(root_sbindir)/e2label
-       $(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
-               $(DESTDIR)$(root_sbindir)/findfs
-       for i in $(UPROGS); do \
+       @if test -n "$(FINDFS_LINK)"; then \
+               echo "  LINK $(root_sbindir)/findfs"; \
+               $(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+                       $(DESTDIR)$(root_sbindir)/$(FINDFS_LINK); \
+       fi
+       @for i in $(UPROGS); do \
+               echo "  INSTALL $(bindir)/$$i"; \
                $(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
-               $(STRIP) $(DESTDIR)$(bindir)/$$i; \
        done
-       for i in $(LPROGS); do \
+       @for i in $(LPROGS); do \
+               echo "  INSTALL $(libdir)/$$i"; \
                $(INSTALL_PROGRAM) $$i $(DESTDIR)$(libdir)/$$i; \
-               $(STRIP) $(DESTDIR)$(libdir)/$$i; \
        done
-       for i in $(SMANPAGES); do \
+       @for i in $(SMANPAGES); do \
                for j in $(COMPRESS_EXT); do \
                        $(RM) -f $(DESTDIR)$(man8dir)/$$i.$$j; \
                done; \
+               echo "  INSTALL_DATA $(man8dir)/$$i"; \
                $(INSTALL_DATA) $$i $(DESTDIR)$(man8dir)/$$i; \
        done
-       $(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8.gz \
+       @$(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8.gz \
                $(DESTDIR)$(man8dir)/mkfs.ext3.8.gz
-       $(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 $(DESTDIR)$(man8dir)/mkfs.ext2.8
-       $(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 $(DESTDIR)$(man8dir)/mkfs.ext3.8
-       for i in $(UMANPAGES); do \
-               $(RM) -f $(DESTDIR)$(man1dir)/$$i.gz; \
+       @echo " LINK mkfs.ext2.8"
+       @$(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 \
+               $(DESTDIR)$(man8dir)/mkfs.ext2.8
+       @echo " LINK mkfs.ext3.8"
+       @$(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 \
+               $(DESTDIR)$(man8dir)/mkfs.ext3.8
+       @echo " LINK mkfs.ext4.8"
+       @$(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 \
+               $(DESTDIR)$(man8dir)/mkfs.ext4.8
+       @echo " LINK mkfs.ext4dev.8"
+       @$(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 \
+               $(DESTDIR)$(man8dir)/mkfs.ext4dev.8
+       @for i in $(UMANPAGES); do \
+               for j in $(COMPRESS_EXT); do \
+                       $(RM) -f $(DESTDIR)$(man1dir)/$$i.$$j; \
+               done; \
+               echo "  INSTALL_DATA $(man1dir)/$$i"; \
                $(INSTALL_DATA) $$i $(DESTDIR)$(man1dir)/$$i; \
        done
+       @for i in $(FMANPAGES); do \
+               for j in $(COMPRESS_EXT); do \
+                       $(RM) -f $(DESTDIR)$(man5dir)/$$i.$$j; \
+               done; \
+               echo "  INSTALL_DATA $(man5dir)/$$i"; \
+               $(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
+       done
+       @if test -f $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; then \
+               if cmp -s $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
+                       $(srcdir)/mke2fs.conf; then \
+                       true; \
+               else \
+                       if grep -q ext4dev $(DESTDIR)$(root_sysconfdir)/mke2fs.conf ; then \
+                               echo "  INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+                               $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
+                                       $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new; \
+                               echo "Warning: installing mke2fs.conf in $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+                               echo "Check to see if you need to update your $(root_sysconfdir)/mke2fs.conf"; \
+                       else \
+                               echo "  INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+                               mv $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
+                                  $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old; \
+                               $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
+                                       $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
+                               echo "Your mke2fs.conf is too old.  Backing up old version in"; \
+                               echo "$(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old.  Please check to see"; \
+                               echo "if you have any local customizations that you wish to preserve."; \
+                       fi; \
+                       echo " "; \
+               fi; \
+       else \
+               echo "  INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+               $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
+                       $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
+       fi
+
+install-strip: install
+       @for i in $(SPROGS); do \
+               echo "  STRIP $(root_sbindir)/$$i"; \
+               $(STRIP) $(DESTDIR)$(root_sbindir)/$$i; \
+       done
+       @for i in $(USPROGS); do \
+               echo "  STRIP $(sbindir)/$$i"; \
+               $(STRIP) $(DESTDIR)$(sbindir)/$$i; \
+       done
 
 uninstall:
        for i in $(SPROGS); do \
@@ -262,8 +503,13 @@ uninstall:
        for i in $(USPROGS); do \
                $(RM) -f $(DESTDIR)$(sbindir)/$$i; \
        done
+       for i in $(LPROGS); do \
+               $(RM) -f $(DESTDIR)$(libdir)/$$i; \
+       done
        $(RM) -f $(DESTDIR)$(root_sbindir)/mkfs.ext2 \
-                       $(DESTDIR)$(root_sbindir)/mkfs.ext3
+                       $(DESTDIR)$(root_sbindir)/mkfs.ext3 \
+                       $(DESTDIR)$(root_sbindir)/mkfs.ext4 \
+                       $(DESTDIR)$(root_sbindir)/mkfs.ext4dev
        for i in $(UPROGS); do \
                $(RM) -f $(DESTDIR)$(bindir)/$$i; \
        done
@@ -271,15 +517,33 @@ uninstall:
                $(RM) -f $(DESTDIR)$(man8dir)/$$i; \
        done
        $(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8 \
-               $(DESTDIR)$(man8dir)/mkfs.ext3.8
+               $(DESTDIR)$(man8dir)/mkfs.ext3.8 \
+               $(DESTDIR)$(man8dir)/mkfs.ext4.8 \
+               $(DESTDIR)$(man8dir)/mkfs.ext4dev.8
        for i in $(UMANPAGES); do \
                $(RM) -f $(DESTDIR)$(man1dir)/$$i; \
        done
+       for i in $(FINDFS_LINK) e2label ; do \
+               $(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \
+       done
+       for i in $(FMANPAGES); do \
+               $(RM) -f $(DESTDIR)$(man5dir)/$$i; \
+       done
+       if cmp -s $(srcdir)/mke2fs.conf $(DESTDIR)/$(root_sysconfdir)/mke2fs.conf; then \
+               $(RM) $(DESTDIR)/$(root_sysconfdir)/mke2fs.conf; \
+       fi
 
 clean:
        $(RM) -f $(SPROGS) $(USPROGS) $(UPROGS) $(UMANPAGES) $(SMANPAGES) \
+               $(FMANPAGES) \
                base_device base_device.out mke2fs.static filefrag \
-               \#* *.s *.o *.a *~ core 
+               e2initrd_helper partinfo prof_err.[ch] default_profile.c \
+               uuidd e2image tune2fs.static tst_ismounted fsck.profiled \
+               blkid.profiled tune2fs.profiled e2image.profiled \
+               e2undo.profiled mke2fs.profiled dumpe2fs.profiled \
+               logsave.profiled filefrag.profiled uuidgen.profiled \
+               uuidd.profiled e2image.profiled \
+               profiled/*.o \#* *.s *.o *.a *~ core gmon.out
 
 mostlyclean: clean
 distclean: clean
@@ -292,6 +556,7 @@ distclean: clean
 #
 tune2fs.o: $(srcdir)/tune2fs.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
  $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
  $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h \
  $(top_srcdir)/lib/uuid/uuid.h $(top_srcdir)/lib/e2p/e2p.h \
@@ -306,17 +571,23 @@ mklost+found.o: $(srcdir)/mklost+found.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
 mke2fs.o: $(srcdir)/mke2fs.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/et/com_err.h \
  $(top_srcdir)/lib/uuid/uuid.h $(top_srcdir)/lib/e2p/e2p.h \
- $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
- $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h \
- $(srcdir)/util.h $(top_srcdir)/version.h $(srcdir)/nls-enable.h
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/util.h \
+ $(srcdir)/../e2fsck/profile.h prof_err.h $(top_srcdir)/version.h \
+ $(srcdir)/nls-enable.h
 chattr.o: $(srcdir)/chattr.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/et/com_err.h \
- $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/version.h $(srcdir)/nls-enable.h
+ $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_srcdir)/version.h $(srcdir)/nls-enable.h
 lsattr.o: $(srcdir)/lsattr.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/et/com_err.h \
- $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/version.h $(srcdir)/nls-enable.h
+ $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_srcdir)/version.h $(srcdir)/nls-enable.h
 dumpe2fs.o: $(srcdir)/dumpe2fs.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
  $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
  $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h \
  $(top_srcdir)/lib/e2p/e2p.h $(srcdir)/jfs_user.h \
@@ -326,6 +597,8 @@ dumpe2fs.o: $(srcdir)/dumpe2fs.c $(top_srcdir)/lib/ext2fs/ext2_fs.h \
 badblocks.o: $(srcdir)/badblocks.c $(top_srcdir)/lib/et/com_err.h \
  $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
  $(top_builddir)/lib/ext2fs/ext2_err.h $(top_srcdir)/lib/ext2fs/bitops.h \
  $(srcdir)/nls-enable.h
 fsck.o: $(srcdir)/fsck.c $(top_srcdir)/version.h $(srcdir)/nls-enable.h \
@@ -334,6 +607,7 @@ fsck.o: $(srcdir)/fsck.c $(top_srcdir)/version.h $(srcdir)/nls-enable.h \
 util.o: $(srcdir)/util.c $(top_srcdir)/lib/et/com_err.h \
  $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
  $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
  $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
  $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/nls-enable.h \
  $(top_srcdir)/lib/blkid/blkid.h $(top_builddir)/lib/blkid/blkid_types.h \
@@ -345,3 +619,7 @@ blkid.o: $(srcdir)/blkid.c $(top_srcdir)/lib/blkid/blkid.h \
 logsave.o: $(srcdir)/logsave.c
 filefrag.o: $(srcdir)/filefrag.c
 base_device.o: $(srcdir)/base_device.c $(srcdir)/fsck.h
+ismounted.o: $(srcdir)/ismounted.c $(top_srcdir)/lib/et/com_err.h
+profile.o: $(srcdir)/../e2fsck/profile.c $(top_srcdir)/lib/et/com_err.h \
+ $(srcdir)/../e2fsck/profile.h prof_err.h
+e2undo.o: $(srcdir)/e2undo.c $(top_srcdir)/lib/ext2fs/tdb.h