Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using two temporary directories for the generation of “ocamlbuild_pack.cm*” #248

Open
elfring opened this issue Jul 7, 2017 · 1 comment
Labels

Comments

@elfring
Copy link

elfring commented Jul 7, 2017

The directory “tmp” is created by two recipes in the make script which is used so far.
I imagine that this approach can become insufficient in the use case that a software build would be attempted in parallel.

How do you think about the possibility to work with two temporary directories for the generation of the desired file variant “ocamlbuild_pack.cm[ox]”?

@whitequark
Copy link
Member

Sure, makes sense.

elfring added a commit to elfring/ocamlbuild that referenced this issue Jul 17, 2017
…on working together with Autoconf and Automake

The provided make script contained restrictions for storage locations
according to the combination of source files and the corresponding generation
of further file variants. These software limitations were lifted by the
addition of two build scripts which use functionality from the tools
“Autoconf” and “Automake” to some degree.

Some build settings were adjusted in the way that make rules are automatically
constructed by special function calls.
The dependency on the tool “GNU Make” was expressed then.


This development result is published despite of known open issues.

Examples:

1) Generation approach for the manual with the version “OCaml 4.03.0-3.1”
   on an openSUSE Tumbleweed system

   elfring@Sonne:~/Projekte/Bau/OCamlbuild> rm -f man/options_man.byte && LANG=C OCAMLRUNPARAM=b make man/ocamlbuild.options.1
   …
   man/options_man.byte > man/ocamlbuild.options.1
   Fatal error: exception Invalid_argument("String.sub / Bytes.sub")
   Called from unknown location
   Called from unknown location
   make: *** [GNUmakefile:859: man/ocamlbuild.options.1] Error 2

2) Difficulties with parallel software builds

   A command like “ocamlc.opt -pack” will be called by a make rule.
   It has got the property that three output files can be generated.
   Such a detail causes recurring challenges for the safe application of
   the involved software so far.
   https://www.cmcrossroads.com/article/rules-multiple-outputs-gnu-make
   https://lists.gnu.org/archive/html/help-make/2014-11/msg00013.html

3) The test scripts for this evolving tool will need related updates.
   They were left over for further development considerations.

4) The selection of default values for a working build configuration could
   eventually become more convenient and safer then.

Signed-off-by: Markus Elfring <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants