From: Andre Noll Date: Tue, 23 Dec 2008 16:26:52 +0000 (+0100) Subject: Make it compile on FreeBSD and NetBSD. X-Git-Tag: v0.1.0~20 X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=commitdiff_plain;h=76c1de74e9dbdeef52629632de91a50ed6e20dbe Make it compile on FreeBSD and NetBSD. 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. --- diff --git a/Makefile b/Makefile index 0cce3b9..a4293c7 100644 --- 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) diff --git a/gcc-compat.h b/gcc-compat.h index ec24db9..4ba96ae 100644 --- a/gcc-compat.h +++ b/gcc-compat.h @@ -71,3 +71,8 @@ * header files. */ #define _static_inline_ static inline + +#ifndef HAVE_STAT64 +#define stat64 stat +#define lstat64 lstat +#endif