DEADSOFTWARE

first cpc release
[cpc.git] / make-stage0.sh
1 #! /bin/sh
3 set -e
5 THIS="$(dirname "$(readlink -f "$0")")"
6 OUT="$THIS/stage0/i486"
8 ###^^^^^^^^^^^^^^^^^^###
9 ### Check BBCP files ###
10 ###__________________###
12 mkdir -p "$THIS/stage0"
13 if ! [ -e "$THIS/stage0/bbcp" ]; then
14 echo "Please, clone bbcp repo:"
15 echo "-> git clone --depth=1 -b crux https://git.deadsoftware.ru/bbcp.git '$(realpath --relative-to="$PWD" "$THIS/stage0/bbcp")'"
16 echo "Than retry building using make-stage0.sh"
17 exit 1
18 fi
19 cd "$THIS/stage0/bbcp/BlackBox"
21 ###^^^^^^^^^^^^^^^^^^^###
22 ### Build BBCP itself ###
23 ###___________________###
25 ./switch-target Linux Interp
26 ./build
28 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
29 ### Copy minimal bbdsw sources ###
30 ###____________________________###
32 rm -rf "$OUT"
33 mkdir -p "$OUT"
34 cp -r -- \
35 "$THIS/src/generic/"* \
36 "$THIS/src/posix/"* \
37 "$THIS/src/i486/generic/"* \
38 "$THIS/src/i486/posix/"* \
39 "$THIS/src/i486/linux/"* \
40 "$OUT"
42 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
43 ### Compile Stage0 Compiler & Linker ###
44 ###__________________________________###
46 ./blackbox <<!
48 Kernel.LoadMod('DevCompiler')
49 Kernel.LoadMod('ConsCompiler')
50 Kernel.LoadMod('Dev2Linker1')
51 Kernel.LoadMod('Dev2LnkChmod')
53 HostFiles.SetRootDir('$OUT')
55 ConsCompiler.Compile('C99/Mod', 'types.cp')
56 ConsCompiler.Compile('C99/Mod', 'sys_types.cp')
57 ConsCompiler.Compile('C99/Mod', 'stdlib.cp')
58 ConsCompiler.Compile('C99/Mod', 'stdio.cp')
59 ConsCompiler.Compile('C99/Mod', 'unistd.cp')
60 ConsCompiler.Compile('C99/Mod', 'dirent.cp')
61 ConsCompiler.Compile('C99/Mod', 'locale.cp')
62 ConsCompiler.Compile('C99/Mod', 'time.cp')
63 ConsCompiler.Compile('C99/Mod', 'sys_stat.cp')
64 ConsCompiler.Compile('C99/Mod', 'fcntl.cp')
65 ConsCompiler.Compile('C99/Mod', 'errno.cp')
66 ConsCompiler.Compile('C99/Mod', 'iconv.cp')
67 ConsCompiler.Compile('C99/Mod', 'wctype.cp')
68 ConsCompiler.Compile('C99/Mod', 'sys_mman.cp')
69 ConsCompiler.Compile('C99/Mod', 'dlfcn.cp')
70 ConsCompiler.Compile('C99/Mod', 'signal.cp')
71 ConsCompiler.Compile('C99/Mod', 'setjmp.cp')
72 ConsCompiler.Compile('C99/Mod', 'libgen.cp')
73 ConsCompiler.Compile('C99/Mod', 'macro.cp')
75 ConsCompiler.Compile('System/Mod', 'Kernel.cp')
76 DevCompiler.CompileThis Console Dates Files Int Long Math SMath Strings Log Services
78 ConsCompiler.Compile('Host/Mod', 'Lang.cp')
79 ConsCompiler.Compile('Host/Mod', 'Dates.cp')
80 ConsCompiler.Compile('Host/Mod', 'Console.cp')
81 ConsCompiler.Compile('Host/Mod', 'Files.cp')
83 DevCompiler.CompileThis \
84 DswLog DswDebug \
85 Dev2LnkBase Dev2LnkChmod Dev2LnkLoad Dev2LnkWriteElf Dev2LnkWriteElfStatic Dev2LnkWritePe
86 ConsCompiler.Compile('Dsw/Mod','Linker486Main.cp')
87 Dev2Linker1.LinkElf Linux cpl486 := Kernel$+ \
88 C99types C99macro \
89 Kernel \
90 Console Files Math Strings Services Log Int Long \
91 HostLang HostConsole HostFiles DswLog DswDebug \
92 Dev2LnkBase Dev2LnkChmod Dev2LnkLoad Dev2LnkWriteElf \
93 Dev2LnkWriteElfStatic Dev2LnkWritePe \
94 DswLinker486Main
96 ConsCompiler.Compile('Dev/Mod','CPM.cp')
97 DevCompiler.CompileThis DevCPT DevCPS DevCPB DevCPP DevCPE DevCPH DevCPL486 DevCPC486 DevCPV486
98 ConsCompiler.Compile('Dsw/Mod','Documents.cp')
99 ConsCompiler.Compile('Dsw/Mod','Compiler486Main.cp')
100 Dev2Linker1.LinkElf Linux cpc486 := Kernel$+ \
101 C99types C99macro \
102 Kernel \
103 Console Files Math Strings Services Log Int Long \
104 HostLang HostConsole HostFiles HostDates DswLog DswDebug \
105 DevCPM DevCPT DevCPS DevCPB DevCPP DevCPE DevCPH DevCPL486 DevCPC486 DevCPV486 \
106 DswDocuments DswCompiler486Main
108 Kernel.Quit(0)
112 cd "$OUT"
113 chmod a+x cpc486 cpl486