mirror of
https://github.com/golang/go
synced 2024-10-05 00:11:21 -06:00
d3ac545f80
Update #1527. R=adg, oerdnj CC=golang-dev https://golang.org/cl/4171060
172 lines
3.0 KiB
Makefile
172 lines
3.0 KiB
Makefile
# 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.
|
|
|
|
include ../../Make.inc
|
|
|
|
TARG=runtime
|
|
|
|
# Set SIZE to 32 or 64.
|
|
SIZE_386=32
|
|
SIZE_amd64=64
|
|
SIZE_arm=32
|
|
SIZE=$(SIZE_$(GOARCH))
|
|
|
|
# TODO(kaib): fix register allocation to honor extern register so we
|
|
# can enable optimizations again.
|
|
CFLAGS_arm=-N
|
|
CFLAGS_windows=-D__WINDOWS__
|
|
CFLAGS=-I$(GOOS) -I$(GOARCH) -I$(GOOS)/$(GOARCH) -wF $(CFLAGS_$(GOARCH)) $(CFLAGS_$(GOOS))
|
|
|
|
GOFILES=\
|
|
debug.go\
|
|
error.go\
|
|
extern.go\
|
|
sig.go\
|
|
softfloat64.go\
|
|
type.go\
|
|
version.go\
|
|
version_$(GOOS).go\
|
|
version_$(GOARCH).go\
|
|
runtime_defs.go\
|
|
|
|
CLEANFILES+=version.go version_*.go
|
|
|
|
OFILES_windows=\
|
|
syscall.$O\
|
|
|
|
# 386-specific object files
|
|
OFILES_386=\
|
|
vlop.$O\
|
|
vlrt.$O\
|
|
|
|
GOARM?=6
|
|
|
|
# arm-specific object files
|
|
OFILES_arm=\
|
|
cas$(GOARM).$O\
|
|
memset.$O\
|
|
softfloat.$O\
|
|
vlop.$O\
|
|
vlrt.$O\
|
|
|
|
OFILES=\
|
|
asm.$O\
|
|
cgocall.$O\
|
|
chan.$O\
|
|
closure.$O\
|
|
float.$O\
|
|
complex.$O\
|
|
hashmap.$O\
|
|
iface.$O\
|
|
malloc.$O\
|
|
mcache.$O\
|
|
mcentral.$O\
|
|
mem.$O\
|
|
memmove.$O\
|
|
mfinal.$O\
|
|
mfixalloc.$O\
|
|
mgc0.$O\
|
|
mheap.$O\
|
|
mprof.$O\
|
|
msize.$O\
|
|
print.$O\
|
|
proc.$O\
|
|
reflect.$O\
|
|
rune.$O\
|
|
runtime.$O\
|
|
runtime1.$O\
|
|
rt0.$O\
|
|
sema.$O\
|
|
signal.$O\
|
|
sigqueue.$O\
|
|
slice.$O\
|
|
string.$O\
|
|
symtab.$O\
|
|
sys.$O\
|
|
thread.$O\
|
|
traceback.$O\
|
|
$(OFILES_$(GOARCH))\
|
|
$(OFILES_$(GOOS))\
|
|
|
|
HFILES=\
|
|
cgocall.h\
|
|
runtime.h\
|
|
hashmap.h\
|
|
malloc.h\
|
|
$(GOARCH)/asm.h\
|
|
$(GOOS)/os.h\
|
|
$(GOOS)/signals.h\
|
|
$(GOOS)/$(GOARCH)/defs.h\
|
|
|
|
GOFILES+=$(GOFILES_$(GOOS))
|
|
|
|
# For use by cgo.
|
|
INSTALLFILES=$(pkgdir)/runtime.h $(pkgdir)/cgocall.h
|
|
|
|
# special, out of the way compiler flag that means "add runtime metadata to output"
|
|
GC+= -+
|
|
|
|
include ../../Make.pkg
|
|
|
|
$(pkgdir)/%.h: %.h
|
|
@test -d $(QUOTED_GOROOT)/pkg && mkdir -p $(pkgdir)
|
|
cp $< "$@"
|
|
|
|
clean: clean-local
|
|
|
|
clean-local:
|
|
rm -f goc2c mkversion version.go */asm.h runtime.acid.* runtime_defs.go $$(ls *.goc | sed 's/goc$$/c/')
|
|
|
|
$(GOARCH)/asm.h: mkasmh.sh runtime.acid.$(GOARCH)
|
|
./mkasmh.sh >$@.x
|
|
mv -f $@.x $@
|
|
|
|
goc2c: goc2c.c
|
|
quietgcc -o $@ $<
|
|
|
|
mkversion: mkversion.c
|
|
quietgcc -o $@ -I "$(GOROOT)/include" $< "$(GOROOT)/lib/lib9.a"
|
|
|
|
version.go: mkversion
|
|
GOROOT="$(GOROOT_FINAL)" ./mkversion >version.go
|
|
|
|
version_$(GOARCH).go:
|
|
(echo 'package runtime'; echo 'const theGoarch = "$(GOARCH)"') >$@
|
|
|
|
version_$(GOOS).go:
|
|
(echo 'package runtime'; echo 'const theGoos = "$(GOOS)"') >$@
|
|
|
|
%.c: %.goc goc2c
|
|
./goc2c "`pwd`/$<" > $@.tmp
|
|
mv -f $@.tmp $@
|
|
|
|
%.$O: $(GOARCH)/%.c
|
|
$(CC) $(CFLAGS) $<
|
|
|
|
%.$O: $(GOOS)/%.c
|
|
$(CC) $(CFLAGS) $<
|
|
|
|
%.$O: $(GOOS)/$(GOARCH)/%.c
|
|
$(CC) $(CFLAGS) $<
|
|
|
|
%.$O: $(GOARCH)/%.s $(GOARCH)/asm.h
|
|
$(AS) $<
|
|
|
|
%.$O: $(GOOS)/$(GOARCH)/%.s $(GOARCH)/asm.h
|
|
$(AS) $<
|
|
|
|
# for discovering offsets inside structs when debugging
|
|
runtime.acid.$(GOARCH): runtime.h proc.c
|
|
$(CC) $(CFLAGS) -a proc.c >$@
|
|
|
|
# 386 traceback is really amd64 traceback
|
|
ifeq ($(GOARCH),386)
|
|
traceback.$O: amd64/traceback.c
|
|
$(CC) $(CFLAGS) $<
|
|
endif
|
|
|
|
runtime_defs.go: proc.c iface.c hashmap.c chan.c
|
|
CC="$(CC)" CFLAGS="$(CFLAGS)" ./mkgodefs.sh $^ > $@.x
|
|
mv -f $@.x $@
|