first version.
[build-srcpkg.git] / doc / todolist.txt
blobb28948c406ebf419f04928b90f84082485b2b217
2 [ideas]
3 @ feature-str-id for src-pkg build
4 # beyound code in codelib dir, it include a README.md, build param file, 
5   testing info files, performence info file, lisence file, feature-id-str file.
6 # feature str, name & domain of feature. code in a src pkg is not putted in
7   domain string path, it's just under the dir of 'codelib'.
8 # feature id is a sha value with feature name and README.md
9 # feature id also contains sha value with feature name, RREADME.md, and src
10   files. this id is used for corresponding version matching.
11 # featurelist.lst, it's a file provided for other pkg reference code in codelib
12   of current src-pkg. compare with .pc file, this file can matching feature
13   in module. some feature are existing in a lib, but it also can be referenced
14   in other package not only by linking. eg: a short piece of code in gnulib 
15   should be referenced in other src-pkg, but it's too complex to link a gnulib
16   lib file to the program, so copy code to current src-pkg is a good idea to
17   solve this problem. 
18   + it keeps src code synchronizing with orignial src-pkg, this avoid multiple 
19     version of code by copying code.
20   + it decrease external lib dependence.
21   + it provide the connection between feature and src-pkg.
25 #############################################################################
26 #############################################################################
29 [tagdoc]
31 @ tagdocÖеÄdoc£¬ÈçÊǹ¦ÄÜÌØÐÔÐèÇó£¬×ª»¯Îª¹¦ÄÜÌØÐÔÎÄ×ÖÃèÊö£¬²¢½«¹¦ÄÜÌØÐÔµÄtag·Åµ½docµÄ¹ØÁªfollowed-tagÖУ¬docµÄtag·Åµ½¹¦ÄÜÌØÐÔÎÄ×ÖÃèÊöµÄprev-tagÖС£
32 # ¹¦ÄÜÌØÐԺ͹¦ÄÜÄ£¿éÖ®¼äÒ²ÒÔtag¹ØÁª¡£
33 # ÔÚ¹¦ÄÜÄ£¿éä¯ÀÀʱ£¬¿É¿´µ½prev-tagµÄÄÚÈÝ£¬Ò»Ð©¹¦ÄÜÄ£¿éÐÞ¸Äʱ£¬ÆäËüdoc¿É¸üС£
34 # Ò»¸ö¼Ç¼´ÓÒ»¸ösrc-pkg£¬×ªµ½sub-src-pkgʱ£¬¼Ç¼come-fromÐÅÏ¢£¬±íʾ¹¦ÄÜÌØÐÔ»òÐèÇóÔ´×ÔÓÚÄĸöpkg¡£
35 # Ò»¸ö¼Ç¼ÖеÄÄÚÈÝ£¬È¡Ò»²¿·Ö£¬³ÉÁíÒ»¸ösub-record¡£ÔÚÔ­ÓмǼÖÐÌí¼Óbranch-tag£¬ÔÚsub-recordÖУ¬Ìí¼Ósrc-tag£¬±íʾһ¸ö¹¦ÄÜÌØÐÔ»òÐèÇóÃèÊöµÄÑÝ»¯¡£ÒòΪһ¸ö¼Ç¼ÖУ¬¿ÉÄÜ°üº¬¶à¸ö¹¦ÄÜÌØÐÔµÄÃèÊö¡£ÔÚsub-recordÖУ¬¿É¿´µ½src-tagÖÐÆäËüÏà½üºÍÏà¹ØµÄÄÚÈÝ£¬Êä³öΪsee also¡£
36 @ tagdocÖеÄÎÄ×Ö£¬ÒÔitemΪµ¥Î»£¬diff gitÉϵÄÄÚÈÝ£¬½«Ôö¼ÓµÄitemµ¥ÁÐÒ»¸ötagdocÎļþ£¬ÓÃÓÚÈ˹¤Ìí¼Ó¡£
37 # ÎļþÌå»ý±È½ÏÅÓ´óʱ£¬¸ù¾ÝtagºÍĿ¼£¬»®·ÖΪ¶à¸öÎļþ»òĿ¼¡£
39 [ **build-pkg** ]
41 #############################################################################
42 #############################################################################
44 [todolist]
45 @ modify doc dir, and update pkg design info.
47 =================================================
49 ¡¾build-pkg¡¿
51 @ build-pkg
52 # util pkg compile
53 # path & cfgdirs(pkg-install)£¬
54 # builders(flist£¬plist£¬tag£¬gen-proclib£¬proclib)
55 # build-pkg(subcmd/taglib£¬toolchain-mngr£¬taskunit)
56 # build param£¬²Î¿¼projectÖеIJÎÊý
57 # build-opr-lib
58 # tag-mngr
59 # param-lib
60 # cross-compile£¬build with param pfx
61 # build example£ºlibcxt
63 @ *soft-mngr(
64 # pkg/prog/lib/res mngr
65 # app/soft/midware/bsp/drv mngr
66 # soft-center/soft-repository
68 ¡¾note¡¿
69 ref: 1.design/2.pkg-builder/build-pkg/ideas.txt
72 @ build-pkg
73 # build: ÓÃÓÚcompile£¬build£¬pkg£¬install£¬testµÈÓû§²Ù×÷¡£
74 # dev£ºÓÃÓÚprojÏà¹Ø²Ù×÷£¬task²Ù×÷µÈ£¬ÓÃÓÚdeveloper¡£
75   + dev exthdrlist£ºÊä³ösrcÒÀÀµµÄsrc hdr£¬½«src pkgÖеÄhdr¹ýÂË£¬ÍⲿhdrÒÀÀµ±£´æ
76     µ½Îļþ£¬ÔÚbuildʱ½øÐÐincÎļþchkʱʹÓá£
77   + dev extliblist£ºÊä³ösrcpkgÖÐʹÓõÄlib£¬ÓÃÓÚbuildʱµÄchk¡£
79 @ subcmd, arch-list, srcpkg-list, dest-list, dest-type, dest-type-step, 
80   build-dep,
82 @ build-pkg
83 # util pkg compile
84 # path & cfgdirs(pkg-install)£¬
85 # builders(flist£¬plist£¬tag£¬gen-proclib£¬proclib)
86 # build-pkg(subcmd/taglib£¬toolchain-mngr£¬taskunit)
87 # build param£¬²Î¿¼projectÖеIJÎÊý
88 # build-opr-lib
89 # tag-mngr
90 # param-lib
91 # cross-compile£¬build with param pfx
92 # build example£ºlibcxt
105 @ build
106 !# src-list, paramters, multi dest/instpkg/arch ...
107 !# compile script code.
108 !# build/dev/devtask cmd opt-define, and it's diagram.
109 # ADFD diagram accroding compile script code.
110 @ absolution
111 # param-list.
112         + <lang>-src-list, 
113         + macro-def-list,  
114         + inc-path-list,  
115         + lib-path-list,  
116         + inc-lib-list, 
117         + misc-param, 
118         + single-file-paramter, 
119         + developer-info-paramter, 
120         + soft-pkg-info-paramter, 
121         + output: CFLAGS/CPPFLAGS/LDFLAGS
122         + format: CFLAGS_FMT ... some paramter should be in particular sequence.
123         + param_gen("NAME_STR"), generate paramter.
124         + cmd_str_gen().
125 # utility prog.
126         + pkg-conf/diff/patch/intltool/texinfo/gettext-tiny/ttyrec/
127 # toolchain.
128         + <src>2<dst>() functions.
129         + program set. as/gcc/g++(c++/cpp)/ld/ranlib/ar/nm/objcopy/objdump/strip/
130           gcov/gprof, flex/bison/libtool, elfedit/readelf/addr2line/string/size.
131 # build dest
132         + sub-srcpkg-list, 
133         + buildtime-dep-list, 
134         + runtime-dep-list, 
135         + instpkg-list, 
136         + dest-list, 
137         + build_srcpkg("path")/unarchive_srcpkg()/download_srcpkg("name")
138         + build_dest("name")/build_instpkg("name")/build_target("name")
139 # taskunit.
140         + short-time-one-cmd-task (one mainly cmd, and repeated several times with
141           input paramter), eg: compile/link a src file
142         + long-time-task, eg: build a pkg.
143         + deamon-task/svc, eg: network-service.
144         + (input/output/waitlist/deptp) 
145         + (wants/after/trig/before/conflicts/wantedby/requisite/requires)