List of forums • View recent posts • View recent comments •
• How to Use These Forums • Go to daisy.org
Numerous problems when compiling AMIS from source
Hi,
I've been trying to compile AMIS from source (using MS Visual Studio 9 on Vista) for a week now and I've ran into many, many issues.
Firstly, the "building AMIS" doc states that Xerces V2.8 should be compiled and the dll and lib files placed into the AMIS bin and lib directories. However, a note on the wiki states that AMIS has been updated to use Xerces v3, and the Xerces lib and dll files are already in the AMIS bin and lib directories? So does this no longer apply, does Xerces still need to be compiled, and if so what versions, and into which exact directores do these files need to be placed?
The AMIS build instructions also state that the branch ("amis-release-30") in the Ambulant code repository should be used to avoid conflicts with new Ambulant developments, however this does not seem to be available anywhere? The only version of the ambulant source code available is V2.02 at;
http://sourceforge.net/projects/ambulant/files/
Is this the version we should compile?
I did attempt to compile AMIS using these versions but encountered many, many errors, missing files and other problems.
Is there any chance this "building AMIS" document could be updated to reflect the current requirements?
Also, is there anyway to just download the AMIS source code without going through the SVN system? I would like to just experiment and try out this code and I would prefer to do this without having to deal with read and write permissions that occur due to the SVN checkout process (which Vista does not handle very well).
Any help would be greatly appreciated. I'm very, very interested in this application but its been very frustrating trying to get it to compile.
Thanks,
enda

ok, some progress, but still some errors
aplogies, I just found revisions 550 and 549 which state that updated binaries for Xerces and Xalanc have been added to the current AMIS release, so I assume this negates the need to compile these when building AMIS from source?
I undefined WITH_DAISY_PDTB, HTML_LOAD_AMBULANT_PDTB and WITH_PROTECTED_BOOK_SUPPORT as mentioned elsewhere in this forum but I'm still getting a few errors which I suspect are related to the upgrade to Xerces v3.0.
The first is;
fatal error C1083: Cannot open include file: 'xalanc/Include/PlatformDefinitions.hpp'
I added the current Xalanc source code (v1.10) to the main folder and as an include path and now VS can find the file, but there appears to be a compatibility issue as now this error occurs.
2>c:\amisapp\xalan-c_current-src\xml-xalan\c\src\xalanc\platformsupport\xalanlocator.hpp(92) : error C2555: 'xalanc_1_10::XalanLocator::getLineNumber': overriding virtual function return type differs and is not covariant from 'xercesc_3_0::Locator::getLineNumber'
c:\amisapp\xerces-c-src\src\xercesc\sax\locator.hpp(102) : see declaration of 'xercesc_3_0::Locator::getLineNumber'
In addition I'm getting these errors;
fatal error C1083: Cannot open include file: 'io/XercesDomWriter.h': No such file or directory
fatal error C1083: Cannot open source file: '.\src\io\XercesDomWriter.cpp': No such file or directory
fatal error C1083: Cannot open include file: '../../ambulant-private/pdtbplugin/pdtbplugin.h': No such file or directory
and I can't seem to find XercesDomWriter.h anywhere.
The final error is this one, which Im not sure about.
4>c:\amisapp\trunk\amis\src\amisguimfc2\src\gui\amisapp.cpp(469) : error C3861: 'SHGetFolderPath': identifier not found
I feel like I'm getting very close, any ideas?
Thanks again,
enda
p.s. If you'd prefer me to add these as a bug report, then just let me know and I will.
Hi Enda, I would not
Hi Enda,
I would not recommend building from the AMIS trunk right now. It's under development and there are probably a few missing files/dependencies. Instead, you should try building from the amis30 tag. It's in our subversion repository under "amis/tags".
As for Ambulant, you absolutely must build the version at the amis-release-30 branch. See http://daisy-trac.cvsdude.com/amis/wiki/BuildingAmis#AmbulantSMILPlayer for instructions on getting this branch.
For the amis30 version, you should build xerces 2.8 yourself. Follow the instructions on the site.
I will make a note on the build instructions about using the amis30 tag instead of the trunk code. When the trunk is cleaned up, it will be possible to build it, but right now, it's under development.
Marisa
Hi Marisa, thanks for
Hi Marisa,
thanks for that, I will try building from the amis30 tag. However as regards Ambulant, I've been looking for the particular version you mentioned at the amis-release-30 branch but this does not seem to be available any more, or at least I cant seem to find it using CVS or by browsing through the ambulant files on sourceforge. Are you sure this particular version of ambulant is still available online?
Thanks again,
enda
Hi Enda, You can browse the
Hi Enda,
You can browse the amis-release-30 branch of Ambulant here:
http://ambulant.cvs.sourceforge.net/viewvc/ambulant/ambulant/?pathrev=amis-release-30
And to check it out, use this command with CVS:
cvs -d:pserver:anonymous@ambulant.cvs.sf.net:/cvsroot/ambulant co ambulant -r "amis-release-30"
Are you getting any particular errors with CVS checkout?
Marisa
Hi Marisa, thanks again for
Hi Marisa, thanks again for your help.
Sorry about that, I'm not sure how I didnt see the -30 release in Sourceforge, silly me! I'm still having a problem checking out the code but I'm now pretty sure that the the problem is with the firewall at my end. Hopefully I'll get this sorted soon and then I can start trying to compile AMIS again. I am pretty sure though that it was the incorrect version of the source code and Ambulant that was causing the problem. I'll let you know how i get on,
Thanks again,
enda
Xerces Versions are different in AMIS and Ambulant
Hey Marisa,
so Ive manged to get the AMIS-30 release of ambulant and have compilied it successfully. However, there seems to a problem. The AMIS-30 release of ambulant has now been updated to use Xerces v3, however the current working version of the AMIS source code uses Xerces V2.8. So ambulant will only compile with v3 but then AMIS wont compile as its expecting v2.8.
I'll get in touch with ambulant to see if they can make the previous version of the AMIS-30 release available. I assume that this change was to match the changes currently being made to the trunk version of AMIS?
e
Ah, good point! Yes,
Ah, good point! Yes, everything was upgraded very recently to Xerces 3. If I were you, I would just roll back to a previous version of Ambulant on the amis-release-30 branch. Try anything older than 1 month. For information about checking out CVS code by date: http://ask.metafilter.com/36796/CVS-checkout-by-date-how
We control the Ambulant source code on the amis-release-30 branch, so the Ambulant people won't be able to help you. Let me know how it goes.
Marisa
Ah ok, I was actually
Ah ok, I was actually wondering how to use cvs with an earlier version of an existing branch, ill try that. I did get around this though by jsut manually downloading the previous versions of these two files from sourceforge
ambulant\include\ambulant/lib/xerces_parser.h
\src\libambulant\lib\xerces_parser.cpp
This then compiled fine once i changed a couple of linker references to the previous Xerces version.
And I also then managed to get AMIS compiled and running which I'm very happy about. The only thing i'm still missing is a couple of the ambulant third party packags like ffmpeg and sdl and libxml2. Also, the speed controls in AMIS do not appear to work at the moment, is this feature dependent on these missing packages? I'm also getting a good few crashes but again im pretty sure its just due to these missing dependencies.
Glad you got something
Glad you got something working. Those two xerces files were likely the only ones I changed lately in Ambulant. Email me at marisa.demeglio [at] gmail.com and we can figure out the Ambulant third party packages stuff. For the speed controls on AMIS, make sure you've registered amis/bin/TransformSample.ax with Windows regsvr32. It should happen automatically as part of the Amis build process, but just in case something went wrong, you might want to register it yourself.
Marisa