1*c8d645caSAndroid Build Coastguard Worker# Build the common files needed by multiple test cases 2*c8d645caSAndroid Build Coastguard Worker 3*c8d645caSAndroid Build Coastguard WorkerImport('env') 4*c8d645caSAndroid Build Coastguard Worker 5*c8d645caSAndroid Build Coastguard Worker# Protocol definitions for the encode/decode_unittests 6*c8d645caSAndroid Build Coastguard Workerenv.NanopbProto("unittestproto") 7*c8d645caSAndroid Build Coastguard Worker 8*c8d645caSAndroid Build Coastguard Worker# Protocol definitions for basic_buffer/stream tests 9*c8d645caSAndroid Build Coastguard Workerenv.NanopbProto("person") 10*c8d645caSAndroid Build Coastguard Worker 11*c8d645caSAndroid Build Coastguard Worker#-------------------------------------------- 12*c8d645caSAndroid Build Coastguard Worker# Binaries of the pb_decode.c and pb_encode.c 13*c8d645caSAndroid Build Coastguard Worker# These are built using more strict warning flags. 14*c8d645caSAndroid Build Coastguard Workerstrict = env.Clone() 15*c8d645caSAndroid Build Coastguard Workerstrict.Append(CFLAGS = strict['CORECFLAGS']) 16*c8d645caSAndroid Build Coastguard Workerstrict.Object("pb_decode.o", "$NANOPB/pb_decode.c") 17*c8d645caSAndroid Build Coastguard Workerstrict.Object("pb_encode.o", "$NANOPB/pb_encode.c") 18*c8d645caSAndroid Build Coastguard Workerstrict.Object("pb_common.o", "$NANOPB/pb_common.c") 19*c8d645caSAndroid Build Coastguard Worker 20*c8d645caSAndroid Build Coastguard Worker#----------------------------------------------- 21*c8d645caSAndroid Build Coastguard Worker# Binaries of pb_decode etc. with malloc support 22*c8d645caSAndroid Build Coastguard Worker# Uses malloc_wrappers.c to count allocations. 23*c8d645caSAndroid Build Coastguard Workermalloc_env = env.Clone() 24*c8d645caSAndroid Build Coastguard Workermalloc_env.Append(CPPDEFINES = {'PB_ENABLE_MALLOC': 1, 25*c8d645caSAndroid Build Coastguard Worker 'PB_SYSTEM_HEADER': '\\"malloc_wrappers_syshdr.h\\"'}) 26*c8d645caSAndroid Build Coastguard Workermalloc_env.Append(CPPPATH = ["$COMMON"]) 27*c8d645caSAndroid Build Coastguard Worker 28*c8d645caSAndroid Build Coastguard Workerif 'SYSHDR' in malloc_env: 29*c8d645caSAndroid Build Coastguard Worker malloc_env.Append(CPPDEFINES = {'PB_OLD_SYSHDR': malloc_env['SYSHDR']}) 30*c8d645caSAndroid Build Coastguard Worker 31*c8d645caSAndroid Build Coastguard Worker# Disable libmudflap, because it will confuse valgrind 32*c8d645caSAndroid Build Coastguard Worker# and other memory leak detection tools. 33*c8d645caSAndroid Build Coastguard Workerif '-fmudflap' in env["CCFLAGS"]: 34*c8d645caSAndroid Build Coastguard Worker malloc_env["CCFLAGS"].remove("-fmudflap") 35*c8d645caSAndroid Build Coastguard Worker malloc_env["LINKFLAGS"].remove("-fmudflap") 36*c8d645caSAndroid Build Coastguard Worker malloc_env["LIBS"].remove("mudflap") 37*c8d645caSAndroid Build Coastguard Worker 38*c8d645caSAndroid Build Coastguard Workermalloc_strict = malloc_env.Clone() 39*c8d645caSAndroid Build Coastguard Workermalloc_strict.Append(CFLAGS = malloc_strict['CORECFLAGS']) 40*c8d645caSAndroid Build Coastguard Workermalloc_strict.Object("pb_decode_with_malloc.o", "$NANOPB/pb_decode.c") 41*c8d645caSAndroid Build Coastguard Workermalloc_strict.Object("pb_encode_with_malloc.o", "$NANOPB/pb_encode.c") 42*c8d645caSAndroid Build Coastguard Workermalloc_strict.Object("pb_common_with_malloc.o", "$NANOPB/pb_common.c") 43*c8d645caSAndroid Build Coastguard Worker 44*c8d645caSAndroid Build Coastguard Workermalloc_env.Object("malloc_wrappers.o", "malloc_wrappers.c") 45*c8d645caSAndroid Build Coastguard Workermalloc_env.Depends("$NANOPB/pb.h", ["malloc_wrappers_syshdr.h", "malloc_wrappers.h"]) 46*c8d645caSAndroid Build Coastguard Worker 47*c8d645caSAndroid Build Coastguard WorkerExport("malloc_env") 48*c8d645caSAndroid Build Coastguard Worker 49