Hi Eliot, Ci builds for Pharo are failing on Osx The problem seems to come from a missing requirement to build libBochsIA32Plugin.dylib, which makes the build of the librar to be skipped, and subsequently the VM build to fail. /Applications/Xcode.app/Contents/Developer/usr/bin/make BUILD=build \ -f /Users/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/iOS/plugins/BochsIA32Plugin/Makefile MAKEFILE=/Users/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/iOS/plugins/BochsIA32Plugin/Makefile \ CONFIGURATION=product ARCH=i386 \ PLATDIR=../../platforms PLUGINSRCDIR=../../src/plugins VMSRCDIR=../../spursrc/vm \ LIBNAME=libBochsIA32Plugin COGDEFS="-DPharoVM=1" \ APP=Pharo.app VM=Pharo BLDDIR=build USEPLUGINASDYLIB=TRUE \ THIRDPARTYOUTDIR=/Users/travis/build/OpenSmalltalk/opensmalltalk-vm/.thirdparty-cache/macOS/i386 \ \ build/vm/libBochsIA32Plugin.dylib $(LIBNAME): libBochsIA32Plugin ../common/Makefile.plugin:238: build/vm/libBochsIA32Plugin.dylib has missing prerequisites. Not building. echo >build/vm/libBochsIA32Plugin.ignore cp -p build/vm/libBochsIA32Plugin.dylib Pharo.app/Contents/MacOS/Plugins cp: build/vm/libBochsIA32Plugin.dylib: No such file or directory make: *** [Pharo.app/Contents/MacOS/Plugins/libBochsIA32Plugin.dylib] Error 1 I see that the same in squeak builds just keeps going. Some difference in the makefiles? Any idea? Thanks, Guille |
Hi Guille,
Please read my message asking to add the plugins to plugins.ext and read the Mac makefiles in their treatment of the PREREQUISITES variable. Those makefiles (and the other platform makefiles/autoconf scripts) are written to /not/ build the processor plugins unless the prerequisites have been built. So the build specs, if they pay attention to plugins.ext, also need to pay attention to PREREQUISITES and not build any plugin which has any missing prerequisite. Or if the build specs do not pay attention to plugins.ext, should simply exclude the processor plugins. I did try and explain this in my message asking permission to add the processor plugins to plugins.ext. I am sorry if my language is not clear. Did I not communicate clearly or did you read superficially or...? I want to understand so that we may communicate more effectively in the future and you not waste time encountering errors like this.
Cheers, (sincerely) Eliot
|
Hi, On Wed, Jan 16, 2019 at 4:41 PM Eliot Miranda <[hidden email]> wrote:
There is no problem. I just want some insight to fix the issue, not blaming :). That'll make me super happy. The thing is that I kind of assumed that the makefiles and specs were already managing the
PREREQUISITES correctly and that the changes in the following commit were enough: So there may be some differences in the makefiles on the Pharo side that makes my assumptions to not hold. Just guessing here, but probably the PREREQUISITES support was introduced after the makefiles in the pharo.* tree were copied/created? No idea :). I'll check it later. Thanks!
|
Hi Guille,
|
Hi all, We have checked the differences between the builds and found the problem :). Pharo compiles plugins into dylibs instead of bundles, and the specific piece of the makefile that was doing the copy of those files into the final product was not aware of the *.ignore files. We've adapted the rules for dylibs to work the same as bundles both for osx32 and 64 and now the build is green. => $(APP)/Contents/MacOS/Plugins/%.dylib: $(BLDDIR)/vm/%.dylib @mkdir -p $(APP)/Contents/MacOS/Plugins @if [ -f $(basename $<).ignore ]; then \ echo $(notdir $<) is being ignored; \ rm -rf $^; \ else \ echo cp -p $< $(APP)/Contents/MacOS/Plugins; \ cp -p $< $(APP)/Contents/MacOS/Plugins; \ fi On Wed, Jan 16, 2019 at 6:11 PM Eliot Miranda <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |