Browse Source

[libc] Build correct SConscript file.

bernard 7 years ago
parent
commit
8bdf993bfc

+ 20 - 4
components/libc/KConfig

@@ -1,11 +1,27 @@
 menu "libc"
 
 config RT_USING_LIBC
-	bool "Enable libc APIs from toolchain"
-	default y
+    bool "Enable libc APIs from toolchain"
+    default y
 
 config RT_USING_PTHREADS
-	bool "Enable pthreads APIs"
-	default y
+    bool "Enable pthreads APIs"
+    default n
+
+if RT_USING_LIBC
+    config RT_USING_POSIX_STDIN
+        bool "Enable stdin"
+        select RT_USING_DFS
+        select RT_USING_DFS_DEVFS
+        default y
+
+    config RT_USING_POSIX_MMAP
+        bool "Enable mmap() api"
+        default n
+
+    config RT_USING_POSIX_TERMIOS
+        bool "Enable termios feature"
+        default n
+endif
 
 endmenu

+ 8 - 20
components/libc/SConscript

@@ -1,27 +1,15 @@
-# for libc component
-import os
-Import('rtconfig')
+# RT-Thread building script for bridge
 
+import os
 from building import *
 
+cwd = GetCurrentDir()
 objs = []
-cwd  = GetCurrentDir()
-
-if GetDepend('RT_USING_LIBC'):
-    if os.path.isfile(os.path.join(cwd, 'newlib/SConscript')) and rtconfig.PLATFORM == 'gcc':
-        objs = objs + SConscript('newlib/SConscript')
-    elif os.path.isfile(os.path.join(cwd, 'armlibc/SConscript')) and rtconfig.PLATFORM == 'armcc':
-        objs = objs + SConscript('armlibc/SConscript')
-    elif os.path.isfile(os.path.join(cwd, 'dlib/SConscript')) and rtconfig.PLATFORM == 'iar':
-        objs = objs + SConscript('dlib/SConscript')
-else:
-    if os.path.isfile(os.path.join(cwd, 'minilibc/SConscript')) and rtconfig.PLATFORM == 'gcc' and rtconfig.ARCH != 'sim':
-        objs = objs + SConscript('minilibc/SConscript')
-
-if GetDepend('RT_USING_LIBC') and GetDepend('RT_USING_PTHREADS'):
-	objs = objs + SConscript('pthreads/SConscript')
+list = os.listdir(cwd)
 
-if GetDepend('RT_USING_MODULE') and GetDepend('RT_USING_LIBDL'):
-	objs = objs + SConscript('libdl/SConscript')
+for d in list:
+    path = os.path.join(cwd, d)
+    if os.path.isfile(os.path.join(path, 'SConscript')):
+        objs = objs + SConscript(os.path.join(d, 'SConscript'))
 
 Return('objs')

+ 15 - 0
components/libc/compilers/SConscript

@@ -0,0 +1,15 @@
+# RT-Thread building script for bridge
+
+import os
+from building import *
+
+cwd = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+
+for d in list:
+    path = os.path.join(cwd, d)
+    if os.path.isfile(os.path.join(path, 'SConscript')):
+        objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')

+ 7 - 4
components/libc/compilers/armlibc/SConscript

@@ -1,12 +1,15 @@
 from building import *
+Import('rtconfig')
 
-src	= Glob('*.c')
-cwd = GetCurrentDir()
+src   = Glob('*.c') + Glob('*.cpp')
+cwd   = GetCurrentDir()
+group = []
 
 CPPPATH = [cwd]
 CPPDEFINES = ['RT_USING_ARM_LIBC']
 
-group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], 
-	CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+if rtconfig.PLATFORM == 'armcc':
+    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], 
+        CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
 
 Return('group')

+ 3 - 3
components/libc/compilers/dlib/SConscript

@@ -1,8 +1,8 @@
 from building import *
-import rtconfig
+Import('rtconfig')
 
-src = Glob('*.c')
-cwd = GetCurrentDir()
+src   = Glob('*.c')
+cwd   = GetCurrentDir()
 group = []
 
 CPPPATH = [cwd]

+ 6 - 4
components/libc/compilers/minilibc/SConscript

@@ -1,13 +1,15 @@
-Import('RTT_ROOT')
 from building import *
+Import('rtconfig')
 
-src	= Glob('*.c')
+src = Glob('*.c') + Glob('*.cpp')
 cwd = GetCurrentDir()
+group = []
 
 CPPPATH = [cwd]
 CPPDEFINES = ['RT_USING_MINILIBC']
 
-group = DefineGroup('libc', src, depend = ['RT_USING_MINILIBC'],
-	CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+if rtconfig.PLATFORM == 'gcc' and not GetDepend('RT_USING_LIBC'):
+    group = DefineGroup('libc', src, depend = [''],
+        CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
 
 Return('group')

+ 6 - 3
components/libc/compilers/newlib/SConscript

@@ -1,7 +1,9 @@
 from building import *
+Import('rtconfig')
 
-src	= Glob('*.c')
+src = Glob('*.c')
 cwd = GetCurrentDir()
+group = []
 
 CPPPATH = [cwd]
 CPPDEFINES = ['RT_USING_NEWLIB']
@@ -12,7 +14,8 @@ CPPDEFINES = ['RT_USING_NEWLIB']
 # been referenced. So setting this won't result in bigger text size.
 LIBS = ['c', 'm']
 
-group = DefineGroup('newlib', src, depend = ['RT_USING_LIBC'], 
-	CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
+if rtconfig.PLATFORM == 'gcc':
+    group = DefineGroup('newlib', src, depend = ['RT_USING_LIBC'], 
+        CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
 
 Return('group')

+ 7 - 2
components/libc/libdl/SConscript

@@ -1,9 +1,14 @@
 from building import *
+Import('rtconfig')
 
-src	= Glob('*.c')
+src = Glob('*.c') + Glob('*.cpp')
 cwd = GetCurrentDir()
+group   = []
 CPPPATH = [cwd]
 
-group = DefineGroup('libdl', src, depend = ['RT_USING_MODULE', 'RT_USING_LIBDL'], CPPPATH = CPPPATH)
+if rtconfig.PLATFORM == 'gcc':
+    group = DefineGroup('libc', src, 
+        depend = ['RT_USING_MODULE', 'RT_USING_LIBDL'], 
+        CPPPATH = CPPPATH)
 
 Return('group')

+ 2 - 1
components/libc/pthreads/SConscript

@@ -4,6 +4,7 @@ cwd = GetCurrentDir()
 src	= Glob('*.c')
 CPPPATH = [cwd]
 
-group = DefineGroup('pthreads', src, depend = ['RT_USING_PTHREADS', 'RT_USING_LIBC'], CPPPATH = CPPPATH)
+group = DefineGroup('pthreads', src, 
+    depend = ['RT_USING_PTHREADS', 'RT_USING_LIBC'], CPPPATH = CPPPATH)
 
 Return('group')