| # 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. |
| |
| # ugly hack to deal with whitespaces in $GOROOT |
| nullstring := |
| space := $(nullstring) # a space at the end |
| QUOTED_GOROOT=$(subst $(space),\ ,$(GOROOT)) |
| |
| all: libcgo.so |
| |
| install: $(QUOTED_GOROOT)/pkg/$(GOOS)_$(GOARCH)/libcgo.so |
| |
| OFILES=\ |
| $(GOOS)_$(GOARCH).o\ |
| $(GOARCH).o\ |
| util.o\ |
| |
| CFLAGS_386=-m32 |
| CFLAGS_amd64=-m64 |
| |
| LDFLAGS_linux=-shared -lpthread -lm |
| LDFLAGS_darwin=-dynamiclib -Wl,-undefined,dynamic_lookup /usr/lib/libpthread.dylib |
| LDFLAGS_freebsd=-pthread -shared -lm |
| |
| %.o: %.c |
| gcc $(CFLAGS_$(GOARCH)) -O2 -fPIC -o $@ -c $*.c |
| |
| %.o: %.S |
| gcc $(CFLAGS_$(GOARCH)) -O2 -fPIC -o $@ -c $*.S |
| |
| libcgo.so: $(OFILES) |
| gcc $(CFLAGS_$(GOARCH)) -o libcgo.so $(OFILES) $(LDFLAGS_$(GOOS)) |
| |
| $(QUOTED_GOROOT)/pkg/$(GOOS)_$(GOARCH)/libcgo.so: libcgo.so |
| cp libcgo.so $(QUOTED_GOROOT)/pkg/$(GOOS)_$(GOARCH) |
| |
| clean: |
| rm -f *.o *.so |
| |