# # Makefile for the tests directory # srcdir = . top_srcdir = .. top_builddir = .. my_dir = tests INSTALL = /usr/bin/install -c # Beginning of file MCONFIG all:: check:: fullcheck:: SHELL = /bin/sh COMPRESS_EXT = gz bz2 bz Z prefix = /home/user/librerouteros-Cpe210v3/staging_dir/host root_prefix = /home/user/librerouteros-Cpe210v3/staging_dir/host exec_prefix = /home/user/librerouteros-Cpe210v3/staging_dir/host root_bindir = ${exec_prefix}/bin root_sbindir = /home/user/librerouteros-Cpe210v3/staging_dir/host/bin root_libdir = ${exec_prefix}/lib datarootdir = ${prefix}/share bindir = ${exec_prefix}/bin sbindir = /home/user/librerouteros-Cpe210v3/staging_dir/host/bin libdir = ${exec_prefix}/lib datadir= ${datarootdir} localedir = $(datadir)/locale root_sysconfdir= /home/user/librerouteros-Cpe210v3/staging_dir/host/etc includedir = ${prefix}/include mandir = ${datarootdir}/man man1dir = $(mandir)/man1 man3dir = $(mandir)/man3 man5dir = $(mandir)/man5 man8dir = $(mandir)/man8 infodir = ${datarootdir}/info datadir = ${datarootdir} pkgconfigdir = $(libdir)/pkgconfig pkglibdir = $(libdir)/e2fsprogs HAVE_UDEV = no UDEV_RULES_DIR = HAVE_CROND = no CROND_DIR = HAVE_SYSTEMD = no SYSTEMD_SYSTEM_UNIT_DIR = V = ifeq ($(strip $(V)),) # E = @echo # ES = echo # Q = @ E = @echo ES = echo Q = @ else E = @\# ES = \# Q = endif # E = @echo # ES = echo # Q = @ CHECK=sparse CHECK_OPTS=-Wsparse-all -Wno-transparent-union -Wno-return-void -Wno-undef -Wno-non-pointer-null CPPCHECK=cppcheck CPPCHECK_OPTS=--force --enable=all --quiet ifeq ("$(C)", "2") CHECK_CMD=$(CHECK) $(CHECK_OPTS) -Wbitwise -D__CHECK_ENDIAN__ CPPCHECK_CMD=$(CPPCHECK) $(CPPCHECK_OPTS) else ifeq ("$(C)", "1") CHECK_CMD=$(CHECK) $(CHECK_OPTS) CPPCHECK_CMD=$(CPPCHECK) $(CPPCHECK_OPTS) else CHECK_CMD=@true CPPCHECK_CMD=@true endif endif # CHECK_CMD=true # CPPCHECK_CMD=true SANITIZER_CFLAGS = SANITIZER_LDFLAGS = CC = gcc BUILD_CC = gcc CFLAGS = -O2 -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include -fpic CFLAGS_SHLIB = -O2 -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include -fpic CFLAGS_STLIB = -O2 -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include -fpic CPPFLAGS = -I. -I$(top_builddir)/lib -I$(top_srcdir)/lib -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include ALL_CFLAGS = $(CPPFLAGS) $(SANITIZER_CFLAGS) $(CFLAGS) $(CFLAGS_WARN) -DHAVE_CONFIG_H $(LOCAL_CFLAGS) ALL_CFLAGS_SHLIB = $(CPPFLAGS) $(SANITIZER_CFLAGS) $(CFLAGS_SHLIB) $(CFLAGS_WARN) -DHAVE_CONFIG_H $(LOCAL_CFLAGS) ALL_CFLAGS_STLIB = $(CPPFLAGS) $(SANITIZER_CFLAGS) $(CFLAGS_STLIB) $(CFLAGS_WARN) -DHAVE_CONFIG_H $(LOCAL_CFLAGS) LDFLAGS = $(SANITIZER_LDFLAGS) -L/home/user/librerouteros-Cpe210v3/staging_dir/host/lib LDFLAGS_SHLIB = $(SANITIZER_LDFLAGS) -L/home/user/librerouteros-Cpe210v3/staging_dir/host/lib ALL_LDFLAGS = $(LDFLAGS) LDFLAGS_STATIC = $(SANITIZER_LDFLAGS) -L/home/user/librerouteros-Cpe210v3/staging_dir/host/lib -static BUILD_CFLAGS = $(SANITIZER_CFLAGS) -O2 -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include -fpic -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include -I. -I$(top_builddir)/lib -I$(top_srcdir)/lib -I/home/user/librerouteros-Cpe210v3/staging_dir/host/include -DHAVE_CONFIG_H BUILD_LDFLAGS = $(SANITIZER_LDFLAGS) -L/home/user/librerouteros-Cpe210v3/staging_dir/host/lib RDYNAMIC = -rdynamic LINK_BUILD_FLAGS = LINK_INSTALL_FLAGS = -f RM = /bin/rm LN = /bin/ln LN_S = ln -s MV = /bin/mv CP = /home/user/librerouteros-Cpe210v3/staging_dir/host/bin/cp CHMOD = /bin/chmod AR = ar AWK = gawk SED = /home/user/librerouteros-Cpe210v3/staging_dir/host/bin/sed PERL = /home/user/librerouteros-Cpe210v3/staging_dir/host/bin/perl RANLIB = ranlib STRIP = strip LD = $(PURE) gcc ARUPD = $(AR) r ARGEN = $(AR) rc LDCONFIG = /home/user/librerouteros-Cpe210v3/staging_dir/host/bin/ldconfig INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 INSTALL_SCRIPT = ${INSTALL} MKDIR_P = /bin/mkdir -p # # Library definitions # LIB = $(top_builddir)/lib LIBSS = $(LIB)/libss.a -ldl LIBCOM_ERR = $(LIB)/libcom_err.a -lpthread LIBE2P = $(LIB)/libe2p.a LIBEXT2FS = $(LIB)/libext2fs.a LIBUUID = $(LIB)/libuuid.a LIBMAGIC = -ldl LIBFUSE = LIBSUPPORT = $(LIBINTL) $(LIB)/libsupport.a LIBBLKID = $(LIB)/libblkid.a $(LIBUUID) LIBINTL = SYSLIBS = DEPLIBSS = $(LIB)/libss.a DEPLIBCOM_ERR = $(LIB)/libcom_err.a DEPLIBUUID = $(LIB)/libuuid.a DEPLIBSUPPORT = $(LIB)/libsupport.a DEPLIBBLKID = $(LIB)/libblkid.a $(DEPLIBUUID) TESTENV = LD_LIBRARY_PATH="$(LIB):$${LD_LIBRARY_PATH}" DYLD_LIBRARY_PATH="$(LIB):$${DYLD_LIBRARY_PATH}" STATIC_LIBSS = $(LIB)/libss.a -ldl STATIC_LIBCOM_ERR = $(LIB)/libcom_err.a -lpthread STATIC_LIBE2P = $(LIB)/libe2p.a STATIC_LIBEXT2FS = $(LIB)/libext2fs.a STATIC_LIBUUID = $(LIB)/libuuid.a STATIC_LIBSUPPORT = $(LIBINTL) $(LIBSUPPORT) STATIC_LIBBLKID = $(LIB)/libblkid.a $(STATIC_LIBUUID) DEPSTATIC_LIBSS = $(LIB)/libss.a DEPSTATIC_LIBCOM_ERR = $(LIB)/libcom_err.a DEPSTATIC_LIBUUID = $(LIB)/libuuid.a DEPSTATIC_LIBSUPPORT = $(DEPLIBSUPPORT) DEPSTATIC_LIBBLKID = $(LIB)/libblkid.a $(DEPSTATIC_LIBUUID) PROFILED_LIBSS = $(LIB)/libss.a -ldl PROFILED_LIBCOM_ERR = $(LIB)/libcom_err.a -lpthread PROFILED_LIBE2P = $(LIB)/libe2p.a PROFILED_LIBEXT2FS = $(LIB)/libext2fs.a PROFILED_LIBUUID = $(LIB)/libuuid.a PROFILED_LIBSUPPORT = $(LIBINTL) $(LIB)/libsupport.a PROFILED_LIBBLKID = $(LIB)/libblkid.a $(PROFILED_LIBUUID) DEPPROFILED_LIBSS = $(LIB)/libss.a DEPPROFILED_LIBCOM_ERR = $(LIB)/libcom_err.a DEPPROFILED_LIBUUID = $(LIB)/libuuid.a DEPPROFILED_LIBSUPPORT = $(PROFILED_LIBSUPPORT) DEPPROFILED_LIBBLKID = $(LIB)/libblkid.a $(DEPPROFILED_LIBUUID) # # A fast substitution command for fixing up man pages, shell scripts, etc. # SUBST_CONF=$(top_builddir)/util/subst.conf SUBSTITUTE= $(top_builddir)/util/subst -f $(SUBST_CONF) SUBSTITUTE_UPTIME= $(top_builddir)/util/subst -t -f $(SUBST_CONF) DEP_SUBSTITUTE= $(top_builddir)/util/subst $(SUBST_CONF) $(top_builddir)/util/subst: cd $(top_builddir)/util ; $(MAKE) subst # # Script for generating utf8data.h # MKUTF8DATA=$(top_builddir)/util/mkutf8data $(top_builddir)/util/mkutf8data: $(MAKE) -C $(top_builddir)/util mkutf8data # # Script for installing symlinks (for shared libraries) # $(top_builddir)/util/install-symlink: $(top_srcdir)/util/install-symlink.in \ $(top_builddir)/config.status cd $(top_builddir); CONFIG_FILES=util/install-symlink ./config.status chmod +x $(top_builddir)/util/install-symlink $(top_builddir)/util/symlinks: cd $(top_builddir)/util ; $(MAKE) symlinks INSTALL_SYMLINK = /bin/sh $(top_builddir)/util/install-symlink \ \ --symlinks=$(top_builddir)/util/symlinks DEP_INSTALL_SYMLINK = $(top_builddir)/util/install-symlink \ $(top_builddir)/util/symlinks # # Warning flags # # Run make gcc-wall to do a build with warning messages. # # WFLAGS= -std=gnu99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE \ -pedantic $(WFLAGS_EXTRA) \ -Wall -W -Wwrite-strings -Wpointer-arith \ -Wcast-qual -Wcast-align -Wno-variadic-macros \ -Wstrict-prototypes -Wmissing-prototypes \ -Wformat-security -Wformat-nonliteral \ -Wmissing-format-attribute -O2 -Wstrict-aliasing \ -Wnested-externs -Winline -DNO_INLINE_FUNCS -Wshadow \ -UENABLE_NLS gcc-wall-new: ($(MAKE) CFLAGS_WARN="$(WFLAGS)" > /dev/null) 2>&1 | sed -f $(top_srcdir)/util/gcc-wall-cleanup gcc-wall: $(MAKE) clean > /dev/null $(MAKE) gcc-wall-new static-check: ($(MAKE) C=1 V=1 CFLAGS="$(ALL_CFLAGS) $(WFLAGS)") 2>&1 | sed -f $(top_srcdir)/util/static-analysis-cleanup static-check-all: $(MAKE) clean > /dev/null $(MAKE) static-check # # Installation user and groups # BINGRP= bin BINOWN= bin BINMODE= 555 INCGRP= bin INCOWN= bin INCMODE= 444 LIBOWN= bin LIBGRP= bin LIBMODE= 444 MANGRP= bin MANOWN= bin MANMODE= 444 # # Autoconf magic... # DEP_LIB_MAKEFILES = $(top_srcdir)/lib/Makefile.library \ $(top_srcdir)/lib/Makefile.elf-lib \ $(top_srcdir)/lib/Makefile.bsd-lib \ $(top_srcdir)/lib/Makefile.darwin-lib \ $(top_srcdir)/lib/Makefile.solaris-lib \ $(top_srcdir)/lib/Makefile.profile $(top_builddir)/config.status: $(top_srcdir)/configure cd $(top_builddir); ./config.status --recheck $(top_builddir)/MCONFIG: $(top_srcdir)/MCONFIG.in $(top_builddir)/config.status cd $(top_builddir); CONFIG_FILES=MCONFIG ./config.status $(top_builddir)/lib/config.h: $(top_srcdir)/lib/config.h.in \ $(top_builddir)/config.status cd $(top_builddir); CONFIG_FILES=lib/config.h ./config.status $(top_builddir)/lib/dirpaths.h: $(DEP_SUBSTITUTE) $(top_srcdir)/lib/dirpaths.h.in $(E) " SUBST $@" $(Q) $(SUBSTITUTE) $(top_srcdir)/lib/dirpaths.h.in $@ $(top_builddir)/lib/substitute_sh: $(top_srcdir)/lib/substitute_sh.in \ $(top_builddir)/config.status cd $(top_builddir); CONFIG_FILES=lib/substitute_sh ./config.status $(top_builddir)/util/subst.conf: $(top_srcdir)/util/subst.conf.in \ $(top_builddir)/config.status cd $(top_builddir); CONFIG_FILES=util/subst.conf ./config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/MCONFIG \ $(DEP_MAKEFILE) $(top_builddir)/config.status cd $(top_builddir); CONFIG_FILES=$(my_dir)/Makefile ./config.status #$(top_srcdir)/configure: $(top_srcdir)/configure.ac # cd $(top_srcdir) && autoheader && autoconf coverage.txt: Makefile $(SRCS) if test -n "$(SRCS)"; then \ gcov -s $(top_srcdir) -o . $(SRCS) > coverage.txt 2>&1 ; \ fi clean:: $(RM) -f *.gcda *.gcov *.gcno coverage.txt # # Make depend magic... # .depend: Makefile $(SRCS) $(top_srcdir)/depfix.sed $(top_srcdir)/wordwrap.pl if test -n "$(SRCS)" ; then \ $(CC) -M $(ALL_CFLAGS) $(DEPEND_CFLAGS) $(SRCS) | \ $(SED) -f $(top_srcdir)/depfix.sed \ -e 's; $(srcdir)/; $$(srcdir)/;g' \ -e 's; $(top_srcdir)/; $$(top_srcdir)/;g' \ -e 's; $(top_builddir)/; $$(top_builddir)/;g' \ -e 's; \./; ;g' \ -e '/^#/d' \ -e '/^ *\\$$/d' | \ $(PERL) $(top_srcdir)/wordwrap.pl > .depend; \ else :; fi depend:: .depend if test -n "$(SRCS)" ; then \ sed -e '/^# +++ Dependency line eater +++/,$$d' \ < $(srcdir)/Makefile.in | cat - .depend \ > $(srcdir)/Makefile.in.new; \ if cmp -s $(srcdir)/Makefile.in $(srcdir)/Makefile.in.new ; then \ $(RM) $(srcdir)/Makefile.in.new ; \ else \ $(MV) $(srcdir)/Makefile.in $(srcdir)/Makefile.in.old; \ $(MV) $(srcdir)/Makefile.in.new $(srcdir)/Makefile.in; \ fi ; else :; fi # End of file MCONFIG all:: check test_one test_script test_one: $(srcdir)/test_one.in Makefile mke2fs.conf test_data.tmp @echo "Creating test_one script..." @[ -f test_one ] && chmod u+w test_one || true @echo "#!/bin/sh" > test_one @echo "HTREE=y" >> test_one @echo "QUOTA=y" >> test_one @echo "SRCDIR=." >> test_one @echo "DIFF_OPTS=-u" >> test_one @echo "SIZEOF_TIME_T=8" >> test_one @echo "DD=dd" >>test_one @cat $(srcdir)/test_one.in >> test_one @chmod +x-w test_one test_script: test_one test_script.in Makefile mke2fs.conf test_data.tmp @echo "Creating test_script..." @[ -f test_script ] && chmod u+w test_script || true @echo "#!/bin/sh" > test_script @echo "SRCDIR=." >> test_script @cat $(srcdir)/test_script.in >> test_script @chmod +x-w test_script mke2fs.conf: $(srcdir)/mke2fs.conf.in $(CP) $(srcdir)/mke2fs.conf.in mke2fs.conf test_data.tmp: $(srcdir)/scripts/gen-test-data $(srcdir)/scripts/gen-test-data > test_data.tmp .PHONY : test_pre test_post check always_run always_run: TESTS=$(wildcard $(srcdir)/[a-z]_*) #TESTS != echo $(srcdir)/[a-z]_* SKIP_SLOW_TESTS=--skip-slow-tests $(TESTS):: test_one always_run @./test_one $(SKIP_SLOW_TESTS) $@ foo: echo $(TESTS) test_pre: @$(RM) -f *.failed @echo "Running e2fsprogs test suite..." @echo " " test_post: test_pre $(TESTS) @$(srcdir)/test_post check:: test_pre test_post test_script fullcheck:: $(MAKE) SKIP_SLOW_TESTS= check check-failed: $(basename $(wildcard *.failed)) @$(srcdir)/test_post TDIR=f_testnew # Target which creates a new testcase to simplify adding new regression tests. testnew: @echo "Creating a new e2fsck testcase in ${TDIR}" @mkdir -p ${TDIR} dd if=/dev/zero of=${TDIR}/image bs=1k count=8k $(top_srcdir)/misc/mke2fs -j -F -N 256 ${TDIR}/image @echo "new test description" > ${TDIR}/name @echo; echo; echo "New test filesystem at ${TDIR}/image." @echo "Now, break the filesystem as appropriate, and run 'make testend'" EXPECT1=${TDIR}/expect.1 EXPECT2=${TDIR}/expect.2 # Target which generates the expect files for the new testcase. testend: test_one ${TDIR}/image gzip -9 ${TDIR}/image @OUT1=${EXPECT1} OUT2=${EXPECT2} ./test_one ${TDIR} @echo; echo; echo "*** output from first e2fsck run (${EXPECT1}) ***" @cat ${EXPECT1} @echo "*** output from second e2fsck run (${EXPECT2}) ***" @cat ${EXPECT2} @echo "*** end of e2fsck output ***" @echo; echo "Hopefully e2fsck now fixes this problem properly." @echo "If all is well, edit ${TDIR}/name and rename ${TDIR}." clean:: $(RM) -f *~ *.log *.new *.failed *.ok *.tmp *.slow $(RM) -f test_one test_script mke2fs.conf test_data.tmp distclean:: clean $(RM) -f Makefile $(RM) -rf ${TDIR}