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

How to build head of master? #172

Open
psilord opened this issue Sep 21, 2015 · 0 comments
Open

How to build head of master? #172

psilord opened this issue Sep 21, 2015 · 0 comments

Comments

@psilord
Copy link

psilord commented Sep 21, 2015

Hello,

I'm a new user to Europa and trying to build it and embed it into
another system via the client APIs.

The documentation for how to build europa master head seems out of
date and incomplete. Also, the build system seems skewed with respect
to certain library locations and whatnot.

Here is my build procedure:

I've installed all the prerequisites, but I couldn't find PLASMA. I
can't tell if PLASMA is integrated into Europa masters HEAD, or what.
I also have my own boost, but there didn't seem to be a requirement
for a version.

Anyway this produces something that looks like it compiled all the way:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export BOOST_ROOT=$HOME/boost_1_51_0/local/include
export EUROPA_HOME=$HOME/src/europa
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${EUROPA_HOME}/lib

<in $HOME/src>
git clone https://github.com/nasa/europa

cd europa
cmake .
make install

The above appears to complete and install it in the directory in
which I checked it out.

If I had run ant after the checkout instead of the above cmake and
make install, I would have gotten this error:

Buildfile: /home/pkeller/src/europa/build.xml

findPlatform:
     [echo] os.name='Linux' os.arch='amd64'
     [echo] Running build for : family=unix os=linux 64bit=true

init:

init-unix:

build-cpp:

build-cpp-unix:
     [echo] jam   -s64BIT=1 -sLOGGER_TYPE= -sVARIANTS=DEV -sLIBRARIES=SHARED -sPLATFORM_FLAGS="" -sLINKLIBS="" -j1 build
     [exec] loggerFiles =  Debug.cc 
     [exec] don't know how to make <Utils!base>TestData.cc

<and a lot more compiling, but failing to find libraries that didn't get built>
.....

and the build progressively fails to make libraries because most
appear to depend upon the missing file above.

Here is an example of the build with the failures denoted.

Buildfile: /home/pkeller/src/europa/build.xml

findPlatform:
     [echo] os.name='Linux' os.arch='amd64'
     [echo] Running build for : family=unix os=linux 64bit=true

init:

init-unix:

build-cpp:

build-cpp-unix:
     [echo] jam   -s64BIT=1 -sLOGGER_TYPE= -sVARIANTS=DEV -sLIBRARIES=SHARED -sPLATFORM_FLAGS="" -sLINKLIBS="" -j1 build
     [exec] loggerFiles =  Debug.cc 
     [exec] don't know how to make <Utils!base>TestData.cc
     [exec] ...patience...
     [exec] ...found 1917 target(s)...
     [exec] ...can't find 1 target(s)...
     [exec] ...can't make 11 target(s)...
     [exec] ...skipped <Utils!base>TestData_g.o for lack of <Utils!base>TestData.cc...
     [exec] ...skipped libUtils_g.so for lack of <Utils!base>TestData_g.o...
     [exec] ...skipped libConstraintEngine_g.so for lack of libUtils_g.so...
     [exec] ...skipped libPlanDatabase_g.so for lack of libConstraintEngine_g.so...
     [exec] ...skipped libRulesEngine_g.so for lack of libPlanDatabase_g.so...
     [exec] ...skipped libTemporalNetwork_g.so for lack of libPlanDatabase_g.so...
     [exec] ...skipped libNDDL_g.so for lack of libRulesEngine_g.so...
     [exec] ...skipped libSolvers_g.so for lack of libRulesEngine_g.so...
     [exec] ...skipped libResource_g.so for lack of libTemporalNetwork_g.so...
     [exec] ...skipped libANML_g.so for lack of libNDDL_g.so...
     [exec] ...skipped libSystem_g.so for lack of libANML_g.so...
     [exec] ...skipped 11 target(s)...

BUILD FAILED
/home/pkeller/src/europa/build.xml:206: exec returned: 1

Total time: 0 seconds

Using the first build method, if I try to "makepproject foo" and
built it with just "make" because I'm more interested in the C++
interface instead of the Java interface, I get this:

CMake Error at CMakeLists.txt:5 (include):
  include could not find load file:

    /home/pkeller/src/europa/Europa2.cmake


-- Configuring incomplete, errors occurred!
See also "/home/pkeller/src/foo/CMakeFiles/CMakeOutput.log".

So it seems that the method I used to build it didn't do everything to create
an environment for building a new project.

If I hack the install, adding a plausible Europa2.cmake file in
${EUROPA_HOME}, a $EUROPA_HOME/lib and $EUROPA_HOME/include directory,
and populating those directories with plausible files found in the
git repo, I end up getting examples that execute, but fails to link
with the psengine jar file at runtime dying with an error.

So, clearly I've gone off the rails....

May I have some assistance in compiling Europa, the examples, and a simple
makeproject using the head of master?

It turns out that I really want to use the temporal network code paths, so
if those hadn't changed from an earlier release I'm happy to regress in
version to something that does compile.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant