update devspec.en_US/1.0.general.md.
[devspec.git] / 1.1.build-environment.md
blob5b0ad7a5fd3d323d24522c22278713abf230a47f
1 \r
2 \r
3 \r
4 # gnu build-tools for gnu soft-pkgs\r
5 ===================================\r
6 \r
7     generally, a gnu soft-pkg uses software below, to build and develop\r
8 programs.\r
9 \r
10 [gnu-soft-pkg]\r
11 # Compile-Link: gcc/g++/clang/binutils(ld/objcopy/nm/...), libc-dev, \r
12   kernel-headers, flex/bison, toolchain-cross-ng\r
13 # project orgnize: make/cmake, (meson, ninja)\r
14 # compile config soft-pkg: autotools(automake/autoconf/libtool), M4, autogen, \r
15   pkg-config, menuconfig\r
17 # Multi-language: gettext, libintl\r
18 # info/man documents: texinfo, help2man, groff, man, \r
19 # api documents: doxygen, \r
20 # webpages: gnu-gendocs.sh(script translate txt into html, used for web \r
21   access.)\r
22 # code-online-doc:\r
23 # tutorial: ttyrec\r
24 # design-doc: change-log, ideas-doc, demand-doc, design-doc, \r
25   modulize-design-doc, \r
27 # debug-utils: gdb/gdb-server, logview, \r
28 # testing(unit-test, test-frame work): cunit, cppunit, greg, DejaGnu, \r
29 # bug-mngr: \r
30 # perform: gconv(code-coverage), gprof, perf, systemtap, \r
31 # code-chk-utils: lint, Valgrind, \r
33 # compile-cache: ccache, \r
34 # multi-host-compile: distcc\r
36 @ code-utils\r
37 # code-compare: beyound-compare\r
38 # func-call-trace: cflow(call-graph), global(src-tag-prog)\r
39 # code-symbol-tag-index: McCabe/pmccabe/complexity/mifuz, \r
40 # code-highlight: Src-highlight, \r
41 # code-format: gengen/indent, cproto, \r
42 # code-args-autogen: gengetopt, \r
43 # code-gen: \r
45 @\r
46 # code manager: git, RCS/SCCS, diff/patch, \r
47 # git+pages: github/gitee/gitlab\r
48 # email(cmd-client): mailutils\r
51 @ traditional-dev-utilities\r
52 # awk, gprof, gperf, dpkg/opkg, \r
53 # idutils, OrgaDoc(txt2xml-doc), src-highile, aspell, womb(gnu pkg repo)\r
57 # pkg-builder\r
58 =============\r
60     pkg-builder is a program set to build soft-pkgs. it's similar with 'make',\r
61 but it's writen by shell script code, the dependence is only a shell program.\r
62     pkg-builder is consisted by those pkgs:\r
64 @ devspec: pkg of this doc. the guide doc of soft-pkg develop by pkg-builer for\r
65   low-level system pkgs, espacially for pkgs of 'skeletone-linux'.\r
66 @ CCompilerCollection: gcc build src pkgs. it include toolchain-cross-ng, gcc, \r
67   binutils, and other dependent pkgs. it can build gcc with different platform.\r
68   CCompilerCollection in pkg-builder is a fixed version of gcc. so that \r
69   developer uses the same version of compiler, in order to avoid different \r
70   compile errors. pkg-builder is face to low-level system pkgs, so it does not\r
71   need a frequently updated compiler for many new features.\r
72 @ build-pkg: equal to 'make'. but the config info is distributed in different\r
73   config files. it's easy to dispatch infos in program. it's easy to use, but\r
74   it's not smart enough like 'makefile'.\r
75 @ build-config: the program manuconfig in kernel. let it to be a independence\r
76   soft-pkg. so that many other programs can use it for configuration.\r
77 @ build-pkglist: it's familar with 'buildroot'. it orgnize a system by config\r
78   files, and download, config, build it. it support distribute building.\r
79 @ shlib-devutils: a toolset writen by shell script code. it provide various \r
80   programs for developping.\r
81 @ build-ext-utils: gnu soft-pkg for pkg-builder. some of the feature have not\r
82   implemented in pkg-builder. use binary soft-pkg. such as doxygen.\r
83 @ code-mngr: a version control program like svn/git. it's also a shell script\r
84   program. and it need less server-end program to use, it is based on sftp\r
85   storage. beyound version control, it support web page update to sftp/git\r
86   server.\r
87 @ soft-repo: published file manage program. src-pkg or binary-pkg, or resource-\r
88   pkg. it like a application store, or a program repo for user to download.\r
91 # gnu pkgs beyound pkg-builder\r
92 ==============================\r
94     many features has not been implemented in pkg-builder. it uses traditional\r
95 binary soft-pkgs.\r
97 @ libtool\r
98 @ pkg-config\r
99 @ gettext, libintl\r
100 @ texinfo, help2man, groff, man\r
101 @ doxygen\r
102 @ gendocs.sh(integerated in devutils)\r
103 @ ttyrec\r
104 @ ccache\r
105 @ distcc\r
106 @ git/RCS/SCCS/CSSC\r
107 @ mailutils: email(cmd-client).\r
109 @ cunit\r
110 @ gconv, gprof, perf, systemtap\r
111 @ lint, Valgrind\r
112 @ diffutils, meld(with gui)\r
113 \r
114 # code-compare: beyound-compare\r
115 # func-call-trace: cflow(call-graph), global(src-tag-prog)\r
116 # code-symbol-tag-index: McCabe/pmccabe/complexity/mifuz, \r
117 # code-highlight: Src-highlight, \r
118 # code-format: gengen/indent, cproto, \r
119 # code-args-autogen: gengetopt, \r
121 @ idutils, OrgaDoc(txt2xml-doc), src-highile, aspell, womb(gnu pkg repo)\r
146 [gnu¿ª·¢ÖеŤ¾ßÈí¼þ¼¯ºÏ]\r
147 @ ¿ªÔ´Èí¼þ¿ª·¢Ì×¼þ¹¦ÄÜ\r
148 # pub(git+pages): github/gitlab/gitee\r
149 # email(cmd-client): mailutils\r
151 # ±àÒëÁ´½Ó: gcc/g++/clang/binutil(gcc/g++/ld), libc-dev, kernel-headers, flex/bison, \r
152 # ¹¤³Ì¹¹½¨, µ÷ÓñàÒëÆ÷±àÒë³ÌÐò: make/cmake, (meson, ninja)\r
153 # ÅäÖñàÒëÏà¹ØÄÚÈÝ: autotools(automake, autoconf, libtool), autogen, pkg-config, M4, menuconfig\r
154 # multi-language: gettext, intl\r
155 # info/manÎĵµÉú³É: texinfo, help2man, Éú³ÉinfoºÍmanµÄ°ïÖúÎĵµ¡£groff¡£\r
156 # ´úÂëapiÎĵµ: doxygen, ¸ù¾Ý´úÂë, Êä³ö´úÂëµÄapiÎĵµ¡£\r
157 # ¸ù¾ÝtxtʹÓÃ˵Ã÷Îĵµ, gendocs.sh (script)´¦ÀíºóÊä³öhtmlÎĵµ¡£\r
158 # code online readÎĵµ, \r
159 # pkgÖÆ×÷Èí¼þ: dpkg/opkg, \r
161 # tutorial: ttyrec, \r
162 +# design-doc(change-log, ideas-doc, demand-doc, design-doc, modulize-doc): \r
163 # °æ±¾¹ÜÀí: git, RCS/CSSC, diff/patch, \r
165 # bug-mngr: GNATS, bugzilla\r
166 # testing(unit-testing, test-framework): cunit, cppunit, greg, DejaGnu, testdrive\r
167 # degug-utils: gdb/gdbserver, logview\r
168 # perform: gcov(code-coverage), gprof, perf, systemtap\r
169 *# code-check-utils: lint, Valgrind, \r
171 # code-utils: \r
172 beyoundcompare: \r
173 inc-file-list: (makefileÖÐ-include $(OBJ:.o,.d), ±àÒë.oÎļþ֮ǰgcc -MM -MT $@ -MF $(patsubst $<,%.o,%.d) $<, Êä³öµ½.dÎļþ-includeµ½makefile, .hÐÞ¸Äʱ, .o³ÌÐò±àÒë¡£)(gcc -MM -MF xxx.d -MT xxx.o xxx.c)\r
174 func-call-trace: cflow, global, graphvize\r
175 symbol-tag-index(code-hint): global(src-tag-prog)/McCabe/pmccabe/complexity, \r
176 code-highlight, Src-Highlite, \r
177 code-formatter: gengen/indent, cproto, \r
178 code-arg-autogen: gengetopt\r
179 code-gen: \r
181 @ traditional-dev-utilities\r
182 # gawk, gprof(ÔËÐÐÐÔÄÜÈí¼þ), gperf, \r
183 # , Idutils, OrgaDoc(txt2xml-doc), Src-Highlite, aspell, womb(gnu pkg repo), \r
210 [gnu-dev-tools¿ª·¢Èí¼þ°ü-¹¦ÄܲÙ×÷½Ó¿Ú]\r
211 @ toolchain &utils\r
213 @ Èí¼þÅäÖᢱàÒë(dep-chk)¡¢pkgÖÆ×÷¡¢°²×°\r
215 @ proj(src-dir-scan¡¢file-add/del¡¢param-cfg-file¡¢target-add/del¡¢lib/.h-inc&path¡¢)\r
217 @ cross±àÒë\r
218 @ cache¡¢distcc\r
219 @ doc(man¡¢info¡¢html-pages¡¢doxygen¡¢online-codeview¡¢ttyrec¡¢graphvize¡¢)\r
220 @ code(format¡¢gen¡¢edit¡¢syn2design)\r
222 @ src(back¡¢release¡¢version-id¡¢git/RCS¡¢branch¡¢diff/patch¡¢merge¡¢change log)\r
224 @ pkg(inst-pkg¡¢src-pkg¡¢pkg-repo)\r
227 @ code-check(mem-leakage¡¢grammar)\r
228 @ dev(info¡¢str-modify¡¢multi-byte¡¢libintl/gettext¡¢func-trace-graph¡¢hint¡¢hilight¡¢optgen¡¢debug¡¢logview)\r
229 @ multi-plat-adept(cpu-plat¡¢sys-plat)\r
230 @ ÐÔÄÜ(performence¡¢gcov)\r
231 @ test(unit¡¢script)\r
232 @ bug-mngr\r
233 @ software(readme¡¢lisence¡¢change log¡¢todo¡¢demand/funclist/idea-record¡¢)\r
234 @ web-pages(online-wiki/manual/api/code¡¢src/pkg/doc-download¡¢git)\r
236 @ net-utils(wget/curl¡¢term&ssh-client¡¢mail-utils¡¢)\r