diff options
Diffstat (limited to 'src/pkg/runtime/Makefile')
-rw-r--r-- | src/pkg/runtime/Makefile | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/src/pkg/runtime/Makefile b/src/pkg/runtime/Makefile new file mode 100644 index 000000000..64bd2b771 --- /dev/null +++ b/src/pkg/runtime/Makefile @@ -0,0 +1,168 @@ +# 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)) + +CFLAGS_windows=-D__WINDOWS__ +CFLAGS=-I$(GOOS) -I$(GOARCH) -I$(GOOS)/$(GOARCH) -wF $(CFLAGS_$(GOARCH)) $(CFLAGS_$(GOOS)) + +GOFILES=\ + debug.go\ + error.go\ + extern.go\ + mem.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\ + +# arm-specific object files +OFILES_arm=\ + memset.$O\ + softfloat.$O\ + vlop.$O\ + vlrt.$O\ + +OFILES=\ + asm.$O\ + atomic.$O\ + cgocall.$O\ + chan.$O\ + closure.$O\ + cpuprof.$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\ + 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\ + stack.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 $@ -I "$(GOROOT)/include" $< "$(GOROOT)/lib/lib9.a" + +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 $(HFILES) + $(CC) $(CFLAGS) $< + +%.$O: $(GOOS)/%.c $(HFILES) + $(CC) $(CFLAGS) $< + +%.$O: $(GOOS)/$(GOARCH)/%.c $(HFILES) + $(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 $@ |