jehanne/sys/src/kern/amd64/amd64.rc.build

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 ../