[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/bksys
From:       Christian Ehrlicher <Ch.Ehrlicher () gmx ! de>
Date:       2006-02-07 17:26:39
Message-ID: 1139333199.782357.13399.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 506822 by chehrlic:

fix & sync with other lib*.py

 M  +39 -46    libgif.py  


--- trunk/KDE/kdelibs/bksys/libgif.py #506821:506822
@@ -5,62 +5,55 @@
 
 def generate(env):
 
-	def Check_giflib(context):
-		import SCons.Util
-
-		gifsource = """
-#include <gif_lib.h>
-
-int main(int argc, char **argv) {
-	if (GIF_OK != 1) {
-		return 1;
-	}
-	return 0;
-}
-"""
-
-		env['CACHED_GIFLIB'] = 0
-		lastLIBS = ''
-		if env.has_key('LIBS'):
-			lastLIBS = env['LIBS']
-
-		context.Message('Checking for giflib ... ')
-		for lib in [ 'ungif', 'gif' ]:
-
-			env.Replace(LIBS = [lib])
-
-			ret = conf.TryLink(gifsource, '.c')
-			if ret:
-				env['CXXFLAGS_GIFLIB'] = ['-DHAVE_GIFLIB']
-				env['LINKFLAGS_GIFLIB'] = ['-l' + lib]
-				env['CACHED_GIFLIB'] = ret
-				break
-
-		if lastLIBS:
-			env.Replace(LIBS = lastLIBS)
-		context.Result(env['CACHED_GIFLIB'])
-		return env['CACHED_GIFLIB']
-
 	from SCons.Options import Options
+	from SCons.Tool import Tool
 	import os
 
-	optionFile = env['CACHEDIR'] + 'giflib.cache.py'
+	optionFile = env['CACHEDIR'] + 'libgif.cache.py'
 	opts = Options(optionFile)
 	opts.AddOptions(
-		('CACHED_GIFLIB', 'Whether the GIF library is available'),
-		('CXXFLAGS_GIFLIB',''),
-		('LINKFLAGS_GIFLIB',''),
+		('CACHED_GIF', 'Whether libgif is available'),
+		('CXXFLAGS_GIF',''),
+		('CCFLAGS_GIF',''),
+		('LINKFLAGS_GIF',''),
+		('CPPPATH_GIF',''),
+		('INCLUDES_GIF',''),
+		('LIB_GIF',''),
+		('LIBPATH_GIF',''),
 		)
 	opts.Update(env)
 
-	if not env['HELP'] and (env['_CONFIGURE_'] or not env.has_key('CACHED_GIFLIB')):
-		conf = env.Configure( custom_tests = { 'Check_giflib' : Check_giflib } )
-		if not conf.Check_giflib():
-			print 'giflib not found.'
+	if not env['HELP'] and (env['_CONFIGURE_'] or not env.has_key('CACHED_GIF')):
+		pkgs = Tool('pkgconfig', ['./bksys'])
+		pkgs.generate(env)
+
+		have_lib = 0
+		if env['HAVE_PKGCONFIG'] == 0:
+			conf = env.Configure()
+			if conf.CheckHeader('gif_lib.h'):
+				if conf.CheckLib('gif'):
+					conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ]
+					conf.env['LIB_GIF']      = [ 'gif' ]
+					have_lib = 1
+				elif conf.CheckLib('giflib'):
+					conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ]
+					conf.env['LIB_GIF']      = [ 'giflib' ]
+					have_lib = 1
+				if conf.CheckLib('ungif'):
+					conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ]
+					conf.env['LIB_GIF']      = [ 'ungif' ]
+					have_lib = 1
+				elif conf.CheckLib('libungif'):
+					conf.env['INCLUDES_GIF'] = [ 'gif_lib.h' ]
+					conf.env['LIB_GIF']      = [ 'libungif' ]
+					have_lib = 1
+			env = conf.Finish()
 		else:
-			print 'using ' + env['LINKFLAGS_GIFLIB'][0] + ' to link giflib'
+			have_lib = env.pkgConfig_findPackage('GIF', 'libgif', '4.0')
+			if not have_lib:
+				have_lib = env.pkgConfig_findPackage('GIF', 'libungif', '4.0')
 
-		env = conf.Finish()
+		env.write_lib_header( 'libgif', have_lib, False )
 
 		opts.Save(optionFile, env)
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic