mi mi
/
DirectSPI-test
DirectSPI test program
makelib.py@9:7dfa4f5adf42, 2017-02-26 (annotated)
- Committer:
- mimi3
- Date:
- Sun Feb 26 20:50:58 2017 +0900
- Revision:
- 9:7dfa4f5adf42
- Parent:
- 8:e11a0361f57f
update: mbed-scli v0.5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mimi3 | 7:84a0a208ebb2 | 1 | #### lib.py for mbed #### |
mimi3 | 9:7dfa4f5adf42 | 2 | # v0.5 |
mimi3 | 6:14e5c27ebe3c | 3 | # 2017/02 made by dinau |
mimi3 | 7:84a0a208ebb2 | 4 | # |
mimi3 | 7:84a0a208ebb2 | 5 | # Notice: Unsupported libraries. |
mimi3 | 7:84a0a208ebb2 | 6 | # These libraries must be specified in Makefile. |
mimi3 | 7:84a0a208ebb2 | 7 | # mbed-os |
mimi3 | 7:84a0a208ebb2 | 8 | # mbed-dev |
mimi3 | 6:14e5c27ebe3c | 9 | |
mimi3 | 6:14e5c27ebe3c | 10 | |
mimi3 | 6:14e5c27ebe3c | 11 | # Usage: |
mimi3 | 7:84a0a208ebb2 | 12 | # $ make lib |
mimi3 | 7:84a0a208ebb2 | 13 | # or |
mimi3 | 8:e11a0361f57f | 14 | # $ python makelib.py |
mimi3 | 6:14e5c27ebe3c | 15 | # |
mimi3 | 6:14e5c27ebe3c | 16 | import os,sys |
mimi3 | 6:14e5c27ebe3c | 17 | import commands |
mimi3 | 9:7dfa4f5adf42 | 18 | from urlparse import urlparse |
mimi3 | 9:7dfa4f5adf42 | 19 | HG = 1 |
mimi3 | 9:7dfa4f5adf42 | 20 | GIT = 2 |
mimi3 | 9:7dfa4f5adf42 | 21 | MBEDOS = 3 |
mimi3 | 9:7dfa4f5adf42 | 22 | CMD_HG_CLONE = 'hg clone -q ' |
mimi3 | 9:7dfa4f5adf42 | 23 | CMD_GIT_CLONE = 'git clone -q ' |
mimi3 | 9:7dfa4f5adf42 | 24 | CMD_GIT_CHECKOUT= 'git checkout -q ' |
mimi3 | 6:14e5c27ebe3c | 25 | |
mimi3 | 9:7dfa4f5adf42 | 26 | def hgClone(param): |
mimi3 | 9:7dfa4f5adf42 | 27 | cmd = CMD_HG_CLONE + param |
mimi3 | 9:7dfa4f5adf42 | 28 | return os.system( cmd ) |
mimi3 | 9:7dfa4f5adf42 | 29 | |
mimi3 | 9:7dfa4f5adf42 | 30 | def gitClone(param): |
mimi3 | 9:7dfa4f5adf42 | 31 | cmd = CMD_GIT_CLONE + param |
mimi3 | 9:7dfa4f5adf42 | 32 | return os.system( cmd ) |
mimi3 | 9:7dfa4f5adf42 | 33 | |
mimi3 | 9:7dfa4f5adf42 | 34 | def gitCheckout(param): |
mimi3 | 9:7dfa4f5adf42 | 35 | cmd = CMD_GIT_CHECKOUT + param |
mimi3 | 9:7dfa4f5adf42 | 36 | return os.system( cmd ) |
mimi3 | 9:7dfa4f5adf42 | 37 | |
mimi3 | 9:7dfa4f5adf42 | 38 | def getDvcs(url): |
mimi3 | 9:7dfa4f5adf42 | 39 | if ('developer.mbed.org' in url) or ('mbed.org' in url) or ('bitbucke.org' in url): |
mimi3 | 9:7dfa4f5adf42 | 40 | return HG; |
mimi3 | 9:7dfa4f5adf42 | 41 | elif 'mbed-os' in url: |
mimi3 | 9:7dfa4f5adf42 | 42 | return MBEDOS |
mimi3 | 9:7dfa4f5adf42 | 43 | elif 'github.com' in url: |
mimi3 | 9:7dfa4f5adf42 | 44 | return GIT |
mimi3 | 9:7dfa4f5adf42 | 45 | else: |
mimi3 | 9:7dfa4f5adf42 | 46 | return 0 |
mimi3 | 9:7dfa4f5adf42 | 47 | |
mimi3 | 9:7dfa4f5adf42 | 48 | def getLibs(target_dir): |
mimi3 | 9:7dfa4f5adf42 | 49 | savedir = os.getcwd() |
mimi3 | 9:7dfa4f5adf42 | 50 | os.chdir(target_dir) |
mimi3 | 6:14e5c27ebe3c | 51 | liblist=[] |
mimi3 | 9:7dfa4f5adf42 | 52 | for fname in os.listdir('.'): |
mimi3 | 9:7dfa4f5adf42 | 53 | if os.path.isfile(fname): |
mimi3 | 9:7dfa4f5adf42 | 54 | name, ext = os.path.splitext(fname) |
mimi3 | 6:14e5c27ebe3c | 55 | if ext == '.lib': |
mimi3 | 7:84a0a208ebb2 | 56 | if name != 'mbed-os': |
mimi3 | 9:7dfa4f5adf42 | 57 | liblist.append(fname) |
mimi3 | 6:14e5c27ebe3c | 58 | if len( liblist ) > 0: |
mimi3 | 9:7dfa4f5adf42 | 59 | #print liblist |
mimi3 | 9:7dfa4f5adf42 | 60 | for libfile in liblist: |
mimi3 | 9:7dfa4f5adf42 | 61 | subdir, ext = os.path.splitext(libfile) |
mimi3 | 6:14e5c27ebe3c | 62 | print subdir |
mimi3 | 9:7dfa4f5adf42 | 63 | url = open(libfile).read() |
mimi3 | 7:84a0a208ebb2 | 64 | print url |
mimi3 | 6:14e5c27ebe3c | 65 | sys.stdout.flush() |
mimi3 | 9:7dfa4f5adf42 | 66 | dvcs = getDvcs(url) |
mimi3 | 9:7dfa4f5adf42 | 67 | if dvcs == HG: |
mimi3 | 9:7dfa4f5adf42 | 68 | hgClone( url ) |
mimi3 | 9:7dfa4f5adf42 | 69 | getLibs(subdir) |
mimi3 | 9:7dfa4f5adf42 | 70 | elif dvcs == MBEDOS: |
mimi3 | 9:7dfa4f5adf42 | 71 | # Nothing is downloaded if mbed-os lib be. |
mimi3 | 9:7dfa4f5adf42 | 72 | print 'mbed-os' |
mimi3 | 9:7dfa4f5adf42 | 73 | sys.stdout.flush() |
mimi3 | 9:7dfa4f5adf42 | 74 | elif dvcs == GIT: |
mimi3 | 9:7dfa4f5adf42 | 75 | params = url.split('#') |
mimi3 | 9:7dfa4f5adf42 | 76 | if len(params) == 1: |
mimi3 | 9:7dfa4f5adf42 | 77 | gitClone( params[0] ) |
mimi3 | 9:7dfa4f5adf42 | 78 | getLibs(subdir) |
mimi3 | 9:7dfa4f5adf42 | 79 | elif len(params) == 2: |
mimi3 | 9:7dfa4f5adf42 | 80 | gitClone( params[0] ) |
mimi3 | 7:84a0a208ebb2 | 81 | os.chdir(subdir) |
mimi3 | 7:84a0a208ebb2 | 82 | print 'cd %s' % (subdir) |
mimi3 | 7:84a0a208ebb2 | 83 | sys.stdout.flush() |
mimi3 | 9:7dfa4f5adf42 | 84 | gitCheckout( params[1] ) |
mimi3 | 9:7dfa4f5adf42 | 85 | getLibs(subdir) |
mimi3 | 9:7dfa4f5adf42 | 86 | os.chdir(savedir) |
mimi3 | 9:7dfa4f5adf42 | 87 | ################### |
mimi3 | 9:7dfa4f5adf42 | 88 | # main prog |
mimi3 | 9:7dfa4f5adf42 | 89 | ################### |
mimi3 | 9:7dfa4f5adf42 | 90 | if len(sys.argv) >= 2: |
mimi3 | 9:7dfa4f5adf42 | 91 | url = sys.argv[1] |
mimi3 | 9:7dfa4f5adf42 | 92 | dvcs = getDvcs( url ) |
mimi3 | 9:7dfa4f5adf42 | 93 | if dvcs == HG: |
mimi3 | 9:7dfa4f5adf42 | 94 | p = urlparse( url ) |
mimi3 | 9:7dfa4f5adf42 | 95 | path = p.path |
mimi3 | 9:7dfa4f5adf42 | 96 | if path[-1:] == '/': |
mimi3 | 9:7dfa4f5adf42 | 97 | path = path[:-1] |
mimi3 | 9:7dfa4f5adf42 | 98 | libdir = os.path.basename(path) |
mimi3 | 9:7dfa4f5adf42 | 99 | hgClone( url ) |
mimi3 | 9:7dfa4f5adf42 | 100 | getLibs(libdir) |
mimi3 | 9:7dfa4f5adf42 | 101 | elif dvcs == GIT: |
mimi3 | 9:7dfa4f5adf42 | 102 | params = url.split('#') |
mimi3 | 9:7dfa4f5adf42 | 103 | if len(params) == 1: |
mimi3 | 9:7dfa4f5adf42 | 104 | gitClone( params[0] ) |
mimi3 | 9:7dfa4f5adf42 | 105 | elif len(params) == 2: |
mimi3 | 9:7dfa4f5adf42 | 106 | gitClone( params[0] ) |
mimi3 | 9:7dfa4f5adf42 | 107 | os.chdir(subdir) |
mimi3 | 9:7dfa4f5adf42 | 108 | print 'cd %s' % (subdir) |
mimi3 | 9:7dfa4f5adf42 | 109 | sys.stdout.flush() |
mimi3 | 9:7dfa4f5adf42 | 110 | gitCheckout( params[1] ) |
mimi3 | 9:7dfa4f5adf42 | 111 | else: |
mimi3 | 9:7dfa4f5adf42 | 112 | print '--- Getting libraries ----' |
mimi3 | 9:7dfa4f5adf42 | 113 | getLibs('.') |
mimi3 | 9:7dfa4f5adf42 | 114 | print '--- end ---' |