logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>

pass1.kaem (13943B)


  1. #!/bin/sh
  2. # SPDX-FileCopyrightText: 2023 Richard Masters <grick23@gmail.com>
  3. # SPDX-License-Identifier: MIT
  4. set -ex
  5. # Check tarball checksums
  6. checksum-transcriber sources
  7. sha256sum -c sources.SHA256SUM
  8. # Extract
  9. mkdir build
  10. cd build
  11. ungz --file ${DISTFILES}/${pkg}.tar.gz --output ${pkg}.tar
  12. untar --file ${pkg}.tar
  13. cd ${pkg}
  14. cp ../../files/custom_config.h include/fiwix
  15. cp ../../files/custom_limits.h include/fiwix
  16. cp ../../files/custom_kernel.h include/fiwix
  17. cp ../../files/custom_system.h include/fiwix
  18. alias as="tcc -m32 -march=i386 -std=c89 -D__KERNEL__ -DCUSTOM_CONFIG_H -DCUSTOM_LIMITS_H -DCUSTOM_KERNEL_H -DCUSTOM_SYSTEM_H -D__VERSION__=\"tcc\" -traditional -I/${SRCDIR}/${pkg}/build/${pkg}/include"
  19. alias cc="tcc -m32 -march=i386 -std=c89 -D__KERNEL__ -DCUSTOM_CONFIG_H -DCUSTOM_LIMITS_H -DCUSTOM_KERNEL_H -DCUSTOM_SYSTEM_H -D__VERSION__=\"tcc\" -I/${SRCDIR}/${pkg}/build/${pkg}/include -O2 -fno-pie -fno-common -ffreestanding -Wall -Wstrict-prototypes"
  20. cd kernel
  21. as -c -o boot.o boot.S
  22. as -c -o core386.o core386.S
  23. cc -c -o main.o main.c
  24. cc -c -o init.o init.c
  25. cc -c -o gdt.o gdt.c
  26. cc -c -o idt.o idt.c
  27. cc -c -o syscalls.o syscalls.c
  28. cc -c -o pic.o pic.c
  29. cc -c -o pit.o pit.c
  30. cc -c -o irq.o irq.c
  31. cc -c -o traps.o traps.c
  32. cc -c -o cpu.o cpu.c
  33. cc -c -o cmos.o cmos.c
  34. cc -c -o timer.o timer.c
  35. cc -c -o sched.o sched.c
  36. cc -c -o sleep.o sleep.c
  37. cc -c -o signal.o signal.c
  38. cc -c -o process.o process.c
  39. cc -c -o multiboot.o multiboot.c
  40. cc -c -o kexec.o kexec.c
  41. cd syscalls
  42. cc -c -o umount.o umount.c
  43. cc -c -o getgid.o getgid.c
  44. cc -c -o getppid.o getppid.c
  45. cc -c -o fstatfs.o fstatfs.c
  46. cc -c -o getgroups.o getgroups.c
  47. cc -c -o fsync.o fsync.c
  48. cc -c -o setreuid.o setreuid.c
  49. cc -c -o newuname.o newuname.c
  50. cc -c -o fork.o fork.c
  51. cc -c -o setitimer.o setitimer.c
  52. cc -c -o fdatasync.o fdatasync.c
  53. cc -c -o chmod.o chmod.c
  54. cc -c -o mmap2.o mmap2.c
  55. cc -c -o msgsnd.o msgsnd.c
  56. cc -c -o exit.o exit.c
  57. cc -c -o readlink.o readlink.c
  58. cc -c -o socketcall.o socketcall.c
  59. cc -c -o stat64.o stat64.c
  60. cc -c -o readv.o readv.c
  61. cc -c -o sigaction.o sigaction.c
  62. cc -c -o fstat.o fstat.c
  63. cc -c -o waitpid.o waitpid.c
  64. cc -c -o setfsgid.o setfsgid.c
  65. cc -c -o chown.o chown.c
  66. cc -c -o flock.o flock.c
  67. cc -c -o uname.o uname.c
  68. cc -c -o lseek.o lseek.c
  69. cc -c -o setsid.o setsid.c
  70. cc -c -o settimeofday.o settimeofday.c
  71. cc -c -o unlink.o unlink.c
  72. cc -c -o sigprocmask.o sigprocmask.c
  73. cc -c -o ustat.o ustat.c
  74. cc -c -o open.o open.c
  75. cc -c -o sync.o sync.c
  76. cc -c -o iopl.o iopl.c
  77. cc -c -o msgget.o msgget.c
  78. cc -c -o pipe.o pipe.c
  79. cc -c -o shmdt.o shmdt.c
  80. cc -c -o getsid.o getsid.c
  81. cc -c -o setfsuid.o setfsuid.c
  82. cc -c -o signal.o signal.c
  83. cc -c -o newfstat.o newfstat.c
  84. cc -c -o mkdir.o mkdir.c
  85. cc -c -o getcwd.o getcwd.c
  86. cc -c -o link.o link.c
  87. cc -c -o msgctl.o msgctl.c
  88. cc -c -o sethostname.o sethostname.c
  89. cc -c -o semctl.o semctl.c
  90. cc -c -o sysinfo.o sysinfo.c
  91. cc -c -o setdomainname.o setdomainname.c
  92. cc -c -o getegid.o getegid.c
  93. cc -c -o personality.o personality.c
  94. cc -c -o setregid.o setregid.c
  95. cc -c -o setgid.o setgid.c
  96. cc -c -o lstat.o lstat.c
  97. cc -c -o getuid.o getuid.c
  98. cc -c -o llseek.o llseek.c
  99. cc -c -o select.o select.c
  100. cc -c -o ftruncate.o ftruncate.c
  101. cc -c -o getpgid.o getpgid.c
  102. cc -c -o brk.o brk.c
  103. cc -c -o getrusage.o getrusage.c
  104. cc -c -o sigsuspend.o sigsuspend.c
  105. cc -c -o writev.o writev.c
  106. cc -c -o times.o times.c
  107. cc -c -o ssetmask.o ssetmask.c
  108. cc -c -o stat.o stat.c
  109. cc -c -o fchdir.o fchdir.c
  110. cc -c -o chdir.o chdir.c
  111. cc -c -o setgroups.o setgroups.c
  112. cc -c -o newstat.o newstat.c
  113. cc -c -o creat.o creat.c
  114. cc -c -o getdents64.o getdents64.c
  115. cc -c -o getpid.o getpid.c
  116. cc -c -o read.o read.c
  117. cc -c -o dup.o dup.c
  118. cc -c -o utimes.o utimes.c
  119. cc -c -o semget.o semget.c
  120. cc -c -o mount.o mount.c
  121. cc -c -o rmdir.o rmdir.c
  122. cc -c -o setrlimit.o setrlimit.c
  123. cc -c -o sgetmask.o sgetmask.c
  124. cc -c -o pause.o pause.c
  125. cc -c -o utime.o utime.c
  126. cc -c -o statfs.o statfs.c
  127. cc -c -o ioperm.o ioperm.c
  128. cc -c -o ftime.o ftime.c
  129. cc -c -o truncate.o truncate.c
  130. cc -c -o old_mmap.o old_mmap.c
  131. cc -c -o olduname.o olduname.c
  132. cc -c -o kill.o kill.c
  133. cc -c -o gettimeofday.o gettimeofday.c
  134. cc -c -o fchmod.o fchmod.c
  135. cc -c -o fcntl64.o fcntl64.c
  136. cc -c -o mprotect.o mprotect.c
  137. cc -c -o getitimer.o getitimer.c
  138. cc -c -o old_select.o old_select.c
  139. cc -c -o symlink.o symlink.c
  140. cc -c -o mknod.o mknod.c
  141. cc -c -o write.o write.c
  142. cc -c -o rename.o rename.c
  143. cc -c -o shmat.o shmat.c
  144. cc -c -o ipc.o ipc.c
  145. cc -c -o lstat64.o lstat64.c
  146. cc -c -o access.o access.c
  147. cc -c -o getrlimit.o getrlimit.c
  148. cc -c -o sigreturn.o sigreturn.c
  149. cc -c -o ioctl.o ioctl.c
  150. cc -c -o umask.o umask.c
  151. cc -c -o geteuid.o geteuid.c
  152. cc -c -o munmap.o munmap.c
  153. cc -c -o alarm.o alarm.c
  154. cc -c -o nanosleep.o nanosleep.c
  155. cc -c -o close.o close.c
  156. cc -c -o chroot.o chroot.c
  157. cc -c -o ftruncate64.o ftruncate64.c
  158. cc -c -o truncate64.o truncate64.c
  159. cc -c -o msgrcv.o msgrcv.c
  160. cc -c -o umount2.o umount2.c
  161. cc -c -o time.o time.c
  162. cc -c -o stime.o stime.c
  163. cc -c -o semop.o semop.c
  164. cc -c -o newlstat.o newlstat.c
  165. cc -c -o sigpending.o sigpending.c
  166. cc -c -o reboot.o reboot.c
  167. cc -c -o setuid.o setuid.c
  168. cc -c -o wait4.o wait4.c
  169. cc -c -o chown32.o chown32.c
  170. cc -c -o fcntl.o fcntl.c
  171. cc -c -o fstat64.o fstat64.c
  172. cc -c -o shmctl.o shmctl.c
  173. cc -c -o dup2.o dup2.c
  174. cc -c -o setpgid.o setpgid.c
  175. cc -c -o getdents.o getdents.c
  176. cc -c -o getpgrp.o getpgrp.c
  177. cc -c -o fchown.o fchown.c
  178. cc -c -o execve.o execve.c
  179. cc -c -o shmget.o shmget.c
  180. cc -c -o lchown.o lchown.c
  181. cd ../..
  182. cd mm
  183. cc -c -o bios_map.o bios_map.c
  184. cc -c -o buddy_low.o buddy_low.c
  185. cc -c -o memory.o memory.c
  186. cc -c -o page.o page.c
  187. cc -c -o alloc.o alloc.c
  188. cc -c -o fault.o fault.c
  189. cc -c -o mmap.o mmap.c
  190. cc -c -o swapper.o swapper.c
  191. cd ..
  192. cd fs
  193. cc -c -o filesystems.o filesystems.c
  194. cc -c -o devices.o devices.c
  195. cc -c -o buffer.o buffer.c
  196. cc -c -o fd.o fd.c
  197. cc -c -o locks.o locks.c
  198. cc -c -o super.o super.c
  199. cc -c -o inode.o inode.c
  200. cc -c -o namei.o namei.c
  201. cc -c -o elf.o elf.c
  202. cc -c -o script.o script.c
  203. cd minix
  204. cc -c -o super.o super.c
  205. cc -c -o bitmaps.o bitmaps.c
  206. cc -c -o inode.o inode.c
  207. cc -c -o namei.o namei.c
  208. cc -c -o symlink.o symlink.c
  209. cc -c -o dir.o dir.c
  210. cc -c -o file.o file.c
  211. cc -c -o v1_inode.o v1_inode.c
  212. cc -c -o v2_inode.o v2_inode.c
  213. cd ..
  214. cd ext2
  215. cc -c -o inode.o inode.c
  216. cc -c -o super.o super.c
  217. cc -c -o namei.o namei.c
  218. cc -c -o symlink.o symlink.c
  219. cc -c -o dir.o dir.c
  220. cc -c -o file.o file.c
  221. cc -c -o bitmaps.o bitmaps.c
  222. cd ..
  223. cd pipefs
  224. cc -c -o super.o super.c
  225. cc -c -o fifo.o fifo.c
  226. cc -c -o pipe.o pipe.c
  227. cd ..
  228. cd iso9660
  229. cc -c -o inode.o inode.c
  230. cc -c -o super.o super.c
  231. cc -c -o namei.o namei.c
  232. cc -c -o dir.o dir.c
  233. cc -c -o file.o file.c
  234. cc -c -o rrip.o rrip.c
  235. cc -c -o symlink.o symlink.c
  236. cd ..
  237. cd procfs
  238. cc -c -o super.o super.c
  239. cc -c -o inode.o inode.c
  240. cc -c -o namei.o namei.c
  241. cc -c -o dir.o dir.c
  242. cc -c -o file.o file.c
  243. cc -c -o symlink.o symlink.c
  244. cc -c -o tree.o tree.c
  245. cc -c -o data.o data.c
  246. cd ../..
  247. cd drivers/char
  248. cc -c -o console.o console.c
  249. cc -c -o tty.o tty.c
  250. cc -c -o tty_queue.o tty_queue.c
  251. cc -c -o vt.o vt.c
  252. cc -c -o defkeymap.o defkeymap.c
  253. cc -c -o keyboard.o keyboard.c
  254. cc -c -o memdev.o memdev.c
  255. cc -c -o serial.o serial.c
  256. cc -c -o lp.o lp.c
  257. cc -c -o fb.o fb.c
  258. cc -c -o sysrq.o sysrq.c
  259. cd ..
  260. cd block
  261. cc -c -o dma.o dma.c
  262. cc -c -o floppy.o floppy.c
  263. cc -c -o part.o part.c
  264. cc -c -o ata.o ata.c
  265. cc -c -o ata_hd.o ata_hd.c
  266. cc -c -o ata_pci.o ata_pci.c
  267. cc -c -o atapi.o atapi.c
  268. cc -c -o atapi_cd.o atapi_cd.c
  269. cc -c -o ramdisk.o ramdisk.c
  270. cd ..
  271. cd pci
  272. cc -c -o pci.o pci.c
  273. cd ..
  274. cd video
  275. cc -c -o video.o video.c
  276. cc -c -o vgacon.o vgacon.c
  277. cc -c -o fbcon.o fbcon.c
  278. cc -c -o fonts.o fonts.c
  279. cc -c -o bga.o bga.c
  280. cd ../..
  281. cd lib
  282. cc -c -o ctype.o ctype.c
  283. cc -c -o strings.o strings.c
  284. cc -c -o printk.o printk.c
  285. cd ..
  286. mkdir /boot
  287. tcc -m32 -Wl,-Ttext=0x80100000 -static -nostdlib -nostdinc \
  288. kernel/boot.o \
  289. kernel/core386.o \
  290. kernel/main.o kernel/init.o \
  291. kernel/gdt.o \
  292. kernel/idt.o \
  293. kernel/syscalls.o \
  294. kernel/pic.o \
  295. kernel/pit.o \
  296. kernel/irq.o \
  297. kernel/traps.o \
  298. kernel/cpu.o \
  299. kernel/cmos.o \
  300. kernel/timer.o \
  301. kernel/sched.o \
  302. kernel/sleep.o \
  303. kernel/signal.o \
  304. kernel/process.o \
  305. kernel/multiboot.o \
  306. kernel/kexec.o \
  307. kernel/syscalls/umount.o \
  308. kernel/syscalls/getgid.o \
  309. kernel/syscalls/getppid.o \
  310. kernel/syscalls/fstatfs.o \
  311. kernel/syscalls/getgroups.o \
  312. kernel/syscalls/fsync.o \
  313. kernel/syscalls/setreuid.o \
  314. kernel/syscalls/newuname.o \
  315. kernel/syscalls/fork.o \
  316. kernel/syscalls/setitimer.o \
  317. kernel/syscalls/fdatasync.o \
  318. kernel/syscalls/chmod.o \
  319. kernel/syscalls/mmap2.o \
  320. kernel/syscalls/msgsnd.o \
  321. kernel/syscalls/exit.o \
  322. kernel/syscalls/readlink.o \
  323. kernel/syscalls/socketcall.o \
  324. kernel/syscalls/stat64.o \
  325. kernel/syscalls/readv.o \
  326. kernel/syscalls/sigaction.o \
  327. kernel/syscalls/fstat.o \
  328. kernel/syscalls/waitpid.o \
  329. kernel/syscalls/setfsgid.o \
  330. kernel/syscalls/chown.o \
  331. kernel/syscalls/flock.o \
  332. kernel/syscalls/uname.o \
  333. kernel/syscalls/lseek.o \
  334. kernel/syscalls/setsid.o \
  335. kernel/syscalls/settimeofday.o \
  336. kernel/syscalls/unlink.o \
  337. kernel/syscalls/sigprocmask.o \
  338. kernel/syscalls/ustat.o \
  339. kernel/syscalls/open.o \
  340. kernel/syscalls/sync.o \
  341. kernel/syscalls/iopl.o \
  342. kernel/syscalls/msgget.o \
  343. kernel/syscalls/pipe.o \
  344. kernel/syscalls/shmdt.o \
  345. kernel/syscalls/getsid.o \
  346. kernel/syscalls/setfsuid.o \
  347. kernel/syscalls/signal.o \
  348. kernel/syscalls/newfstat.o \
  349. kernel/syscalls/mkdir.o \
  350. kernel/syscalls/getcwd.o \
  351. kernel/syscalls/link.o \
  352. kernel/syscalls/msgctl.o \
  353. kernel/syscalls/sethostname.o \
  354. kernel/syscalls/semctl.o \
  355. kernel/syscalls/sysinfo.o \
  356. kernel/syscalls/setdomainname.o \
  357. kernel/syscalls/getegid.o \
  358. kernel/syscalls/personality.o \
  359. kernel/syscalls/setregid.o \
  360. kernel/syscalls/setgid.o \
  361. kernel/syscalls/lstat.o \
  362. kernel/syscalls/getuid.o \
  363. kernel/syscalls/llseek.o \
  364. kernel/syscalls/select.o \
  365. kernel/syscalls/ftruncate.o \
  366. kernel/syscalls/getpgid.o \
  367. kernel/syscalls/brk.o \
  368. kernel/syscalls/getrusage.o \
  369. kernel/syscalls/sigsuspend.o \
  370. kernel/syscalls/writev.o \
  371. kernel/syscalls/times.o \
  372. kernel/syscalls/ssetmask.o \
  373. kernel/syscalls/stat.o \
  374. kernel/syscalls/fchdir.o \
  375. kernel/syscalls/chdir.o \
  376. kernel/syscalls/setgroups.o \
  377. kernel/syscalls/newstat.o \
  378. kernel/syscalls/creat.o \
  379. kernel/syscalls/getdents64.o \
  380. kernel/syscalls/getpid.o \
  381. kernel/syscalls/read.o \
  382. kernel/syscalls/dup.o \
  383. kernel/syscalls/utimes.o \
  384. kernel/syscalls/semget.o \
  385. kernel/syscalls/mount.o \
  386. kernel/syscalls/rmdir.o \
  387. kernel/syscalls/setrlimit.o \
  388. kernel/syscalls/sgetmask.o \
  389. kernel/syscalls/pause.o \
  390. kernel/syscalls/utime.o \
  391. kernel/syscalls/statfs.o \
  392. kernel/syscalls/ioperm.o \
  393. kernel/syscalls/ftime.o \
  394. kernel/syscalls/truncate.o \
  395. kernel/syscalls/old_mmap.o \
  396. kernel/syscalls/olduname.o \
  397. kernel/syscalls/kill.o \
  398. kernel/syscalls/gettimeofday.o \
  399. kernel/syscalls/fchmod.o \
  400. kernel/syscalls/fcntl64.o \
  401. kernel/syscalls/mprotect.o \
  402. kernel/syscalls/getitimer.o \
  403. kernel/syscalls/old_select.o \
  404. kernel/syscalls/symlink.o \
  405. kernel/syscalls/mknod.o \
  406. kernel/syscalls/write.o \
  407. kernel/syscalls/rename.o \
  408. kernel/syscalls/shmat.o \
  409. kernel/syscalls/ipc.o \
  410. kernel/syscalls/lstat64.o \
  411. kernel/syscalls/access.o \
  412. kernel/syscalls/getrlimit.o \
  413. kernel/syscalls/sigreturn.o \
  414. kernel/syscalls/ioctl.o \
  415. kernel/syscalls/umask.o \
  416. kernel/syscalls/geteuid.o \
  417. kernel/syscalls/munmap.o \
  418. kernel/syscalls/alarm.o \
  419. kernel/syscalls/nanosleep.o \
  420. kernel/syscalls/close.o \
  421. kernel/syscalls/chroot.o \
  422. kernel/syscalls/ftruncate64.o \
  423. kernel/syscalls/truncate64.o \
  424. kernel/syscalls/msgrcv.o \
  425. kernel/syscalls/umount2.o \
  426. kernel/syscalls/time.o \
  427. kernel/syscalls/stime.o \
  428. kernel/syscalls/semop.o \
  429. kernel/syscalls/newlstat.o \
  430. kernel/syscalls/sigpending.o \
  431. kernel/syscalls/reboot.o \
  432. kernel/syscalls/setuid.o \
  433. kernel/syscalls/wait4.o \
  434. kernel/syscalls/chown32.o \
  435. kernel/syscalls/fcntl.o \
  436. kernel/syscalls/fstat64.o \
  437. kernel/syscalls/shmctl.o \
  438. kernel/syscalls/dup2.o \
  439. kernel/syscalls/setpgid.o \
  440. kernel/syscalls/getdents.o \
  441. kernel/syscalls/getpgrp.o \
  442. kernel/syscalls/fchown.o \
  443. kernel/syscalls/execve.o \
  444. kernel/syscalls/shmget.o \
  445. kernel/syscalls/lchown.o \
  446. mm/bios_map.o \
  447. mm/buddy_low.o \
  448. mm/memory.o \
  449. mm/page.o \
  450. mm/alloc.o \
  451. mm/fault.o \
  452. mm/mmap.o \
  453. mm/swapper.o \
  454. fs/filesystems.o \
  455. fs/devices.o \
  456. fs/buffer.o \
  457. fs/fd.o \
  458. fs/locks.o \
  459. fs/super.o \
  460. fs/inode.o \
  461. fs/namei.o \
  462. fs/elf.o \
  463. fs/script.o \
  464. fs/minix/super.o \
  465. fs/minix/bitmaps.o \
  466. fs/minix/inode.o \
  467. fs/minix/namei.o \
  468. fs/minix/symlink.o \
  469. fs/minix/dir.o \
  470. fs/minix/file.o \
  471. fs/minix/v1_inode.o \
  472. fs/minix/v2_inode.o \
  473. fs/ext2/inode.o \
  474. fs/ext2/super.o \
  475. fs/ext2/namei.o \
  476. fs/ext2/symlink.o \
  477. fs/ext2/dir.o \
  478. fs/ext2/file.o \
  479. fs/ext2/bitmaps.o \
  480. fs/pipefs/super.o \
  481. fs/pipefs/fifo.o \
  482. fs/pipefs/pipe.o \
  483. fs/iso9660/inode.o \
  484. fs/iso9660/super.o \
  485. fs/iso9660/namei.o \
  486. fs/iso9660/dir.o \
  487. fs/iso9660/file.o \
  488. fs/iso9660/rrip.o \
  489. fs/iso9660/symlink.o \
  490. fs/procfs/super.o \
  491. fs/procfs/inode.o \
  492. fs/procfs/namei.o \
  493. fs/procfs/dir.o \
  494. fs/procfs/file.o \
  495. fs/procfs/symlink.o \
  496. fs/procfs/tree.o \
  497. fs/procfs/data.o \
  498. drivers/char/console.o \
  499. drivers/char/tty.o \
  500. drivers/char/tty_queue.o \
  501. drivers/char/vt.o \
  502. drivers/char/defkeymap.o \
  503. drivers/char/keyboard.o \
  504. drivers/char/memdev.o \
  505. drivers/char/serial.o \
  506. drivers/char/lp.o \
  507. drivers/char/fb.o \
  508. drivers/char/sysrq.o \
  509. drivers/block/dma.o \
  510. drivers/block/floppy.o \
  511. drivers/block/part.o \
  512. drivers/block/ata.o \
  513. drivers/block/ata_hd.o \
  514. drivers/block/ata_pci.o \
  515. drivers/block/atapi.o \
  516. drivers/block/atapi_cd.o \
  517. drivers/block/ramdisk.o \
  518. drivers/pci/pci.o \
  519. drivers/video/video.o \
  520. drivers/video/vgacon.o \
  521. drivers/video/fbcon.o \
  522. drivers/video/fonts.o \
  523. drivers/video/bga.o \
  524. lib/ctype.o \
  525. lib/strings.o \
  526. lib/printk.o \
  527. -o /boot/fiwix
  528. cd ../..
  529. # Checksums
  530. if match x${UPDATE_CHECKSUMS} xTrue; then
  531. sha256sum -o ${pkg}.checksums \
  532. /boot/fiwix
  533. cp ${pkg}.checksums ${SRCDIR}
  534. else
  535. sha256sum -c ${pkg}.checksums
  536. fi