| # 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. |
| |
| # Set SIZE to 32 or 64. |
| SIZE_386=32 |
| SIZE_amd64=64 |
| SIZE=$(SIZE_$(GOARCH)) |
| |
| # Setup CFLAGS. Add -D_64BIT on 64-bit platforms (sorry). |
| CFLAGS_64=-D_64BIT |
| CFLAGS=-I$(GOOS) -I$(GOOS)/$(GOARCH) -wF $(CFLAGS_$(SIZE)) |
| |
| # Set O to right letter. |
| O_386=8 |
| O_amd64=6 |
| O=$(O_$(GOARCH)) |
| |
| # Tools |
| CC=$(O)c |
| AS=$(O)a |
| AR=6ar # sic |
| |
| LIB=lib.a |
| |
| # 386-specific object files |
| OFILES_386=\ |
| vlop.$O\ |
| vlrt.$O\ |
| |
| OFILES=\ |
| array.$O\ |
| asm.$O\ |
| chan.$O\ |
| closure.$O\ |
| float.$O\ |
| float_go.$O\ |
| hashmap.$O\ |
| iface.$O\ |
| malloc.$O\ |
| malloc_go.$O\ |
| mcache.$O\ |
| mcentral.$O\ |
| mem.$O\ |
| mfixalloc.$O\ |
| mgc0.$O\ |
| mheap.$O\ |
| mheapmap$(SIZE).$O\ |
| msize.$O\ |
| print.$O\ |
| proc.$O\ |
| rune.$O\ |
| runtime.$O\ |
| rt0.$O\ |
| sema.$O\ |
| sema_go.$O\ |
| signal.$O\ |
| string.$O\ |
| symtab.$O\ |
| sys.$O\ |
| thread.$O\ |
| traceback.$O\ |
| $(OFILES_$(GOARCH))\ |
| |
| HFILES=\ |
| runtime.h\ |
| hashmap.h\ |
| malloc.h\ |
| $(GOOS)/os.h\ |
| $(GOOS)/$(GOARCH)/defs.h\ |
| |
| install: $(LIB) runtime.acid |
| cp $(LIB) $(GOROOT)/lib/lib_$(GOARCH)_$(GOOS).a |
| cp runtime.acid $(GOROOT)/acid/runtime.acid |
| |
| $(LIB): $(OFILES) |
| $(AR) rc $(LIB) $(OFILES) |
| |
| $(OFILES): $(HFILES) |
| |
| nuke: |
| rm -f *.[68] *.a $(GOROOT)/lib/$(LIB) |
| |
| clean: |
| rm -f *.[68] *.a runtime.acid cgo2c |
| |
| %.$O: %.c |
| $(CC) $(CFLAGS) $< |
| |
| %.$O: $(GOARCH)/%.c |
| $(CC) $(CFLAGS) $< |
| |
| %.$O: $(GOOS)/%.c |
| $(CC) $(CFLAGS) $< |
| |
| %.$O: $(GOOS)/$(GOARCH)/%.c |
| $(CC) $(CFLAGS) $< |
| |
| %.$O: $(GOARCH)/%.s |
| $(AS) $< |
| |
| %.$O: $(GOOS)/$(GOARCH)/%.s |
| $(AS) $< |
| |
| cgo2c: cgo2c.c |
| quietgcc -o $@ $< |
| |
| %.c: %.cgo cgo2c |
| ./cgo2c $< > $@.tmp |
| mv -f $@.tmp $@ |
| |
| runtime.acid: runtime.h proc.c |
| $(CC) -a proc.c >runtime.acid |
| |