Skip to main content

problem with building RI stack on linux

8 replies [Last post]
yelin
Offline
Joined: 2010-06-30

Hi,

I'm new to OCAP project. I followed the steps below to build RI stack on a fedora linux from source code:
https://devzone.cablelabs.com/widget/web/ocapri/1/-/wiki/OCAP%20RI%20Pub...

However, when I did the second step of "Building Everything for the First Time", I encountered an error thrown by ant. Please see the following for my debugging information:

==============
.....
[exec] make: *** No rule to make target 'obj/bcattr.o', needed by '/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jvm/phoneME/phoneME/build/mpe-x86-Linuxgcc/./bin/libcvm.so'. Stop.

BUILD FAILED
/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/build.xml: 302: The following error occurred while executing this line:
/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jvm/build.xml: 53: The following error occurred while executing this line:
/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jvm/phoneME/build.xml: 215: exec returned: 2
===============

I went back to /home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jvm/phoneME/build.xml and line 215 is the second line in the following ant code snippet:
===============

===============

It seems that I didn't have a makefile, but I'm not sure. Could anyone here help me out? Many thanks!!!!!!!!

Yenan

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
yelin
Offline
Joined: 2010-06-30

Follow-up questions on building RI stack on 32-bit Fedora machine

Ooops .. sorry I didn't notice that my follow-up question has been posted above. Sorry for that.

Message was edited by: yelin

mkorzen
Offline
Joined: 2008-03-05
yelin
Offline
Joined: 2010-06-30

To wmunsil and mkorzen: Thanks for your quick response. The workaround works.

After I re-ran "ant", the previous error no longer existed, but I got the following error. This time I guess I missed some header file for "dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.c", but I don't know where to find it. (I checked the svn repository but only saw .c files, no header files.)
=====================
[exec] Compiling dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.c into /home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/gen/CableLabs/simulator/Linux/debug/jni/./dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.o
[exec] gcc -c -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jni/include/linux/include -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/mpe/os/RI_Common/include -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/mpe/os/RI_Common/include/dfb -DMPE_FEATURE_DVR -DMPE_FEATURE_FRONTPANEL -DMPE_FEATURE_DSEXT -DMPE_FEATURE_HN -DFTABLE=mpe_ftable -DMPE_REMOTE_REPEAT_RATE=4 -DMPE_REMOTE_REPEAT_DELAY=1 -DMPE_FEATURE_DEBUG -I/home/yelin/CableLabsRI/trunk/ri/RI_Platform/include -DMPE_LINUX -D_XOPEN_SOURCE=500 -D_GNU_SOURCE -DMPE_FEATURE_THREAD_SUSPEND -DMPE_MEM_HANDLES -DMPE_LITTLE_ENDIAN -DHAVE_STDINT_H -g -O0 -Wall -Werror -I"/usr/java/jdk1.6.0_20/include" -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jni/include -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/gen/CableLabs/simulator/Linux/debug/java/javah -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/mpe/include -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/mpe/mgr/include -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/mpe/os/include -I/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/mpe/os/RI_Linux/include dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.c -o /home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/gen/CableLabs/simulator/Linux/debug/jni/./dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.o
[exec] dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.c:32:70: error: org_cablelabs_impl_manager_recording_RecordedServiceImpl.h: No such file or directory
[exec] make[1]: *** [/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/gen/CableLabs/simulator/Linux/debug/jni/./dvr/org_cablelabs_impl_manager_recording_RecordedServiceImpl.o] Error 1
[exec] make[1]: Leaving directory `/home/yelin/CableLabsRI/trunk/ri/ODLSrc/OCAP-1.0/jni/src'
[exec] make: *** [src] Error 2
======================

Could you tell me where to load the header file or is there any workaround?

Thanks,

Yenan

mkorzen
Offline
Joined: 2008-03-05

It looks like the JNI headers had not been generated. Did you re-run ant from the jvm subdirectory, or directly from $OCAPROOT?
If you have a clean check-out of the repository and have already built the platform, all you need to do is "cd $OCAPROOT && ant; ant" and everything should build correctly (the "; ant" is a workaround for the build system problem described in IT #47).

yelin
Offline
Joined: 2010-06-30

I guess I did something wrong in the middle, so I deleted the whole CableLabsRI file and checked out a clean version from remote server. I built the platform as told in the instruction and "cd $OCAPROOT && ant; ant" but missing header file problem still exists.

I used ant 1.7 so i modified the check version part of "build.xml" under OCAP-1.0 to allow a lower version of ant. That was the only thing I did differently from what I was told in the instruction.

Is there any other possible cause of this problem?

Thanks,

Yenan

greg80303
Offline
Joined: 2008-07-03

Ant 1.8 is required. Our build system uses features that are only available in 1.8 -- that is why we put the check in the build system. More specifically, the feature that enables/disables building of the various OCAP extensions is controlled by this Ant feature. This is most certainly the cause of your problem.

You don't have to use the Fedora package manager to install Ant. Just download the Ant distribution and unzip it somewhere (like your home directory). Then just create an alias in your shell to make sure that the new ant is called.

G

yelin
Offline
Joined: 2010-06-30

Thanks Greg! I used ant 1.8 and successfully built the stack.

wmunsil
Offline
Joined: 2009-07-05

This is a known issue. Please simply re-run "ant". The build should then complete successfully.