diff options
-rw-r--r-- | VERSION | 7 | ||||
-rw-r--r-- | configure.in | 246 | ||||
-rw-r--r-- | include/Makefile | 40 | ||||
-rw-r--r-- | include/builddefs.in | 172 | ||||
-rw-r--r-- | include/buildrules | 77 |
5 files changed, 542 insertions, 0 deletions
diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..6143fa60 --- /dev/null +++ b/VERSION @@ -0,0 +1,7 @@ +# +# This file is used by configure to get version information +# +PKG_MAJOR=1 +PKG_MINOR=0 +PKG_REVISION=0 +PKG_BUILD=0 diff --git a/configure.in b/configure.in new file mode 100644 index 00000000..1f363b49 --- /dev/null +++ b/configure.in @@ -0,0 +1,246 @@ +dnl unpacking check - this file must exist +AC_INIT(src/fsstress.c) +pkg_name="xfstests" +AC_SUBST(pkg_name) + +# +# Note: the following environment variables may be set to override the +# defaults (to change paths and/or executables, build parameters, etc): +# +# DEBUG OPTIMIZER MAKE CC LD TAR ZIP RPM AWK SED ECHO +# MALLOCLIB DISTRIBUTION PACKAGE_BUILDER PREFIX ROOT_PREFIX +# + +DEBUG=${DEBUG:-'-DDEBUG'} # -DNDEBUG +OPTIMIZER=${OPTIMIZER:-'-g'} # -O2 +MALLOCLIB=${MALLOCLIB:-''} # /usr/lib/libefence.a + +dnl Debug build? +debug_build="$DEBUG" +AC_SUBST(debug_build) + +dnl Optimization options? +opt_build="$OPTIMIZER" +AC_SUBST(opt_build) + +dnl Alternate malloc library? +malloc_lib="$MALLOCLIB" +AC_SUBST(malloc_lib) + +dnl Set version +. VERSION + +pkg_version=${PKG_MAJOR}.${PKG_MINOR}.${PKG_REVISION} +pkg_release=$PKG_BUILD +AC_SUBST(pkg_version) +AC_SUBST(pkg_release) + +pkg_distribution="SGI ProPack" +test -z "$DISTRIBUTION" || pkg_distribution="$DISTRIBUTION" +AC_SUBST(pkg_distribution) + +pkg_builder=`id -u -n`@`hostname -f` +test -z "$PACKAGE_BUILDER" || pkg_builder="$PACKAGE_BUILDER" +AC_SUBST(pkg_builder) + +dnl check if user wants their own C compiler +test -z "$CC" && AC_PROG_CC +cc=$CC +AC_SUBST(cc) + +dnl check if users wants their own make +test -z "$MAKE" && AC_PATH_PROG(MAKE, make, /usr/bin/make) +make=$MAKE +AC_SUBST(make) + +dnl check if users wants their own linker +test -z "$LD" && AC_PATH_PROG(LD, ld, /usr/bin/ld) +ld=$LD +AC_SUBST(ld) + +dnl check if the tar program is available +test -z "$TAR" && AC_PATH_PROG(TAR, tar) +tar=$TAR +AC_SUBST(tar) + +dnl check if the gzip program is available +test -z "$ZIP" && AC_PATH_PROG(ZIP, gzip, /bin/gzip) +zip=$ZIP +AC_SUBST(zip) + +dnl check if the rpm program is available +test -z "$RPM" && AC_PATH_PROG(RPM, rpm, /bin/rpm) +rpm=$RPM +AC_SUBST(rpm) + +dnl .. and what version is rpm +rpm_version=0 +test -x $RPM && \ + rpm_version=`$RPM --version | awk '{print $NF}' | awk -F. '{print $1}'` +AC_SUBST(rpm_version) + +dnl check if the makedepend program is available +test -z "$MAKEDEPEND" && AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true) +makedepend=$MAKEDEPEND +AC_SUBST(makedepend) + +dnl check if symbolic links are supported +AC_PROG_LN_S + +dnl check if user wants their own awk, sed and echo +test -z "$AWK" && AC_PATH_PROG(AWK, awk, /bin/awk) +awk=$AWK +AC_SUBST(awk) +test -z "$SED" && AC_PATH_PROG(SED, sed, /bin/sed) +sed=$SED +AC_SUBST(sed) +test -z "$ECHO" && AC_PATH_PROG(ECHO, echo, /bin/echo) +echo=$ECHO +AC_SUBST(echo) + +CPPFLAGS="-I/usr/include/xfs" +AC_SUBST(CPPFLAGS) + +dnl Checks for UUID header and library. +AC_CHECK_HEADER(uuid/uuid.h,, [ + echo + echo 'FATAL ERROR: could not find a valid UUID header.' + echo 'Install either the e2fsprogs-devel (rpm) or the uuid-dev (deb) package.' + exit 1 +]) +AC_CHECK_LIB(uuid, uuid_generate,, [ + echo + echo 'FATAL ERROR: could not find a valid UUID library.' + echo 'Install either the e2fsprogs-devel (rpm) or the uuid-dev (deb) package.' + exit 1 +]) +libuuid="/usr/lib/libuuid.a" +AC_SUBST(libuuid) + +dnl Checks for base XFS headers and libraries. +AC_CHECK_HEADER(xfs/libxfs.h,, [ + echo + echo 'FATAL ERROR: could not find a valid XFS library header.' + echo 'Install either the xfsprogs-devel (rpm) or the xfslibs-dev (deb) package.' + exit 1 +]) +AC_CHECK_LIB(xfs, libxfs_init,, [ + echo + echo 'FATAL ERROR: could not find a valid XFS base library.' + echo 'Install either the xfsprogs-devel (rpm) or the xfslibs-dev (deb) package.' +]) +AC_CHECK_HEADER(xfs/handle.h,, [ + echo + echo 'FATAL ERROR: could not find a valid XFS handle header.' + echo 'Install either the xfsprogs-devel (rpm) or the xfslibs-dev (deb) package.' + exit 1 +]) +AC_CHECK_LIB(handle, path_to_handle,, [ + echo + echo 'FATAL ERROR: could not find a valid XFS handle library.' + echo 'Install either the xfsprogs-devel (rpm) or the xfslibs-dev (deb) package.' +]) +libxfs="-lxfs" +libhdl="-lhandle" +AC_SUBST(libxfs) +AC_SUBST(libhdl) + +dnl Checks for Extended Attributes header and library. +AC_CHECK_HEADER(attr/attributes.h,, [ + echo + echo 'FATAL ERROR: could not find a valid Extended Attributes header.' + echo 'Install either the attr-devel (rpm) or the attr-dev (deb) package.' + exit 1 +]) +AC_CHECK_LIB(attr, attr_get,, [ + echo + echo 'FATAL ERROR: could not find a valid Extended Attributes library.' + echo 'Install either the attr-devel (rpm) or the attr-dev (deb) package.' +]) +libattr="/usr/lib/libattr.a" +AC_SUBST(libattr) + +dnl Checks for Access Control List header and library. +AC_CHECK_HEADER(acl/acl.h,, [ + echo + echo 'FATAL ERROR: could not find a valid Access Control List header.' + echo 'Install either the acl-devel (rpm) or the acl-dev (deb) package.' + exit 1 +]) +AC_CHECK_LIB(acl, acl_get,, [ + echo + echo 'FATAL ERROR: could not find a valid Access Control List library.' + echo 'Install either the acl-devel (rpm) or the acl-dev (deb) package.' +]) +libacl="/usr/lib/libacl.a" +AC_SUBST(libacl) + +dnl Checks for GNU database manager header and library. +AC_CHECK_HEADER(gdbm.h,, [ + echo + echo 'FATAL ERROR: could not find a valid GNU database manager header.' + echo 'Install either the gdbm-devel (rpm) or the libgdbmg1-dev (deb) package.' +]) +AC_CHECK_LIB(gdbm, gdbm_open,, [ + echo + echo 'FATAL ERROR: could not find a valid GNU database manager library.' + echo 'Install either the gdbm-devel (rpm) or the libgdbmg1-dev (deb) package.' +]) +libgdbm="/usr/lib/libgdbm.a" +AC_SUBST(libgdbm) + + +dnl alternate root and usr prefixes +test -z "$ROOT_PREFIX" && ROOT_PREFIX="" +root_prefix="$ROOT_PREFIX" +test -z "$PREFIX" && PREFIX="/usr" +prefix="$PREFIX" + +dnl man pages (source) +dnl also check if man page source is gzipped +dnl (usually on Debian, but not Redhat pre-7.0) +have_zipped_manpages=false +for d in ${prefix}/share/man ${prefix}/man ; do + if test -f $d/man1/man.1.gz + then + pkg_man_dir=$d + have_zipped_manpages=true + break + fi +done +AC_SUBST(pkg_man_dir) +AC_SUBST(have_zipped_manpages) + +dnl binaries +pkg_bin_dir=${prefix}/sbin +AC_SUBST(pkg_bin_dir) + +dnl static libraries +pkg_lib_dir=${prefix}/lib +AC_SUBST(pkg_lib_dir) + +dnl runtime shared system libraries +pkg_slib_dir=${root_prefix}/lib +AC_SUBST(pkg_slib_dir) + +dnl system binaries +pkg_sbin_dir=${root_prefix}/sbin +AC_SUBST(pkg_sbin_dir) + +dnl include files +pkg_inc_dir=${prefix}/include +AC_SUBST(pkg_inc_dir) + +dnl doc directory +pkg_doc_dir=${prefix}/share/doc/${pkg_name} +AC_SUBST(pkg_doc_dir) + + +dnl +dnl output files +dnl + +AC_OUTPUT( \ +dnl Build definitions for use in Makefiles + include/builddefs \ +) diff --git a/include/Makefile b/include/Makefile new file mode 100644 index 00000000..c12a3177 --- /dev/null +++ b/include/Makefile @@ -0,0 +1,40 @@ +# +# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of version 2 of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Further, this software is distributed without any warranty that it is +# free of the rightful claim of any third person regarding infringement +# or the like. Any license provided herein, whether implied or +# otherwise, applies only to this software file. Patent licenses, if +# any, provided herein do not apply to combinations of this program with +# other software, or any other product whatsoever. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston MA 02111-1307, USA. +# +# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, +# Mountain View, CA 94043, or: +# +# http://www.sgi.com +# +# For further information regarding this notice, see: +# +# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ +# + +TOPDIR = .. +include $(TOPDIR)/include/builddefs + +LSRCFILES = builddefs.in buildrules + +default install install-dev: + +include $(BUILDRULES) diff --git a/include/builddefs.in b/include/builddefs.in new file mode 100644 index 00000000..707a9ce5 --- /dev/null +++ b/include/builddefs.in @@ -0,0 +1,172 @@ +# +# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of version 2 of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Further, this software is distributed without any warranty that it is +# free of the rightful claim of any third person regarding infringement +# or the like. Any license provided herein, whether implied or +# otherwise, applies only to this software file. Patent licenses, if +# any, provided herein do not apply to combinations of this program with +# other software, or any other product whatsoever. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston MA 02111-1307, USA. +# +# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, +# Mountain View, CA 94043, or: +# +# http://www.sgi.com +# +# For further information regarding this notice, see: +# +# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ +# +# @configure_input@ +# + +ifndef _BUILDDEFS_INCLUDED_ +_BUILDDEFS_INCLUDED_ = 1 + +DEBUG = @debug_build@ +OPTIMIZER = @opt_build@ +MALLOCLIB = @malloc_lib@ + +LIBXFS = @libxfs@ +LIBACL = @libacl@ +LIBATTR = @libattr@ +LIBGDBM = @libgdbm@ +LIBUUID = @libuuid@ +LIBHANDLE = @libhdl@ +CPPFLAGS = -I/usr/include/xfs -I/usr/include/attr + +BUILDRULES = $(TOPDIR)/include/buildrules + +# General package information +PKG_NAME = @pkg_name@ +PKG_RELEASE = @pkg_release@ +PKG_VERSION = @pkg_version@ +PKG_DISTRIBUTION = @pkg_distribution@ +PKG_BUILDER = @pkg_builder@ +PKG_BIN_DIR = @pkg_bin_dir@ +PKG_LIB_DIR = @pkg_lib_dir@ +PKG_SBIN_DIR = @pkg_sbin_dir@ +PKG_SLIB_DIR = @pkg_slib_dir@ +PKG_INC_DIR = @pkg_inc_dir@ +PKG_MAN_DIR = @pkg_man_dir@ +PKG_DOC_DIR = @pkg_doc_dir@ + +# LCFLAGS, LLDFLAGS, LLDLIBS, LSRCFILES and LDIRT may be specified in +# user Makefiles. Note: LSRCFILES is anything other than Makefile, $(CFILES) +# $(CXXFILES), or $(HFILES) and is used to construct the manifest list +# during the "dist" phase (packaging). + +CFLAGS += $(OPTIMIZER) $(DEBUG) -funsigned-char -Wall -Wno-parentheses \ + $(LCFLAGS) -I$(TOPDIR)/include '-DVERSION="$(PKG_VERSION)"' \ + -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE + +LDFLAGS = $(LLDFLAGS) +LDLIBS = $(LLDLIBS) $(MALLOCLIB) + +MAKEOPTS = --no-print-directory +SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $(YFILES) +DIRT = $(LDIRT) dep dep.bak $(OBJECTS) $(CMDTARGET) $(LIBTARGET) \ + $(STATICLIBTARGET) *.[1-9].gz + +OBJECTS = $(ASFILES:.s=.o) \ + $(CFILES:.c=.o) \ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +MAKE = @make@ +CC = @cc@ +LD = @ld@ +AWK = @awk@ +SED = @sed@ +INSTALL = $(TOPDIR)/install-sh -o root -g root +ECHO = @echo@ +LN_S = @LN_S@ + +CCF = $(CC) $(CFLAGS) +MAKEF = $(MAKE) $(MAKEOPTS) +CXXF = $(CXX) $(CXXFLAGS) +LDF = $(LD) $(LDFLAGS) +MAKEDEPEND = @makedepend@ + +ZIP = @zip@ +TAR = @tar@ +RPM = @rpm@ +RPM_VERSION = @rpm_version@ + +HAVE_ZIPPED_MANPAGES = @have_zipped_manpages@ + +SHELL = /bin/sh +IMAGES_DIR = $(TOPDIR)/all-images +DIST_DIR = $(TOPDIR)/dist + +SUBDIRS_MAKERULE = \ + @for d in $(SUBDIRS) ""; do \ + if test -d "$$d" -a ! -z "$$d"; then \ + $(ECHO) === $$d ===; \ + $(MAKEF) -C $$d $@ || exit $$?; \ + fi; \ + done + +MAN_MAKERULE = \ + @for f in *.[12345678] ""; do \ + if test ! -z "$$f"; then \ + $(ZIP) --best -c < $$f > $$f.gz; \ + fi; \ + done + +INSTALL_MAN = \ + @for d in $(MAN_PAGES); do \ + first=true; \ + for m in `$(AWK) '/^\.SH NAME/ {ok=1; next} ok {print; exit}' $$d \ + | sed -e 's/,/ /g' -e 's/\\-.*//' -e 's/\\\f[0-9]//g' -e 's/ / /g;q'`; \ + do \ + [ -z "$$m" -o "$$m" = "\\" ] && continue; \ + t=$(MAN_DEST)/$$m.$(MAN_SECTION); \ + if $$first; then \ + if $(HAVE_ZIPPED_MANPAGES); then \ + $(ZIP) --best -c $$d > $$d.gz; _sfx=.gz; \ + fi; \ + u=$$m.$(MAN_SECTION)$$_sfx; \ + echo $(INSTALL) -m 644 $${d}$$_sfx $${t}$$_sfx; \ + $(INSTALL) -m 644 $${d}$$_sfx $${t}$$_sfx; \ + else \ + echo $(INSTALL) -S $$u $${t}$$_sfx; \ + $(INSTALL) -S $$u $${t}$$_sfx; \ + fi; \ + first=false; \ + done; \ + done + +DIST_MAKERULE = \ + $(MAKEF) -C build dist + +SOURCE_MAKERULE = \ + @test -z "$$DIR" && DIR="."; \ + for f in $(SRCFILES) ""; do \ + if test ! -z "$$f"; then $(ECHO) $$DIR/$$f; fi;\ + done; \ + for d in `echo $(SUBDIRS)` ; do \ + if test -d "$$d" -a ! -z "$$d"; then \ + $(MAKEF) DIR=$$DIR/$$d -C $$d $@ || exit $$?; \ + fi; \ + done + +endif + +# +# For targets that should always be rebuilt, +# define a target that is never up-to-date. +# Targets needing this should depend on $(_FORCE) +_FORCE = __force_build diff --git a/include/buildrules b/include/buildrules new file mode 100644 index 00000000..dab3faed --- /dev/null +++ b/include/buildrules @@ -0,0 +1,77 @@ +# +# Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of version 2 of the GNU General Public License as published +# by the Free Software Fondation. +# +# This program is distributed in the hope that it would be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. Further, any license provided herein, +# whether implied or otherwise, is limited to this program in accordance with +# the express provisions of the GNU General Public License. Patent licenses, +# if any, provided herein do not apply to combinations of this program with +# other product or programs, or any other product whatsoever. This program is +# distributed without any warranty that the program is delivered free of the +# rightful claim of any third person by way of infringement or the like. See +# the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston MA 02111-1307, USA. +# Common build rules for gmake +# +ifndef _BUILDRULES_INCLUDED_ +_BUILDRULES_INCLUDED_ = 1 + +include $(TOPDIR)/include/builddefs + +# +# Standard targets +# +ifdef CMDTARGET +$(CMDTARGET) : $(SUBDIRS) $(OBJECTS) + $(CCF) -o $(CMDTARGET) $(LDFLAGS) $(OBJECTS) $(LDLIBS) +$(CMDTARGET).static : $(SUBDIRS) $(OBJECTS) + $(CCF) -static -o $(CMDTARGET).static $(LDFLAGS) $(OBJECTS) $(LDLIBS) +endif + +ifdef LIBTARGET +$(LIBTARGET) : $(SUBDIRS) $(OBJECTS) + $(CC) $(LDFLAGS) -fPIC -shared -Wl,-soname,$(LIBTARGET) -o $(LIBTARGET) $(OBJECTS) $(LDLIBS) +endif + +ifdef STATICLIBTARGET +$(STATICLIBTARGET) : $(SUBDIRS) $(OBJECTS) + $(AR) crf $(STATICLIBTARGET) $? +endif + +clean clobber : $(SUBDIRS) + rm -f $(DIRT) + $(SUBDIRS_MAKERULE) + +# Never blow away subdirs +ifdef SUBDIRS +.PRECIOUS: $(SUBDIRS) +$(SUBDIRS): + $(SUBDIRS_MAKERULE) +endif + +source : + $(SOURCE_MAKERULE) + +endif + +$(_FORCE): + +.PHONY : depend + +depend : $(CFILES) $(HFILES) + $(SUBDIRS_MAKERULE) + touch dep + $(MAKEDEPEND) -fdep -- $(CFLAGS) -- $(CFILES) + +# Include dep, but only if it exists +ifeq ($(shell test -f dep && echo dep), dep) +include dep +endif |