*** empty log message ***
[h316.git] / lib / fortran / buildlib.sh
1 #!/bin/bash
2
3 # Here we find the recipes for the libraries.
4 RECIPE_DIR=recipe
5
6 # And their file suffix
7 RECIPE_SUFFIX=.recipe
8
9 # Here go the new libraries
10 OUTPUT_DIR=./lib
11
12 # This is needed as end-of-tape block for the loader
13 ENDBLOCK=$H316/snippets/endseq
14
15 # Where to get the original libraries:
16 ORG_LIBDIR=original
17
18 # And where to store the original objects
19 ORG_OBJDIR=org
20
21 # The suffix for library files (in and out)
22 LIB_SUFFIX=.lib
23 #######################################################################
24
25
26 # Clean everything up
27 clean() {
28 rm -rf $OUTPUT_DIR $ORG_OBJDIR
29 }
30
31 # Generate org directory containing the original library objects
32 make_org() {
33 if [ ! -d "$ORG_OBJDIR" ]; then
34 mkdir $ORG_OBJDIR
35 fi
36 tdir=$PWD
37 cd $ORG_OBJDIR
38 cat $tdir/$ORG_LIBDIR/*$LIB_SUFFIX | ldc -s
39 cd $tdir
40 }
41
42 genlib(){
43 echo "Library Builder start."
44 if [ ! -d "$OUTPUT_DIR" ]; then
45 echo -n "Creating $OUTPUT_DIR:"
46 mkdir $OUTPUT_DIR && echo "Ok." || echo "FAILED!"
47 fi
48
49
50
51 RECIPE_LIST=`ls $RECIPE_DIR/*$RECIPE_SUFFIX`
52 for recipe in $RECIPE_LIST; do
53 lib=$OUTPUT_DIR/`basename $recipe $RECIPE_SUFFIX`$LIB_SUFFIX
54 echo "Building $lib:"
55 rm -f $lib
56 for item in `cat $recipe`; do
57 echo "appending $item."
58 cat $item >> $lib || (echo "Error! could not find:$item")
59 done
60 cat $ENDBLOCK >> $lib
61 done
62 }
63
64
65 case $1 in
66 clean)
67 echo "Clean!"
68 clean
69 ;;
70 makeorg)
71 echo "Make org!"
72 make_org
73 ;;
74 lib)
75 echo "Build Lib!"
76 genlib
77 ;;
78 *)
79 clean
80 make_org
81 genlib
82 ;;
83 esac
84