#***************************************************************************** # # MODULE zlib/SConscript # # DESCRIPTION SCons build script for zlib folder # # This script controls the actions necessary to build modules in this folder. # # THIS PROGRAM AND THE INFORMATION CONTAINED HEREIN IS THE PROPERTY OF # ATTO TECHNOLOGY, INC. AND SHALL NOT BE REPRODUCED, COPIED, OR USED IN # WHOLE OR IN PART OTHER THAN AS PROVIDED FOR IN THE LICENSE AGREEMENT # PURSUANT TO WHICH IT WAS FURNISHED. # # COPYRIGHT (c) ATTO TECHNOLOGY, INC. 2007-2009 # ALL RIGHTS RESERVED. # # #**************************************************************************** # List of source files SRCS = [ # Source files # Override flags [ "Src/adler32.c", None ], [ "Src/compress.c", None ], [ "Src/crc32.c", None ], [ "Src/deflate.c", None ], [ "Src/trees.c", None ], [ "Src/uncompr.c", None ], [ "Src/zutil.c", None ], [ "Src/inflate.c", "-O0 -Wall -pipe" ], [ "Src/infback.c", None ], [ "Src/inftrees.c", None ], [ "Src/inffast.c", None ], [ "Src/AttoZ.c", None ] ] CPPDEFINES = { "NO_ERRNO_H" : None, "NO_MEMCPY" : None, "NO_DIVIDE" : None, "NO_snprintf" : None, "NO_vsnprintf" : None, "MY_ZCALLOC" : None } if (ARGUMENTS.get("cmdlinedefs", None)): Import('CPPDEFINESALL') for key, value in CPPDEFINES.items(): CPPDEFINESALL[key] = value CPPPATH = "#zlib/H" LIBNAME = "z" # Import construction environment Import("*") env = env.Clone() env.Append(CPPDEFINES = CPPDEFINES) env.Prepend(CPPPATH = CPPPATH) # Override log file for build output if log: logfile = file(logname, "w") log = log.Clone() log.SetFile(logfile) env["SPAWN"] = log.Spawn # Build object files in this directory objlist = [] for src, flags in SRCS: if flags == None: obj = env.Object(src) else: obj = env.Object(src, CCFLAGS = flags) objlist.extend(obj) env.Listing(obj) # Copy and rename object files import os z_objlist = [] for obj in objlist: obj = str(obj) z_obj = os.path.join(os.path.dirname(obj), "z_" + os.path.basename(obj)) z_obj = Command(z_obj, obj, Copy("$TARGET", "$SOURCE")) z_objlist.extend(z_obj) # Build and install library lib = env.StaticLibrary(LIBNAME, z_objlist) lib = env.Install("#LIB", lib) # Make sure log file gets cleaned up env.Clean(lib, logname) # Return library list Return("lib")