# 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_mingw=-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

