// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cdromutl.cc,v 1.9 1999/08/30 07:48:04 jgg Exp $
+// $Id: cdromutl.cc,v 1.10 1999/12/10 06:30:42 jgg Exp $
/* ######################################################################
CDROM Utilities - Some functions to manipulate CDROM mounts.
#include <sys/wait.h>
#include <sys/errno.h>
-#include <sys/vfs.h>
+#include <sys/statvfs.h>
#include <dirent.h>
#include <fcntl.h>
#include <sys/stat.h>
// Some stats from the fsys
if (_config->FindB("Debug::identcdrom",false) == false)
{
- struct statfs Buf;
- if (statfs(CD.c_str(),&Buf) != 0)
+ struct statvfs Buf;
+ if (statvfs(CD.c_str(),&Buf) != 0)
return _error->Errno("statfs","Failed to stat the cdrom");
// We use a kilobyte block size to advoid overflow
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: dpkgpm.cc,v 1.14 1999/09/10 02:40:31 jgg Exp $
+// $Id: dpkgpm.cc,v 1.15 1999/12/10 06:30:42 jgg Exp $
/* ######################################################################
DPKG Package Manager - Provide an interface to dpkg
/* No Job Control Stop Env is a magic dpkg var that prevents it
from using sigstop */
- setenv("DPKG_NO_TSTP","yes",1);
+ putenv("DPKG_NO_TSTP=yes");
execvp(Args[0],(char **)Args);
cerr << "Could not exec dpkg!" << endl;
_exit(100);
endif
BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*))
-BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
ifeq ($(words $(BUILDX)),0)
-error-all:
+
+# Check for a busted wildcard function. We use this function in several
+# places, it must work.
+ifeq ($(words $(wildcard *)),0)
+error-all/environment.mak:
+ echo You have a broken version of GNU Make - upgrade.
+else
+error-all/environment.mak:
echo Can't find the build directory in $(BUILD_POSSIBLE) -- use BUILD=
endif
+# Force include below to come to the error target
+BUILDX := error-all
+else
+BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
+endif
+
override BUILD := $(BUILDX)
# Base definitions
XPMLIB = @XPMLIB@
PTHREADLIB = @PTHREADLIB@
+# Shim Headerfile control
HAVE_C9X = @HAVE_C9X@
+HAVE_STATVFS = @HAVE_STATVFS@
.PHONY: dirs
MISSING_DIRS:= $(filter-out $(wildcard $(SUBDIRS)),$(SUBDIRS))
dirs:
+ @rm -f include/sys
ifneq ($(words $(MISSING_DIRS)),0)
@mkdir $(MISSING_DIRS)
else
@echo > /dev/null
endif
ifeq ($(HAVE_C9X),yes)
- -@rm include/inttypes.h > /dev/null 2>&1
+ @rm -f include/inttypes.h > /dev/null 2>&1
else
@cp $(SRCDIR)/buildlib/inttypes.h.in include/inttypes.h
endif
+ifeq ($(HAVE_STATVFS),yes)
+ @rm -f include/statvfs.h > /dev/null 2>&1
+else
+ @cp $(SRCDIR)/buildlib/statvfs.h.in include/statvfs.h
+ ln -sf . include/sys
+endif
--- /dev/null
+/* Compatibility for systems with out Single Unix Spec statvfs */
+#include <sys/vfs.h>
+
+#define statvfs statfs
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-get.cc,v 1.92 1999/12/09 05:22:33 jgg Exp $
+// $Id: apt-get.cc,v 1.93 1999/12/10 06:30:42 jgg Exp $
/* ######################################################################
apt-get - Cover for dpkg
#include <termios.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
-#include <sys/vfs.h>
+#include <sys/statvfs.h>
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
return false;
// Check for enough free space
- struct statfs Buf;
+ struct statvfs Buf;
string OutputDir = _config->FindDir("Dir::Cache::Archives");
- if (statfs(OutputDir.c_str(),&Buf) != 0)
+ if (statvfs(OutputDir.c_str(),&Buf) != 0)
return _error->Errno("statfs","Couldn't determine free space in %s",
OutputDir.c_str());
if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize)
[uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;uint64_t Foo],
c9x_ints=yes,c9x_ints=no)])
+dnl Single Unix Spec statvfs
+AC_CHECK_FUNC(statvfs)
+AC_SUBST(HAVE_STATVFS)
+
dnl Check the sizes etc. of the architecture
changequote(,)
if archline="`grep \"^$archset\" $srcdir/buildlib/sizetable | cut -f 2- -d ' '`";then