mk_config 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #!/bin/sh
  2. set -e
  3. create_dir $CONFIG
  4. create_dir $CONFIG/bin
  5. echo "#!/bin/sh" > $CONFIG/bin/ack_sys
  6. echo "echo $SYSNAME" >> $CONFIG/bin/ack_sys
  7. chmod +x $CONFIG/bin/ack_sys
  8. cd $SRC_HOME
  9. find . -type d -perm -555 -print > $CONFIG/dir_list
  10. cd $CONFIG
  11. for i in mach/*/libsys
  12. do
  13. rm -rf $i
  14. done
  15. for i in `cat dir_list`
  16. do
  17. create_dir $i
  18. rm -f $i/No*
  19. if [ -f $i/Makefile ]
  20. then
  21. ( cd $i ; if make clean ; then exit 0 ; else exit 0 ; fi ) > /dev/null 2>&1
  22. fi
  23. if [ -f $SRC_HOME/$i/proto.make ]
  24. then mk_makefile $SRC_HOME/$i/proto.make > $i/Makefile
  25. fi
  26. if [ -f $SRC_HOME/$i/Action ]
  27. then
  28. cd $SRC_HOME/$i
  29. cp Action* $CONFIG/$i
  30. chmod +w $CONFIG/$i/Action*
  31. cd $CONFIG
  32. fi
  33. done
  34. cd $CONFIG
  35. for i in lang/cem/cemcom.ansi lang/cem/cemcom lang/m2/comp
  36. do
  37. cp $SRC_HOME/$i/BigPars $CONFIG/$i/Parameters
  38. chmod +w $CONFIG/$i/Parameters
  39. done
  40. for i in lang/pc/comp lang/cem/cpp.ansi
  41. do
  42. cp $SRC_HOME/$i/Parameters $CONFIG/$i/Parameters
  43. chmod +w $CONFIG/$i/Parameters
  44. done
  45. cd $CONFIG/mach
  46. for i in *
  47. do
  48. if [ -d $i ]
  49. then
  50. if [ -d $i/as ]
  51. then
  52. cd $i/as
  53. mk_makefile $SRC_HOME/mach/proto/as/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
  54. cd ../..
  55. fi
  56. if [ -d $i/top ]
  57. then
  58. cd $i/top
  59. mk_makefile $SRC_HOME/mach/proto/top/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
  60. cd ../..
  61. fi
  62. if [ -d $i/cg ]
  63. then
  64. cd $i/cg
  65. mk_makefile $SRC_HOME/mach/proto/cg/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
  66. cd ../..
  67. fi
  68. if [ -d $i/ncg ]
  69. then
  70. cd $i/ncg
  71. mk_makefile $SRC_HOME/mach/proto/ncg/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
  72. if [ -f $SRC_HOME/mach/$i/ncg/table_dir ]
  73. then
  74. ed -s Makefile <<EOF
  75. /^#TABLE_DEFINE/+1r $SRC_HOME/mach/$i/ncg/table_dir
  76. w
  77. q
  78. EOF
  79. fi
  80. cd ../..
  81. fi
  82. if [ -f $SRC_HOME/mach/$i/mach_params ]
  83. then :
  84. else continue
  85. fi
  86. for j in libem libend libmon libfp libsys libdb
  87. do
  88. if [ -d $i/$j ]
  89. then
  90. cd $i/$j
  91. mk_makefile $SRC_HOME/mach/proto/libg/proto.$j | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile
  92. cd ../..
  93. fi
  94. done
  95. for j in libbsd4_1a libbsd4_2 libsysV_2
  96. do
  97. if [ -d $i/$j ]
  98. then
  99. cd $i/$j
  100. mk_makefile $SRC_HOME/mach/proto/libg/proto.libsys | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" -e "s/libsys/$j/g" > Makefile
  101. cd ../..
  102. fi
  103. done
  104. for j in libcc libcc.ansi libm2 libpc libbc liboc libf77
  105. do
  106. create_dir $i/$j
  107. rm -f $i/$j/No*
  108. cd $i/$j
  109. mk_makefile $SRC_HOME/mach/proto/libg/proto.$j | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile
  110. cd ../..
  111. done
  112. if [ $i = vax4 ]
  113. then :
  114. elif [ -d $i/libsys ]
  115. then :
  116. else
  117. create_dir $i/libsys
  118. rm -f $i/libsys/No*
  119. cd $i/libsys
  120. mk_makefile $SRC_HOME/mach/proto/libg/proto.sysmon | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile
  121. cd ../..
  122. fi
  123. fi
  124. done