If we would handle both cases as the else clause we construct the string ‘$LIBPREFIXserf-1’, as the evaluation rules of scons handles \$[a-zA-Z]+ as macro reference we just constructed an undefined environment variable before this patch, while we really just want an alias of LIBNAME, which is created in the same way but with a different prefix.
The problem was that we created A ‘lib-2.so’. I think this comment is a summary of what I described above, but as noted in my other mail I’m interested in better solutions to this problem. I’m not an scons expert… (Currently this specific block resolves the problem identified by Philip.) Bert Sent from Mail for Windows 10 From: Greg Stein Sent: donderdag 28 januari 2016 13:25 To: Bert Huijben Cc: dev@serf.apache.org Subject: Re: svn commit: r1727295 - /serf/trunk/SConstruct On Thu, Jan 28, 2016 at 3:47 AM, <rhuij...@apache.org> wrote: >... > +++ serf/trunk/SConstruct Thu Jan 28 09:47:00 2016 > @@ -230,11 +230,15 @@ incdir = '$PREFIX/include/serf-$MAJOR' > if sys.platform != 'sunos5': > env['SHLIBVERSION'] = '%d.%d.%d' % (MAJOR, MINOR, 0) > > -SHLIBNAME = '%sserf-%d' % (env['SHLIBPREFIX'], MAJOR) > -LIBNAME = '%sserf-%s' % (env['LIBPREFIX'], MAJOR) > +LIBNAME = '%sserf-%d' % (env['LIBPREFIX'], MAJOR) > if sys.platform == 'win32': > # On Win32 SHLIBPREFIX and LIBPREFIX are empty and both produce a .lib > file. > SHLIBNAME = 'libserf-%d' % (MAJOR, ) > +elif env['SHLIBPREFIX'] == '$LIBPREFIX': > + # Let's avoid constructing '$LIBPREFIXserf...' which evaluates to '' > The above comment makes NO sense. How does it relate to the following line. Or anything? > + SHLIBNAME = LIBNAME > +else: > + SHLIBNAME = '%sserf-%d' % (env['SHLIBPREFIX'], MAJOR) > > env.Append(RPATH=[libdir], > PDB='${TARGET.filebase}.pdb') > > >