| # 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 | |
| LDFLAGS_windows=-shared -lm -mthreads | |
| %.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 | |