[m-rev.] for review: clarify how to build and install Mercury in C#/Java grades

Julien Fischer jfischer at opturion.com
Sat Aug 9 17:03:55 AEST 2025


For review by anyone.

-------------------

Clarify how to build and install Mercury in the C#/Java grades.

Despite using --use-mmc-make when we build Mercury in the C# or Java grades, we
still need to run the depend target in order ensure that its various other
actions take place (e.g. copying files from the mdbcomp directory to the slice
directory). Not explicitly invoking the depend target, can result in timing
related problems, especially when using parallel builds. Modify the
documentation for building C#/Java compilers to include an explicit depend
step.

README.CSharp.md:
README.Java.md:
    As above.

Julien.

diff --git a/README.CSharp.md b/README.CSharp.md
index 6e0850248..aea64f15a 100644
--- a/README.CSharp.md
+++ b/README.CSharp.md
@@ -224,17 +224,21 @@ However, if you want to give it a try, the
required steps are:

     to a file named `Mmake.params` at the top-level of the source tree.

-4. Begin the build process using the following command:
+4. Build the dependencies using the following command:

-       $ mmake --use-mmc-make GRADE=csharp
+       $ mmake --use-mmc-make depend GRADE=csharp
+
+5. Compile using the following command:

-   The C# version of the compiler MUST be built using `mmake`'s
`--use-mmc-make`
-   option; the build will not work otherwise. Setting the variable
`GRADE` in the
-   invocation of mmake is currently necessary in order to avoid some variable
-   definition ordering problems in `Mmake.workspace`.
+       $ mmake --use-mmc-make GRADE=csharp

-5. To install the C# version of the compiler, do:
+6. To install the C# version of the compiler, do:

        $ mmake --use-mmc-make install GRADE=csharp

+The C# version of the compiler MUST be built using `mmake`'s `--use-mmc-make`
+option; the build will not work otherwise. Setting the variable `GRADE` in the
+invocations of mmake is currently required to avoid some variable definition
+ordering problems in `Mmake.workspace`.
+
 -----------------------------------------------------------------------------
diff --git a/README.Java.md b/README.Java.md
index 3475b2070..3bfa3ef68 100644
--- a/README.Java.md
+++ b/README.Java.md
@@ -267,17 +267,21 @@ However, if you want to give it a try, the
required steps are:

    to a file named `Mmake.params` at the top-level of the source tree.

-4. Begin the build process using the following command:
+4. Build the dependencies using the following command:
+
+        $ mmake --use-mmc-make depend GRADE=java
+
+5. Compile using the following command:

         $ mmake --use-mmc-make GRADE=java

-   The Java version of the compiler MUST be built using `mmake`'s
`--use-mmc-make`
-   option; the build will not work otherwise. Setting the variable
`GRADE` in the
-   invocation of `mmake` is currently necessary in order to avoid variable
-   definition ordering problems in `Mmake.workspace`.
+6. To install the Java version of the compiler, do:

-5. To install the Java version of the compiler, do:
+        $ mmake --use-mmc-make install GRADE=java

-       $ mmake --use-mmc-make install GRADE=java
+The Java version of the compiler MUST be built using `mmake`'s `--use-mmc-make`
+option; the build will not work otherwise. Setting the variable `GRADE` in the
+invocations of `mmake` is currently required to avoid variable definition
+ordering problems in `Mmake.workspace`.

 -----------------------------------------------------------------------------


More information about the reviews mailing list