Commits

camlspotter committed 522a15f Merge

OMakeroot file generation fix

Comments (0)

Files changed (6)

 # How-to-build using OMake
 #
-# yes no | omake --install # to create OMakeroot for the first time
+# cp OMakeroot.in OMakeroot # to create OMakeroot for the first time
 
 # If OMakeroot is here, include OMyMakefile
 if $(file-exists OMakeroot)
 
 .PHONY: all install clean
 
-OCAMLPACKAGEFLAGS=
-
-# BYTE_ENABLED= true
-
-OCAMLINCLUDES += 
-
-OCAMLFLAGS    += -annot -w Ae
-OCAMLCFLAGS   +=
-OCAMLOPTFLAGS += 
-OCAML_LINK_FLAGS += 
-OCAML_BYTE_LINK_FLAGS +=
-OCAML_NATIVE_LINK_FLAGS +=
-
 CAMLP4PACKS[]=
     orakuda
 
+open build/C
+open build/OCaml
+open build/LaTeX
+
+DefineCommandVars()
+
+.SUBDIRS: .
 USE_OCAMLFIND = true
 OCAMLFIND_DESTDIR= $(shell ocamlfind printconf destdir)
 
+OCAMLFIND_QUERY(name) = 
+    return $(shell ocamlfind query $(name))
+
 #|Set NATIVE_ENABLED false locally if a project does not requre opt compilation.
 NATIVE_ENABLED = $(OCAMLOPT_EXISTS)
 NATIVE_SHARED_ENABLED = $(OCAMLOPT_EXISTS)
 BYTE_ENABLED = true
 
 #|The default warning and errors. If you want to use different warning and error switches, use redefine the variable.
-OCAMLFLAGS = -g -w A-4-9 -warn-error A-4-9
+OCAMLFLAGS = -g 
+
+#|Warnings not to be printed separted with space
+OCAMLWARNING_IGNORE[] = 4 9
+
+#|Warnings treated as non errors
+OCAMLWARNING_NON_ERROR[] = 4 9
+
+#|If it is false, warnings do not stop the compilation even if they are listed in OCAMLWARNING_NON_ERROR
+#If you are in developing something, turn it ture!
+OCAMLWARNING_STOP_AT_ERROR_WARNING=false
+
+#|The maximum warning value.
+# This is the maximum warning ID NOT of the current OCaml compiler,
+#                                BUT of the OCaml compiler used by the author.
+OCAMLWARNING_MAX= 39
+
+#|Function to build warning switches
+OCAMLWARNING_MAKE()=
+    if $(OCAMLWARNING_STOP_AT_ERROR_WARNING)
+        return -w A-$(concat -,$(OCAMLWARNING_IGNORE)) -warn-error +1..$(OCAMLWARNING_MAX)-$(concat -, $(OCAMLWARNING_NON_ERROR))
+    else
+        return -w A-$(concat -,$(OCAMLWARNING_IGNORE)) -warn-error a
+
+#|OMyMakefile assumes installation with .cmt files
+OCAMLANNOTFLAGS = -annot -bin-annot
 
 #|Global variable to be defined as empty
 OCAMLPACKAGEFLAGS=
 
 #|Redefinition of compiler commands
 public.OCamlC() =
-    value $(OCAMLFIND) $(OCAMLC) $(OCAMLPACKAGEFLAGS) $(LAZY_OCAMLFINDFLAGS) $(PREFIXED_OCAMLPACKS) $(OCAMLFLAGS)\
-              $(OCAMLCFLAGS) $(OCAMLPPFLAGS) $(PREFIXED_OCAMLINCLUDES)
+    value $(OCAMLFIND) $(OCAMLC) \
+        $(OCAMLANNOTFLAGS) \
+        $(OCAMLPACKAGEFLAGS) \
+        $(LAZY_OCAMLFINDFLAGS) \
+        $(PREFIXED_OCAMLPACKS) \
+        $(OCAMLFLAGS) \
+        $(OCAMLWARNING_MAKE) \
+        $(OCAMLCFLAGS) \
+        $(OCAMLPPFLAGS) \
+        $(PREFIXED_OCAMLINCLUDES)
 # Why we need "public." ?
 
 public.OCamlOpt() =
-    value $(OCAMLFIND) $(OCAMLOPT) $(OCAMLPACKAGEFLAGS) $(LAZY_OCAMLFINDFLAGS) $(PREFIXED_OCAMLPACKS) $(OCAMLFLAGS)\
+    value $(OCAMLFIND) $(OCAMLOPT) $(OCAMLANNOTFLAGS) $(OCAMLPACKAGEFLAGS) $(LAZY_OCAMLFINDFLAGS) $(PREFIXED_OCAMLPACKS) $(OCAMLFLAGS)\
+              $(OCAMLWARNING_MAKE) \
               $(OCAMLOPTFLAGS) $(OCAMLPPFLAGS) $(PREFIXED_OCAMLINCLUDES)
 
 if $(and $(not $(NATIVE_ENABLED)) $(not $(BYTE_ENABLED)))
 #|Additional implicit rules by file extensions
 # annot, cmt, cmti files
 %.annot %.cmt: %.ml %.cmi
-	$(OCamlC) -c -annot -bin-annot $<
+	$(OCamlC) -c -annot $(OCAMLANNOTFLAGS) $<
 
 %.cmti: %.mli 
-	$(OCamlC) -c -bin-annot $<
+	$(OCamlC) -c $(OCAMLANNOTFLAGS) $<
 
 #|Define OCAML_ANNOT so that ocamlc/ocamlopt automatically create annot/cmt/cmti files, even without -annot/-bin-annot option. This requires a special compiler patch 
 setenv(OCAML_ANNOT, 1)
 # ==================================================================
 .PHONY: all install uninstall clean veryclean
 
+# Very clean
+# ======================================================================
+
+#| OCaml object files which are not real targets of OMake are not be
+# auto-cleaned away by ``omake clean``. This is not good in some situations
+# at linking.
+WithOCamlVeryClean() =
+    veryclean: 
+        rm -f *.cm* *.annot *.o *.a *.so *.exe *.byt *.opt *.run
+
 # Directories
 # =====================================================================
 
              export
          $(BYTE_TARGETS): $(BYTE_DEPS)
             $(OCAMLFIND) $(OCAMLC) $(LAZY_OCAMLFINDFLAGS) $(PREFIXED_OCAMLPACKS) $(OCAMLFLAGS) \
-                $(OCAMLCFLAGS) $(OCAML_LIB_FLAGS) -pack -bin-annot -o $(CMO) $(OCamlLinkSort $(CMOFILES))
+                $(OCAMLCFLAGS) $(OCAML_LIB_FLAGS) -pack $(OCAMLANNOTFLAGS) -o $(CMO) $(OCamlLinkSort $(CMOFILES))
 
    protected.NATIVE_DEPS = $(CMXFILES) $(OFILES)
    $(NATIVE_TARGETS): $(NATIVE_DEPS)
             export
          $(NATIVE_TARGETS): $(NATIVE_DEPS)
             $(OCAMLFIND) $(OCAMLOPTLINK) $(LAZY_OCAMLFINDFLAGS) $(PREFIXED_OCAMLPACKS) $(OCAMLFLAGS) \
-                $(OCAMLOPTFLAGS) $(OCAML_LIB_FLAGS) -pack -bin-annot -o $(CMX) $(OCamlLinkSort $(CMXFILES))
+                $(OCAMLOPTFLAGS) $(OCAML_LIB_FLAGS) -pack $(OCAMLANNOTFLAGS) -o $(CMX) $(OCamlLinkSort $(CMXFILES))
 
    $(CMI):
       section rule
 #
 #  Todo: external C library
 MyOCamlPackage(library_name, files, cmodules, linkopts) =
+  WithOCamlVeryClean()
   AddLocalOCamlPackageDependencies()
   export # The above thing is local: need to be exported
 
   CSTUBS=$(addsuffix .o,$(cmodules))
-  CMOS=$(addsuffix .cmo,$(library_name))
-  CMXS=$(addsuffix .cmx,$(library_name))
+  CMO_S=$(addsuffix .cmo,$(library_name))
+  CMX_S=$(addsuffix .cmx,$(library_name))
   CMA=$(library_name).cma
   CMXA=$(library_name).cmxa
+  CMXS=$(library_name).cmxs
 
   if $(not $(defined MyOCamlPackageExtras))
       MyOCamlPackageExtras[]=
   .PHONY: install-lib
   install-lib: $(library_name).cmo $(library_name).cmx $(library_name).cma $(library_name).cmxa $(MyOCamlPackageExtras)
 
-  $(CMA) $(CMXA) $(library_name).a $(CSTUBLIBRARIES) : $(CSTUBS) $(CMOS) $(CMXS)
+  $(CMA) $(CMXA) $(CMXS) $(library_name).a $(CSTUBLIBRARIES) : $(CSTUBS) $(CMO_S) $(CMX_S)
       if $(not $(equal $(cmodules), $(EMPTY)))
-          ocamlmklib -verbose -o $(library_name) $(CSTUBS) $(linkopts) $(CMOS) $(CMXS)
+          ocamlmklib -verbose -o $(library_name) $(CSTUBS) $(linkopts) $(CMO_S) $(CMX_S)
+          $(OCamlOpt) -shared -o $(CMXS) $(CMX_S) # CR jfuruse: right?
       else
-          $(OCamlC) -a -o $(CMA) $(CMOS)
-          $(OCamlOpt) -a -o $(CMXA) $(CMXS)
+          $(OCamlC) -a -o $(CMA) $(CMO_S)
+          $(OCamlOpt) -a -o $(CMXA) $(CMX_S)
+          $(OCamlOpt) -shared -o $(CMXS) $(CMX_S)
 
   ## the followings are necessary for packing
 
   ## install
 
   # CR jfuruse: x.cmi is required if x.mli does not exist!
-  targets[]=META $(glob i, *.mli) $(library_name).cmi $(library_name).cmo $(library_name).cmx $(library_name).cma $(library_name).cmxa $(library_name).o $(library_name).a $(CSTUBLIBRARIES) $(MyOCamlPackageExtras)
+  targets[]=META $(glob i, *.mli) $(library_name).cmi $(library_name).cmo $(library_name).cmx $(library_name).cma $(library_name).cmxa $(library_name).cmxs $(library_name).o $(library_name).a $(CSTUBLIBRARIES) $(MyOCamlPackageExtras)
 
   targets[]+= $(library_name).cmt
 
 #      files
 #          OCaml module names (without .ml)
 MyOCamlTestProgram(name, files) =
+  WithOCamlVeryClean()
   AddLocalOCamlPackageDependencies()
   export # The above thing is local: need to be exported
 
-  $(name).run $(name).opt: $(Installed $(OMyManagedPackages $(OCAMLPACKS)))
+  # We must write these two separately, or something messy happens!
+  $(name).run: $(Installed $(OMyManagedPackages $(OCAMLPACKS)))
+  $(name).opt: $(Installed $(OMyManagedPackages $(OCAMLPACKS)))
 
   # CR jfuruse: forgot to add the deps over the packages!
   .DEFAULT: $(OCamlProgram $(name), $(files))
 #          OCaml module names (without .ml)
 #  In addition to MyOCamlTestProgram, the binary is installed by omake install
 MyOCamlProgram(name, files) =
+  WithOCamlVeryClean()
   MyOCamlTestProgram($(name), $(files))
   export # The above thing is local: need to be exported
 
    return $(array $(PROG), $(BYTEPROG))
 
 MyOCamlTop(name, files) =
+  WithOCamlVeryClean()
   AddLocalOCamlPackageDependencies()
   export # The above thing is local: need to be exported
 
 #
 #   .. note :: Probably you should use MyOCamlPackage
 MyOCamlLibrary(library_name, files) =
+  WithOCamlVeryClean()
   AddLocalOCamlPackageDependencies()
   protected.CMIFILES = $(addsuffix .cmi, $(files))
   targets = $(OCamlLibrary $(library_name), $(files)) $(CMIFILES) $(glob i, *.mli) 
 
   if $(not $(defined NO_INSTALL))
     targets[] += META 
+    cmts =  $(addsuffix .cmt,  $(removesuffix $(glob i, *.cmo)))
+    cmts += $(addsuffix .cmti, $(removesuffix $(glob i, *.mli)))
     if $(defined INSTALLED)
       $(Installed $(library_name)): $(targets)
         $(OCAMLFIND) remove $(library_name)
         section:
-              $(OCAMLFIND) install $(library_name) $(targets)
+              $(OCAMLFIND) install $(library_name) $(targets) $(cmts)
               CreateInstalled($(library_name), $(targets))
 
       install: $(Installed $(library_name))
     else
       install: $(targets)
         $(OCAMLFIND) remove $(library_name)
-        $(OCAMLFIND) install $(library_name) $(targets)
+        $(OCAMLFIND) install $(library_name) $(targets) $(cmts)
 
       uninstall:
 	$(OCAMLFIND) remove $(library_name)
 #|ditto.
 mkdir_if_not_exists(dir) =
   if $(not $(test -e $(dir))):
-    mkdir $(dir) 
+    mkdir -p $(dir) 
   return
 
-# Very clean
-# ======================================================================
-
-#| OCaml object files which are not real targets of OMake are not be
-# auto-cleaned away by ``omake clean``. This is not good in some situations
-# at linking.
-WithOCamlVeryClean() =
-    veryclean: 
-        rm -f *.cm* *.annot *.o *.a *.so *.exe *.byt *.opt *.run
-
 # Pa_ounit test
 # =======================================================================
 
 Plugins:      StdFiles (0.2)
 BuildType:    Custom (0.2)
 InstallType:    Custom (0.2)
-XCustomBuild: yes no | omake --install; PREFIX=$prefix omake
+XCustomBuild: cp OMakeroot.in OMakeroot; PREFIX=$prefix omake
 XCustomInstall: PREFIX=$prefix omake install
 XCustomUninstall: PREFIX=$prefix omake uninstall
 XCustomBuildClean: PREFIX=$prefix omake clean
 (* setup.ml generated for the first time by OASIS v0.3.0 *)
 
 (* OASIS_START *)
-(* DO NOT EDIT (digest: c4cf4e6a22c341d703049e05b4a1a37c) *)
+(* DO NOT EDIT (digest: 8bad12836552e93fd3f790c0c856a1b6) *)
 (*
    Regenerated by OASIS v0.3.0
    Visit http://oasis.forge.ocamlcore.org for more information and
    documentation about functions used in this file.
 *)
 module OASISGettext = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISGettext.ml" *)
+(* # 21 "src/oasis/OASISGettext.ml" *)
 
   let ns_ str =
     str
 end
 
 module OASISContext = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISContext.ml" *)
+(* # 21 "src/oasis/OASISContext.ml" *)
 
   open OASISGettext
 
 end
 
 module OASISString = struct
-(* # 1 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISString.ml" *)
+(* # 1 "src/oasis/OASISString.ml" *)
 
 
 
 end
 
 module OASISUtils = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISUtils.ml" *)
+(* # 21 "src/oasis/OASISUtils.ml" *)
 
   open OASISGettext
 
 end
 
 module PropList = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/PropList.ml" *)
+(* # 21 "src/oasis/PropList.ml" *)
 
   open OASISGettext
 
     let clear t =
       Hashtbl.clear t
 
-(* # 71 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/PropList.ml" *)
+(* # 71 "src/oasis/PropList.ml" *)
   end
 
   module Schema =
 end
 
 module OASISMessage = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISMessage.ml" *)
+(* # 21 "src/oasis/OASISMessage.ml" *)
 
 
   open OASISGettext
 end
 
 module OASISVersion = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISVersion.ml" *)
+(* # 21 "src/oasis/OASISVersion.ml" *)
 
   open OASISGettext
 
 end
 
 module OASISLicense = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISLicense.ml" *)
+(* # 21 "src/oasis/OASISLicense.ml" *)
 
   (** License for _oasis fields
       @author Sylvain Le Gall
 end
 
 module OASISExpr = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISExpr.ml" *)
+(* # 21 "src/oasis/OASISExpr.ml" *)
 
 
 
 end
 
 module OASISTypes = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISTypes.ml" *)
+(* # 21 "src/oasis/OASISTypes.ml" *)
 
 
 
 
   type plugin_data = (all_plugin * plugin_data_purpose * (unit -> unit)) list
 
-(* # 102 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISTypes.ml" *)
+(* # 102 "src/oasis/OASISTypes.ml" *)
 
   type 'a conditional = 'a OASISExpr.choices 
 
 end
 
 module OASISUnixPath = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISUnixPath.ml" *)
+(* # 21 "src/oasis/OASISUnixPath.ml" *)
 
   type unix_filename = string
   type unix_dirname = string
 end
 
 module OASISHostPath = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISHostPath.ml" *)
+(* # 21 "src/oasis/OASISHostPath.ml" *)
 
 
   open Filename
 end
 
 module OASISSection = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISSection.ml" *)
+(* # 21 "src/oasis/OASISSection.ml" *)
 
   open OASISTypes
 
 end
 
 module OASISBuildSection = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISBuildSection.ml" *)
+(* # 21 "src/oasis/OASISBuildSection.ml" *)
 
 end
 
 module OASISExecutable = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISExecutable.ml" *)
+(* # 21 "src/oasis/OASISExecutable.ml" *)
 
   open OASISTypes
 
 end
 
 module OASISLibrary = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISLibrary.ml" *)
+(* # 21 "src/oasis/OASISLibrary.ml" *)
 
   open OASISTypes
   open OASISUtils
 end
 
 module OASISFlag = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISFlag.ml" *)
+(* # 21 "src/oasis/OASISFlag.ml" *)
 
 end
 
 module OASISPackage = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISPackage.ml" *)
+(* # 21 "src/oasis/OASISPackage.ml" *)
 
 end
 
 module OASISSourceRepository = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISSourceRepository.ml" *)
+(* # 21 "src/oasis/OASISSourceRepository.ml" *)
 
 end
 
 module OASISTest = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISTest.ml" *)
+(* # 21 "src/oasis/OASISTest.ml" *)
 
 end
 
 module OASISDocument = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISDocument.ml" *)
+(* # 21 "src/oasis/OASISDocument.ml" *)
 
 end
 
 module OASISExec = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISExec.ml" *)
+(* # 21 "src/oasis/OASISExec.ml" *)
 
   open OASISGettext
   open OASISUtils
 end
 
 module OASISFileUtil = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/oasis/OASISFileUtil.ml" *)
+(* # 21 "src/oasis/OASISFileUtil.ml" *)
 
   open OASISGettext
 
 
 # 2142 "setup.ml"
 module BaseEnvLight = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseEnvLight.ml" *)
+(* # 21 "src/base/BaseEnvLight.ml" *)
 
   module MapString = Map.Make(String)
 
 
 # 2240 "setup.ml"
 module BaseContext = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseContext.ml" *)
+(* # 21 "src/base/BaseContext.ml" *)
 
   open OASISContext
 
 end
 
 module BaseMessage = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseMessage.ml" *)
+(* # 21 "src/base/BaseMessage.ml" *)
 
   (** Message to user, overrid for Base
       @author Sylvain Le Gall
 end
 
 module BaseEnv = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseEnv.ml" *)
+(* # 21 "src/base/BaseEnv.ml" *)
 
   open OASISGettext
   open OASISUtils
 end
 
 module BaseArgExt = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseArgExt.ml" *)
+(* # 21 "src/base/BaseArgExt.ml" *)
 
   open OASISUtils
   open OASISGettext
 end
 
 module BaseCheck = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseCheck.ml" *)
+(* # 21 "src/base/BaseCheck.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseOCamlcConfig = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseOCamlcConfig.ml" *)
+(* # 21 "src/base/BaseOCamlcConfig.ml" *)
 
 
   open BaseEnv
 end
 
 module BaseStandardVar = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseStandardVar.ml" *)
+(* # 21 "src/base/BaseStandardVar.ml" *)
 
 
   open OASISGettext
 end
 
 module BaseFileAB = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseFileAB.ml" *)
+(* # 21 "src/base/BaseFileAB.ml" *)
 
   open BaseEnv
   open OASISGettext
 end
 
 module BaseLog = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseLog.ml" *)
+(* # 21 "src/base/BaseLog.ml" *)
 
   open OASISUtils
 
 end
 
 module BaseBuilt = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseBuilt.ml" *)
+(* # 21 "src/base/BaseBuilt.ml" *)
 
   open OASISTypes
   open OASISGettext
 end
 
 module BaseCustom = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseCustom.ml" *)
+(* # 21 "src/base/BaseCustom.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseDynVar = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseDynVar.ml" *)
+(* # 21 "src/base/BaseDynVar.ml" *)
 
 
   open OASISTypes
 end
 
 module BaseTest = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseTest.ml" *)
+(* # 21 "src/base/BaseTest.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseDoc = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseDoc.ml" *)
+(* # 21 "src/base/BaseDoc.ml" *)
 
   open BaseEnv
   open BaseMessage
 end
 
 module BaseSetup = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/base/BaseSetup.ml" *)
+(* # 21 "src/base/BaseSetup.ml" *)
 
   open BaseEnv
   open BaseMessage
 
 # 4480 "setup.ml"
 module InternalConfigurePlugin = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/plugins/internal/InternalConfigurePlugin.ml" *)
+(* # 21 "src/plugins/internal/InternalConfigurePlugin.ml" *)
 
   (** Configure using internal scheme
       @author Sylvain Le Gall
 end
 
 module InternalInstallPlugin = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/plugins/internal/InternalInstallPlugin.ml" *)
+(* # 21 "src/plugins/internal/InternalInstallPlugin.ml" *)
 
   (** Install using internal scheme
       @author Sylvain Le Gall
 
 # 5233 "setup.ml"
 module CustomPlugin = struct
-(* # 21 "/somewhere/.share/projects/externals/oasis/_build/src/plugins/custom/CustomPlugin.ml" *)
+(* # 21 "src/plugins/custom/CustomPlugin.ml" *)
 
   (** Generate custom configure/build/doc/test/install system
       @author
             CustomPlugin.cmd_main =
               [
                  (OASISExpr.EBool true,
-                   ("yes",
-                     [
-                        "no";
-                        "|";
-                        "omake";
-                        "--install;";
-                        "PREFIX=$prefix";
-                        "omake"
+                   ("cp",
+                     ["OMakeroot.in"; "OMakeroot;"; "PREFIX=$prefix"; "omake"
                      ]))
               ];
             cmd_clean =
                CustomPlugin.cmd_main =
                  [
                     (OASISExpr.EBool true,
-                      ("yes",
+                      ("cp",
                         [
-                           "no";
-                           "|";
-                           "omake";
-                           "--install;";
+                           "OMakeroot.in";
+                           "OMakeroot;";
                            "PREFIX=$prefix";
                            "omake"
                         ]))
                CustomPlugin.cmd_main =
                  [
                     (OASISExpr.EBool true,
-                      ("yes",
+                      ("cp",
                         [
-                           "no";
-                           "|";
-                           "omake";
-                           "--install;";
+                           "OMakeroot.in";
+                           "OMakeroot;";
                            "PREFIX=$prefix";
                            "omake"
                         ]))
           };
      oasis_fn = Some "_oasis";
      oasis_version = "0.3.0";
-     oasis_digest = Some "8\\;K\168\015\194\215zF\251\221\000\2541\255";
+     oasis_digest = Some "s\159\140Q\159\021\028w\029&'c\018\152\026(";
      oasis_exec = None;
      oasis_setup_args = [];
      setup_update = false;
 
 let setup () = BaseSetup.setup setup_t;;
 
-# 5590 "setup.ml"
+# 5580 "setup.ml"
 (* OASIS_STOP *)
 let () = setup ();;
                 let dirname = Filename.dirname p in
                 let destfile = dirname ^/ Filename.basename spotspit in 
                 let need_to_copy = 
-                  Sys.file_exists destfile && cmp spotspit destfile <> `Same
+                  not (Sys.file_exists destfile && cmp spotspit destfile = `Same)
                 in
-                if not need_to_copy then 
+                if not need_to_copy then
                   Hashset.add copied p                
                 else begin
                   match 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.