]> git.tuebingen.mpg.de Git - adu.git/commitdiff
Make it compile on FreeBSD and NetBSD.
authorAndre Noll <maan@systemlinux.org>
Tue, 23 Dec 2008 16:26:52 +0000 (17:26 +0100)
committerAndre Noll <maan@systemlinux.org>
Tue, 23 Dec 2008 16:26:52 +0000 (17:26 +0100)
off_t on BSD is 64 bit even on 32bit machines, so there are no
special tricks needed to get large file support. In fact, getconf
has no options for large file support and struct stat64 and lstat64()
do not exist on BSD systems. This caused the compilation to fail on
those systems.

Fix this problem by checking for BSD via uname -s in the Makefile. If
uname indicates we're on BSD, then do not use getconf and #define
stat64 and lstat64() to stat and lstat() respectively.

Makefile
gcc-compat.h

index 0cce3b9b4f2fc2dce22e46a645d2a9a8d76d6c3b..a4293c70855de02f0d9069ff3ec9e90ce4958886 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 objects := adu.o string.o cmdline.o fd.o select.o create.o interactive.o select.cmdline.o format.o user.o
 all: adu
 version := 0.0.5
+uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
 
 DEBUG_CPPFLAGS += -Wno-sign-compare -g -Wunused -Wundef -W
 DEBUG_CPPFLAGS += -Wredundant-decls
@@ -13,13 +14,20 @@ CPPFLAGS += -Werror-implicit-function-declaration
 CPPFLAGS += -Wmissing-format-attribute
 CPPFLAGS += -Wunused-macros
 CPPFLAGS += -Wbad-function-cast
-CPPFLAGS += -D_LARGEFILE64_SOURCE
-CPPFLAGS += $(shell getconf LFS64_CFLAGS)
 CPPFLAGS += -DVERSION='"$(version)"'
+CPPFLAGS += -I/usr/local/include
 
-LDFLAGS += -D_LARGEFILE64_SOURCE
-LDFLAGS += $(shell getconf LFS64_LDFLAGS)
-LDFLAGS += $(shell getconf LFS64_LIBS)
+LDFLAGS += -L/usr/local/lib
+
+
+ifeq (,$(findstring BSD,$(uname_S)))
+       CPPFLAGS += -D_LARGEFILE64_SOURCE
+       CPPFLAGS += $(shell getconf LFS64_CFLAGS)
+       LDFLAGS += -D_LARGEFILE64_SOURCE
+       LDFLAGS += $(shell getconf LFS64_LDFLAGS)
+       LDFLAGS += $(shell getconf LFS64_LIBS)
+       CPPFLAGS += -DHAVE_STAT64=1
+endif
 
 
 Makefile.deps: $(wildcard *.c *.h)
index ec24db9250afbe4bff0786b0c95747dc297933db..4ba96ae16da204b760219bded23e55c38053976c 100644 (file)
@@ -71,3 +71,8 @@
  * header files.
  */
 #define _static_inline_ static inline
+
+#ifndef HAVE_STAT64
+#define stat64 stat
+#define lstat64 lstat
+#endif