1#!/bin/sh
2#############################################################################
3# bash script buildpkb.sh --- builds textana and siggen pkb files
4#                             from textana and siggen lingware source files
5#
6# Copyright (C) 2009 SVOX AG. All rights reserved.
7#############################################################################
8
9#tools
10TOOLS_DIR=.
11
12#textana sources
13TA_SRC_DIR=../textana
14
15#siggen sources
16SG_SRC_DIR=../siggen
17
18#resulting pkb
19DEST_PKB_DIR=../pkb
20
21#temporary files
22TMP_DIR=.
23
24####  check parameter count
25
26if [ -n "$4" -o -z "$2" ]; then
27    echo "usage: $0  <langid>  <countryid>  <voice>";
28    echo "  e.g: $0 en GB kh0";
29    exit;
30fi
31
32#### check if language supported
33
34if [ $1 = "en" ]; then
35    if [ $2 = "GB" ]; then
36        echo
37    elif [ $2 = "US" ]; then
38        echo
39    else
40        echo;
41        echo [ERROR] invalid country id for language \"$1\"; exit;
42    fi
43elif [ $1 = "de" ]; then
44    if [ $2 = "DE" ]; then
45        echo
46    else
47        echo;
48        echo [ERROR] invalid country id for language \"$1\"; exit;
49    fi
50elif [ $1 = "es" ]; then
51    if [ $2 = "ES" ]; then
52        echo
53    else
54        echo;
55        echo [ERROR] invalid country id for language \"$1\"; exit;
56    fi
57elif [ $1 = "it" ]; then
58    if [ $2 = "IT" ]; then
59        echo
60    else
61        echo;
62        echo [ERROR] invalid country id for language \"$1\"; exit;
63    fi
64elif [ $1 = "fr" ]; then
65    if [ $2 = "FR" ]; then
66        echo
67    else
68        echo;
69        echo [ERROR] invalid country id for language \"$1\"; exit;
70    fi
71else
72    echo;
73    echo [ERROR] invalid language id; exit;
74fi
75
76LANG=$1-$2
77VOICE=$3
78
79###########################################
80##
81## SET LANGUAGE-DEPENDENT PARAMS
82##
83###########################################
84
85if [ $LANG = "en-GB" ]; then
86    WPHO_RANGE="1"
87    SPHO_RANGE="1 2 3 4"
88    if [ "$VOICE" = "kh0" ]; then
89        SPHO_VOICE_RANGE="5"
90    else
91        echo [ERROR] \<voice\> is needed;
92        exit;
93    fi
94elif [ $LANG = "en-US" ]; then
95    WPHO_RANGE="1 2"
96    SPHO_RANGE="1"
97    if [ "$VOICE" = "mh5" ]; then
98        SPHO_VOICE_RANGE="2 3 4 5"
99    elif [ "$VOICE" = "kr0" ]; then
100        SPHO_VOICE_RANGE="2 3 4"
101    elif [ "$VOICE" = "lh0" ]; then
102        SPHO_VOICE_RANGE="2 3 4 5"
103    else
104        echo [ERROR] \<voice\> is needed;
105        exit;
106    fi
107elif [ $LANG = "de-DE" ]; then
108    WPHO_RANGE="1 2"
109    SPHO_RANGE="1"
110    if [ "$VOICE" = "gl0" ]; then
111        SPHO_VOICE_RANGE="2"
112    else
113        echo [ERROR] \<voice\> is needed;
114        exit;
115    fi
116elif [ $LANG = "es-ES" ]; then
117    WPHO_RANGE="1"
118    SPHO_RANGE="1 2 3 4"
119    if [ "$VOICE" = "zl0" ]; then
120        SPHO_VOICE_RANGE="5"
121    else
122        echo [ERROR] \<voice\> is needed;
123        exit;
124    fi
125elif [ $LANG = "it-IT" ]; then
126    WPHO_RANGE="1"
127    SPHO_RANGE="1"
128    if [ "$VOICE" = "cm0" ]; then
129        SPHO_VOICE_RANGE="2"
130    else
131        echo [ERROR] \<voice\> is needed;
132        exit;
133    fi
134elif [ $LANG = "fr-FR" ]; then
135    WPHO_RANGE="1"
136    SPHO_RANGE="1 2 3 4 5 6 7 8"
137    if [ "$VOICE" = "nk0" ]; then
138        SPHO_VOICE_RANGE="9"
139    else
140        echo [ERROR] \<voice\> is needed;
141        exit;
142    fi
143fi
144TA_SRC_DIR_LANG=${TA_SRC_DIR}/${LANG}/
145SG_SRC_DIR_LANG=${SG_SRC_DIR}/${LANG}/
146
147DEST_PKB_DIR_LANG=${DEST_PKB_DIR}/${LANG}/
148
149## language-independent values
150LFZ_RANGE="1 2 3 4 5"    
151MGC_RANGE="1 2 3 4 5"    
152
153###########################################
154##
155## DEFINE FILE NAMES
156##
157###########################################
158
159#####  TABLES / LEXICON ###################
160
161GRAPHS_FN=${LANG}_graphs.utf
162PHONES_FN=${LANG}_phones.utf
163POS_FN=${LANG}_pos.utf
164
165LEXPOS_FN=${LANG}_lexpos.utf
166
167GRAPHS_PKB_FN=${LANG}_ktab_graphs.pkb
168PHONES_PKB_FN=${LANG}_ktab_phones.pkb
169POS_PKB_FN=${LANG}_ktab_pos.pkb
170
171LEXPOS_PKB_FN=${LANG}_klex.pkb
172
173DBG_PKB_FN=${LANG}_kdbg.pkb
174
175#####  AUTOMATA  ########################
176
177# phonetic input alphabet parser
178PARSE_XSAMPA=parse-xsampa
179
180PARSE_XSAMPA_SYM_FN=${PARSE_XSAMPA}_symtab.utf
181PARSE_XSAMPA_AUT_FN=${PARSE_XSAMPA}_aut.utf
182
183PARSE_XSAMPA_AUT_PKB_FN=kfst_${PARSE_XSAMPA}.pkb
184
185# phonetic input alphabet to internal phonemes mapper
186MAP_XSAMPA=map-xsampa
187
188MAP_XSAMPA_SYM_FN=${LANG}_${MAP_XSAMPA}_symtab.utf
189MAP_XSAMPA_AUT_FN=${LANG}_${MAP_XSAMPA}_aut.utf
190
191MAP_XSAMPA_AUT_PKB_FN=${LANG}_kfst_${MAP_XSAMPA}.pkb
192
193for i in $WPHO_RANGE; do
194    eval AUT_WORD${i}_FN=${LANG}_aut_wpho${i}.utf
195    eval AUT_PKB_WORD${i}_FN=${LANG}_kfst_wpho${i}.pkb
196done
197
198for i in ${SPHO_RANGE}; do
199    eval AUT_SENT${i}_FN=${LANG}_aut_spho${i}.utf
200    eval AUT_PKB_SENT${i}_FN=${LANG}_kfst_spho${i}.pkb
201done
202
203# voice dependent FSTs
204for i in ${SPHO_VOICE_RANGE}; do
205    eval AUT_SENT${i}_FN=${LANG}_${VOICE}_aut_spho${i}.utf
206    eval AUT_PKB_SENT${i}_FN=${LANG}_${VOICE}_kfst_spho${i}.pkb
207done
208
209PHONES_SYM_FN=${LANG}_phones_symtab.utf
210
211#####  PREPROC  ###########################
212
213TPP_NET_FN=${LANG}_tpp_net.utf
214TPP_NET_PKB_FN=${LANG}_kpr.pkb
215
216#####  DECISION TREES  ####################
217
218#textana DT
219DT_POSP_FN=${LANG}_kdt_posp.utf
220DT_POSD_FN=${LANG}_kdt_posd.utf
221DT_G2P_FN=${LANG}_kdt_g2p.utf
222DT_PHR_FN=${LANG}_kdt_phr.utf
223DT_ACC_FN=${LANG}_kdt_acc.utf
224
225#textana configuration ini files
226CFG_POSP_FN=${LANG}_kdt_posp.dtfmt
227CFG_POSD_FN=${LANG}_kdt_posd.dtfmt
228CFG_G2P_FN=${LANG}_kdt_g2p.dtfmt
229CFG_PHR_FN=${LANG}_kdt_phr.dtfmt
230CFG_ACC_FN=${LANG}_kdt_acc.dtfmt
231
232DT_PKB_POSP_FN=${LANG}_kdt_posp.pkb
233DT_PKB_POSD_FN=${LANG}_kdt_posd.pkb
234DT_PKB_G2P_FN=${LANG}_kdt_g2p.pkb
235DT_PKB_PHR_FN=${LANG}_kdt_phr.pkb
236DT_PKB_ACC_FN=${LANG}_kdt_acc.pkb
237
238#siggen DT
239DT_DUR_FN=${LANG}_${VOICE}_kdt_dur.utf
240DT_PKB_DUR_FN=${LANG}_${VOICE}_kdt_dur.pkb
241
242for i in $LFZ_RANGE; do
243    eval DT_LFZ${i}_FN=${LANG}_${VOICE}_kdt_lfz${i}.utf
244    eval DT_PKB_LFZ${i}_FN=${LANG}_${VOICE}_kdt_lfz${i}.pkb
245done    
246for i in $MGC_RANGE; do
247    eval DT_MGC${i}_FN=${LANG}_${VOICE}_kdt_mgc${i}.utf
248    eval DT_PKB_MGC${i}_FN=${LANG}_${VOICE}_kdt_mgc${i}.pkb
249done
250
251#siggen configuration ini file
252CFG_SG_FN=kdt_pam.dtfmt
253
254#####  PDFS  ##############################
255
256PDF_DUR_FN=${LANG}_${VOICE}_kpdf_dur.utf
257PDF_LFZ_FN=${LANG}_${VOICE}_kpdf_lfz.utf
258PDF_MGC_FN=${LANG}_${VOICE}_kpdf_mgc.utf
259PDF_PHS_FN=${LANG}_${VOICE}_kpdf_phs.utf
260
261PDF_PKB_DUR_FN=${LANG}_${VOICE}_kpdf_dur.pkb
262PDF_PKB_LFZ_FN=${LANG}_${VOICE}_kpdf_lfz.pkb
263PDF_PKB_MGC_FN=${LANG}_${VOICE}_kpdf_mgc.pkb
264PDF_PKB_PHS_FN=${LANG}_${VOICE}_kpdf_phs.pkb
265
266###########################################
267##
268## DEFINE FULL FILE PATHS
269##
270###########################################
271
272#####  TABLES / LEXICA   ##################
273
274SRC_GRAPHS=`cygpath -w $TA_SRC_DIR_LANG/$GRAPHS_FN`
275DEST_PKB_GRAPHS=`cygpath -w $DEST_PKB_DIR_LANG/$GRAPHS_PKB_FN`
276
277SRC_PHONES=`cygpath -w $TA_SRC_DIR_LANG/$PHONES_FN`
278DEST_PKB_PHONES=`cygpath -w $DEST_PKB_DIR_LANG/$PHONES_PKB_FN`
279
280SRC_POS=`cygpath -w $TA_SRC_DIR_LANG/$POS_FN`
281DEST_PKB_POS=`cygpath -w $DEST_PKB_DIR_LANG/$POS_PKB_FN`
282
283SRC_LEX=`cygpath -w $TA_SRC_DIR_LANG/$LEXPOS_FN`
284DEST_PKB_LEX=`cygpath -w $DEST_PKB_DIR_LANG/$LEXPOS_PKB_FN`
285
286DEST_PKB_DBG=`cygpath -w $DEST_PKB_DIR_LANG/$DBG_PKB_FN`
287
288#####  AUTOMATA  ########################
289
290SRC_PARSE_XSAMPA_AUT=`cygpath -w $TA_SRC_DIR/$PARSE_XSAMPA_AUT_FN`
291SRC_PARSE_XSAMPA_SYM=`cygpath -w $TA_SRC_DIR/$PARSE_XSAMPA_SYM_FN`
292
293DEST_PARSE_XSAMPA_AUT_PKB=`cygpath -w $DEST_PKB_DIR/$PARSE_XSAMPA_AUT_PKB_FN`
294
295SRC_MAP_XSAMPA_AUT=`cygpath -w $TA_SRC_DIR_LANG/$MAP_XSAMPA_AUT_FN`
296SRC_MAP_XSAMPA_SYM=`cygpath -w $TA_SRC_DIR_LANG/$MAP_XSAMPA_SYM_FN`
297
298DEST_MAP_XSAMPA_AUT_PKB=`cygpath -w $DEST_PKB_DIR_LANG/$MAP_XSAMPA_AUT_PKB_FN`
299
300
301for i in $WPHO_RANGE; do
302    eval SRC_AUT_WORD${i}='"`'cygpath -w $TA_SRC_DIR_LANG/\$AUT_WORD${i}_FN'`"'
303    eval DEST_AUT_PKB_WORD${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$AUT_PKB_WORD${i}_FN'`"'
304done
305
306for i in $SPHO_RANGE; do
307    eval SRC_AUT_SENT${i}='"`'cygpath -w $TA_SRC_DIR_LANG/\$AUT_SENT${i}_FN'`"'
308    eval DEST_AUT_PKB_SENT${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$AUT_PKB_SENT${i}_FN'`"'
309done
310
311#voice dependent FSTs
312for i in $SPHO_VOICE_RANGE; do
313    eval SRC_AUT_SENT${i}='"`'cygpath -w $TA_SRC_DIR_LANG/\$AUT_SENT${i}_FN'`"'
314    eval DEST_AUT_PKB_SENT${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$AUT_PKB_SENT${i}_FN'`"'
315done
316
317TMP_PHONES_SYM=`cygpath -w $TMP_DIR/$PHONES_SYM_FN`
318
319#####  PREPROC  ###########################
320
321SRC_TPP_NET=`cygpath -w $TA_SRC_DIR_LANG/$TPP_NET_FN`
322DEST_TPP_NET_PKB=`cygpath -w $DEST_PKB_DIR_LANG/$TPP_NET_PKB_FN`
323
324#####  DECISION TREES  ####################
325
326#textana DT
327SRC_DT_POSP=`cygpath -w $TA_SRC_DIR_LANG/$DT_POSP_FN`
328SRC_DT_POSD=`cygpath -w $TA_SRC_DIR_LANG/$DT_POSD_FN`
329SRC_DT_G2P=`cygpath -w $TA_SRC_DIR_LANG/$DT_G2P_FN`
330SRC_DT_PHR=`cygpath -w $TA_SRC_DIR_LANG/$DT_PHR_FN`
331SRC_DT_ACC=`cygpath -w $TA_SRC_DIR_LANG/$DT_ACC_FN`
332
333#textana configuration ini files
334CFG_DT_POSP=`cygpath -w $TA_SRC_DIR_LANG/$CFG_POSP_FN`
335CFG_DT_POSD=`cygpath -w $TA_SRC_DIR_LANG/$CFG_POSD_FN`
336CFG_DT_G2P=`cygpath -w $TA_SRC_DIR_LANG/$CFG_G2P_FN`
337CFG_DT_PHR=`cygpath -w $TA_SRC_DIR_LANG/$CFG_PHR_FN`
338CFG_DT_ACC=`cygpath -w $TA_SRC_DIR_LANG/$CFG_ACC_FN`
339
340#siggen
341SRC_DT_DUR=`cygpath -w $SG_SRC_DIR_LANG/$DT_DUR_FN`
342    
343for i in $LFZ_RANGE; do
344    eval SRC_DT_LFZ${i}='"`'cygpath -w $SG_SRC_DIR_LANG/\$DT_LFZ${i}_FN'`"'
345done
346    
347for i in $MGC_RANGE; do
348    eval SRC_DT_MGC${i}='"`'cygpath -w $SG_SRC_DIR_LANG/\$DT_MGC${i}_FN'`"'
349done
350
351#siggen configuration ini file
352CFG_DT_SG=`cygpath -w $SG_SRC_DIR/$CFG_SG_FN`
353
354#textana
355DEST_DT_PKB_POSP=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_POSP_FN`
356DEST_DT_PKB_POSD=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_POSD_FN`
357DEST_DT_PKB_G2P=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_G2P_FN`
358DEST_DT_PKB_PHR=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_PHR_FN`
359DEST_DT_PKB_ACC=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_ACC_FN`
360
361
362#siggen
363DEST_DT_PKB_DUR=`cygpath -w $DEST_PKB_DIR_LANG/$DT_PKB_DUR_FN`
364    
365for i in $LFZ_RANGE; do
366    eval DEST_DT_PKB_LFZ${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$DT_PKB_LFZ${i}_FN'`"'
367done
368    
369for i in $MGC_RANGE; do
370    eval DEST_DT_PKB_MGC${i}='"`'cygpath -w $DEST_PKB_DIR_LANG/\$DT_PKB_MGC${i}_FN'`"'
371done
372
373
374#####  PDFS  ##############################
375
376SRC_PDF_DUR=`cygpath -w $SG_SRC_DIR_LANG/$PDF_DUR_FN`
377SRC_PDF_LFZ=`cygpath -w $SG_SRC_DIR_LANG/$PDF_LFZ_FN`
378SRC_PDF_MGC=`cygpath -w $SG_SRC_DIR_LANG/$PDF_MGC_FN`
379SRC_PDF_PHS=`cygpath -w $SG_SRC_DIR_LANG/$PDF_PHS_FN`
380
381DEST_PDF_PKB_DUR=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_DUR_FN`
382DEST_PDF_PKB_LFZ=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_LFZ_FN`
383DEST_PDF_PKB_MGC=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_MGC_FN`
384DEST_PDF_PKB_PHS=`cygpath -w $DEST_PKB_DIR_LANG/$PDF_PKB_PHS_FN`
385
386###########################################
387##
388## Compilation into pkb
389##
390###########################################
391
392SYMSHIFT=${TOOLS_DIR}/symshift.pl
393GRAPHS_TO_PKB=${TOOLS_DIR}/picoloadgraphs.exe
394PHONES_TO_PKB=${TOOLS_DIR}/picoloadphones.lua
395DBG_TO_PKB=${TOOLS_DIR}/picoloaddbg.lua
396POS_TO_PKB=${TOOLS_DIR}/picoloadpos.exe
397LEX_TO_PKB=${TOOLS_DIR}/picoloadlex
398AUT_TO_PKB=${TOOLS_DIR}/picoloadfst.exe
399TPP_TO_PKB=${TOOLS_DIR}/picoloadpreproc.exe
400DT_TO_PKB=${TOOLS_DIR}/dt2pkb.exe
401PDF_TO_PKB=${TOOLS_DIR}/pdf2pkb.exe
402
403##### build intermediate files ############################
404
405echo ${SYMSHIFT} -phones $SRC_PHONES -POS $SRC_POS > $TMP_PHONES_SYM
406${SYMSHIFT} -phones $SRC_PHONES -POS $SRC_POS > $TMP_PHONES_SYM
407
408#####  TABLES  ############################
409
410echo ${GRAPHS_TO_PKB}  $SRC_GRAPHS               ${DEST_PKB_GRAPHS}
411${GRAPHS_TO_PKB}  $SRC_GRAPHS               ${DEST_PKB_GRAPHS}
412
413echo ${PHONES_TO_PKB}  $SRC_PHONES               ${DEST_PKB_PHONES}
414${PHONES_TO_PKB}  $SRC_PHONES               ${DEST_PKB_PHONES}
415
416echo ${POS_TO_PKB}     $SRC_POS                  ${DEST_PKB_POS}
417${POS_TO_PKB}     $SRC_POS                  ${DEST_PKB_POS}
418
419echo ${DBG_TO_PKB}    $SRC_PHONES               ${DEST_PKB_DBG}
420${DBG_TO_PKB}    $SRC_PHONES               ${DEST_PKB_DBG}
421
422#####  LEXICON ############################
423
424echo ${LEX_TO_PKB}         $SRC_PHONES $SRC_POS $SRC_LEX ${DEST_PKB_LEX}
425${LEX_TO_PKB}         $SRC_PHONES $SRC_POS $SRC_LEX ${DEST_PKB_LEX}
426
427#####  AUTOMATA  ########################
428
429echo ${AUT_TO_PKB} ${SRC_PARSE_XSAMPA_AUT} ${SRC_PARSE_XSAMPA_SYM} $DEST_PARSE_XSAMPA_AUT_PKB
430${AUT_TO_PKB} ${SRC_PARSE_XSAMPA_AUT} ${SRC_PARSE_XSAMPA_SYM} $DEST_PARSE_XSAMPA_AUT_PKB
431
432echo ${AUT_TO_PKB} ${SRC_MAP_XSAMPA_AUT} ${SRC_MAP_XSAMPA_SYM} $DEST_MAP_XSAMPA_AUT_PKB
433${AUT_TO_PKB} ${SRC_MAP_XSAMPA_AUT} ${SRC_MAP_XSAMPA_SYM} $DEST_MAP_XSAMPA_AUT_PKB
434
435for i in $WPHO_RANGE; do
436    eval echo ${AUT_TO_PKB} \${SRC_AUT_WORD${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_WORD${i}}
437    eval ${AUT_TO_PKB} \${SRC_AUT_WORD${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_WORD${i}}
438done
439
440for i in $SPHO_RANGE; do
441    eval echo ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}}
442    eval ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}}
443done
444
445# voice dependent FSTs
446for i in $SPHO_VOICE_RANGE; do
447    eval echo ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}}
448    eval ${AUT_TO_PKB} \${SRC_AUT_SENT${i}} ${TMP_PHONES_SYM} \${DEST_AUT_PKB_SENT${i}}
449done
450
451#####  PREPROC  ###########################
452
453echo ${TPP_TO_PKB} $SRC_GRAPHS $SRC_TPP_NET $DEST_TPP_NET_PKB
454${TPP_TO_PKB} $SRC_GRAPHS $SRC_TPP_NET $DEST_TPP_NET_PKB
455
456#####  DECISION TREES  ####################
457
458#textana
459#config file is added as the argument of the dt2pkb tool
460echo ${DT_TO_PKB}  $CFG_DT_POSP $SRC_DT_POSP $DEST_DT_PKB_POSP
461${DT_TO_PKB}  $CFG_DT_POSP $SRC_DT_POSP $DEST_DT_PKB_POSP
462
463echo ${DT_TO_PKB}  $CFG_DT_POSD $SRC_DT_POSD $DEST_DT_PKB_POSD
464${DT_TO_PKB}  $CFG_DT_POSD $SRC_DT_POSD $DEST_DT_PKB_POSD
465
466echo ${DT_TO_PKB}  $CFG_DT_G2P $SRC_DT_G2P $DEST_DT_PKB_G2P
467${DT_TO_PKB}  $CFG_DT_G2P $SRC_DT_G2P $DEST_DT_PKB_G2P
468
469echo ${DT_TO_PKB}  $CFG_DT_PHR $SRC_DT_PHR $DEST_DT_PKB_PHR
470${DT_TO_PKB}  $CFG_DT_PHR $SRC_DT_PHR $DEST_DT_PKB_PHR
471
472echo ${DT_TO_PKB}  $CFG_DT_ACC $SRC_DT_ACC $DEST_DT_PKB_ACC
473${DT_TO_PKB}  $CFG_DT_ACC $SRC_DT_ACC $DEST_DT_PKB_ACC
474
475#siggen
476echo ${DT_TO_PKB}  $CFG_DT_SG $SRC_DT_DUR $DEST_DT_PKB_DUR
477${DT_TO_PKB}  $CFG_DT_SG $SRC_DT_DUR $DEST_DT_PKB_DUR
478    
479for i in $LFZ_RANGE; do
480    eval echo ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_LFZ${i}} \${DEST_DT_PKB_LFZ${i}}
481    eval ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_LFZ${i}} \${DEST_DT_PKB_LFZ${i}}
482done
483    
484for i in $MGC_RANGE; do
485    eval echo ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_MGC${i}} \${DEST_DT_PKB_MGC${i}}
486    eval ${DT_TO_PKB} \${CFG_DT_SG} \${SRC_DT_MGC${i}} \${DEST_DT_PKB_MGC${i}}
487done
488
489#####  PDFS  ##############################
490
491echo ${PDF_TO_PKB} $SRC_PDF_DUR $DEST_PDF_PKB_DUR
492${PDF_TO_PKB} $SRC_PDF_DUR $DEST_PDF_PKB_DUR
493
494echo ${PDF_TO_PKB} $SRC_PDF_LFZ $DEST_PDF_PKB_LFZ
495${PDF_TO_PKB} $SRC_PDF_LFZ $DEST_PDF_PKB_LFZ
496
497echo ${PDF_TO_PKB} $SRC_PDF_MGC $DEST_PDF_PKB_MGC
498${PDF_TO_PKB} $SRC_PDF_MGC $DEST_PDF_PKB_MGC
499
500echo ${PDF_TO_PKB} $SRC_PDF_PHS $DEST_PDF_PKB_PHS
501${PDF_TO_PKB} $SRC_PDF_PHS $DEST_PDF_PKB_PHS
502
503