Page 1 of 1

Compiling the source code

Posted: Thu Jul 19, 2007 12:46 pm
by nviraj
Hi All,

I am newbie to source code for OpenEMM. I would like to know if anyone has a "How To" document on Compiling OpenEMM source, especially for non-Java code (Java code is simple enough as it uses ant). Also, what is the procedure to build the installable "rpm" from the source code?

Any pointers for these queries will be appreciated.

Regards

Posted: Tue Jul 24, 2007 2:58 pm
by tgilbert328
Could I get your help in compiling a java class? I am useless in java and even though I installed ant, I am having a lot of trouble getting a compile of a single .java file.

If your able, let me know and we can chat offline.

Tim

Posted: Wed Jul 25, 2007 12:08 pm
by nviraj
First you need to download the following tools or source code:

OpenEMM-5.1.0.source.zip resin-3.0.22.zip
You may also need an installation of OpenEMM for some jar files used for compiling src. I have that at /home/openemm

These should be installed and setup.

OpenEMM src should have following:

build.xml EMMBuild.properties lib sql
deploy EMMBuild.properties.default.orig resin src

I copied /home/openemm/webapps/openemm/htdocs/WEB-INF/lib jar files to /home/coder/downloads/OpenEMM-5.1/lib
If you look at src file "OpenEMM-5.1/lib/required-jars.txt" there are list of jar files specified.

Also added ojdbc14.jar to /home/coder/downloads/OpenEMM-5.1/lib
In "OpenEMM-5.1" src directory, copied EMMBuild.properties.default to EMMBuild.properties

Modified EMMBuild.properties by specifying paths to resin, java home etc


After this, if you go to "OpenEMM-5.1" src directory and type "ant", it should build the java src code.

Hope this helps

Posted: Wed Jul 25, 2007 2:23 pm
by tgilbert328
Thank you! I will give it a shot and let you know.

Posted: Tue Jul 15, 2008 5:38 pm
by elecnix
I'm also interested in knowing how to generate a release tarball from the source tarball.

The Ant 'deploy' target creates a 'deploy' directory, but it has quite a different structure than what is in the binary release tarball, and is missing all the scripts. It looks more like the 'core' webapp. According to build.xml, this is for deploying to 'Test-Engine'.

I tried to build the C sources on Ubuntu 7.10 and had to install (using apt-get) libmilter-dev and libslang1-dev.

Also, I installed sa-1.2.6 as recommended by the GNUMakefile, because the Debian package libossp-sa-dev didn't provide "sa".

The only thing I wasn't able to build was src/c/bav:

Code: Select all

gcc -L../lib -L/usr/local/lib -L/usr/lib/libmilter -pthread bav.o cfg.o -o bav -lagn -lmilter -lsa
cfg.o: In function `parse_config':
cfg.c:(.text+0x75): undefined reference to `set_alloc'
cfg.c:(.text+0x1b3): undefined reference to `set_add'
cfg.o: In function `cfg_free':
cfg.c:(.text+0x35e): undefined reference to `set_free'
cfg.o: In function `cfg_valid_address':
cfg.c:(.text+0x4f7): undefined reference to `set_find'
../lib/libagn.a(map.o): In function `map_alloc':
map.c:(.text+0x281): undefined reference to `hash_size'
../lib/libagn.a(map.o): In function `map_gadd':
map.c:(.text+0x3d8): undefined reference to `hash_value'
../lib/libagn.a(map.o): In function `map_add':
map.c:(.text+0x503): undefined reference to `hash_value'
../lib/libagn.a(map.o): In function `map_delete':
map.c:(.text+0x6dc): undefined reference to `hash_value'
../lib/libagn.a(map.o): In function `map_gfind':
map.c:(.text+0x78e): undefined reference to `hash_value'
../lib/libagn.a(map.o): In function `map_find':
map.c:(.text+0x803): undefined reference to `hash_value'
I see few 'build.bat' files, which indicates that it may be built with Visual Studio on Windows. Even then, it has a hardcoded path of 'C:\Programme\Microsoft Visual Studio 8' which would require customization if you wanted to use those scripts.

There appears to be a missing script that puts everything together into a binary release after everything was built.

Re: Compiling the source code

Posted: Wed Jan 21, 2015 8:47 am
by Mishima01
Hi guys,

Is it possible to write custom webservice methods for OpenEMM. It would make my work much easier.
If it is possible could you please tell me where I can add my own functionality in the source code?