first version.
[build-srcpkg.git] / README.md
bloba196df18160127f6ffb1593b4180d8ccfd3c34c4
1 README of build-srcpkg
3   Copyright (C) 2022- Free Software Foundation, Inc.
5   Copying and distribution of this file, with or without modification,
6   are permitted in any medium without royalty provided the copyright
7   notice and this notice are preserved.
9 The following contributions warranted legal paper exchanges with the
10 Free Software Foundation.
13 This is the README file for distribution of build-srcpkg.
14 build-srcpkg include many script lib files, and some utility programs, 
17 # instroduction
18 ---------------
20     there are two part of build-srcpkg
22 @ build-pkg, for srcpkg compiling. it implement features as Makefile.
23 @ devutils, for srcpkg developping. to following with devspec in develop, 
24   it helps developer do standard operation in devspec automatically.
26 ## build-pkg
27 ------------
29     build-pkg is writen by full standard shell script, so that it can be 
30 compiled in system that only install compiler and shell program.
31     some of srcpkg need advaced script and libs to compile, that means it must
32 be built in a full linux system. build procedure in LFS shows that, before
33 construct a mini rootfs, it should build perl, python, and other misc 
34 programs.
35     if a srcpkg build by build-pkg, it need few software to be built. it's 
36 better for a srcpkg compiling, especially for the low-level system src pkgs.
39 ## devutils
40 -----------
42     devutils include many programs used in developping.
44 @ code serial, for code auto processing & generating.
45 @ tagdoc, devtask, for demand management & develop procedure management of 
46   soft-engineering.
47 @ devspec utils, 
48 # format code in standard coding sytle.
49 # generating & synchronizing design doc file with src code.
50 # check if the structure of srcpkg dirs are following with devspec. website can 
51   grab info from standard srcpkg dir structure, and generating srcpkg info on 
52   web. 
53 # register a git space on web, it need many info to be input manually on web. 
54   we can use util program to register space in cmd line.
55 # genpkg generating binary installable pkgs in a general form. the syntax of 
56   install pkg include sh script, texture config/info file, and general compress 
57   file. other format of install pkg generate file from this archive. it's a 
58   middle file between srcpkg and install pkg.
59 # generate webpages in auto, sync to remote by cmd.
60 # ..., many other utility programs in developping.
62     most of procedures in develop are putted in term cmd line. it's easy to be 
63 integrated into others, such as buildroot, IDE, website.
67     this is a program sub-set for pkg-builder. pkg-builder contains programs 
68 for c/cpp src code compiling, devutils contain util script program for 
69 developping.
70     the util set contains program like scripttest, it makes testing dirs and files
71 for testing item by using a catalog struct file, and run testing item one by 
72 one. it helps developer to generate testing dir framwork, avoid copying testing 
73 file and modify file name. it can save testing output content as standard stdout 
74 txt file, compare with stdio output when testing script running.
75     one of the util program called codegen, it generate code dirs and c/cpp code 
76 by a catalog sturct describe file. the catalog struct file describe src directory
77 struct, and src module/file, and variables & functions that contained in a module.
78 it helps developer to generate src file automatically by using code templete file, 
79 avoid copy src templete file, and modify file name and text content repeatly.
80 it uses catalog struct text, which is more like a draft text wroted by programmer, 
81 to generate code framework.
82     the developing util is a soft pkg, which contains util program used in 
83 developping. whatever features needed in developping, put the corresponding 
84 program into this soft pkg. but it only use bash shell script and binary program.
85     some of developping utils is used for pkg building, integrate them into 
86 src pkg build software pkg-builder. such as pkg name generating, version id
87 increase ...
88     those developping utils program is wroted for console environment, some
89 application need graphic ui, it uses tui instead of gui.
90         all the script program is written by shell script, or it should say bash script.
91 and i hope all the script program is written by shell script, it can decrease 
92 more soft pkg dependence. if the feature is more complex, use binary executables
93 instead.
97 # build & install
98 -----------------
102 # other packages
103 ----------------
108 # package dirs and files
109 ====================
111     put some gnu doc file into doc dir. 
112 @ bin, shell script program dir.
113 @ shlib, shell script library dir.
114 @ src, c/cpp src code dir.
115 @ doc/design-doc, the code design doc for build-srcpkg.
116 @ doc/manual-doc, usage doc of build-srcpkg.
117 @ doc, contains copyright、author、changelog ... etc, that a gnu project needed.
120 # featrues
121 ==========
123     the first edition of soft pkg only contain one program.
124         
125 * scripttest, 
126 * tmpl, 
127 * etz/emfz, 
128 * pkginst(paths.shlib), 
129 * lxr, 
130 * gmr, 
131 * txtfmt, 
132 * dvar, 
133 * hexfmt, 
134 * tui, 
136     featrues in developping:
138 * codegen, generate code dirs and files by catalog text automatically, generate src code 
139   by src templete file.
140 * code-analysis, 
141 * codefmt, 
142 * tagdoc, 
143 * dev, 
144 * devtask, 
145 * devfeature, 
146 * symbname, namming check of var & func & type & macro & filename.
147 * chkspell, 
148 * optgen, 
149 * modify, if some of the text words generated by codegen contains wrong spelling, this util
150   helps developer to change text words in a directory of src files.
154 * docgen, use script from gnu build-aux util set. it help developer to generate virouse
155   format of documents.
156 * dbglogview, dispatch log text which is formated as a syntax, and display log data, 
157   generate log event and invoking corresponding proc function.
158 * cargs, generate program paramter processing code in c/cpp.
159 * shargs, generate program paramter processing code in sh script.
160 * todolist, a program used for developping task manger between different developers through
161   E-mail, and also writing tasklist text by developer.
163 * cunit/cppunit, reference src from cunit/cppunit, used for unit testing of c/cpp src code.
164 * LVC a version control utils in local file system based on RCCS. manage code in non network
165   enviroument.
167     others:
169 * uml-tool, 
170 * git/CSSC/RCS...
171 * sftp-svr, 
172 * email-svr, 
173 * recutils, 
174 * ttyrec, 
175 * sqlite, 
176 * bugzilla, 
177 * gnutils/build-aux/gendoc.sh