Hi Frank,

On Wed, Jul 21, 2010 at 11:41 AM, Frank Shearar <frank.shearar@angband.za.org> wrote:

Ah, that leads me right to the problem. Thanks, Eliot!

OK, so first, the standard warning that I'm a clueless newbie, so please forgive any silly questions.

It looks like this is what happens: when you run configure, lines 27296 - 27362 check to see if you're building vm-sound-OSS. If not, that plugin's added to the variable disabled_plugins.

But later, lines 28696 - 28708 do the same thing. (Checkpoint 1)

Later on, that variable's turned into a file plugins.exc (for "except", I guess).

mktarget then builds a disabledPlugins.c with duplicate entries for those two plugins.

Going back to Checkpoint 1 above, configure itself looks like it's generated by something (autoconf?) from configure.ac, which has special cases for the Problem Plugins:

AC_ARG_WITH(vm-sound-OSS,
[  --without-vm-sound-OSS      disable OSS vm sound support default=enabled]],
 [with_vm_sound_OSS="$withval"],
 [with_vm_sound_OSS="yes"])
if test "$with_vm_sound_OSS"="no"; then
      AC_PLUGIN_DISABLE_PLUGIN(vm-sound-OSS);
fi

So this and the corresponding chunk for vm-display-fbdev must be commented out, and configure regenerated, and then presumably disabledPlugins.c won't have duplications.

I think the fix here is to make the disabledPlugins list unique, done in configure.ac via
 echo ${disabled_plugins} | tr ' ' '\012' | sort -u > plugins.exc

I'll check this in.

But the more serious issue is that the configure in VMMaker is only suitable for linux.  I guess that the right thing to do for FreeBSD is to run make in platforms/unix/config to generate a FreeBSD-specific configure.  But I'm out of my depth when it comes to autoconf.

Now I'm happy to do the legwork here, but I've never touched autoconf or m4 stuff in my life. Any hints would be greatly appreciated!

I've hacked until I could get Cog to compile but that's a long way from understanding what the right thing to do here is.
 

frank


On 2010/07/20 19:37, Eliot Miranda wrote:




platforms/unix/config/mktargets

e.g. find platforms -name .svn -print -o \( -type f \) -exec grep -H
disabledPlugins {} \; | fgrep -v .svn

which is useful enough to wrap up in a script (which I link to
$HOME/bin/findsvn $HOME/bin/findgit & $HOME/bin/findcvs, etc.

#!/bin/sh
#IFS=<tab><nl>
IFS='
'
DIR=.svn
case $0 in
*git)   DIR=.git;;
*cvs)   DIR=CVS;;
esac
DIRS=
while [ -n "$1" -a -d "$1" ]; do
        DIRS="$DIRS     $1"
        shift
done
find ${DIRS:-.} -name $DIR -prune -o \( "$@" \) | grep -v /$DIR

On Tue, Jul 20, 2010 at 1:29 AM, Frank Shearar
<frank.shearar@angband.za.org <mailto:frank.shearar@angband.za.org>> wrote:


   When I check out and build the latest VM on FreeBSD,
   disabledPlugins.c contains some duplicated definitions (reported in
   an earlier mail).

   I tried to find what generates that file in VMMaker, and failed.
   I've tried grepping the contents of the mcz, and can't find any
   mention of "disabled".

   (But as long as I say --without-npsqueak, and remove the offending
   duplications from disabledPlugins.c, the Cog VM compiled on FreeBSD!)

   frank