Subversion Repositories SvarDOS

Rev

Rev 1212 | Rev 1465 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1212 Rev 1261
1
#!/bin/bash
1
#!/bin/bash
2
#
2
#
3
# SvarDOS build script
3
# SvarDOS build script
4
# http://svardos.org
4
# http://svardos.org
5
# Copyright (C) 2016-2022 Mateusz Viste
5
# Copyright (C) 2016-2023 Mateusz Viste
6
#
6
#
7
# This script builds floppy and CD images. It should be executed each time that
7
# This script builds floppy and CD images. It should be executed each time that
8
# a CORE package has been modified or the build script changed. This is usually
8
# a CORE package has been modified or the build script changed. This is usually
9
# done by the cron.sh script, itself called by a cron job.
9
# done by the cron.sh script, itself called by a cron job.
10
#
10
#
11
# usage: ./build.sh outputdir buildver [noclean] > logfile
11
# usage: ./build.sh outputdir buildver [noclean] > logfile
12
#
12
#
13
 
13
 
14
### parameters block starts here ############################################
14
### parameters block starts here ############################################
15
 
15
 
16
REPOROOT=`realpath ./packages`
16
REPOROOT=`realpath ./packages`
-
 
17
REPOROOTCORE=`realpath ./packages-core`
17
CUSTFILES=`realpath ./files`
18
CUSTFILES=`realpath ./files`
18
 
19
 
19
GENISOIMAGE=''    # can be mkisofs, genisoimage or empty for autodetection
20
GENISOIMAGE=''    # can be mkisofs, genisoimage or empty for autodetection
20
 
21
 
21
### parameters block ends here ##############################################
22
### parameters block ends here ##############################################
22
 
23
 
23
# look for mandatory output dir and build id
24
# look for mandatory output dir and build id
24
if [ "x$2" == "x" ] ; then
25
if [ "x$2" == "x" ] ; then
25
  echo "usage: build.sh outputdir buildver [noclean]"
26
  echo "usage: build.sh outputdir buildver [noclean]"
26
  exit 1
27
  exit 1
27
fi
28
fi
28
CURDATE="$2"
29
CURDATE="$2"
29
PUBDIR=`realpath "$1"`
30
PUBDIR=`realpath "$1"`
30
 
31
 
31
CDROOT="$PUBDIR/tmp_cdroot.build"
32
CDROOT="$PUBDIR/tmp_cdroot.build"
32
FLOPROOT="$PUBDIR/tmp_floproot.build"
33
FLOPROOT="$PUBDIR/tmp_floproot.build"
33
 
34
 
34
 
35
 
35
# auto-detect whether to use mkisofs or genisoimage
36
# auto-detect whether to use mkisofs or genisoimage
36
 
37
 
37
if [ "x$GENISOIMAGE" == "x" ] ; then
38
if [ "x$GENISOIMAGE" == "x" ] ; then
38
mkisofs --help 2> /dev/null
39
mkisofs --help 2> /dev/null
39
if [ $? -eq 0 ] ; then
40
if [ $? -eq 0 ] ; then
40
  GENISOIMAGE='mkisofs'
41
  GENISOIMAGE='mkisofs'
41
fi
42
fi
42
fi
43
fi
43
 
44
 
44
if [ "x$GENISOIMAGE" == "x" ] ; then
45
if [ "x$GENISOIMAGE" == "x" ] ; then
45
genisoimage --help 2> /dev/null
46
genisoimage --help 2> /dev/null
46
if [ $? -eq 0 ] ; then
47
if [ $? -eq 0 ] ; then
47
  GENISOIMAGE='genisoimage'
48
  GENISOIMAGE='genisoimage'
48
fi
49
fi
49
fi
50
fi
50
 
51
 
51
if [ "x$GENISOIMAGE" == "x" ] ; then
52
if [ "x$GENISOIMAGE" == "x" ] ; then
52
  echo "ERROR: neither genisoimage nor mkisofs was found on this system"
53
  echo "ERROR: neither genisoimage nor mkisofs was found on this system"
53
  exit 1
54
  exit 1
54
fi
55
fi
55
 
56
 
56
 
57
 
57
# abort if anything fails
58
# abort if anything fails
58
set -e
59
set -e
59
 
60
 
60
 
61
 
61
# list of packages to be part of CORE (always installed)
62
# list of packages to be part of CORE (always installed)
62
COREPKGS=`ls -1 'packages/core' | grep -o '^[a-z]*'`
63
COREPKGS=`ls -1 'packages-core' | grep -o '^[a-z]*'`
63
 
64
 
64
# list of packages to be part of EXTRA (only sometimes installed, typically drivers)
65
# list of packages to be part of EXTRA (only sometimes installed, typically drivers)
65
EXTRAPKGS="pcntpk udvd2"
66
EXTRAPKGS="pcntpk udvd2"
66
 
67
 
67
# all packages
68
# all packages
68
ALLPKGS="$COREPKGS $EXTRAPKGS"
69
ALLPKGS="$COREPKGS $EXTRAPKGS"
69
 
70
 
70
 
71
 
71
# prepares image for floppy sets of:
72
# prepares image for floppy sets of:
72
# $1 cylinders
73
# $1 cylinders
73
# $2 heads (sides)
74
# $2 heads (sides)
74
# $3 sectors per track
75
# $3 sectors per track
75
# $4 size
76
# $4 size
76
# $5 working directory (for temporary files etc)
77
# $5 working directory (for temporary files etc)
77
# $6 where to put a copy of the image (optional)
78
# $6 where to put a copy of the image (optional)
78
function prep_flop {
79
function prep_flop {
79
  WORKDIR="$5/$4"
80
  WORKDIR="$5/$4"
80
  mkdir "$WORKDIR"
81
  mkdir "$WORKDIR"
81
  mformat -C -t $1 -h $2 -s $3 -v SVARDOS -B "$CUSTFILES/floppy.mbr" -i "$WORKDIR/disk1.img"
82
  mformat -C -t $1 -h $2 -s $3 -v SVARDOS -B "$CUSTFILES/floppy.mbr" -i "$WORKDIR/disk1.img"
82
  mcopy -sQm -i "$WORKDIR/disk1.img" "$FLOPROOT/"* ::/
83
  mcopy -sQm -i "$WORKDIR/disk1.img" "$FLOPROOT/"* ::/
83
 
84
 
84
  # now populate the floppies
85
  # now populate the floppies
85
  curdisk=1
86
  curdisk=1
86
  LIST=$ALLPKGS
87
  LIST=$ALLPKGS
87
 
88
 
88
  while [ ! -z "$LIST" ] ; do
89
  while [ ! -z "$LIST" ] ; do
89
 
90
 
90
    unset PENDING
91
    unset PENDING
91
    for p in $LIST ; do
92
    for p in $LIST ; do
92
      # if copy fails, then probably the floppy is full - try other packages
93
      # if copy fails, then probably the floppy is full - try other packages
93
      # but remember all that fails so they will be retried on a new floppy
94
      # but remember all that fails so they will be retried on a new floppy
94
      if ! mcopy -mi "$WORKDIR/disk$curdisk.img" "$CDROOT/$p.svp" ::/ ; then
95
      if ! mcopy -mi "$WORKDIR/disk$curdisk.img" "$CDROOT/$p.svp" ::/ ; then
95
        PENDING="$PENDING $p"
96
        PENDING="$PENDING $p"
96
      fi
97
      fi
97
    done
98
    done
98
 
99
 
99
    LIST="$PENDING"
100
    LIST="$PENDING"
100
    # if there are any pending items, then create a new floppy and try pushing pending packages to it
101
    # if there are any pending items, then create a new floppy and try pushing pending packages to it
101
    if [ ! -z "$PENDING" ] ; then
102
    if [ ! -z "$PENDING" ] ; then
102
      curdisk=$((curdisk+1))
103
      curdisk=$((curdisk+1))
103
      mformat -C -t $1 -h $2 -s $3 -v SVARDOS -i "$WORKDIR/disk$curdisk.img"
104
      mformat -C -t $1 -h $2 -s $3 -v SVARDOS -i "$WORKDIR/disk$curdisk.img"
104
    fi
105
    fi
105
 
106
 
106
  done
107
  done
107
 
108
 
108
  # add a short readme
109
  # add a short readme
109
  echo "This directory contains a set of $curdisk floppy images of the SvarDOS distribution in the $4 KB floppy format." > "$WORKDIR/readme.txt"
110
  echo "This directory contains a set of $curdisk floppy images of the SvarDOS distribution in the $4 KB floppy format." > "$WORKDIR/readme.txt"
110
  echo "" >> "$WORKDIR/readme.txt"
111
  echo "" >> "$WORKDIR/readme.txt"
111
  echo "These images are raw floppy disk dumps. To write them on an actual floppy disk, you have to use a low-level sector copying tool, like dd." >> "$WORKDIR/readme.txt"
112
  echo "These images are raw floppy disk dumps. To write them on an actual floppy disk, you have to use a low-level sector copying tool, like dd." >> "$WORKDIR/readme.txt"
112
  echo "" >> "$WORKDIR/readme.txt"
113
  echo "" >> "$WORKDIR/readme.txt"
113
  echo "Latest SvarDOS version is available on the project's homepage: http://svardos.org" >> "$WORKDIR/readme.txt"
114
  echo "Latest SvarDOS version is available on the project's homepage: http://svardos.org" >> "$WORKDIR/readme.txt"
114
 
115
 
115
  unix2dos "$WORKDIR/readme.txt"
116
  unix2dos "$WORKDIR/readme.txt"
116
 
117
 
117
  # make a copy of the image, if requested
118
  # make a copy of the image, if requested
118
  if [ "x$6" != "x" ] ; then
119
  if [ "x$6" != "x" ] ; then
119
    cp "$WORKDIR/disk1.img" $6
120
    cp "$WORKDIR/disk1.img" $6
120
  fi
121
  fi
121
 
122
 
122
  # zip the images (and remove them at the same time)
123
  # zip the images (and remove them at the same time)
123
  rm -f "$PUBDIR/svardos-floppy-$4k.zip"
124
  rm -f "$PUBDIR/svardos-floppy-$4k.zip"
124
  zip -9 -rmj "$PUBDIR/svardos-$CURDATE-floppy-$4k.zip" "$WORKDIR"/*
125
  zip -9 -rmj "$PUBDIR/svardos-$CURDATE-floppy-$4k.zip" "$WORKDIR"/*
125
 
126
 
126
  # clean up
127
  # clean up
127
  rmdir "$WORKDIR"
128
  rmdir "$WORKDIR"
128
}
129
}
129
 
130
 
130
 
131
 
131
### actual code flow starts here ############################################
132
### actual code flow starts here ############################################
132
 
133
 
133
# remember where I am, so I can get back here once all is done
134
# remember where I am, so I can get back here once all is done
134
origdir=`pwd`
135
origdir=`pwd`
135
 
136
 
136
echo "###############################################################################"
137
echo "###############################################################################"
137
echo " STARTING BUILD $CURDATE"
138
echo " STARTING BUILD $CURDATE"
138
echo "###############################################################################"
139
echo "###############################################################################"
139
echo "dest dir: $PUBDIR"
140
echo "dest dir: $PUBDIR"
140
echo "current time is `date` and it's a beautiful day somewhere in the world"
141
echo "current time is `date` and it's a beautiful day somewhere in the world"
141
echo
142
echo
142
 
143
 
143
mkdir "$CDROOT"
144
mkdir "$CDROOT"
144
mkdir "$FLOPROOT"
145
mkdir "$FLOPROOT"
145
 
146
 
146
# add CORE packages to CDROOT + create the list of packages on floppy
147
# add CORE packages to CDROOT + create the list of packages on floppy
147
for pkg in $COREPKGS ; do
148
for pkg in $COREPKGS ; do
148
  cp "$REPOROOT/core/$pkg.svp" "$CDROOT/"
149
  cp "$REPOROOTCORE/$pkg.svp" "$CDROOT/"
149
  echo "$pkg" >> "$FLOPROOT/install.lst"
150
  echo "$pkg" >> "$FLOPROOT/install.lst"
150
done
151
done
151
 
152
 
152
# add EXTRA packages to CDROOT (but not in the list of packages to install)
153
# add EXTRA packages to CDROOT (but not in the list of packages to install)
153
for pkg in $EXTRAPKGS ; do
154
for pkg in $EXTRAPKGS ; do
154
  cp "$REPOROOT/$pkg.svp" "$CDROOT/"
155
  cp "$REPOROOT/$pkg.svp" "$CDROOT/"
155
done
156
done
156
 
157
 
157
 
158
 
158
echo
159
echo
159
echo "### Populating the floppy root at $FLOPROOT"
160
echo "### Populating the floppy root at $FLOPROOT"
160
echo
161
echo
161
 
162
 
162
# prepare the content of the boot (install) floppy, unzipping everything
163
# prepare the content of the boot (install) floppy, unzipping everything
163
# in lowercase (-L) to avoid any case mismatching later in the build process
164
# in lowercase (-L) to avoid any case mismatching later in the build process
164
cp -r "$CUSTFILES/floppy/"* "$FLOPROOT/"
165
cp -r "$CUSTFILES/floppy/"* "$FLOPROOT/"
165
unzip -CLj "$REPOROOT/core/cpidos.svp" 'cpi/ega*.cpx' -d "$FLOPROOT/"
166
unzip -CLj "$REPOROOTCORE/cpidos.svp" 'cpi/ega*.cpx' -d "$FLOPROOT/"
166
unzip -CLj "$REPOROOT/core/svarcom.svp" command.com -d "$FLOPROOT/"
167
unzip -CLj "$REPOROOTCORE/svarcom.svp" command.com -d "$FLOPROOT/"
167
unzip -CLj "$REPOROOT/core/display.svp" bin/display.exe -d "$FLOPROOT/"
168
unzip -CLj "$REPOROOTCORE/display.svp" bin/display.exe -d "$FLOPROOT/"
168
unzip -CLj "$REPOROOT/core/edit.svp" bin/edit.exe -d "$FLOPROOT/"
169
unzip -CLj "$REPOROOTCORE/edit.svp" bin/edit.exe -d "$FLOPROOT/"
169
unzip -CLj "$REPOROOT/core/fdapm.svp" bin/fdapm.com -d "$FLOPROOT/"
170
unzip -CLj "$REPOROOTCORE/fdapm.svp" bin/fdapm.com -d "$FLOPROOT/"
170
unzip -CLj "$REPOROOT/core/fdisk.svp" bin/fdisk.exe bin/fdiskpt.ini -d "$FLOPROOT/"
171
unzip -CLj "$REPOROOTCORE/fdisk.svp" bin/fdisk.exe bin/fdiskpt.ini -d "$FLOPROOT/"
171
unzip -CLj "$REPOROOT/core/format.svp" bin/format.exe -d "$FLOPROOT/"
172
unzip -CLj "$REPOROOTCORE/format.svp" bin/format.exe -d "$FLOPROOT/"
172
unzip -CLj "$REPOROOT/core/kernel.svp" bin/kernel.sys bin/sys.com -d "$FLOPROOT/"
173
unzip -CLj "$REPOROOTCORE/kernel.svp" bin/kernel.sys bin/sys.com -d "$FLOPROOT/"
173
unzip -CLj "$REPOROOT/core/mem.svp" bin/mem.exe -d "$FLOPROOT/"
174
unzip -CLj "$REPOROOTCORE/mem.svp" bin/mem.exe -d "$FLOPROOT/"
174
unzip -CLj "$REPOROOT/core/mode.svp" bin/mode.com -d "$FLOPROOT/"
175
unzip -CLj "$REPOROOTCORE/mode.svp" bin/mode.com -d "$FLOPROOT/"
175
unzip -CLj "$REPOROOT/core/more.svp" bin/more.exe -d "$FLOPROOT/"
176
unzip -CLj "$REPOROOTCORE/more.svp" bin/more.exe -d "$FLOPROOT/"
176
unzip -CLj "$REPOROOT/core/pkg.svp" bin/pkg.exe -d "$FLOPROOT/"
177
unzip -CLj "$REPOROOTCORE/pkg.svp" bin/pkg.exe -d "$FLOPROOT/"
177
 
178
 
178
# generate a simple autoexec.bat file
179
# generate a simple autoexec.bat file
179
echo '@ECHO OFF' > "$FLOPROOT/autoexec.bat"
180
echo '@ECHO OFF' > "$FLOPROOT/autoexec.bat"
180
echo '' >> "$FLOPROOT/autoexec.bat"
181
echo '' >> "$FLOPROOT/autoexec.bat"
181
echo 'REM Load DISPLAY driver if present' >> "$FLOPROOT/autoexec.bat"
182
echo 'REM Load DISPLAY driver if present' >> "$FLOPROOT/autoexec.bat"
182
echo 'IF EXIST DISPLAY.EXE DISPLAY CON=(EGA,,1)' >> "$FLOPROOT/autoexec.bat"
183
echo 'IF EXIST DISPLAY.EXE DISPLAY CON=(EGA,,1)' >> "$FLOPROOT/autoexec.bat"
183
echo '' >> "$FLOPROOT/autoexec.bat"
184
echo '' >> "$FLOPROOT/autoexec.bat"
184
echo 'FDAPM APMDOS' >> "$FLOPROOT/autoexec.bat"
185
echo 'FDAPM APMDOS' >> "$FLOPROOT/autoexec.bat"
185
echo '' >> "$FLOPROOT/autoexec.bat"
186
echo '' >> "$FLOPROOT/autoexec.bat"
186
echo 'ECHO.' >> "$FLOPROOT/autoexec.bat"
187
echo 'ECHO.' >> "$FLOPROOT/autoexec.bat"
187
echo 'ECHO  ********************' >> "$FLOPROOT/autoexec.bat"
188
echo 'ECHO  ********************' >> "$FLOPROOT/autoexec.bat"
188
echo 'ECHO   WELCOME TO SVARDOS' >> "$FLOPROOT/autoexec.bat"
189
echo 'ECHO   WELCOME TO SVARDOS' >> "$FLOPROOT/autoexec.bat"
189
echo 'ECHO  ********************' >> "$FLOPROOT/autoexec.bat"
190
echo 'ECHO  ********************' >> "$FLOPROOT/autoexec.bat"
190
echo "ECHO  build: $CURDATE" >> "$FLOPROOT/autoexec.bat"
191
echo "ECHO  build: $CURDATE" >> "$FLOPROOT/autoexec.bat"
191
echo 'ECHO.' >> "$FLOPROOT/autoexec.bat"
192
echo 'ECHO.' >> "$FLOPROOT/autoexec.bat"
192
echo '' >> "$FLOPROOT/autoexec.bat"
193
echo '' >> "$FLOPROOT/autoexec.bat"
193
echo "INSTALL $CURDATE" >> "$FLOPROOT/autoexec.bat"
194
echo "INSTALL $CURDATE" >> "$FLOPROOT/autoexec.bat"
194
unix2dos "$FLOPROOT/autoexec.bat"
195
unix2dos "$FLOPROOT/autoexec.bat"
195
 
196
 
196
 
197
 
197
echo
198
echo
198
echo "### Computing the USB image"
199
echo "### Computing the USB image"
199
echo
200
echo
200
 
201
 
201
# prepare the USB bootable image
202
# prepare the USB bootable image
202
USBIMG=$PUBDIR/svardos-usb.img
203
USBIMG=$PUBDIR/svardos-usb.img
203
cp files/boot-svardos.img $USBIMG
204
cp files/boot-svardos.img $USBIMG
204
mcopy -sQm -i "$USBIMG@@32256" "$FLOPROOT/"* ::/
205
mcopy -sQm -i "$USBIMG@@32256" "$FLOPROOT/"* ::/
205
for p in $ALLPKGS ; do
206
for p in $ALLPKGS ; do
206
  mcopy -mi "$USBIMG@@32256" "$CDROOT/$p.svp" ::/
207
  mcopy -mi "$USBIMG@@32256" "$CDROOT/$p.svp" ::/
207
done
208
done
208
 
209
 
209
# compress the USB image
210
# compress the USB image
210
zip -mj9 "$PUBDIR/svardos-$CURDATE-usb.zip" "$USBIMG"
211
zip -mj9 "$PUBDIR/svardos-$CURDATE-usb.zip" "$USBIMG"
211
 
212
 
212
 
213
 
213
echo
214
echo
214
echo "### Creating floppy images"
215
echo "### Creating floppy images"
215
echo
216
echo
216
echo "You might notice a lot of DISK FULL warnings below. Do not worry, these"
217
echo "You might notice a lot of DISK FULL warnings below. Do not worry, these"
217
echo "are expected and are perfectly normal. It is a side effect of trying to"
218
echo "are expected and are perfectly normal. It is a side effect of trying to"
218
echo "fit as many packages as possible on the floppy sets."
219
echo "fit as many packages as possible on the floppy sets."
219
echo
220
echo
220
 
221
 
221
# build the boot (CD) floppy image
222
# build the boot (CD) floppy image
222
export MTOOLS_NO_VFAT=1
223
export MTOOLS_NO_VFAT=1
223
 
224
 
224
# prepare images for floppies in different sizes (args are C H S SIZE)
225
# prepare images for floppies in different sizes (args are C H S SIZE)
225
prep_flop 80 2 36 2880 "$PUBDIR" "$CDROOT/boot.img"
226
prep_flop 80 2 36 2880 "$PUBDIR" "$CDROOT/boot.img"
226
prep_flop 80 2 18 1440 "$PUBDIR"
227
prep_flop 80 2 18 1440 "$PUBDIR"
227
prep_flop 80 2 15 1200 "$PUBDIR"
228
prep_flop 80 2 15 1200 "$PUBDIR"
228
prep_flop 80 2  9  720 "$PUBDIR"
229
prep_flop 80 2  9  720 "$PUBDIR"
229
 
230
 
230
# special case for 360K diskettes: some files must be deleted to make some room,
231
# special case for 360K diskettes: some files must be deleted to make some room,
231
# for this reason the 360K floppy must be generated as last (after all other
232
# for this reason the 360K floppy must be generated as last (after all other
232
# floppies and after the USB image)
233
# floppies and after the USB image)
233
rm "$FLOPROOT"/*.cpx
234
rm "$FLOPROOT"/*.cpx
234
rm "$FLOPROOT"/install.lng
235
rm "$FLOPROOT"/install.lng
235
rm "$FLOPROOT"/display.exe
236
rm "$FLOPROOT"/display.exe
236
rm "$FLOPROOT"/mode.com
237
rm "$FLOPROOT"/mode.com
237
rm "$FLOPROOT"/edit.*
238
rm "$FLOPROOT"/edit.*
238
#
239
#
239
prep_flop 40 2  9  360 "$PUBDIR"
240
prep_flop 40 2  9  360 "$PUBDIR"
240
 
241
 
241
 
242
 
242
echo
243
echo
243
echo "### Computing DOSEMU.zip"
244
echo "### Computing DOSEMU.zip"
244
echo
245
echo
245
 
246
 
246
# prepare the DOSEMU boot zip
247
# prepare the DOSEMU boot zip
247
DOSEMUDIR="$PUBDIR/tmp_dosemu-prep-files.build"
248
DOSEMUDIR="$PUBDIR/tmp_dosemu-prep-files.build"
248
mkdir "$DOSEMUDIR"
249
mkdir "$DOSEMUDIR"
249
# INSTALL.BAT
250
# INSTALL.BAT
250
echo 'IF NOT EXIST C:\TEMP\NUL MKDIR C:\TEMP' >> "$DOSEMUDIR/install.bat"
251
echo 'IF NOT EXIST C:\TEMP\NUL MKDIR C:\TEMP' >> "$DOSEMUDIR/install.bat"
251
echo 'mkdir %DOSDIR%' >> "$DOSEMUDIR/install.bat"
252
echo 'mkdir %DOSDIR%' >> "$DOSEMUDIR/install.bat"
252
echo 'mkdir %DOSDIR%\cfg' >> "$DOSEMUDIR/install.bat"
253
echo 'mkdir %DOSDIR%\cfg' >> "$DOSEMUDIR/install.bat"
253
echo 'ECHO # pkg config file - specifies locations where packages should be installed >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
254
echo 'ECHO # pkg config file - specifies locations where packages should be installed >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
254
echo 'ECHO DIR PROGS C:\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
255
echo 'ECHO DIR PROGS C:\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
255
echo 'ECHO DIR GAMES C:\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
256
echo 'ECHO DIR GAMES C:\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
256
echo 'ECHO DIR DRIVERS C:\DRIVERS\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
257
echo 'ECHO DIR DRIVERS C:\DRIVERS\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
257
echo 'ECHO DIR DEVEL C:\DEVEL\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
258
echo 'ECHO DIR DEVEL C:\DEVEL\ >> %DOSDIR%\cfg\pkg.cfg' >> "$DOSEMUDIR/install.bat"
258
for p in $COREPKGS ; do
259
for p in $COREPKGS ; do
259
  cp "$CDROOT/$p.svp" "$DOSEMUDIR/"
260
  cp "$CDROOT/$p.svp" "$DOSEMUDIR/"
260
  echo "pkg install $p.svp" >> "$DOSEMUDIR/install.bat"
261
  echo "pkg install $p.svp" >> "$DOSEMUDIR/install.bat"
261
  echo "del $p.svp" >> "$DOSEMUDIR/install.bat"
262
  echo "del $p.svp" >> "$DOSEMUDIR/install.bat"
262
done
263
done
263
echo 'ECHO my_ip = dhcp >> %DOSDIR%\CFG\WATTCP.CFG' >> "$DOSEMUDIR/install.bat"
264
echo 'ECHO my_ip = dhcp >> %DOSDIR%\CFG\WATTCP.CFG' >> "$DOSEMUDIR/install.bat"
264
echo 'del pkg.exe' >> "$DOSEMUDIR/install.bat"
265
echo 'del pkg.exe' >> "$DOSEMUDIR/install.bat"
265
echo 'DEL C:\CONFIG.SYS' >> "$DOSEMUDIR/install.bat"
266
echo 'DEL C:\CONFIG.SYS' >> "$DOSEMUDIR/install.bat"
266
echo 'COPY C:\CONFIG.NEW C:\CONFIG.SYS' >> "$DOSEMUDIR/install.bat"
267
echo 'COPY C:\CONFIG.NEW C:\CONFIG.SYS' >> "$DOSEMUDIR/install.bat"
267
echo 'DEL C:\CONFIG.NEW' >> "$DOSEMUDIR/install.bat"
268
echo 'DEL C:\CONFIG.NEW' >> "$DOSEMUDIR/install.bat"
268
echo 'SET COMSPEC=C:\COMMAND.COM' >> "$DOSEMUDIR/install.bat"
269
echo 'SET COMSPEC=C:\COMMAND.COM' >> "$DOSEMUDIR/install.bat"
269
echo 'DEL C:\CMD.COM' >> "$DOSEMUDIR/install.bat"
270
echo 'DEL C:\CMD.COM' >> "$DOSEMUDIR/install.bat"
270
echo 'ECHO.' >> "$DOSEMUDIR/install.bat"
271
echo 'ECHO.' >> "$DOSEMUDIR/install.bat"
271
echo 'ECHO -------------------------' >> "$DOSEMUDIR/install.bat"
272
echo 'ECHO -------------------------' >> "$DOSEMUDIR/install.bat"
272
echo 'ECHO  SVARDOS SETUP COMPLETED' >> "$DOSEMUDIR/install.bat"
273
echo 'ECHO  SVARDOS SETUP COMPLETED' >> "$DOSEMUDIR/install.bat"
273
echo 'ECHO   PLEASE RESTART DOSEMU' >> "$DOSEMUDIR/install.bat"
274
echo 'ECHO   PLEASE RESTART DOSEMU' >> "$DOSEMUDIR/install.bat"
274
echo 'ECHO -------------------------' >> "$DOSEMUDIR/install.bat"
275
echo 'ECHO -------------------------' >> "$DOSEMUDIR/install.bat"
275
echo 'ECHO.' >> "$DOSEMUDIR/install.bat"
276
echo 'ECHO.' >> "$DOSEMUDIR/install.bat"
276
unzip -Cj "$REPOROOT/core/kernel.svp" bin/kernel.sys -d "$DOSEMUDIR/"
277
unzip -Cj "$REPOROOTCORE/kernel.svp" bin/kernel.sys -d "$DOSEMUDIR/"
277
unzip -CLj "$REPOROOT/core/svarcom.svp" command.com -d "$DOSEMUDIR/"
278
unzip -CLj "$REPOROOTCORE/svarcom.svp" command.com -d "$DOSEMUDIR/"
278
mv "$DOSEMUDIR/command.com" "$DOSEMUDIR/cmd.com"
279
mv "$DOSEMUDIR/command.com" "$DOSEMUDIR/cmd.com"
279
unzip -Cj "$REPOROOT/core/pkg.svp" bin/pkg.exe -d "$DOSEMUDIR/"
280
unzip -Cj "$REPOROOTCORE/pkg.svp" bin/pkg.exe -d "$DOSEMUDIR/"
280
# CONFIG.SYS
281
# CONFIG.SYS
281
echo 'FILES=25' >> "$DOSEMUDIR/config.sys"
282
echo 'FILES=25' >> "$DOSEMUDIR/config.sys"
282
echo 'DOS=HIGH,UMB' >> "$DOSEMUDIR/config.sys"
283
echo 'DOS=HIGH,UMB' >> "$DOSEMUDIR/config.sys"
283
echo 'DOSDATA=UMB' >> "$DOSEMUDIR/config.sys"
284
echo 'DOSDATA=UMB' >> "$DOSEMUDIR/config.sys"
284
echo 'DEVICE=D:\dosemu\emufs.sys' >> "$DOSEMUDIR/config.sys"
285
echo 'DEVICE=D:\dosemu\emufs.sys' >> "$DOSEMUDIR/config.sys"
285
echo 'DEVICE=D:\dosemu\umb.sys' >> "$DOSEMUDIR/config.sys"
286
echo 'DEVICE=D:\dosemu\umb.sys' >> "$DOSEMUDIR/config.sys"
286
echo 'DEVICEHIGH=D:\dosemu\ems.sys' >> "$DOSEMUDIR/config.sys"
287
echo 'DEVICEHIGH=D:\dosemu\ems.sys' >> "$DOSEMUDIR/config.sys"
287
echo 'INSTALL=D:\dosemu\emufs.com' >> "$DOSEMUDIR/config.sys"
288
echo 'INSTALL=D:\dosemu\emufs.com' >> "$DOSEMUDIR/config.sys"
288
cp "$DOSEMUDIR/config.sys" "$DOSEMUDIR/config.new"
289
cp "$DOSEMUDIR/config.sys" "$DOSEMUDIR/config.new"
289
echo 'SHELL=C:\CMD.COM /P' >> "$DOSEMUDIR/config.sys"
290
echo 'SHELL=C:\CMD.COM /P' >> "$DOSEMUDIR/config.sys"
290
echo 'SHELL=C:\COMMAND.COM /P' >> "$DOSEMUDIR/config.new"
291
echo 'SHELL=C:\COMMAND.COM /P' >> "$DOSEMUDIR/config.new"
291
# AUTOEXEC.BAT
292
# AUTOEXEC.BAT
292
echo "@ECHO OFF" >> "$DOSEMUDIR/autoexec.bat"
293
echo "@ECHO OFF" >> "$DOSEMUDIR/autoexec.bat"
293
echo 'SET DOSDIR=C:\SVARDOS' >> "$DOSEMUDIR/autoexec.bat"
294
echo 'SET DOSDIR=C:\SVARDOS' >> "$DOSEMUDIR/autoexec.bat"
294
echo 'SET WATTCP.CFG=%DOSDIR%\CFG' >> "$DOSEMUDIR/autoexec.bat"
295
echo 'SET WATTCP.CFG=%DOSDIR%\CFG' >> "$DOSEMUDIR/autoexec.bat"
295
echo 'SET DIRCMD=/p/ogne' >> "$DOSEMUDIR/autoexec.bat"
296
echo 'SET DIRCMD=/p/ogne' >> "$DOSEMUDIR/autoexec.bat"
296
echo 'SET TEMP=C:\TEMP' >> "$DOSEMUDIR/autoexec.bat"
297
echo 'SET TEMP=C:\TEMP' >> "$DOSEMUDIR/autoexec.bat"
297
echo 'PATH %DOSDIR%\BIN' >> "$DOSEMUDIR/autoexec.bat"
298
echo 'PATH %DOSDIR%\BIN' >> "$DOSEMUDIR/autoexec.bat"
298
echo "" >> "$DOSEMUDIR/autoexec.bat"
299
echo "" >> "$DOSEMUDIR/autoexec.bat"
299
echo 'IF NOT EXIST INSTALL.BAT GOTO NORMBOOT' >> "$DOSEMUDIR/autoexec.bat"
300
echo 'IF NOT EXIST INSTALL.BAT GOTO NORMBOOT' >> "$DOSEMUDIR/autoexec.bat"
300
echo "REM *** this is a one-time setup script used only during first initialization ***" >> "$DOSEMUDIR/autoexec.bat"
301
echo "REM *** this is a one-time setup script used only during first initialization ***" >> "$DOSEMUDIR/autoexec.bat"
301
echo 'CALL INSTALL.BAT' >> "$DOSEMUDIR/autoexec.bat"
302
echo 'CALL INSTALL.BAT' >> "$DOSEMUDIR/autoexec.bat"
302
echo 'DEL INSTALL.BAT' >> "$DOSEMUDIR/autoexec.bat"
303
echo 'DEL INSTALL.BAT' >> "$DOSEMUDIR/autoexec.bat"
303
echo 'GOTO ENDOFFILE' >> "$DOSEMUDIR/autoexec.bat"
304
echo 'GOTO ENDOFFILE' >> "$DOSEMUDIR/autoexec.bat"
304
echo "" >> "$DOSEMUDIR/autoexec.bat"
305
echo "" >> "$DOSEMUDIR/autoexec.bat"
305
echo ":NORMBOOT" >> "$DOSEMUDIR/autoexec.bat"
306
echo ":NORMBOOT" >> "$DOSEMUDIR/autoexec.bat"
306
echo "ECHO." >> "$DOSEMUDIR/autoexec.bat"
307
echo "ECHO." >> "$DOSEMUDIR/autoexec.bat"
307
echo "ECHO Welcome to SvarDOS (powered by DOSEMU)! Type HELP if you are lost." >> "$DOSEMUDIR/autoexec.bat"
308
echo "ECHO Welcome to SvarDOS (powered by DOSEMU)! Type HELP if you are lost." >> "$DOSEMUDIR/autoexec.bat"
308
echo "ECHO." >> "$DOSEMUDIR/autoexec.bat"
309
echo "ECHO." >> "$DOSEMUDIR/autoexec.bat"
309
echo ":ENDOFFILE" >> "$DOSEMUDIR/autoexec.bat"
310
echo ":ENDOFFILE" >> "$DOSEMUDIR/autoexec.bat"
310
rm -f "$PUBDIR/svardos-dosemu.zip"
311
rm -f "$PUBDIR/svardos-dosemu.zip"
311
zip -rm9jk "$PUBDIR/svardos-$CURDATE-dosemu.zip" "$DOSEMUDIR"
312
zip -rm9jk "$PUBDIR/svardos-$CURDATE-dosemu.zip" "$DOSEMUDIR"
312
rmdir "$DOSEMUDIR"
313
rmdir "$DOSEMUDIR"
313
 
314
 
314
echo
315
echo
315
echo "### Generating ISO CD image"
316
echo "### Generating ISO CD image"
316
echo
317
echo
317
 
318
 
318
CDISO="$PUBDIR/svardos-$CURDATE-cd.iso"
319
CDISO="$PUBDIR/svardos-$CURDATE-cd.iso"
319
CDZIP="$PUBDIR/svardos-$CURDATE-cd.zip"
320
CDZIP="$PUBDIR/svardos-$CURDATE-cd.zip"
320
 
321
 
321
$GENISOIMAGE -input-charset cp437 -b boot.img -iso-level 1 -f -V SVARDOS -o "$CDISO" "$CDROOT/boot.img"
322
$GENISOIMAGE -input-charset cp437 -b boot.img -iso-level 1 -f -V SVARDOS -o "$CDISO" "$CDROOT/boot.img"
322
 
323
 
323
# compress the ISO
324
# compress the ISO
324
zip -mj9 "$CDZIP" "$CDISO"
325
zip -mj9 "$CDZIP" "$CDISO"
325
 
326
 
326
# cleanup temporary things
327
# cleanup temporary things
327
if [ "x$2" != "xnoclean" ] ; then
328
if [ "x$2" != "xnoclean" ] ; then
328
  echo
329
  echo
329
  echo "### Cleanup of temporary directories:"
330
  echo "### Cleanup of temporary directories:"
330
  echo "# $CDROOT"
331
  echo "# $CDROOT"
331
  echo "# $FLOPROOT"
332
  echo "# $FLOPROOT"
332
  echo
333
  echo
333
  rm -rf "$CDROOT" "$FLOPROOT"
334
  rm -rf "$CDROOT" "$FLOPROOT"
334
fi
335
fi
335
 
336
 
336
cd "$origdir"
337
cd "$origdir"
337
 
338
 
338
echo
339
echo
339
echo "### ALL DONE! ###"
340
echo "### ALL DONE! ###"
340
 
341
 
341
exit 0
342
exit 0
342
 
343