434 lines
7.4 KiB
Bash
434 lines
7.4 KiB
Bash
#!/cmd/rc
|
|
if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc
|
|
|
|
git clean -xdf ./
|
|
|
|
|
|
CONF=Amd64CPU
|
|
CONFFILE=`{pwd}
|
|
build ../boot/
|
|
build inith.rc.build
|
|
DIR_TO_CLEAN=`{pwd}
|
|
|
|
|
|
cat ../build/ksyscalls.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > systab.c
|
|
cat ../build/errstrh.rc.template | template | rc > errstr.h
|
|
cat ./createSIPIHeader.rc |rc
|
|
cat ../build/errorh.rc.template | template | rc > ../port/error.h
|
|
|
|
if ( test -d ramdisk ) rm -fr ramdisk
|
|
mkdir ramdisk
|
|
|
|
CMD_DIR=$JEHANNE/arch/$ARCH/cmd
|
|
RAMDISK=( \
|
|
$CMD_DIR/disk/rofs \
|
|
)
|
|
|
|
for (file in $RAMDISK) {
|
|
NAME=`{basename $file}
|
|
$STRIP -o ./ramdisk/$NAME $file
|
|
}
|
|
|
|
DEVICES=( \
|
|
arch \
|
|
bridge \
|
|
cap \
|
|
cons \
|
|
dup \
|
|
draw \
|
|
env \
|
|
ether \
|
|
ip \
|
|
kprof \
|
|
kbd \
|
|
mouse \
|
|
ninep \
|
|
pci \
|
|
pipe \
|
|
proc \
|
|
root \
|
|
rtc \
|
|
sd \
|
|
self \
|
|
shr \
|
|
srv \
|
|
ssl \
|
|
tls \
|
|
uart \
|
|
usb \
|
|
vga \
|
|
)
|
|
LINKS=( \
|
|
ether8139 \
|
|
ether8169 \
|
|
ether82557 \
|
|
ether82563 \
|
|
etherigbe \
|
|
ethermedium \
|
|
loopbackmedium \
|
|
netdevmedium \
|
|
usbuhci \
|
|
usbohci \
|
|
usbehci \
|
|
)
|
|
PROTOCOLS=( \
|
|
tcp \
|
|
udp \
|
|
ipifc \
|
|
icmp \
|
|
icmp6 \
|
|
gre \
|
|
)
|
|
SDINTERFACES=( \
|
|
sdata \
|
|
sdiahci \
|
|
)
|
|
UARTS=( \
|
|
i8250 \
|
|
pci \
|
|
)
|
|
|
|
VGA=(vgavesa)
|
|
|
|
cat ../build/kernelconf.rc.template | template | rc > autogenerated.c
|
|
|
|
$CC \
|
|
autogenerated.c \
|
|
sdata.c \
|
|
cga.c \
|
|
usbehcipc.c \
|
|
usbohci.c \
|
|
usbuhci.c \
|
|
bios32.c \
|
|
devether.c \
|
|
devrtc.c \
|
|
devkbd.c \
|
|
ether8139.c \
|
|
ether8169.c \
|
|
ether82557.c \
|
|
ether82563.c \
|
|
etherigbe.c \
|
|
ethermii.c \
|
|
etherm10g.c \
|
|
pci.c \
|
|
sdiahci.c \
|
|
sdscsi.c \
|
|
uarti8250.c \
|
|
uartpci.c \
|
|
entry.S \
|
|
ec.c \
|
|
l64v.S \
|
|
l64fpu.S \
|
|
cpuidamd64.S \
|
|
l64idt.S \
|
|
l64vsyscall.S \
|
|
acpi.c \
|
|
arch.c \
|
|
archmp.c \
|
|
devarch.c \
|
|
fpu.c \
|
|
hpet.c \
|
|
i8253.c \
|
|
i8259.c \
|
|
lapic.c \
|
|
main.c \
|
|
memory.c \
|
|
mmu.c \
|
|
mp.c \
|
|
msi.c \
|
|
mtrr.c \
|
|
multiboot.c \
|
|
squidboy.c \
|
|
syscall.c \
|
|
systab.c \
|
|
trap.c \
|
|
../port/devdraw.c \
|
|
../port/devmouse.c \
|
|
../port/swcursor.c \
|
|
vgavesa.c \
|
|
screen.c \
|
|
devvga.c \
|
|
mouse.c \
|
|
vga.c \
|
|
vgax.c \
|
|
../ip/arp.c \
|
|
../ip/chandial.c \
|
|
../ip/devip.c \
|
|
../ip/ethermedium.c \
|
|
../ip/gre.c \
|
|
../ip/icmp6.c \
|
|
../ip/icmp.c \
|
|
../ip/ipaux.c \
|
|
../ip/ip.c \
|
|
../ip/ipifc.c \
|
|
../ip/iproute.c \
|
|
../ip/ipv6.c \
|
|
../ip/loopbackmedium.c \
|
|
../ip/netdevmedium.c \
|
|
../ip/netlog.c \
|
|
../ip/nullmedium.c \
|
|
../ip/pktmedium.c \
|
|
../ip/ptclbsum.c \
|
|
../ip/tcp.c \
|
|
../ip/udp.c \
|
|
../port/umem/pages.c \
|
|
../port/umem/raw.c \
|
|
../port/umem/segments.c \
|
|
../port/umem/images.c \
|
|
../port/alarm.c \
|
|
../port/alloc.c \
|
|
../port/allocb.c \
|
|
../port/awake.c \
|
|
../port/chan.c \
|
|
../port/debug.c \
|
|
../port/dev.c \
|
|
../port/dev9p.c \
|
|
../port/devbridge.c \
|
|
../port/devcap.c \
|
|
../port/devcons.c \
|
|
../port/devdup.c \
|
|
../port/devenv.c \
|
|
../port/devfs.c \
|
|
../port/devkprof.c \
|
|
../port/devpci.c \
|
|
../port/devpipe.c \
|
|
../port/devproc.c \
|
|
../port/devroot.c \
|
|
../port/devsd.c \
|
|
../port/devself.c \
|
|
../port/devshr.c \
|
|
../port/devsrv.c \
|
|
../port/devssl.c \
|
|
../port/devtab.c \
|
|
../port/devtls.c \
|
|
../port/devtrace.c \
|
|
../port/devuart.c \
|
|
../port/devusb.c \
|
|
../port/elf64.c \
|
|
../port/fault.c \
|
|
../port/getput.c \
|
|
../port/log.c \
|
|
../port/taslock.c \
|
|
../port/mul64fract.c \
|
|
../port/net.c \
|
|
../port/netif.c \
|
|
../port/parse.c \
|
|
../port/pgrp.c \
|
|
../port/portclock.c \
|
|
../port/print.c \
|
|
../port/proc.c \
|
|
../port/ps.c \
|
|
../port/qio.c \
|
|
../port/qlock.c \
|
|
../port/random.c \
|
|
../port/rebootcmd.c \
|
|
../port/ref.c \
|
|
../port/sysauth.c \
|
|
../port/syscallfmt.c \
|
|
../port/sysfile.c \
|
|
../port/sysproc.c \
|
|
../port/tod.c \
|
|
../port/uidgid.c \
|
|
../port/usbehci.c \
|
|
../port/xalloc.c \
|
|
-DKERNEL \
|
|
'-DKERNDATE=1433623937' \
|
|
-9 \
|
|
-c \
|
|
-I. \
|
|
-I$JEHANNE/sys/src/lib/jehanne \
|
|
'-mcmodel=kernel' \
|
|
-O0 \
|
|
-static \
|
|
-fplan9-extensions \
|
|
-mno-red-zone \
|
|
-fstack-protector-all \
|
|
-ffreestanding \
|
|
-fno-builtin \
|
|
-g \
|
|
-fvar-tracking \
|
|
-fvar-tracking-assignments \
|
|
-ffixed-r14 \
|
|
-ffixed-r15 \
|
|
-Wall \
|
|
-W \
|
|
-Wno-sign-compare \
|
|
-Wno-missing-field-initializers \
|
|
-Wno-unused-parameter \
|
|
-Wno-missing-braces \
|
|
-Wno-parentheses \
|
|
-Wno-unknown-pragmas \
|
|
-fasm
|
|
$LD -o jehanne \
|
|
autogenerated.o \
|
|
sdata.o \
|
|
cga.o \
|
|
usbehcipc.o \
|
|
usbohci.o \
|
|
usbuhci.o \
|
|
bios32.o \
|
|
devether.o \
|
|
devrtc.o \
|
|
devkbd.o \
|
|
ether8139.o \
|
|
ether8169.o \
|
|
ether82557.o \
|
|
ether82563.o \
|
|
etherigbe.o \
|
|
ethermii.o \
|
|
etherm10g.o \
|
|
pci.o \
|
|
sdiahci.o \
|
|
sdscsi.o \
|
|
uarti8250.o \
|
|
uartpci.o \
|
|
entry.o \
|
|
ec.o \
|
|
l64v.o \
|
|
l64fpu.o \
|
|
cpuidamd64.o \
|
|
l64idt.o \
|
|
l64vsyscall.o \
|
|
acpi.o \
|
|
arch.o \
|
|
archmp.o \
|
|
devarch.o \
|
|
fpu.o \
|
|
hpet.o \
|
|
i8253.o \
|
|
i8259.o \
|
|
lapic.o \
|
|
main.o \
|
|
memory.o \
|
|
mmu.o \
|
|
mp.o \
|
|
msi.o \
|
|
mtrr.o \
|
|
multiboot.o \
|
|
squidboy.o \
|
|
syscall.o \
|
|
systab.o \
|
|
trap.o \
|
|
devdraw.o \
|
|
devmouse.o \
|
|
swcursor.o \
|
|
vgavesa.o \
|
|
screen.o \
|
|
devvga.o \
|
|
mouse.o \
|
|
vga.o \
|
|
vgax.o \
|
|
arp.o \
|
|
chandial.o \
|
|
devip.o \
|
|
ethermedium.o \
|
|
gre.o \
|
|
icmp6.o \
|
|
icmp.o \
|
|
ipaux.o \
|
|
ip.o \
|
|
ipifc.o \
|
|
iproute.o \
|
|
ipv6.o \
|
|
loopbackmedium.o \
|
|
netdevmedium.o \
|
|
netlog.o \
|
|
nullmedium.o \
|
|
pktmedium.o \
|
|
ptclbsum.o \
|
|
tcp.o \
|
|
udp.o \
|
|
pages.o \
|
|
raw.o \
|
|
segments.o \
|
|
images.o \
|
|
alarm.o \
|
|
alloc.o \
|
|
allocb.o \
|
|
awake.o \
|
|
chan.o \
|
|
debug.o \
|
|
dev.o \
|
|
dev9p.o \
|
|
devbridge.o \
|
|
devcap.o \
|
|
devcons.o \
|
|
devdup.o \
|
|
devenv.o \
|
|
devfs.o \
|
|
devkprof.o \
|
|
devpci.o \
|
|
devpipe.o \
|
|
devproc.o \
|
|
devroot.o \
|
|
devsd.o \
|
|
devself.o \
|
|
devshr.o \
|
|
devsrv.o \
|
|
devssl.o \
|
|
devtab.o \
|
|
devtls.o \
|
|
devtrace.o \
|
|
devuart.o \
|
|
devusb.o \
|
|
elf64.o \
|
|
fault.o \
|
|
getput.o \
|
|
log.o \
|
|
taslock.o \
|
|
mul64fract.o \
|
|
net.o \
|
|
netif.o \
|
|
parse.o \
|
|
pgrp.o \
|
|
portclock.o \
|
|
print.o \
|
|
proc.o \
|
|
ps.o \
|
|
qio.o \
|
|
qlock.o \
|
|
random.o \
|
|
rebootcmd.o \
|
|
ref.o \
|
|
sysauth.o \
|
|
syscallfmt.o \
|
|
sysfile.o \
|
|
sysproc.o \
|
|
tod.o \
|
|
uidgid.o \
|
|
usbehci.o \
|
|
xalloc.o \
|
|
-z 'max-page-size=0x1000' \
|
|
-nostdlib -T kernel.ld -g \
|
|
$JEHANNE/arch/$ARCH/lib/klibmemlayer.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibmemdraw.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibdraw.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibip.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibc.a \
|
|
$JEHANNE/arch/$ARCH/lib/klib9p2000.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibsec.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibmp.a \
|
|
$JEHANNE/arch/$ARCH/lib/klibaml.a
|
|
safemove jehanne $JEHANNE/arch/$ARCH/kern
|
|
|
|
cd $JEHANNE/arch/$ARCH/kern
|
|
|
|
# dump assembly
|
|
$OBJDUMP -S jehanne > jehanne.asm
|
|
|
|
# prepare multiboot kernel (32bit only)
|
|
$OBJCOPY -I elf64-x86-64 -O elf32-i386 jehanne jehanne.32bit
|
|
#cd $JEHANNE/arch/$ARCH/kern; cp jehanne.32bit $JEHANNE/cfg/pxe/tftpboot
|
|
|
|
# create initial ram disk
|
|
KERNDIR=$JEHANNE/hacking/bin/
|
|
KERNEL=workhorse.32bit
|
|
|
|
find $JEHANNE/arch/$ARCH/cmd -type f | xargs -n 1 strip
|
|
strip $JEHANNE/arch/$ARCH/kern/jehanne.32bit
|
|
echo /sys/src/kern/boot/createInitRD|runqemu
|
|
|
|
|
|
cd $DIR_TO_CLEAN
|
|
#git clean -xdf ../
|