#
# 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) $<

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

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
