--- src/SConscript.orig 2009-04-26 12:18:44.000000000 +0400 +++ src/SConscript 2009-04-26 13:00:21.000000000 +0400 @@ -37,6 +37,8 @@ linkflags = '-Wl,-install_name,libmapnik.dylib' elif env['PLATFORM'] == 'SunOS' and env['CXX'].startswith('CC'): linkflags = '-R. -h libmapnik.so' +elif env['PLATFORM'] == 'FreeBSD': + linkflags = '-Wl,-soname,libmapnik.so.' + ("%d" % (ABI_VERSION[0])) else: # Linux and others linkflags = '-Wl,-rpath-link,. -Wl,-soname,libmapnik.so.' + ("%d.%d" % (ABI_VERSION[0],ABI_VERSION[1])) @@ -106,16 +108,24 @@ major, minor, micro = ABI_VERSION - soFile = "%s.%d.%d.%d" % (os.path.basename(str(mapnik[0])), major, minor, micro) + if env['PLATFORM'] == 'FreeBSD': + soFile = "%s.%d" % (os.path.basename(str(mapnik[0])), major) + else: + soFile = "%s.%d.%d.%d" % (os.path.basename(str(mapnik[0])), major, minor, micro) libDir = install_prefix + '/' + env['LIBDIR_SCHEMA'] env.Alias(target='install', source=env.InstallAs(target=os.path.join(libDir, soFile), source=mapnik)) # Install symlinks - link1 = env.Command(os.path.join(libDir, "%s.%d.%d" % (os.path.basename(str(mapnik[0])),major, minor)), + if env['PLATFORM'] == 'FreeBSD': + link = env.Command(os.path.join(libDir, os.path.basename(str(mapnik[0]))), + os.path.join(libDir, "%s.%d" % (os.path.basename(str(mapnik[0])),major)), symlink) + env.Alias(target='install', source=link) + else: + link1 = env.Command(os.path.join(libDir, "%s.%d.%d" % (os.path.basename(str(mapnik[0])),major, minor)), os.path.join(libDir, soFile), symlink) - env.Alias(target='install', source=link1) - link2 = env.Command(os.path.join(libDir, os.path.basename(str(mapnik[0]))), + env.Alias(target='install', source=link1) + link2 = env.Command(os.path.join(libDir, os.path.basename(str(mapnik[0]))), os.path.join(libDir, "%s.%d.%d" % (os.path.basename(str(mapnik[0])),major, minor)), symlink) - env.Alias(target='install', source=link2) + env.Alias(target='install', source=link2) else: env.Alias(target='install', source=env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'], mapnik))