diff --git a/.gitignore b/.gitignore index d7cbab1a..563c30ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,12 @@ *.lo *.o *.la +.dep autom4te.cache configure +config.log +config.status include/builddefs include/config.h include/config.h.in diff --git a/include/builddefs.in b/include/builddefs.in index 7827ed5a..23a49917 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -65,18 +65,14 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall ifeq ($(PKG_PLATFORM),linux) PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(GCCFLAGS) -DEPENDFLAGS = -D__linux__ endif ifeq ($(PKG_PLATFORM),darwin) PCFLAGS = -traditional-cpp $(GCCFLAGS) -DEPENDFLAGS = -D__APPLE__ endif ifeq ($(PKG_PLATFORM),irix) PCFLAGS = -nostdinc -I$(ROOT)/usr/include -I$(TOPDIR)/../irix/include -DEPENDFLAGS = -D__sgi__ endif ifeq ($(PKG_PLATFORM),freebsd) -DEPENDFLAGS = -D__FreeBSD__ endif GCFLAGS = $(OPTIMIZER) $(DEBUG) $(CPPFLAGS) \ diff --git a/include/buildrules b/include/buildrules index 54283911..5388210e 100644 --- a/include/buildrules +++ b/include/buildrules @@ -8,7 +8,7 @@ include $(TOPDIR)/include/builddefs clean clobber : $(addsuffix -clean,$(SUBDIRS)) $(Q)rm -f $(DIRT) - $(Q)rm -fr .libs + $(Q)rm -fr .libs .dep %-clean: @echo "Cleaning $*" @@ -70,32 +70,16 @@ endif # _BUILDRULES_INCLUDED_ $(_FORCE): -.PHONY : depend +# dependency build is automatic, relies on gcc -MM to generate. +.PHONY : depend ltdepend -DEPENDSCRIPT := $(MAKEDEPEND) $(DEPENDFLAGS) -f - -- $(CFLAGS) -- $(CFILES) | \ - $(SED) -e 's,`pwd`,$(TOPDIR),g' \ - -e 's, */[^ ]*,,g' \ - -e '/^[^ ]*: *$$/d' \ - -e '/^ *$$/d' +MAKEDEP := $(MAKEDEPEND) $(CFLAGS) -ifdef LTLIBRARY -DEPENDSCRIPT := $(DEPENDSCRIPT) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' -endif +ltdepend: $(CFILES) $(HFILES) + @echo " [DEP]" + $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .dep -depend : $(CFILES) $(HFILES) $(addsuffix -depend,$(SUBDIRS)) - $(DEPENDSCRIPT) > .dep - test -s .dep || rm -f .dep +depend: $(CFILES) $(HFILES) + @echo " [DEP]" + $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep -%-depend: - $(MAKE) -C $* depend - -# Include dep, but only if it exists -ifeq ($(shell test -f .dep && echo .dep), .dep) -include .dep -else -ifdef LTLIBRARY -$(LTOBJECTS): $(HFILES) -else -$(OBJECTS): $(HFILES) -endif -endif diff --git a/lib/Makefile b/lib/Makefile index 435c38c8..43fb0a09 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -19,8 +19,10 @@ CFILES = dataascii.c databin.c datapid.c file_lock.c forker.c \ str_to_bytes.c tlibio.c write_log.c \ random.c -default: $(LTLIBRARY) +default: ltdepend $(LTLIBRARY) include $(BUILDRULES) install install-dev: default + +-include .dep diff --git a/ltp/Makefile b/ltp/Makefile index fee10f55..d74a9df7 100644 --- a/ltp/Makefile +++ b/ltp/Makefile @@ -27,7 +27,7 @@ LCFLAGS += -DAIO LLDLIBS += -laio -lpthread endif -default: $(TARGETS) +default: depend $(TARGETS) include $(BUILDRULES) @@ -39,3 +39,4 @@ install: default $(INSTALL) -m 755 -d $(PKG_LIB_DIR)/ltp $(INSTALL) -m 755 $(TARGETS) $(PKG_LIB_DIR)/ltp +-include .dep diff --git a/m4/package_utilies.m4 b/m4/package_utilies.m4 index c034a7c6..726406c8 100644 --- a/m4/package_utilies.m4 +++ b/m4/package_utilies.m4 @@ -10,10 +10,28 @@ AC_DEFUN([AC_PACKAGE_NEED_UTILITY], fi ]) +# +#check compiler can generate dependencies +# +AC_DEFUN([AC_PACKAGE_GCC_DEPS], + [AC_CACHE_CHECK(whether gcc -MM is supported, + ac_cv_gcc_nodeps, + [cat > conftest.c < + int main() { exit(0); } +EOF + ac_cv_gcc_nodeps=no + if ${CC} -MM conftest.c >/dev/null 2>&1; then + ac_cv_gcc_nodeps=yes + fi + rm -f conftest.c a.out + ]) + ]) + # # Generic macro, sets up all of the global build variables. # The following environment variables may be set to override defaults: -# CC MAKE LIBTOOL TAR ZIP MAKEDEPEND AWK SED ECHO SORT +# CC MAKE LIBTOOL TAR ZIP eMAKEDEPEND AWK SED ECHO SORT # MSGFMT MSGMERGE RPM # AC_DEFUN([AC_PACKAGE_UTILITIES], @@ -54,10 +72,11 @@ AC_DEFUN([AC_PACKAGE_UTILITIES], zip=$ZIP AC_SUBST(zip) - if test -z "$MAKEDEPEND"; then - AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true) + AC_PACKAGE_GCC_DEPS() + makedepend="$cc -MM" + if test $ac_cv_gcc_nodeps = no; then + makedepend=/bin/true fi - makedepend=$MAKEDEPEND AC_SUBST(makedepend) if test -z "$AWK"; then diff --git a/src/Makefile b/src/Makefile index e5ebcd8e..ac2a88f7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -13,11 +13,12 @@ TARGETS = dirstress fill fill2 getpagesize holes lstat64 \ multi_open_unlink dmiperf unwritten_sync genhashnames LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize \ - preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \ - fs_perms testx looptest locktest unwritten_mmap \ + ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \ bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \ t_futimens +SUBDIRS = + LLDLIBS = $(LIBATTR) $(LIBHANDLE) $(LIBACL) ifeq ($(HAVE_XLOG_ASSIGN_LSN), true) @@ -27,6 +28,7 @@ endif IRIX_TARGETS = open_unlink ifeq ($(PKG_PLATFORM),linux) +PREALLO_TARGETS = preallo_rw_pattern_reader TARGETS += $(LINUX_TARGETS) TARGETS += t_immutable endif @@ -49,7 +51,7 @@ CFILES = $(TARGETS:=.c) LDIRT = $(TARGETS) -default: $(TARGETS) $(SUBDIRS) +default: depend $(TARGETS) $(SUBDIRS) include $(BUILDRULES) @@ -67,3 +69,5 @@ install: default $(addsuffix -install,$(SUBDIRS)) %-install: $(MAKE) -C $* install + +-include .dep diff --git a/src/aio-dio-regress/Makefile b/src/aio-dio-regress/Makefile index f0e4d154..3f9d1c26 100644 --- a/src/aio-dio-regress/Makefile +++ b/src/aio-dio-regress/Makefile @@ -8,7 +8,7 @@ LDIRT = $(TARGETS) LLDLIBS = -laio -lpthread -default: $(TARGETS) +default: depend $(TARGETS) include $(BUILDRULES) @@ -19,3 +19,5 @@ $(TARGETS): install: $(INSTALL) -m 755 -d $(PKG_LIB_DIR)/src/aio-dio-regress $(INSTALL) -m 755 $(TARGETS) $(PKG_LIB_DIR)/src/aio-dio-regress + +-include .dep