* added compilers lcc and bcc (linux86)
[mascara-docs.git] / compilers / linux86-0.16.17 / Mk_dist
blobad61af752818729c12b7a1bd9f89005538c382dd
1 #!/bin/bash -
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!)
8 trap "exit 1" 1 2 3 15
10 DIR="`pwd`"
11 TMPDIR=/tmp/Linux-86
12 TMPSRC=linux86
13 ARCDIR="$DIR"/dev86arc
15 SRCDIRS='bcc cpp unproto as ar ld copt man elksemu dis88 tests libbsd bin86'
16 DISTFILES='Makefile README COPYING Changes Contributors MAGIC
17 mkcompile GNUmakefile libcompat ifdef.c makefile.in Mk_dist'
19 VERSION="$1"
20 TMPDIST=$TMPDIR/$TMPSRC
21 rm -rf ${TMPDIR}
22 mkdir -p ${TMPDIST}
24 [ "$VERSION" = '' ] && {
25 echo 'Usage: $0 <version>' 1>&2
26 exit 1
29 #-----------------------------------------------------------------------
31 echo Copying most program files.
33 make -s -C bin86 ungrab || exit
34 cp -a $DISTFILES $SRCDIRS ${TMPDIST}
36 #-----------------------------------------------------------------------
38 echo Copying libc.
40 LIBC_FILES='Makefile Make.defs crt0.c
41 README COPYING KERNEL
42 New_subdir Pre_main Config_sh Config.dflt'
44 mkdir ${TMPDIST}/libc
47 cd libc
48 LIBC_DIRS="`for i in */Makefile */Config; do dirname $i; done | sort -u`"
49 cp -a $LIBC_FILES include $LIBC_DIRS ${TMPDIST}/libc/.
52 #-----------------------------------------------------------------------
54 echo Copying bootblocks and doselks.
55 make -s -C bootblocks distribution
56 make -s -C doselks distribution
58 mkdir ${TMPDIST}/bootblocks
59 ( cd ${TMPDIST}/bootblocks ; tar xzf /tmp/bootblocks.tar.gz )
61 mkdir ${TMPDIST}/doselks
62 ( cd ${TMPDIST}/doselks ; tar xzf /tmp/doselks.tar.gz )
64 [ "`id -un`" = "root" ] && {
65 chown -R root:0 ${TMPDIST}
66 chmod -R og=u-w ${TMPDIST}
69 rm -f /tmp/bootblocks.tar.gz /tmp/doselks.tar.gz /tmp/libc-8086-$VERSION.tar.gz
71 MINOR=${VERSION##*.}
72 MAJOR=${VERSION%.*}
73 MID=${MAJOR##*.}
74 MAJOR=${MAJOR%.*}
75 OLDVER=
77 case "$VERSION" in
78 0.0.0 ) BASEVER=0.0.0.0 ;; # Naa.
79 *.0.0 ) BASEVER=$((MAJOR-1)).$MID.$MINOR ;;
80 *.*.0 ) BASEVER=$MAJOR.$((MID-1)).$MINOR ;;
81 * ) BASEVER=$MAJOR.$MID.$((MINOR-1))
82 OLDVER=$MAJOR.$MID.0
84 esac
85 if [ "$MAJOR.$MID.$((MINOR-1))" != "$BASEVER" ]
86 then PATCHNAME="$VERSION-$BASEVER"
87 else PATCHNAME="$VERSION"
90 [ -f $ARCDIR/Dev86src-$BASEVER.tar.gz ] && {
91 echo "Extracting previous version ($BASEVER)"
93 mkdir ${TMPDIST}.tmp
94 ( cd ${TMPDIST}.tmp
95 tar xzf $ARCDIR/Dev86src-$BASEVER.tar.gz
96 mv * ${TMPDIST}.old
98 rmdir ${TMPDIST}.tmp
101 [ "$OLDVER" != "" -a -f $ARCDIR/Dev86src-$OLDVER.tar.gz ] && {
102 echo "Extracting previous version ($OLDVER)"
104 mkdir ${TMPDIST}.tmp
105 ( cd ${TMPDIST}.tmp
106 tar xzf $ARCDIR/Dev86src-$OLDVER.tar.gz
107 mv * ${TMPDIST}.vold
109 rmdir ${TMPDIST}.tmp
112 # ARCDIR=${TMPDIR}/arc ; mkdir -p ${ARCDIR}
113 cd ${TMPDIST}
114 echo COPY COMPLETE -- Switched to ${TMPDIST}, ARCDIR now $ARCDIR
115 echo
117 #-----------------------------------------------------------------------
121 echo 'Ensuring clean tree'
123 cd ${TMPDIST}
124 make -s clean realclean
125 mv as/obj1 ${TMPDIST}-obj1
126 EXCL="`find . -name '*.o' -o -name '*.obj' \
127 -o -name '*.lib' -o -name '*.bak' \
128 -o -name '*~' -o -name '*.exe' \
129 -o -name '*.orig' -o -name '*.rej' \
131 mv ${TMPDIST}-obj1 as/obj1
132 rm -f $EXCL
133 rm -f `find . -type l`
135 cd ${TMPDIR}
137 [ -d ${TMPSRC}.old ] && {
138 echo "Generating patch against version $BASEVER."
140 mv ${TMPSRC}.old/bootblocks boot.old
141 mv ${TMPSRC}/bootblocks boot
143 diff -Nurd ${TMPSRC}.old ${TMPSRC} > ${ARCDIR}/patch-$PATCHNAME
145 mv boot.old ${TMPSRC}.old/bootblocks
146 mv boot ${TMPSRC}/bootblocks
148 diff -Nurd ${TMPSRC}.old/bootblocks ${TMPSRC}/bootblocks >> ${ARCDIR}/patch-$PATCHNAME
150 gzip -f9 ${ARCDIR}/patch-$PATCHNAME
153 [ -d ${TMPSRC}.vold ] && {
154 echo "Generating patch against version $OLDVER."
156 mv ${TMPSRC}.vold/bootblocks boot.old
157 mv ${TMPSRC}/bootblocks boot
159 diff -Nurd ${TMPSRC}.vold ${TMPSRC} > ${ARCDIR}/patch-$VERSION-$OLDVER
161 mv boot.old ${TMPSRC}.vold/bootblocks
162 mv boot ${TMPSRC}/bootblocks
164 diff -Nurd ${TMPSRC}.vold/bootblocks ${TMPSRC}/bootblocks >> ${ARCDIR}/patch-$VERSION-$OLDVER
166 gzip -f9 ${ARCDIR}/patch-$VERSION-$OLDVER
169 echo Creating full source archive.
170 ln -s ${TMPSRC} dev86-$VERSION
171 tar cf ${ARCDIR}/Dev86src-$VERSION.tar dev86-$VERSION/*
172 gzip -f9 ${ARCDIR}/Dev86src-$VERSION.tar
174 echo Creating as86 source archive.
175 ln -s ${TMPSRC}/as as86-$VERSION
176 cp -p ${TMPSRC}/man/as86.1 as86-$VERSION/as86.1
177 cp -p ${TMPSRC}/COPYING as86-$VERSION/COPYING
178 echo '#define VERSION "'"$VERSION"'"' > as86-$VERSION/version.h
179 tar cf ${ARCDIR}/as86-$VERSION.tar `find as86-$VERSION/* -prune -type f`
180 gzip -f9 ${ARCDIR}/as86-*.tar
182 echo Creating bin86 source archive.
183 make -s -C ${TMPSRC}/bin86 VERSION=${VERSION} grab
184 ln -s ${TMPSRC}/bin86 bin86-$VERSION
185 echo '#define VERSION "'"$VERSION"'"' > bin86-$VERSION/ld/version.h
186 tar chf ${ARCDIR}/bin86-$VERSION.tar bin86-$VERSION
187 make -s -C ${TMPSRC}/bin86 ungrab
188 gzip -f9 ${ARCDIR}/bin86-*.tar
190 ###################################################################
192 echo Compile up the binaries.
194 cd ${TMPDIR} || exit 1
195 mkdir -p ${TMPDIST}.ins
196 make -C ${TMPDIST} install install-other \
197 ARFLAGS=q ELKSSRC=/dev/null \
198 DIST=${TMPDIST}.ins 'ASLDDIR=$(BINDIR)' ||
199 exit
200 make -C ${TMPDIST} other || exit
201 tar cf ${ARCDIR}/Dev86bin-$VERSION.tar -C ${TMPDIST}.ins .
202 rm -f ${ARCDIR}/Dev86clb-$VERSION.zip Bcc
203 ln -s ${TMPDIST} Bcc
205 zip -9rpk ${ARCDIR}/Dev86clb-$VERSION.zip \
206 Bcc/lib/crt0.o Bcc/lib/libc.a Bcc/lib/libbsd.a \
207 Bcc/lib/libdos.a Bcc/lib/libc_f.a Bcc/lib/libc_s.a \
208 Bcc/lib/i386/crt0.o Bcc/lib/i386/libc.a || exit
209 rm Bcc
211 gzip -9f ${ARCDIR}/Dev86bin-$VERSION.tar || exit
213 echo Process completed.