Mk_dist 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. #!/bin/bash -
  2. #
  3. # This script builds _and checks_ all the distribution files from my source
  4. # directory. It's very selective because I've got a lot of historical and
  5. # other 'junk' in the same directory. (120Mb at the last count!)
  6. #
  7. trap "exit 1" 1 2 3 15
  8. DIR="`pwd`"
  9. TMPDIR=/tmp/Linux-86
  10. TMPSRC=linux86
  11. ARCDIR="$DIR"/dev86arc
  12. SRCDIRS='bcc cpp unproto as ar ld copt man elksemu dis88 tests libbsd bin86'
  13. DISTFILES='Makefile README COPYING Changes Contributors MAGIC
  14. mkcompile GNUmakefile libcompat ifdef.c makefile.in Mk_dist'
  15. VERSION="$1"
  16. TMPDIST=$TMPDIR/$TMPSRC
  17. rm -rf ${TMPDIR}
  18. mkdir -p ${TMPDIST}
  19. [ "$VERSION" = '' ] && {
  20. echo 'Usage: $0 <version>' 1>&2
  21. exit 1
  22. }
  23. #-----------------------------------------------------------------------
  24. echo Copying most program files.
  25. make -s -C bin86 ungrab || exit
  26. cp -a $DISTFILES $SRCDIRS ${TMPDIST}
  27. #-----------------------------------------------------------------------
  28. echo Copying libc.
  29. LIBC_FILES='Makefile Make.defs crt0.c
  30. README COPYING KERNEL
  31. New_subdir Pre_main Config_sh Config.dflt'
  32. mkdir ${TMPDIST}/libc
  33. (
  34. cd libc
  35. LIBC_DIRS="`for i in */Makefile */Config; do dirname $i; done | sort -u`"
  36. cp -a $LIBC_FILES include $LIBC_DIRS ${TMPDIST}/libc/.
  37. )
  38. #-----------------------------------------------------------------------
  39. echo Copying bootblocks and doselks.
  40. make -s -C bootblocks distribution
  41. make -s -C doselks distribution
  42. mkdir ${TMPDIST}/bootblocks
  43. ( cd ${TMPDIST}/bootblocks ; tar xzf /tmp/bootblocks.tar.gz )
  44. mkdir ${TMPDIST}/doselks
  45. ( cd ${TMPDIST}/doselks ; tar xzf /tmp/doselks.tar.gz )
  46. [ "`id -un`" = "root" ] && {
  47. chown -R root:0 ${TMPDIST}
  48. chmod -R og=u-w ${TMPDIST}
  49. }
  50. rm -f /tmp/bootblocks.tar.gz /tmp/doselks.tar.gz /tmp/libc-8086-$VERSION.tar.gz
  51. MINOR=${VERSION##*.}
  52. MAJOR=${VERSION%.*}
  53. MID=${MAJOR##*.}
  54. MAJOR=${MAJOR%.*}
  55. OLDVER=
  56. case "$VERSION" in
  57. 0.0.0 ) BASEVER=0.0.0.0 ;; # Naa.
  58. *.0.0 ) BASEVER=$((MAJOR-1)).$MID.$MINOR ;;
  59. *.*.0 ) BASEVER=$MAJOR.$((MID-1)).$MINOR ;;
  60. * ) BASEVER=$MAJOR.$MID.$((MINOR-1))
  61. OLDVER=$MAJOR.$MID.0
  62. ;;
  63. esac
  64. if [ "$MAJOR.$MID.$((MINOR-1))" != "$BASEVER" ]
  65. then PATCHNAME="$VERSION-$BASEVER"
  66. else PATCHNAME="$VERSION"
  67. fi
  68. [ -f $ARCDIR/Dev86src-$BASEVER.tar.gz ] && {
  69. echo "Extracting previous version ($BASEVER)"
  70. mkdir ${TMPDIST}.tmp
  71. ( cd ${TMPDIST}.tmp
  72. tar xzf $ARCDIR/Dev86src-$BASEVER.tar.gz
  73. mv * ${TMPDIST}.old
  74. )
  75. rmdir ${TMPDIST}.tmp
  76. }
  77. [ "$OLDVER" != "" -a -f $ARCDIR/Dev86src-$OLDVER.tar.gz ] && {
  78. echo "Extracting previous version ($OLDVER)"
  79. mkdir ${TMPDIST}.tmp
  80. ( cd ${TMPDIST}.tmp
  81. tar xzf $ARCDIR/Dev86src-$OLDVER.tar.gz
  82. mv * ${TMPDIST}.vold
  83. )
  84. rmdir ${TMPDIST}.tmp
  85. }
  86. # ARCDIR=${TMPDIR}/arc ; mkdir -p ${ARCDIR}
  87. cd ${TMPDIST}
  88. echo COPY COMPLETE -- Switched to ${TMPDIST}, ARCDIR now $ARCDIR
  89. echo
  90. #-----------------------------------------------------------------------
  91. #
  92. #
  93. echo 'Ensuring clean tree'
  94. cd ${TMPDIST}
  95. make -s clean realclean
  96. mv as/obj1 ${TMPDIST}-obj1
  97. EXCL="`find . -name '*.o' -o -name '*.obj' \
  98. -o -name '*.lib' -o -name '*.bak' \
  99. -o -name '*~' -o -name '*.exe' \
  100. -o -name '*.orig' -o -name '*.rej' \
  101. `"
  102. mv ${TMPDIST}-obj1 as/obj1
  103. rm -f $EXCL
  104. rm -f `find . -type l`
  105. cd ${TMPDIR}
  106. [ -d ${TMPSRC}.old ] && {
  107. echo "Generating patch against version $BASEVER."
  108. mv ${TMPSRC}.old/bootblocks boot.old
  109. mv ${TMPSRC}/bootblocks boot
  110. diff -Nurd ${TMPSRC}.old ${TMPSRC} > ${ARCDIR}/patch-$PATCHNAME
  111. mv boot.old ${TMPSRC}.old/bootblocks
  112. mv boot ${TMPSRC}/bootblocks
  113. diff -Nurd ${TMPSRC}.old/bootblocks ${TMPSRC}/bootblocks >> ${ARCDIR}/patch-$PATCHNAME
  114. gzip -f9 ${ARCDIR}/patch-$PATCHNAME
  115. }
  116. [ -d ${TMPSRC}.vold ] && {
  117. echo "Generating patch against version $OLDVER."
  118. mv ${TMPSRC}.vold/bootblocks boot.old
  119. mv ${TMPSRC}/bootblocks boot
  120. diff -Nurd ${TMPSRC}.vold ${TMPSRC} > ${ARCDIR}/patch-$VERSION-$OLDVER
  121. mv boot.old ${TMPSRC}.vold/bootblocks
  122. mv boot ${TMPSRC}/bootblocks
  123. diff -Nurd ${TMPSRC}.vold/bootblocks ${TMPSRC}/bootblocks >> ${ARCDIR}/patch-$VERSION-$OLDVER
  124. gzip -f9 ${ARCDIR}/patch-$VERSION-$OLDVER
  125. }
  126. mkdir -p ${ARCDIR}
  127. echo Creating full source archive.
  128. ln -s ${TMPSRC} dev86-$VERSION
  129. tar cf ${ARCDIR}/Dev86src-$VERSION.tar dev86-$VERSION/*
  130. gzip -f9 ${ARCDIR}/Dev86src-$VERSION.tar
  131. echo Creating as86 source archive.
  132. ln -s ${TMPSRC}/as as86-$VERSION
  133. cp -p ${TMPSRC}/man/as86.1 as86-$VERSION/as86.1
  134. cp -p ${TMPSRC}/COPYING as86-$VERSION/COPYING
  135. echo '#define VERSION "'"$VERSION"'"' > as86-$VERSION/version.h
  136. tar cf ${ARCDIR}/as86-$VERSION.tar `find as86-$VERSION/* -prune -type f`
  137. gzip -f9 ${ARCDIR}/as86-*.tar
  138. echo Creating bin86 source archive.
  139. make -s -C ${TMPSRC}/bin86 VERSION=${VERSION} grab
  140. ln -s ${TMPSRC}/bin86 bin86-$VERSION
  141. echo '#define VERSION "'"$VERSION"'"' > bin86-$VERSION/ld/version.h
  142. tar chf ${ARCDIR}/bin86-$VERSION.tar bin86-$VERSION
  143. make -s -C ${TMPSRC}/bin86 ungrab
  144. gzip -f9 ${ARCDIR}/bin86-*.tar
  145. ###################################################################
  146. echo Compile up the binaries.
  147. cd ${TMPDIR} || exit 1
  148. mkdir -p ${TMPDIST}.ins
  149. make -C ${TMPDIST} install install-other \
  150. ARFLAGS=q ELKSSRC=/dev/null \
  151. DIST=${TMPDIST}.ins 'ASLDDIR=$(BINDIR)' ||
  152. exit
  153. make -C ${TMPDIST} other || exit
  154. tar cf ${ARCDIR}/Dev86bin-$VERSION.tar -C ${TMPDIST}.ins .
  155. rm -f ${ARCDIR}/Dev86clb-$VERSION.zip Bcc
  156. ln -s ${TMPDIST} Bcc
  157. zip -9rpk ${ARCDIR}/Dev86clb-$VERSION.zip \
  158. Bcc/lib/crt0.o Bcc/lib/libc.a Bcc/lib/libbsd.a \
  159. Bcc/lib/libdos.a Bcc/lib/libc_f.a Bcc/lib/libc_s.a \
  160. Bcc/lib/i386/crt0.o Bcc/lib/i386/libc.a || exit
  161. rm Bcc
  162. gzip -9f ${ARCDIR}/Dev86bin-$VERSION.tar || exit
  163. echo Process completed.