This forum has been archived. Please start a new discussion on GitHub.

force use of specific Slice libs (cross compiling)

Hello. Currently I am trying to cross-compile Ice, compiling on a RedHat host for an embedded target (Motorola MPC). Works just fine so far, but problems start when it comes to the part in src/Ice. To continue the compilation of Ice a working Slice is required - only that the existing libraries and binaries are in the target's format and not executable on my building host. So I did another Ice build for the building host and adapted the target config/Make.rules to use this "local" Slice for the build process. However, for some reason the slice2cpp executable tries to use the target (cross-compiled) libraries instead of the locally installed ones. I hunted around in the config and make files, but I could not find a specific place to change some paths for Slice. The variables adjusted so far are SLICEPARSERLIB, SLICE2CPP, SLICE2XSD, SLICE2FREEZE and SLICE2DOCBOOK. Where else should I look? Would it be necessary to change CPPFLAGS or ICECPPFLAGS, in other words, the include paths? That would mean to use the source tree of the building host's Ice. Or maybe this is a completely wrong approach at all? I am grateful for any hints about this.



  • You might want to build Ice natively once (i.e. for your host machine), and installing.. or at least installing the slice2* bits. Then, rework the makefiles to not build any of the slice tools, and to just use the ones that are already installed (change bindir while building, or just leave the slice2* tools in the $TOP/bin directory)... and then build for your target. I haven't tried this, but it sounds like it ought to work.