blob: 93053d0f4b88e84e1bb29cffd03da27d9188730e [file] [log] [blame]
# 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.
# FFI demo
include ../../../src/Make.$(GOARCH)
all: gmp.a gmp.so
gcc.o: gcc.c
gcc -fPIC -O2 -o gcc.o -c gcc.c
gmp.so: gcc.o
gcc -shared -o gmp.so gcc.o -L$(GOROOT)/pkg/$(GOOS)_$(GOARCH) -lcgo -lgmp
gmp.a: 6c.6 go.6
gopack grc gmp.a 6c.6 go.6
# from pkg/runtime/Makefile: TODO(rsc): how to deal with this?
# Set SIZE to 32 or 64.
SIZE_386=32
SIZE_amd64=64
SIZE_arm=32
SIZE=$(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 $(CFLAGS_$(SIZE)) $(CFLAGS_$(GOARCH))
6c.6: 6c.c
6c -FVw $(CFLAGS) -I$(GOROOT)/src/pkg/runtime 6c.c
go.6: go.go
6g go.go
PKG=$(GOROOT)/pkg/$(GOOS)_$(GOARCH)
install: $(PKG)/gmp.so $(PKG)/gmp.a
$(PKG)/gmp.so: gmp.so
cp gmp.so $@
$(PKG)/gmp.a: gmp.a
cp gmp.a $@
clean:
rm -f *.6 *.o *.so *.a