improve of cmpl.
[bush.git] / tools / cmpl / README.md
blobf3bec7f5357b46bfa184377a1440e1b21e2c1f17
2 # introduction
3 --------------
5     cmpl is a util script program to orgnize compilation in directory of 
6 'build'. it uses pure shell script code, and can be running in different system
7 type.
8     it absolute static compile parameters in tools/cmpl/info/cmplparam.imi, and
9 run-time compile parameters in build/*.
13 # develop
14 ---------
16     if someone will writing code for cmpl, these sides should be pay attension:
18 @ uses pure shell script code, to adpat in various system.
19 @ keeps the absolution parameters in build/dest/*, especially in forms of list
20   and var assignment, so that any other program can access easilly.
24 # TO BE IMPROVED
25 ----------------
27     compile procedure uses 'buildstep' in sequential. it can be improved by 
28 .dot file, and display build procedure in graphical. it can compile code in 
29 multi-task.
31     in current version, code is written in bourne again shell script, and it 
32 extend more features rather then standard shell. to adapt in widly system,
33 writing in std shell script code as posiable, put extend feature implement in
34 porting.shlib.
38 # todolist in this version
39 --------------------------
41 @ cmpl
42 # restrstr, str2var/strmatch
43 # instpkg
44 # misc features
45 @ instpkg.shlib
46 @ cmditf.shlib
47 @ umdoc.shlib
48 @ config.shlib
62 features:
64 [compiler]
65 @ compiler version range setting
68 [cmpl-param]
69
72 [cmdline]
73 @ clean/envchk/deplibs/config/defconf/<blank>/default/all/example/bak/doc/test/genpkg/install
77 [TBD]
79 @ build.dot (step in .dot)
80 @ cmdline opt, cross, dbg-rls, 
81 @ libdll/unitlibdll/drv
83 @ subcmd
84 # doc
85 # config
86 # genpkg & public dir
87
89 @ var define
90 # variable category & diagram (2.param-category.md)
91   + toolchain cmd/info/syntax/shlib
92   + general, srcpkg dir, param files, ext-name
93   + compile param for one dest
94   + author/org info
95   + srcpkg info
96   + *build step param
97   + build opt (cmd/envar/config.imi)
98 # variable category & diagram ()
101 @ dev/cmpl/cmpl.sh
103 @ testing
104 # compile (platform/cmplib/toolchain/dest/build-step)
105 # clean/all/bak/help, 
106 # test/doc/config/genpkg/install/example
108 @ build param wrap/interface
109 # cmplr param in build/dest/dest-<dest>/*
110 # src file list in build/dest/dest-<dest>/*.{list, lst}
111 # build/dest/dest.list
112 # param load sequence & func.
115 @ .list file improve to .lst
116 # file name is var name
117 # ext-name change to .lst
118 # file content is prue list array
119 # define fmt str var with file name, use "%s" to output param in list var.
122 @ different system(win/lin/mac) & 
123   different arch(x86/armhf/mips/ppc/riscv & 64-bit-arch) &
124   vendor(armcc/vc/bcb/iar/mdk).
125 @ deplib check & param auto-gen
127 @ subdir/subsrcpkg/deplibs
128 @ redundence param chk, param seq chk.
129 @ git space auto-reg in ftp space.