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.
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
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
DEBUG_CPPFLAGS += -Wno-sign-compare -g -Wunused -Wundef -W
DEBUG_CPPFLAGS += -Wredundant-decls
CPPFLAGS += -Wmissing-format-attribute
CPPFLAGS += -Wunused-macros
CPPFLAGS += -Wbad-function-cast
CPPFLAGS += -Wmissing-format-attribute
CPPFLAGS += -Wunused-macros
CPPFLAGS += -Wbad-function-cast
-CPPFLAGS += -D_LARGEFILE64_SOURCE
-CPPFLAGS += $(shell getconf LFS64_CFLAGS)
CPPFLAGS += -DVERSION='"$(version)"'
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)
Makefile.deps: $(wildcard *.c *.h)
* header files.
*/
#define _static_inline_ static inline
* header files.
*/
#define _static_inline_ static inline
+
+#ifndef HAVE_STAT64
+#define stat64 stat
+#define lstat64 lstat
+#endif