There appears to be some flakiness around building the project. I ended up directly calling make <make job> and specifying what exactly I wanted to build due to issues I had will calling make against the highest level Makefile. Even when doing this though, some of the make jobs would fail but calling it again would generate the binary I needed. For example this is what I have in my Dockerfile:
WORKDIR /tmp/GMSEC_API
RUN make check_support -j8
RUN make build -j8
RUN make library -j8
RUN make mw_wrappers -j8; exit 0
RUN make tools -j8
RUN make env_val -j8
RUN make java_api -j8; make java_api -j8; exit 0
RUN make perl_api -j8; make perl_api -j8; exit 0
RUN make python3_api -j8; make python3_api -j8; exit 0
RUN cd wrapper/artemis && make -j8
RUN make install
As you can see I have some where I call the make job twice in a row because the first time would fail, the second time would generate the binaries, but I added exit 0 at the end because they would still error out in some cases. Also I had to go into wrapper/artemis directory and build it directly as it was looking for artifacts that I think got deleted in another make job.
I built GMSEC_API 5.2 from source code on a UBI8 minimal image, and there appears to be issues and assumptions made in the build environment that are not documented or are unclear. For example I didn't realize that
SWIG_HOMEwas supposed to point at the path to the swig binary until I read how it was being used in the associatedMakefile.There appears to be some flakiness around building the project. I ended up directly calling
make <make job>and specifying what exactly I wanted to build due to issues I had will callingmakeagainst the highest levelMakefile. Even when doing this though, some of the make jobs would fail but calling it again would generate the binary I needed. For example this is what I have in my Dockerfile:As you can see I have some where I call the make job twice in a row because the first time would fail, the second time would generate the binaries, but I added
exit 0at the end because they would still error out in some cases. Also I had to go intowrapper/artemisdirectory and build it directly as it was looking for artifacts that I think got deleted in another make job.