On Thu, Dec 17, 2015 at 7:13 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
If I were you I would create a new platform, xen, under platforms, being a sibling of platforms/unix. I would implement the relevant support for Xen there-in.
As I understand it, making a new platform requires I need to modify configure.ac, and subsequently run autoconf. So I tried using autoconf before making any changes. The following works before running autoconf...
mkdir oscogvm ; cd oscogvm svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms svn co http://www.squeakvm.org/svn/squeak/branches/Cog/build.linux32x86 svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src svn co http://www.squeakvm.org/svn/squeak/branches/Cog/spursrc cd .. ; cp -r oscogvm oscogvm.orig cd oscogvm/build.linux32x86/squeak.cog.spur/build.debug ./mvm
But after autoconf...
cd oscogvm/platforms/unix/config autoconf cd oscogvm/build.linux32x86/squeak.cog.spur/build.debug ./mvm
it fails like this... gcc -m32 -g3 -O0 -fwrapv -DDEBUGVM=1 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DCOGMTVM=0 -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/ben/Repos/minimal-oscog/build.linux32x86/squeak.cog.spur/build.debug -I/home/ben/Repos/minimal-oscog/build.linux32x86/squeak.cog.spur/build.debug -I/home/ben/Repos/minimal-oscog/platforms/unix/vm -I/home/ben/Repos/minimal-oscog/platforms/Cross/vm -I/home/ben/Repos/minimal-oscog/spursrc/vm -I/home/ben/Repos/minimal-oscog/platforms/Cross/vm -I/home/ben/Repos/minimal-oscog/platforms/unix/vm -I/home/ben/Repos/minimal-oscog/spursrc/vm -I/home/ben/Repos/minimal-oscog/platforms/Cross/plugins/FilePlugin -I/home/ben/Repos/minimal-oscog/platforms/unix/plugins/B3DAcceleratorPlugin @X_INCLUDES@ -c -o gcc3x-cointerp.o /home/ben/Repos/minimal-oscog/spursrc/vm/gcc3x-cointerp.c gcc: error: @X_INCLUDES@: No such file or directory Makefile:229: recipe for target 'gcc3x-cointerp.o' failed make[1]: *** [gcc3x-cointerp.o] Error 1 Makefile:405: recipe for target 'vm/vm.a' failed make: *** [vm/vm.a] Error 2
In oscogvm/build.linux32x86/squeak.cog.spur/build.debug/Makefile I find... ------- SOFLAGS= @SOFLAGS@ BITBLT_OBJS= @BITBLT_OBJS@ IA32ABI_OBJS= @IA32ABI_OBJS@ VM_DISPX11_OBJS=@VM_DISPX11_OBJS@ BITBLT_FLAGS= @BITBLT_FLAGS@ VM_DISPX11_BITBLT_FLAGS= @VM_DISPX11_BITBLT_FLAGS@ ARM_ARCH= @ARM_ARCH@ LIBM_CFLAGS= @LIBM_CFLAGS@
X_CFLAGS= @X_CFLAGS@ X_INCLUDES= @X_INCLUDES@ X_LIBS= @X_LIBS@
LIB_UUID= @LIB_UUID@
FFI_DIR= @FFI_DIR@ FFI_C= @FFI_C@ FFI_S= @FFI_S@ FFI_O= @FFI_O@
PYLIBPATH= @PYLIBPATH@ PYINCLUDES= @PYINCLUDES@
I've learnt [1] this seems related to autoconf AC_SUBST(). and maybe the substitution is not being done. Using... find oscogvm -name .svn -prune -o -type f -exec grep -H $SEARCH {} ; | grep SUBST
platforms/unix/plugins/BitBltPlugin/acinclude.m4: AC_SUBST(BITBLT_OBJS, $bitblt_objs) platforms/unix/plugins/IA32ABI/acinclude.m4: AC_SUBST(IA32ABI_OBJS, $ia32abi_objs) platforms/unix/vm-display-X11/acinclude.m4: AC_SUBST(VM_DISPX11_OBJS, $vm_dispx11_objs) platforms/unix/plugins/BitBltPlugin/acinclude.m4: AC_SUBST(BITBLT_FLAGS, $bitblt_flags) platforms/unix/vm-display-X11/acinclude.m4: AC_SUBST(VM_DISPX11_BITBLT_FLAGS, $vm_dispx11_bitblt_flags) platforms/unix/plugins/BitBltPlugin/acinclude.m4: AC_SUBST(ARM_ARCH, $arm_arch) platforms/unix/plugins/FloatMathPlugin/acinclude.m4: AC_SUBST(LIBM_CFLAGS, $libm_cflags) platforms/unix/vm-display-X11/acinclude.m4: AC_SUBST(X_CFLAGS) platforms/unix/vm-display-X11/acinclude.m4: AC_SUBST(X_INCLUDES) platforms/unix/vm-display-X11/acinclude.m4: AC_SUBST(X_LIBS) platforms/unix/plugins/UUIDPlugin/acinclude.m4: AC_SUBST(LIB_UUID)
FFI_DIR nothing found FFI_C nothing found FFI_S nothing found FFI_O nothing found PYLIBPATH nothing found PYINCLUDES nothing found
Am I doing something obviously wrong running autoconf? Anyone got any tips on how to approach tracking this down? Anyway, this is making me wary of putting effort into *learning* and troubleshooting autoconf when the path forward seems CMakeVMMakerSqueak. btw, where can I find that?
cheers -ben