On 30/4/21 1:15 am, [email protected] wrote:
>
>
>> On Apr 30, 2021, at 05:03 , [email protected] wrote:
>>
>> Can I override what to use as "cmake" in RSB to specify "cmake3"?
>>
>>> On Apr 30, 2021, at 04:41 , Peter Dufault <[email protected]> wrote:
>>>
>>> I verified my environment is squeaky-clean with a simple path and no
>>> environment variables set that affect RTEMS or "make".
>>
>
> I need help figuring out how to setup rtems-source-builder, SOEM, and cmake.
> I got it to "work" but it's mis-configured. At first it is not finding
> header files (is it looking at the Linux headers?), then it installs SOEM in
> the wrong place, etc. I can get the build and install to "work" by
> re-running commands in a shell script - the second time a command is run it
> behaves differently.
>
> - *Notes*
> -- This started when I updated SOEM and needed to change to "cmake3".
> -- After the following convoluted process the testing I've done on the
> results are OK.
>
> - To simplify my path I make it simple except I add a directory with only a
> "cmake" bash script: "cmake3 $*" in order to pick up cmake3.
Maybe the --macros argument can help. Create a file `xyz.txt` containing ...
__cmake: exe, optional, 'cmake3'
then try running with `--macros=xyz.txt` If the recipe for the build using cmake
uses `%{__cmake}` then this may work. I have not tested any of this. :)
Chris
>
> - The first time I run "sb-set-builder" the SOEM build fails because it can't
> find <net/bpf.h>. This is just after it compiled a C file that includes
> <net/if.h>. I'm not sure where it is looking for the headers, I'd expect it
> would fail earlier if it was trying to use Linux headers, it's all the way to
> the last file.
>
> - I then run the do-build script sb-set-builder created and it builds SOEM
> *but it installs it in the wrong place*.
> -- The do-build script is in
> "${GITDIR}/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/do-build"
> -- "do-build" installs SOEM in in
> "${GITDIR}/rtems-source-builder/rtems/build/tmp/soem-powerpc-rtems6-1-root-dufault/opt/flatland/opt/rtems-6"
> instead of "/opt/flatland/opt/rtems-6".
>
> - I then go to the generated directory
> "${GITDIR}/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/build-xc"
> and type "make install" The make succeeds, and *it installs SOEM in the
> correct place* and SOEM is "successfully" built and installed.
>
> - The last nit is that when I try to build the SOEM examples I need to export
> LDFLAGS="-lrtemsdefaultconfig -lm" to get the SOEM examples to configure.
> *Note* this was an issue before I switched to cmake3, this one is not new.
>
>
> I hope this gives someone enough clues to suggest what must be done to set
> source builder up correctly. For reference here's the script.
>
> #!/bin/sh
> set -e
> # Script to get SOEM to build and install "properly". I just need to be
> insistent.
>
> HERE=$(pwd)
> # Clean up environment rsb-overrides only has a cmake shell script that is
> "cmake $*".
> export PATH=${HOME}/bin/rsb-overrides:/usr/bin:/usr/sbin:/bin:/sbin
> unset LD_IBRARY_PATH
>
> export RTEMS_GIT=/home/dufault/development/rtems
> export RTEMS_VER=6
> export RTEMS_SB=${RTEMS_GIT}/rtems-source-builder
> export RTEMS_SB_BUILD=${RTEMS_SB}/rtems/build
> export RTEMS_TOOLS=/opt/flatland/opt/rtems-${RTEMS_VER}
> export RTEMS_ARCH=powerpc
> export RTEMS_BSP=beatnik
> # "soem-rtems" fetches waf-2.0.4.
> SOEM_WAF=waf-2.0.4
>
> SOEM_TIDY_UP="\
> ${RTEMS_TOOLS}/share/rtems/rsb/soem-${RTEMS_ARCH}-rtems${RTEMS_VER}-1.txt
> \
> ${RTEMS_TOOLS}/share/rtems/rsb/soem-${RTEMS_ARCH}-rtems${RTEMS_VER}-1.xml
> \
>
> ${RTEMS_TOOLS}/${RTEMS_ARCH}-rtems${RTEMS_VER}/${RTEMS_BSP}/lib/share/soem \
>
> ${RTEMS_TOOLS}/${RTEMS_ARCH}-rtems${RTEMS_VER}/${RTEMS_BSP}/lib/include/soem"
>
>
> # We have this setup: ${RTEMS_GIT}
> # |-- soem-rtems
> # |-- rtems
> # |-- rtems-source-builder
>
> # First tidy-up so we always start in the same state.
> rm -rf ${RTEMS_SB_BUILD} ${SOEM_TIDY_UP}
> cd ${RTEMS_GIT}/soem-rtems
> if [ ! -e ${SOEM_WAF} ]; then
> wget -P . https://waf.io/${SOEM_WAF}
> chmod u+x ${SOEM_WAF}
> git submodule init
> git submodule update
> else
> ./${SOEM_WAF} distclean
> fi
>
> cd ${RTEMS_SB}/rtems
>
> RTEMS_SB_DEBUG="--no-clean --jobs=1"
>
> # Now configure to build SOEM.
> # This will fail with:
> #
> ${RTEMS_SB_BUILD}soem-${RTEMS_ARCH}-rtems${RTEMS_VER}-1/soem/oshw/rtems/nicdrv.c:37:10:
> # fatal error: net/bpf.h: No such file or directory
>
> if ${RTEMS_SB}/source-builder/sb-set-builder \
> --log=log_${RTEMS_ARCH}_soem \
> --prefix=${RTEMS_TOOLS} \
> --with-tools=${RTEMS_TOOLS} \
> --host=${RTEMS_ARCH}-rtems${RTEMS_VER} \
> --with-rtems-bsp=${RTEMS_BSP} \
> ${RTEMS_SB_DEBUG} \
> net/soem ; \
> then
> echo 2>&1 "*************************"
> echo 2>&1 "************************* Success with sb-set-builder for
> net/soem? But I expect failure!"
> echo 2>&1 "*************************"
> exit 1
> else
> echo "*************************"
> echo "************************* sb-set-builder failed because it
> can't find <net/bpf.h>. Build again..."
> echo "*************************"
> fi
>
> # Now we can manually do the build to finish the build.
> # This won't quite work either, because it installs SOEM in the wrong place.
> ${RTEMS_SB_BUILD}/soem-${RTEMS_ARCH}-rtems${RTEMS_VER}-1/do-build
>
> echo "*************************"
> echo "************************* Finished do-build but it installed in the
> wrong place. Redo install..."
> echo "*************************"
>
> # so to finish up and install properly in the prefix
> # I need to do another "make install" in the build-xc directory.
> cd ${RTEMS_SB_BUILD}/soem-${RTEMS_ARCH}-rtems${RTEMS_VER}-1/build-xc/
> make install
>
> # SOEM is "installed". Now I can build the RTEMS SOEM examples.
>
> cd ${RTEMS_GIT}/soem-rtems
>
> export LDFLAGS="-lrtemsdefaultconfig -lm"
>
> echo "*************************"
> echo "************************* XXX Why do I need to set LDFLAGS to
> ${LDFLAGS} before the ./${SOEM_WAF} configure?"
> echo "*************************"
>
> ./${SOEM_WAF} configure \
> --prefix=${RTEMS_TOOLS} \
> --rtems-bsps=${RTEMS_ARCH}/${RTEMS_BSP} \
> --rtems-version=${RTEMS_VER}
>
> ./${SOEM_WAF}
>
> echo "*************************"
> echo "************************* Done!"
> echo "*************************"
>
>
> Peter
> -----------------
> Peter Dufault
> HD Associates, Inc. Software and System Engineering
>
> This email is delivered through the public internet using protocols subject
> to interception and tampering.
>
>
>
> _______________________________________________
> devel mailing list
> [email protected]
> http://lists.rtems.org/mailman/listinfo/devel
>
_______________________________________________
devel mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/devel