diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2010-11-12 19:36:21 +0100 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2010-11-12 20:47:30 +0100 |
commit | aa55d30d20bf419deb36301010337b4642770964 (patch) | |
tree | 802cf24eaa8dc2494679b10738e4f83b324b5db9 /libgsmhr | |
parent | 0d2a82c312056046ecafba318e60a930df395ea2 (diff) |
[2/4] HR support: Add logic to fetch reference source code and build it
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'libgsmhr')
-rw-r--r-- | libgsmhr/Makefile.am | 18 | ||||
-rwxr-xr-x | libgsmhr/fetch_sources.py | 66 |
2 files changed, 83 insertions, 1 deletions
diff --git a/libgsmhr/Makefile.am b/libgsmhr/Makefile.am index f32e948..ab49a1f 100644 --- a/libgsmhr/Makefile.am +++ b/libgsmhr/Makefile.am @@ -3,5 +3,21 @@ AM_CFLAGS = -fPIC -Wall ${SYMBOL_VISIBILITY} LIBVERSION=0:0:0 +REFSRC_PATH=refsrc +REFSRC_SRC=refsrc/dtx.c refsrc/globdefs.c refsrc/host.c refsrc/mathhalf.c refsrc/sp_enc.c refsrc/sp_rom.c refsrc/vad.c refsrc/err_conc.c refsrc/homing.c refsrc/mathdp31.c refsrc/sp_dec.c refsrc/sp_frm.c refsrc/sp_sfrm.c + +${REFSRC_PATH}/.downloaded: + ./fetch_sources.py "${REFSRC_PATH}" + for f in "${REFSRC_PATH}"/*.{c,h}; do \ + sed -i -e"s/round/round_l2s/" "$$f"; \ + done + sed -i -e"s/long int/int/" -e"s/long/int/" "${REFSRC_PATH}/typedefs.h" + touch $@ + +${REFSRC_PATH}/dtx.c: ${REFSRC_PATH}/.downloaded + lib_LTLIBRARIES = libgsmhr.la -libgsmhr_la_SOURCES = libgsmhr.c +libgsmhr_la_SOURCES = $(REFSRC_SRC) libgsmhr.c + +clean-local: + -rm -rf ${REFSRC_PATH} diff --git a/libgsmhr/fetch_sources.py b/libgsmhr/fetch_sources.py new file mode 100755 index 0000000..cb37e0c --- /dev/null +++ b/libgsmhr/fetch_sources.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python + +import urllib2 +import os +import sys +import zipfile + +try: + import cStringIO as StringIO +except: + import StringIO + + +SRC = "http://ftp.3gpp.org/Specs/2001-06/Ph2/06_series/0606-421/0606_421.zip" + + +def get_zipfile(data): + return zipfile.ZipFile(StringIO.StringIO(data)) + + +def get_subfile_data(data, filename): + z = get_zipfile(data) + return z.read(filename) + + +def process_file(z, e): + fh = open(e.filename.lower(), 'w') + d = z.read(e).replace('\r','') + fh.write(d) + fh.close() + + +def main(*args): + + # Args + if len(args) != 2: + print "Usage: %s target_dir" % args[0] + return + + tgt = args[1] + + # Create and go to target dir + if not os.path.isdir(tgt): + os.mkdir(tgt) + os.chdir(tgt) + + # Get the original data + u = urllib2.urlopen(SRC) + d = u.read() + + # Get DISK.zip + d = get_subfile_data(d, 'DISK.zip') + + # Get Dir_C.zip + d = get_subfile_data(d, 'Dir_C.zip') + + # Get zip file object + z = get_zipfile(d) + + # Save each file + for e in z.filelist: + process_file(z, e) + + +if __name__ == '__main__': + main(*sys.argv) |