$NetBSD: patch-src_GNUmakefile,v 1.3 2018/03/13 05:45:25 dholland Exp $ * Fix build under NetBSD and SunOS --- src/GNUmakefile.orig 2018-03-05 10:56:03.000000000 +0000 +++ src/GNUmakefile @@ -42,17 +42,26 @@ else OS = Darwin else ifeq ($(shell uname -o), Cygwin) OS = Windows_NT + else ifeq ($(shell uname -s), NetBSD) + OS = NetBSD + else ifeq ($(shell uname -s), SunOS) + OS = SunOS else $(error "Could not recognize your platform") endif endif +# what is the point of this extra copy? ifeq ($(OS), Linux) PLATFORM = Linux else ifeq ($(OS), Darwin) PLATFORM = MacOS else ifeq ($(OS), Windows_NT) PLATFORM = Windows +else ifeq ($(OS), NetBSD) + PLATFORM = NetBSD +else ifeq ($(OS), SunOS) + PLATFORM = SunOS endif # Lablgtk configuration @@ -180,23 +189,21 @@ OCAML = ${OCAMLBIN}/ocaml OCAMLC = $(firstword $(wildcard ${OCAMLBIN}/ocamlc.opt ${OCAMLBIN}/ocamlc)) OCAMLOPT = $(firstword $(wildcard ${OCAMLBIN}/ocamlopt.opt ${OCAMLBIN}/ocamlopt)) OCAMLDEP = $(firstword $(wildcard ${OCAMLBIN}/ocamldep.opt ${OCAMLBIN}/ocamldep)) -ifeq ($(OS), Windows_NT) - CAMLP4O = camlp4o.opt -else - CAMLP4O = $(firstword $(wildcard ${OCAMLBIN}/camlp4o.opt ${OCAMLBIN}/camlp4o)) -endif +CAMLP4O = camlp4o.opt # Do we build with "-I ./linux" or "-I ./win": ifeq ($(OS), Windows_NT) INCLUDE_OS_DIR = win else -# Also for mac. +# Also for mac, bsd, etc. INCLUDE_OS_DIR = linux endif # Number of CPUs ifeq ($(OS), Darwin) NUMCPU ?= $(shell sysctl -n hw.ncpu) +else ifeq ($(OS), NetBSD) + NUMCPU ?= $(shell sysctl -n hw.ncpu) else # Works on Linux and Cygwin (Cygwin has no /sys). NUMCPU ?= $(shell cat /proc/cpuinfo | grep 'processor' | wc -l) @@ -244,6 +251,12 @@ endif ifeq ($(OS), Windows_NT) include win/GNUmakefile endif +ifeq ($(OS), NetBSD) + include linux/GNUmakefile +endif +ifeq ($(OS), SunOS) + include linux/GNUmakefile +endif include java_frontend/GNUmakefile @@ -304,7 +317,7 @@ clean:: %.cmx: %.ml $(INCLUDE_OS_DIR)/Perf.cmxa @echo " OCAMLOPT " $@ - ${OCAMLOPT} $(OCAMLCFLAGS) -thread -c -w p -warn-error FSU -c $(INCLUDES) -pp ${CAMLP4O} nums.cmxa $*.ml + ${OCAMLOPT} $(OCAMLCFLAGS) -thread -c -w p -warn-error FSU -c $(INCLUDES) -pp ${CAMLP4O} $*.ml clean:: rm -f *.cmx rm -f *.o @@ -340,7 +353,7 @@ clean:: rm -f vfversion.ml AUTOGENERATE_TARGETS += vfversion_autogen -VFCONFIG_CONTENT=let z3_present = $(Z3PRESENT);; let z3v4dot5_present = $(Z3V4DOT5PRESENT);; type platform = Windows | MacOS | Linux;; let platform = $(PLATFORM) +VFCONFIG_CONTENT=let z3_present = $(Z3PRESENT);; let z3v4dot5_present = $(Z3V4DOT5PRESENT);; type platform = Windows | MacOS | Linux | NetBSD | SunOS;; let platform = $(PLATFORM) vfconfig_autogen: if [ ! -e vfconfig.ml ] || [ "$$(cat vfconfig.ml)" != "$(VFCONFIG_CONTENT)" ]; then \ echo "$(VFCONFIG_CONTENT)" > vfconfig.ml ;\ @@ -389,7 +402,7 @@ clean:: ifndef WITHOUT_LABLGTK clean:: - cd linemarks; make clean + cd linemarks; $(MAKE) clean branchleft_png.ml: branch-left.png gdk_pixbuf_mlsource branch-left.png > branchleft_png.ml @@ -407,7 +420,7 @@ branchright_png.cmx: branchright_png.ml vfide.cmx: branchleft_png.cmx branchright_png.cmx vfide.ml $(GTKSOURCEVIEW_DEPS) @echo " OCAMLOPT " $@ ifndef WITHOUT_GTKSOURCEVIEW - make -C linemarks OCAMLOPT=${OCAMLOPT} OCAMLCFLAGS="${OCAMLCFLAGS}" LABLGTK_FLAGS="$(LABLGTK_FLAGS_)" linemarks.cmxa + $(MAKE) -C linemarks OCAMLOPT=${OCAMLOPT} OCAMLCFLAGS="${OCAMLCFLAGS}" LABLGTK_FLAGS="$(LABLGTK_FLAGS_)" linemarks.cmxa endif $(SET_LDD); $(OCAMLOPT) $(OCAMLCFLAGS) -thread -c -w p -warn-error FSU -c $(INCLUDES) \ -pp ${CAMLP4O} nums.cmxa $(LABLGTK_FLAGS) $(GTKSOURCEVIEW_LFLAGS) vfide.ml @@ -423,7 +436,7 @@ endif ../bin/vfide$(DOTEXE): vfide.cmx $(VERIFAST_PLUGINS:%=verifastPlugin%.cmx) $(Z3DEPS) $(GTKSOURCEVIEW_DEPS) @echo " OCAMLOPT " $@ ifndef WITHOUT_GTKSOURCEVIEW - cd linemarks; make linemarks.cmxa + cd linemarks; $(MAKE) linemarks.cmxa endif $(SET_LDD); ${OCAMLOPT} $(OCAMLOPT_LINKFLAGS) $(OCAMLCFLAGS) -warn-error F -pp ${CAMLP4O} -o ../bin/vfide$(DOTEXE) \ $(LABLGTK_FLAGS) $(GTKSOURCEVIEW_LFLAGS) unix.cmxa \