# Copyright 2009 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. <$GOROOT/src/mk.$GOARCH TARG=runtime # Set SIZE to 32 or 64. SIZE_386=32 SIZE_amd64=64 SIZE_arm=32 SIZE=`{eval echo '$'SIZE_$GOARCH} # Setup CFLAGS. Add -D_64BIT on 64-bit platforms (sorry). CFLAGS_64=-D_64BIT # TODO(kaib): fix register allocation to honor extern register so we # can enable optimizations again. CFLAGS_arm=-N CFLAGS=-I$GOOS -I$GOOS/$GOARCH -wF `{eval echo '$'CFLAGS_$SIZE} `{eval echo '$'CFLAGS_$GOARCH} GOFILES=\ extern.go\ type.go\ # 386-specific object files OFILES_386=\ vlop.$O\ vlrt.$O\ # arm-specific object files OFILES_arm=\ cas.$O\ memset.$O\ vlop.$O\ vlrt.$O\ OFILES=\ asm.$O\ cgocall.$O\ chan.$O\ closure.$O\ float.$O\ hashmap.$O\ iface.$O\ malloc.$O\ mcache.$O\ mcentral.$O\ mem.$O\ mfixalloc.$O\ mgc0.$O\ mheap.$O\ mheapmap$SIZE.$O\ msize.$O\ print.$O\ proc.$O\ reflect.$O\ rune.$O\ runtime.$O\ rt0.$O\ sema.$O\ signal.$O\ slice.$O\ string.$O\ symtab.$O\ sys.$O\ thread.$O\ traceback.$O\ `{eval echo '$'OFILES_$GOARCH}\ HFILES=\ cgocall.h\ runtime.h\ hashmap.h\ malloc.h\ $GOARCH/asm.h\ $GOOS/os.h\ $GOOS/$GOARCH/defs.h\ CLEANFILES = cgo2c */asm.h runtime.acid.* all: cgo2c package <$GOROOT/src/mk.pkg $GOARCH/asm.h: runtime.acid.$GOARCH ./mkasmh.rc >$target.x mv $target.x $target cgo2c: cgo2c.c $OCC $CFLAGS $prereq $OLD -o $target cgo2c.$O &.c:D: &.cgo ./cgo2c $stem.cgo > $target.tmp mv $target.tmp $target &.$O: $GOARCH/&.c $CC $CFLAGS $GOARCH/$stem.c &.$O: $GOOS/&.c $CC $CFLAGS $GOOS/$stem.c &.$O: $GOOS/$GOARCH/&.c $CC $CFLAGS $GOOS/$GOARCH/$stem.c &.$O: $GOARCH/asm.h &.$O: $GOARCH/&.s $AS $GOARCH/$stem.s &.$O: $GOOS/$GOARCH/&.s $AS $GOOS/$GOARCH/$stem.s # for discovering offsets inside structs when debugging runtime.acid.$GOARCH:D: runtime.h proc.c $CC -a proc.c >$target plan9/&/sys.s: /sys/src/libc/9syscall/sys.h @{ cd plan9 mk $stem/sys.s cd .. }