3 @ dest file list is consisted by:
\r
11 $ sudo apt-cache depends recutils
\r
15 Depends: libreadline6
\r
22 /usr/share/doc/libmdb2
\r
23 /usr/share/doc/libmdb2/copyright
\r
24 /usr/share/doc/libmdb2/changelog.Debian.gz
\r
26 /usr/lib/i386-linux-gnu
\r
27 /usr/lib/i386-linux-gnu/libmdb.so.2.0.1
\r
28 /usr/lib/i386-linux-gnu/libmdb.so.2
\r
33 /usr/lib/librec.so.1.0.0
\r
36 /usr/share/doc/librec1
\r
37 /usr/share/doc/librec1/copyright
\r
38 /usr/share/doc/librec1/changelog.Debian.gz
\r
39 /usr/lib/librec.so.1
\r
45 /usr/lib/recutils/bash-builtins
\r
46 /usr/lib/recutils/bash-builtins/readrec.so
\r
60 /usr/share/doc/recutils
\r
61 /usr/share/doc/recutils/README
\r
62 /usr/share/doc/recutils/examples
\r
63 /usr/share/doc/recutils/examples/bash-builtins
\r
64 /usr/share/doc/recutils/examples/bash-builtins/readrec.sh
\r
65 /usr/share/doc/recutils/examples/movie-database
\r
66 /usr/share/doc/recutils/examples/movie-database/group_movies_by_audio.sh
\r
67 /usr/share/doc/recutils/examples/movie-database/show_movies_german.sh
\r
68 /usr/share/doc/recutils/examples/movie-database/README
\r
69 /usr/share/doc/recutils/examples/movie-database/group_movies_by_media.sh
\r
70 /usr/share/doc/recutils/examples/movie-database/count_movies.sh
\r
71 /usr/share/doc/recutils/examples/movie-database/show_movies_unseen_german.sh
\r
72 /usr/share/doc/recutils/examples/movie-database/show_movies_unseen.sh
\r
73 /usr/share/doc/recutils/examples/movie-database/movies.csv
\r
74 /usr/share/doc/recutils/examples/movie-database/show_oldest_and_latest_moviedate.sh
\r
75 /usr/share/doc/recutils/examples/movie-database/count_movies_german.sh
\r
76 /usr/share/doc/recutils/examples/movie-database/movies.rec
\r
77 /usr/share/doc/recutils/examples/movie-database/show_movies_with_more_than_2_discs.sh
\r
78 /usr/share/doc/recutils/examples/movie-database/convert_csv_to_rec.sh
\r
79 /usr/share/doc/recutils/examples/passwords
\r
80 /usr/share/doc/recutils/examples/passwords/show-passwords.sh
\r
81 /usr/share/doc/recutils/examples/passwords/passwords.rec
\r
82 /usr/share/doc/recutils/examples/passwords/check-encryption.sh
\r
83 /usr/share/doc/recutils/examples/passwords/show-encrypted-passwords.sh
\r
84 /usr/share/doc/recutils/examples/tool-database
\r
85 /usr/share/doc/recutils/examples/tool-database/tools.rec
\r
86 /usr/share/doc/recutils/examples/tool-database/README
\r
87 /usr/share/doc/recutils/examples/tool-database/to-purchase.sh
\r
88 /usr/share/doc/recutils/NEWS.gz
\r
89 /usr/share/doc/recutils/README.Debian
\r
90 /usr/share/doc/recutils/copyright
\r
92 /usr/share/emacs/site-lisp
\r
93 /usr/share/emacs/site-lisp/rec-mode.el
\r
94 /usr/share/emacs/site-lisp/ob-rec.el
\r
97 /usr/share/man/man1/recsel.1.gz
\r
98 /usr/share/man/man1/mdb2rec.1.gz
\r
99 /usr/share/man/man1/recset.1.gz
\r
100 /usr/share/man/man1/recinf.1.gz
\r
101 /usr/share/man/man1/recdel.1.gz
\r
102 /usr/share/man/man1/recfmt.1.gz
\r
103 /usr/share/man/man1/csv2rec.1.gz
\r
104 /usr/share/man/man1/rec2csv.1.gz
\r
105 /usr/share/man/man1/recins.1.gz
\r
106 /usr/share/man/man1/recfix.1.gz
\r
108 /usr/share/locale/sr
\r
109 /usr/share/locale/sr/LC_MESSAGES
\r
110 /usr/share/locale/sr/LC_MESSAGES/recutils.mo
\r
111 /usr/share/locale/vi
\r
112 /usr/share/locale/vi/LC_MESSAGES
\r
113 /usr/share/locale/vi/LC_MESSAGES/recutils.mo
\r
114 /usr/share/locale/nl
\r
115 /usr/share/locale/nl/LC_MESSAGES
\r
116 /usr/share/locale/nl/LC_MESSAGES/recutils.mo
\r
117 /usr/share/locale/sv
\r
118 /usr/share/locale/sv/LC_MESSAGES
\r
119 /usr/share/locale/sv/LC_MESSAGES/recutils.mo
\r
120 /usr/share/locale/de
\r
121 /usr/share/locale/de/LC_MESSAGES
\r
122 /usr/share/locale/de/LC_MESSAGES/recutils.mo
\r
123 /usr/share/locale/uk
\r
124 /usr/share/locale/uk/LC_MESSAGES
\r
125 /usr/share/locale/uk/LC_MESSAGES/recutils.mo
\r
126 /usr/share/locale/fr
\r
127 /usr/share/locale/fr/LC_MESSAGES
\r
128 /usr/share/locale/fr/LC_MESSAGES/recutils.mo
\r
129 /usr/share/locale/fi
\r
130 /usr/share/locale/fi/LC_MESSAGES
\r
131 /usr/share/locale/fi/LC_MESSAGES/recutils.mo
\r
133 /usr/share/info/recutils.info.gz
\r
134 /usr/share/info/rec-mode.info.gz
\r
135 /usr/share/recutils
\r
136 /usr/share/recutils/etc
\r
137 /usr/share/recutils/etc/FSD.rec
\r
138 /usr/share/doc/recutils/changelog.Debian.gz
\r
141 this soft-pkg contain two intall-pkg, and the corresponding executables.
\r
144 /usr/lib/i386-linux-gnu/libmdb.so.2.0.1
\r
145 /usr/lib/i386-linux-gnu/libmdb.so.2
\r
147 /usr/lib/librec.so.1
\r
148 /usr/lib/librec.so.1.0.0
\r
150 /usr/lib/recutils/bash-builtins/readrec.so
\r
166 PARAM_SRCPKG=recutils
\r
169 PARAM_ARCH_LIST=x86 arm
\r
171 build_arch_list(PARAM_ARCH_LIST);
\r
175 PARAM_SRCPKG_LIST=recutils libmdb2
\r
177 PARAM_SRCPKG_BUILD_LIST=recutils-x86 libmdb2-x86 recutils-arm libmdb2-arm
\r
179 build_srcpkg_list PARAM_SRCPKG_BUILD_LIST x86
\r
180 build_srcpkg_list PARAM_SRCPKG_BUILD_LIST arm
\r
183 # build srcpkg recutils x86
\r
185 PARAM_DEST_BUILD_LIST=""
\r
187 [srcpkg::x86::recutils]
\r
189 PARAM_INSTPKG_LIST=recutils librec1
\r
191 [instpkg::x86::recutils]
\r
192 PARAM_ARCH_LIST=x86
\r
193 PARAM_DEST_LIST="recutils readrec.so recfix recinf csv2rec recset mdb2rec recfmt recsel recins recdel rec2csv"
\r
194 ::PARAM_DEST_BUILD_LIST+=" $PARAM_DEST_LIST"
\r
196 [instpkg::x86::librec1]
\r
197 PARAM_ARCH_LIST=x86
\r
198 PARAM_DEST_LIST=librec.so.1.0.0
\r
199 ::PARAM_DEST_BUILD_LIST+=" $PARAM_DEST_LIST"
\r
201 # build dest in list with specified arch.
\r
202 build_dest_list PARAM_DEST_BUILD_LIST x86
\r
203 # pkg dest files into install pkg in spedified arch.
\r
204 build_instpkg_list ::PARAM_INSTPKG_LIST x86
\r
208 # build srcpkg libmdb2 x86
\r
210 PARAM_DEST_BUILD_LIST=""
\r
212 [srcpkg::x86::libmdb2]
\r
213 PARAM_ARCH_LIST=x86
\r
214 PARAM_INSTPKG_LIST=libmdb2
\r
216 [instpkg::x86::libmdb2]
\r
217 PARAM_ARCH_LIST=x86
\r
218 PARAM_DEST_LIST="libmdb.so.2.0.1"
\r
219 ::PARAM_DEST_BUILD_LIST+=" $PARAM_DEST_LIST"
\r
221 # build dest in list with specified arch.
\r
222 build_dest_list PARAM_DEST_BUILD_LIST x86
\r
223 # pkg dest files into install pkg in spedified arch.
\r
224 build_instpkg_list ::PARAM_INSTPKG_LIST x86
\r
225 # end of building for x86
\r
228 # build srcpkg recutils arm
\r
230 PARAM_DEST_BUILD_LIST=""
\r
232 [srcpkg::arm::recutils]
\r
234 PARAM_INSTPKG_LIST=recutils librec1
\r
236 [instpkg::arm::recutils]
\r
237 PARAM_ARCH_LIST=arm
\r
238 PARAM_DEST_LIST="recutils readrec.so recfix recinf csv2rec recset mdb2rec recfmt recsel recins recdel rec2csv"
\r
239 ::PARAM_DEST_BUILD_LIST+=" $PARAM_DEST_LIST"
\r
241 [instpkg::arm::librec1]
\r
242 PARAM_ARCH_LIST=arm
\r
243 PARAM_DEST_LIST=librec.so.1.0.0
\r
244 ::PARAM_DEST_BUILD_LIST+=" $PARAM_DEST_LIST"
\r
246 # build dest in list with specified arch.
\r
247 build_dest_list(PARAM_DEST_BUILD_LIST, x86)
\r
248 # pkg dest files into install pkg in spedified arch.
\r
249 build_instpkg_list(::PARAM_INSTPKG_LIST, x86)
\r
253 # build srcpkg libmdb2 arm
\r
255 PARAM_DEST_BUILD_LIST=""
\r
257 [srcpkg::arm::libmdb2]
\r
258 PARAM_ARCH_LIST=arm
\r
259 PARAM_INSTPKG_LIST=libmdb2
\r
261 [instpkg::arm::libmdb2]
\r
262 PARAM_ARCH_LIST=arm
\r
263 PARAM_DEST_LIST="libmdb.so.2.0.1"
\r
264 PARAM_DEST_BUILD_LIST+=" $PARAM_DEST_LIST"
\r
267 PARAM_INSTPKG_LIST=recutils librec1 libmdb.so.2.0.1
\r
268 PARAM_DEST_LIST=recutils librec.so.1.0.0 readrec.so recfix recinf csv2rec recset mdb2rec recfmt recsel recins recdel rec2csv libmdb.so.2.0.1
\r
270 # build dest in list with specified arch.
\r
271 build_dest_list PARAM_DEST_BUILD_LIST x86
\r
272 # pkg dest files into install pkg in spedified arch.
\r
273 build_instpkg_list ::PARAM_INSTPKG_LIST x86
\r
274 # end of building for arm
\r
279 # build_all: all => arch => srcpkg => dest
\r
280 # qstk: push build func into qstk, and running in task loop.
\r
281 # new task appended in task func, until the task complete.
\r
283 # build_dest: dest_type => dest_step => task_func
\r
289 # build all: if a srcpkg with multi-srcpkg, it get the build arch_list first,
\r
290 # and get the srcpkg_list by 'build srcpkglist'. and execute 'build curr' to
\r
291 # build the dest in current srcpkg.
\r
292 # 'build srcpkglist' invoke 'build subsrcpkglist' and 'build depsrcpkglist'
\r
293 # to display other srcpkg list. and invoke 'build srcpkglist' in dir path of
\r
294 # each sub srcpkg. at last, it get the srcpkg_list to be built for current
\r
296 # 'build curr' get the dest_list in crrent srcpkg, or get the instpkg_list,
\r
297 # and combine the dest_list in them. then do the build work by 'build_dest'.
\r
299 # build_dest: it's the unit of building operation. it get the dest_type, and
\r
300 # get the dest_step_list, do work one by one. every step is consisted by a
\r
301 # taskunit. it contains input/output/paramter, and the corresponding function
\r
302 # to execute. it like a pipe line, one step produce product for next step,
\r
303 # until the component is produced.
\r
304 # another type of building operation is dependence & trig taskunit. the
\r
305 # dest_type contain a dest_unit. and the dest_unit is in a taskunit lib. all
\r
306 # taskunit fill with the info of dependence & trig & taskfunc. dependence or
\r
307 # trig specify one or more relative taskunit, or the output res generated by
\r
308 # other taskunit. or generate the output res itself, and trig other task unit
\r
310 # taskunit can work with those two method. it is setted by dest_step_list,
\r
311 # or dest_taskunit.
\r
312 # the dependence relationship can be draw as a graphic diagram, it will
\r
313 # display the sequence diagram similar with the dest_step_list.
\r
314 # for the legcey feature of tag dependence in makefile, task unit can
\r
315 # express more info then it in makefile.
\r
318 # building work stage is sperated at single srcpkg building. building work
\r
319 # of srcpkg is consisted by many single srcpkg building work. there are no
\r
320 # complex building step and relationship between them, just use a work task
\r
321 # queue. and the work can be scheduled by parell task executing feature on
\r
322 # different cpu, even if on different host machine.
\r
323 # one arch type, one single srcpkg, can be built on one host machine. it
\r
324 # will save build time.
\r
325 # at the same time, a dest building work orgnized by taskunit, can also be
\r
326 # running one different host machine. but the method of building work is
\r
327 # different, it uses cmd agent, instead of taskunit distribution.
\r
333 # 'build all' checks srcpkg in depsrcpkglist, if it is existing in develop
\r
334 # environment. if it is not exist in develop environment, download and unzip
\r
335 # them into dir of 'ext-pkgs'.
\r
336 # list. those command will be invoked in sub-srcpkg dir path again.
\r
337 # external srcpkg_list and sub srcpkg_list.
\r
338 # get srcpkg list by cmd:
\r
339 # 'build -d $srcpkg_dir subpkglist'
\r
340 # 'build -d $srcpkg_dir deppkglist'
\r
341 # 'build -d $srcpkg_dir arch=$PARAM_ARCH all'.
\r
342 # this cmd check srcpkg type in specified dir path, and set cross-platform of
\r
343 # srcpkg, then invoke build function to construct the srcpkg in specified dir.
\r
346 get_srcpkg_build_srcpkg_list ()
\r
351 qstk_create qstk_build_task
\r
360 qstk_task="$(qstk_pop qstk_build_task)"
\r
361 [[ -z $qstk_task ]] && break;
\r
368 ########################################
\r
370 get_this_srcpkg_name ()
\r
372 echo "$PARAM_SRCPKG"
\r
375 # get sub srcpkg in the srcpkg.
\r
376 get_srcpkg_sub_list ()
\r
381 # get external dependence srcpkg for srcpkg.
\r
382 get_srcpkg_extern_list ()
\r
387 get_srcpkg_dest_list ()
\r
392 get_srcpkg_inst_list ()
\r
397 get_instpkg_dest_list ()
\r
407 get_dest_type_step_list ()
\r
413 ########################################
\r
417 build_arch_list "$PARAM_ARCH_LIST"
\r
419 # executing task in loop.
\r
423 # compile, and generate install pkgs by different arch.
\r
427 local this_pkg="$(get_this_srcpkg_name)"
\r
430 qstk_push qstk_build_task "build_srcpkg_list \"$(get_srcpkg_list $this_pkg $arch)\" $1"
\r
434 # compile dest executables in a srcpkg list, and make install pkgs.
\r
435 build_srcpkg_list ()
\r
438 local instpkg_list=
\r
440 instpkg_list="$(get_srcpkg_inst_list $1)"
\r
442 # normally, dest_list is stored in srcpkg,
\r
443 # but sometimes, a srcpkg generate several install pkgs,
\r
444 # and contain a dest_list. the dest_list for srcpkg is
\r
445 # the combination dest_list of all install pkgs.
\r
446 dest_list="$(get_srcpkg_dest_list $1)"
\r
447 if [[ -z $dest_list ]]; then
\r
448 for i in $instpkg_list; do
\r
449 dest_list+=" $(get_instpkg_dest_list $i)"
\r
453 qstk_push qstk_build_task "build_dest_list \"$dest_list\" $2"
\r
454 build_instpkg_list "$instpkg_list" $2
\r
457 # compile dest executables in dest_list.
\r
461 qstk_push qstk_build_task "build_dest $i $2"
\r
465 build_instpkg_list ()
\r
468 qstk_push qstk_build_task "build_instpkg $i $2"
\r
473 # building for one actual executable dest.
\r
481 local dest_step_list=
\r
484 dest_type="$get_dest_type $dest"
\r
485 dest_step_list="$get_dest_type_step_list $dest_type"
\r
487 for i in $dest_step_list; do
\r
488 build_dest_by_step $i $dest $dest_type
\r
492 build_dest_by_step ()
\r
502 src_list="$(get_step_src_list $step)"
\r
503 dest_list="$(get_step_dest_list $step)"
\r
504 buildtask="$(get_step_buildtask_list $step)"
\r
506 for srcfile in $src_list; do
\r
507 build_task $buildtask "$srcfile" "$dest_list"
\r
515 taskfunc="$(get_build_task_func $1)"
\r
516 $taskfunc "$2" "$3"
\r
522 # build instpkg with specified arch.
\r
523 # by using install file list in instpkg setting file.
\r
527 get the output executables: ttyrec, ttyplay, ttytime/
\r