DEADSOFTWARE

8fdb3fdc4d3904db0fa7bf201f58fa7a09b5f377
[cpc.git] / make-bootstrap.sh
1 #! /bin/sh
3 set -e
5 THIS="$(dirname "$(readlink -f "$0")")"
6 OUT="$THIS/bootstrap/i486"
8 cpc() {
9 "$THIS/stage2/i486/cpfront" -outcode CodeC -outsym SymC "$@"
10 }
12 importlist() {
13 echo
14 while [ "$1" != "" ]; do
15 echo -n "\t\t$1"
16 shift
17 if [ "$1" != "" ]; then
18 echo ","
19 fi
20 done
21 }
23 mainmodule() {
24 local name="$1"
25 shift
26 cat <<!
27 MODULE ${name};
29 IMPORT $(importlist "$@");
31 END ${name}.
32 !
33 }
35 linkall() {
36 local name="$1";
37 mainmodule "$@" > "$name.cp"
38 shift
40 cpc -main "$name.cp"
42 local list=""
43 for mod in "$@" "$name"; do
44 list="$list CodeC/$mod.c"
45 done
46 }
48 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
49 ### Prepare bbdsw sources for LINUX/i486 ###
50 ###______________________________________###
52 rm -rf "$OUT"
53 mkdir -p "$OUT"
54 cp -r -- \
55 "$THIS/src/generic/"* \
56 "$THIS/src/posix/"* \
57 "$THIS/src/cpfront/posix/"* \
58 "$THIS/src/cpfront/linux/"* \
59 "$OUT"
60 cd "$OUT"
62 ###^^^^^^^^^^^^^^^^^^^^^^^^###
63 ### Compile POSIX bindings ###
64 ###________________________###
66 cpc C99/Mod/types.cp \
67 C99/Mod/sys_types.cp \
68 C99/Mod/stdlib.cp C99/Mod/stdio.cp C99/Mod/unistd.cp \
69 C99/Mod/dirent.cp C99/Mod/locale.cp C99/Mod/time.cp \
70 C99/Mod/sys_stat.cp C99/Mod/fcntl.cp C99/Mod/errno.cp \
71 C99/Mod/iconv.cp C99/Mod/wctype.cp C99/Mod/sys_mman.cp \
72 C99/Mod/dlfcn.cp C99/Mod/signal.cp C99/Mod/setjmp.cp \
73 C99/Mod/libgen.cp \
74 C99/Mod/macro.cp
76 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
77 ### Compile BlackBox Framework ###
78 ###____________________________###
80 cpc System/Mod/Math.cp System/Mod/SMath.cp System/Mod/Kernel.cp \
81 System/Mod/Console.odc System/Mod/Files.odc System/Mod/Dates.odc \
82 System/Mod/Log.odc System/Mod/Strings.odc System/Mod/Services.odc \
83 System/Mod/Int.odc System/Mod/Integers.odc
85 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
86 ### Compile Linux Host subsystem ###
87 ###______________________________###
89 cpc Host/Mod/Lang.cp Host/Mod/Dates.cp Host/Mod/Console.cp Host/Mod/Files.cp
91 ###^^^^^^^^^^^^^^^^^^^^^^^###
92 ### Compile Dev subsystem ###
93 ###_______________________###
95 cpc Dev/Mod/CPM.cp Dev/Mod/CPT.odc Dev/Mod/CPS.odc Dev/Mod/CPB.odc \
96 Dev/Mod/CPP.odc Dev/Mod/CPE.odc Dev/Mod/CPH.odc Dev/Mod/CPL486.odc \
97 Dev/Mod/CPC486.odc Dev/Mod/CPV486.odc
99 ###^^^^^^^^^^^^^^^^^^^^^^^^###
100 ### Compile Dev2 subsystem ###
101 ###________________________###
103 cpc Dev2/Mod/LnkBase.odc Dev2/Mod/LnkChmod.odc Dev2/Mod/LnkLoad.odc \
104 Dev2/Mod/LnkWriteElf.odc Dev2/Mod/LnkWriteElfStatic.odc \
105 Dev2/Mod/LnkWritePe.odc
107 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^###
108 ### Compile CPfront subsystem ###
109 ###___________________________###
111 cpc CPfront/Mod/CPG.odc CPfront/Mod/CPC.odc CPfront/Mod/CPV.odc
113 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
114 ### Compile bbdsw-specific modules ###
115 ###________________________________###
117 cpc Dsw/Mod/Documents.cp Dsw/Mod/Log.odc Dsw/Mod/Compiler486Main.cp \
118 Dsw/Mod/CompilerCPfrontMain.cp Dsw/Mod/Linker486Main.cp
120 ###^^^^^^^^^^^^^^^^^^^^^^^^^###
121 ### Compile other utilities ###
122 ###_________________________###
124 cpc Dsw/Mod/ListMain.cp Dsw/Mod/EchoMain.cp Dsw/Mod/LoopMain.cp
126 ###^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^###
127 ### Link Standalone Component Pascl Compiler & Dev2 Linker ###
128 ###________________________________________________________###
130 linkall cpfront \
131 C99types C99macro \
132 Kernel Console Files Dates Math Strings Services Log \
133 HostLang HostConsole HostFiles HostDates DswLog \
134 DevCPM DevCPT DevCPS DevCPB DevCPP DevCPE DevCPH \
135 CPfrontCPG CPfrontCPC CPfrontCPV\
136 DswDocuments DswCompilerCPfrontMain
138 linkall cpc486 \
139 C99types C99macro \
140 Kernel Console Files Dates Math Strings Services Log \
141 HostLang HostConsole HostFiles HostDates DswLog \
142 DevCPM DevCPT DevCPS DevCPB DevCPP DevCPE DevCPH \
143 DevCPL486 DevCPC486 DevCPV486 \
144 DswDocuments DswCompiler486Main
146 linkall cpl486 \
147 C99types C99macro \
148 Kernel Console Files Math Strings Services Log \
149 HostLang HostConsole HostFiles DswLog \
150 Dev2LnkBase Dev2LnkChmod Dev2LnkLoad Dev2LnkWriteElf \
151 Dev2LnkWriteElfStatic Dev2LnkWritePe \
152 DswLinker486Main
154 #linkall cplist \
155 # C99types C99macro \
156 # Kernel Console Files Math Strings Services Log \
157 # HostLang HostConsole HostFiles DswLog \
158 # DswListMain
160 #linkall cpecho \
161 # C99types C99macro \
162 # Kernel Console Files Math Strings Services Log \
163 # HostLang HostConsole HostFiles DswLog \
164 # DswEchoMain
166 #linkall cploop \
167 # C99types C99macro \
168 # Kernel Console Files Math Strings Services Log \
169 # HostLang HostConsole HostFiles DswLog \
170 # DswLoopMain
172 rm -rf "$THIS/bootstrap-src"
173 mkdir -p "$THIS/bootstrap-src"
174 cp -r -t "$THIS/bootstrap-src" -- \
175 "$THIS/CHANGELOG" \
176 "$THIS/LICENSE" \
177 "$THIS/README" \
178 "$THIS/man" \
179 "$THIS/crux" \
180 "$THIS/make-bootstrap.sh" \
181 "$THIS/make-stage0.sh" \
182 "$THIS/make-stage0c.sh" \
183 "$THIS/make-stage1.sh" \
184 "$THIS/make-stage2.sh" \
185 "$THIS/src" \
186 "$THIS/C" \
187 CodeC
189 cd "$THIS"
190 tar czf cpc-v0.1.src.tar.gz bootstrap-src