#
# Standard e2fsprogs prologue....
#

srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
top_builddir = ..
my_dir = util
INSTALL = @INSTALL@

SRCS = $(srcdir)/subst.c

@MCONFIG@

.c.o:
	$(E) "	CC $<"
	$(Q) $(BUILD_CC) -c $(BUILD_CFLAGS) $< -o $@
	$(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
	$(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<

PROGS=		subst symlinks

all:: $(PROGS) gen-tarball

dirpaths.h:
	$(E) "	CREATE dirpaths.h"
	$(Q) echo "/* fake dirpaths.h for config.h */" > dirpaths.h

subst.o: dirpaths.h

subst: subst.o
	$(E) "	LD $@"
	$(Q) $(BUILD_CC) $(BUILD_LDFLAGS) -o subst subst.o

copy_sparse: copy_sparse.o
	$(E) "	LD $@"
	$(Q) $(BUILD_CC) $(BUILD_LDFLAGS) -o copy_sparse copy_sparse.o

symlinks: symlinks.o
	$(E) "	LD $@"
	$(Q) $(BUILD_CC) $(BUILD_LDFLAGS) -o symlinks symlinks.o

gen-tarball: $(srcdir)/gen-tarball.in $(top_builddir)/config.status
	$(E) "	CONFIG.STATUS $@"
	$(Q) cd $(top_builddir); CONFIG_FILES=util/gen-tarball ./config.status
	$(Q) chmod +x gen-tarball

tarballs: gen-tarball
	sh gen-tarball debian
	sh gen-tarball all
	sh gen-tarball subset

clean::
	$(RM) -f $(PROGS) \#* *.s *.o *.a *~ core *.tar.gz gen-tarball \
		copy-sparse dirpaths.h install-symlink

mostlyclean: clean

distclean: clean
	$(RM) -f .depend Makefile $(srcdir)/TAGS $(srcdir)/Makefile.in.old

# +++ Dependency line eater +++
# 
# Makefile dependencies follow.  This must be the last section in
# the Makefile.in file
#
subst.o: $(srcdir)/subst.c $(top_builddir)/lib/config.h dirpaths.h
