From bc826d2ec8eae30f45d5cb6629075e81c5fe218c Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Fri, 11 May 2018 12:59:39 +0200 Subject: [PATCH 1/5] Add .gitattributes --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3aa538a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# Default behaviour, for if core.autocrlf isn't set +* text=auto + +configure text eol=lf From 7893301bf799e667612ec5f3149bc4852c8f3a63 Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Fri, 11 May 2018 13:00:37 +0200 Subject: [PATCH 2/5] Add .gitignore --- .gitignore | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b1f0489 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +testdbm.byte +testdbm.opt + +# general patterns + +*.o +*.a +*.so +*.obj +*.lib +*.dll +*.cm[ioxat] +*.cmx[as] +*.cmti +*.annot +*.exe +*.sw[po] From 29955d7dd2035433642108fdea101f65ec67868e Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Fri, 11 May 2018 13:02:22 +0200 Subject: [PATCH 3/5] Makefile.config shouldn't be committed --- .gitignore | 2 ++ Makefile | 4 ++-- Makefile.config | 4 ---- 3 files changed, 4 insertions(+), 6 deletions(-) delete mode 100644 Makefile.config diff --git a/.gitignore b/.gitignore index b1f0489..ed7c97f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +Makefile.config + testdbm.byte testdbm.opt diff --git a/Makefile b/Makefile index eab9b37..e14744c 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ # # ######################################################################### -include Makefile.config +-include Makefile.config OCAMLC=ocamlc OCAMLOPT=ocamlopt @@ -66,7 +66,7 @@ install:: if test -f dbm.cmxs; then cp dbm.cmxs $(LIBDIR)/; fi clean:: - rm -f *.cm* *.$(O) *.$(A) *.$(SO) + rm -f *.cm* *.$(O) *.$(A) *.$(SO) Makefile.config testdbm.byte: dbm.cma testdbm.ml $(OCAMLC) -o $@ dbm.cma testdbm.ml diff --git a/Makefile.config b/Makefile.config deleted file mode 100644 index 998989d..0000000 --- a/Makefile.config +++ /dev/null @@ -1,4 +0,0 @@ -OCAML_STDLIB=/home/xleroy/.opam/4.03.0/lib/ocaml -DBM_INCLUDES= -DBM_LINK=-lgdbm_compat -lgdbm -DBM_DEFINES=-DDBM_USES_GDBM_NDBM From fd1eb7d444de8f228e7f456865a47d9b42c6fb12 Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Fri, 11 May 2018 14:55:41 +0200 Subject: [PATCH 4/5] Default to C compiler OCaml was configured with --- configure | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 9a3d094..41d1c82 100755 --- a/configure +++ b/configure @@ -25,6 +25,10 @@ echo stdlib=`ocamlc -where` +# This slightly strange looking command will prefer c_compiler for versions +# of OCaml which have it, but will fallback to bytecode_c_compiler otherwise +CC=${CC:-`ocamlc -config | tr -d '\r' | sed -ne 's/.*c_compiler: //p' | head -n 1`} + hasgot() { rm -f hasgot.c (echo "#include <$2>" @@ -36,7 +40,7 @@ hasgot() { fi echo ' return 0;' echo '}') > hasgot.c - ${CC:-cc} -I$1 -o hasgot.exe hasgot.c $3 $4 + $CC -I$1 -o hasgot.exe hasgot.c $3 $4 2>/dev/null res=$? rm -f hasgot.c hasgot.exe return $res From e0bebe1ad4a03eb78df369c28beaf34cab6293a3 Mon Sep 17 00:00:00 2001 From: David Allsopp Date: Fri, 11 May 2018 14:56:45 +0200 Subject: [PATCH 5/5] Search gcc search path for dbm first It's possible to persuade GCC to reveal its search path for header files, which provides a better default for systems compiling with gcc. It also means that the mingw-w64 libraries are automatically detected. --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 41d1c82..2df6033 100755 --- a/configure +++ b/configure @@ -50,7 +50,7 @@ dbm_include="not found" dbm_link="not found" dbm_defines="" -for dir in /usr/include /usr/include/db1 /usr/include/gdbm /usr/local/include; do +for dir in `$CC -xc -E -v /dev/null 2>&1 | sed -e '1,/#include <...>/d' -e '/End of search list./,$d'` /usr/include /usr/include/db1 /usr/include/gdbm /usr/local/include ; do if test -f $dir/ndbm.h; then dbm_include=$dir dbm_defines="-DDBM_COMPAT"