Summary: This uses opam.lock which is less likely to break due to external opam changes.
Reviewed By: cristianoc
Differential Revision: D5208622
fbshipit-source-id: af6f03c
Summary: This makes the build less likely to break because of package upgrades in opam.
Reviewed By: mbouaziz
Differential Revision: D4937908
fbshipit-source-id: 5ce9ec7
Summary:
Opam can give cryptic errors when all you need to do is `opam update`, so try
that for the user.
Reviewed By: mbouaziz
Differential Revision: D4867878
fbshipit-source-id: f740b13
Summary:
This enables the following workflow:
```
$ ./build-infer.sh
[...]
$ opam upgrade # takes infer dependencies into account
```
To do so, we install a temporary `infer-deps-XXXX` package as before (the temp
name is because opam thinks there's nothing to do otherwise), then we install
an `infer-deps` package permanently.
Reviewed By: mbouaziz
Differential Revision: D4867195
fbshipit-source-id: da806f9
Summary:
When invoking `./build-infer.sh java`, there is no need to update the facebook-clang-plugins submodule that is done as part of the `autogen.sh` script. The submodule update takes a very long time and can be skipped when building only for java
Closes https://github.com/facebook/infer/pull/557
Reviewed By: dkgi
Differential Revision: D4387800
Pulled By: sblackshear
fbshipit-source-id: 1662f7b
Summary:
If ocaml is not installed (or if homebrew has sandboxed it out), `opam
init` fails unless passed `--compiler`.
Reviewed By: sblackshear, jvillard
Differential Revision: D3927532
fbshipit-source-id: d2fbec9
Summary:
- Copy the opam file to an empty directory and tell opam to install the deps of that. This way, we save an rsync of the whole infer/ directory.
- Enable configure options coming from the outside via INFER_CONFIGURE_OPTS.
- opam pin reason from a newer version with the correct dependencies for reason
- Also cleanup the code a bit
Reviewed By: jberdine
Differential Revision: D3620205
fbshipit-source-id: 5749039
Summary:
build-infer.sh script will create separate switch infer-4.02.3 and install all infer's deps there (including reason)
With this change users won't have to run opam install commands directly
Reviewed By: jvillard
Differential Revision: D3508897
fbshipit-source-id: 9f8e741
Summary:
Build everything at once all the time. This removes the need for multiple
directories, which were a hassle to begin with.
This removes the `java`, `clang`, and `llvm` targets in various Makefiles as
well.
Reviewed By: jberdine
Differential Revision: D3317230
fbshipit-source-id: 8e86140
Summary:public
Use getconf to compute NCPU as it is uniform across platforms.
Use result in several places to avoid fork bombs. I routinely see
errors about fork running out of memory when building e.g. the clang
plugin.
Reviewed By: jvillard
Differential Revision: D3148970
fb-gh-sync-id: 6d071c9
fbshipit-source-id: 6d071c9
Summary:
fixes#267.
By calling opam with the --shell=bash in the script I don't get the errors I had before.
The new line I added in the docker/README.md was so the list would display correctly when rendered.
Closes https://github.com/facebook/infer/pull/272
Reviewed By: jberdine
Differential Revision: D2916859
Pulled By: jvillard
fb-gh-sync-id: 4243f79
shipit-source-id: 4243f79
Summary:
public
Because we ran `./configure` *after* checking if clang was to be compiled, we
could fail mysteriously if `shasum` was not present. Now, we fail at the
`./configure` step with a clear error message.
closes#275
Reviewed By: akotulski
Differential Revision: D2921841
fb-gh-sync-id: b8edd8b
shipit-source-id: b8edd8b
Summary:
public
This fixes two things:
- `make -j9000` now works without crashing
- `make -C infer/src clang java` followed by `make -C infer/src clang` results
in a cached build the second time. Previously, a bug in ocamlbuild meant that
building infer/java would stomp over some files used by infer/clang, hence
infer/clang would get partially recompiled. More generally, alternating
between targets, or simply repeatedly calling `make` would result in unecessary
rebuilds.
Reviewed By: akotulski
Differential Revision: D2765544
fb-gh-sync-id: ecffdee
Summary:
public
This configure option disables building the java analysis and the associated
checks.
Refactor infer/src/Makefile.in to better isolate the Java-specific ocamlfind
dependencies.
Reviewed By: jeremydubreil
Differential Revision: D2712921
fb-gh-sync-id: 08077c2
Summary:
public
The instructions to install opam from the web on linux were not enough:
you need to install opam somewhere on the PATH. Moreover, the wget
command could erase "opam" if launched from the infer repo, which
already has an "opam" file.
./build-infer.sh's "opam init" command would fail if ocaml was not already
installed, instead of installing a default compiler.
Finally, check that ocamlfind is installed using the same logic as other
ocamlfind packages, to get an error message explaining how to get it
using opam if it's not installed, instead of just a failure.
Reviewed By: jeremydubreil
Differential Revision: D2760678
fb-gh-sync-id: 678178e
Summary:
public
This option disables the building of the C/C++/ObjC analyzers and the
associated autoconf checks.
Reviewed By: jeremydubreil
Differential Revision: D2712835
fb-gh-sync-id: f766ec2
Summary:
public
Remove ./compile-fcp.sh script and put these functionalities inside the
toplevel Makefile.
NOTE: this will cause a recompilation of clang. To avoid this, run:
- on macos:
./autogen.sh
cd facebook-clang-plugins/clang/
shasum -a 256 -p ./setup.sh src/clang-snapshot-20-11-15.tar.xz > installed.version
- on linux:
./autogen.sh
cd facebook-clang-plugins/clang/
sha256sum ./setup.sh src/clang-snapshot-20-11-15.tar.xz > installed.version
Reviewed By: jeremydubreil
Differential Revision: D2703948
fb-gh-sync-id: 721bb03