--- SConstruct.orig 2007-04-22 12:41:39.000000000 +0800 +++ SConstruct 2010-12-22 17:21:51.000000000 +0800 @@ -1,6 +1,31 @@ +##### +# Note: For Macports, libusb-legacy need to be used? +# I can't get it to build with libusb-compat +#### + +import os +import os.path from glob import glob -auto_libs = '' +############################################################### +# Utility functions. +############################################################### + +# Similar to env.WhereIs, but always searches os.environ. +def find_on_path(filename): + paths = os.environ.get('PATH') + if not paths: + return None + for p in paths.split(':'): + path = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(path): + return p + return None + +auto_libs = 'libusb-legacy' + +cmdname = 'pkg-config' +pkg_config_path = find_on_path(cmdname) + ('/%s' % cmdname) # Detect the system's endianness from sys import byteorder @@ -12,19 +37,28 @@ BuildEnv = Environment(CCFLAGS=['-Wall', '-std=gnu99', '-g', '-ggdb', '-D' + endian]) if auto_libs: - BuildEnv.ParseConfig('pkg-config --cflags --libs ' + auto_libs) + cmdstr = '%s --cflags --libs ' % pkg_config_path + BuildEnv.ParseConfig(cmdstr + ' --cflags --libs ' + auto_libs) BuildEnv.Command('flash_routine.h', 'flash_routine.h.base', './make_flash_header.py') -Default(BuildEnv.Library('nxt', +BuildEnv.Append(LIBPATH='.') +libnxt = Default(BuildEnv.Library('nxt', [x for x in glob('*.c') if not x.startswith('main_')], - LIBS='usb')) + LIBS='usb-legacy')) + +fwflash = Default(BuildEnv.Program('fwflash', 'main_fwflash.c', + LIBS=['usb-legacy', 'nxt'])) + +fwexec = Default(BuildEnv.Program('fwexec', 'main_fwexec.c', + LIBS=['usb-legacy', 'nxt'])) + +# the install target +#BuildEnv.Alias("install", BuildEnv.Install(os.path.join(os.environ['DESTDIR'], "lib"), libnxt)) +#BuildEnv.Alias("install", BuildEnv.Install(os.path.join(os.environ['DESTDIR'], "bin"), fwflash, fwexec)) +#BuildEnv.Command("uninstall", None, Delete(FindInstalledFiles())) -Default(BuildEnv.Program('fwflash', 'main_fwflash.c', - LIBS=['usb', 'nxt'], LIBPATH='.')) -Default(BuildEnv.Program('fwexec', 'main_fwexec.c', - LIBS=['usb', 'nxt'], LIBPATH='.'))