diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-02-14 13:23:51 +0100 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-02-14 13:23:51 +0100 |
commit | 758ff64c69e34965f8af5b2d6ffd65e8d7ab2150 (patch) | |
tree | 6d6b34f8c678862fe9b56c945a7b63f68502c245 /src/Make.pkg | |
parent | 3e45412327a2654a77944249962b3652e6142299 (diff) | |
download | golang-upstream/2011-02-01.1.tar.gz |
Imported Upstream version 2011-02-01.1upstream/2011-02-01.1
Diffstat (limited to 'src/Make.pkg')
-rw-r--r-- | src/Make.pkg | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/Make.pkg b/src/Make.pkg index ec7d5722e..0ffab7294 100644 --- a/src/Make.pkg +++ b/src/Make.pkg @@ -48,7 +48,7 @@ coverage: 6cov -g $(shell pwd) $O.out | grep -v '_test\.go:' CLEANFILES+=*.cgo1.go *.cgo2.c _cgo_defun.c _cgo_gotypes.go _cgo_export.* -CLEANFILES+=_cgo_.c _cgo_import.c _cgo_main.c +CLEANFILES+=_cgo_.c _cgo_import.c _cgo_main.c _cgo_flags _cgo_run CLEANFILES+=*.so _obj _test _testmain.go *.exe test: @@ -112,11 +112,21 @@ dir: # ifdef CGOFILES -_cgo_defun.c: $(CGOFILES) +_cgo_run: $(CGOFILES) + @touch _cgo_run CGOPKGPATH=$(dir) cgo -- $(CGO_CFLAGS) $(CGOFILES) +# _CGO_CFLAGS and _CGO_LDFLAGS are defined via the evaluation of _cgo_flags. +# The include happens before the commands in the recipe run, +# so it cannot be done in the same recipe that runs cgo. +_cgo_flags: _cgo_run + $(eval include _cgo_flags) + +# Include any previous flags in case cgo files are up to date. +-include _cgo_flags + # Ugly but necessary - cgo writes these files too. -_cgo_gotypes.go _cgo_export.c _cgo_export.h _cgo_main.c: _cgo_defun.c +_cgo_gotypes.go _cgo_export.c _cgo_export.h _cgo_main.c _cgo_defun.c: _cgo_flags @true %.cgo1.go %.cgo2.c: _cgo_defun.c @@ -125,7 +135,7 @@ endif # Compile rules for gcc source files. %.o: %.c - $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $*.c + $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $(_CGO_CFLAGS) $*.c # To find out which symbols are needed from external libraries # and which libraries are needed, we build a simple a.out that @@ -136,10 +146,10 @@ endif # by Go code. That's crosscall2 and any exported symbols. _cgo_main.o: _cgo_main.c - $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ -c $(CGO_CFLAGS) _cgo_main.c + $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $(_CGO_CFLAGS) _cgo_main.c _cgo1_.o: _cgo_main.o $(CGO_OFILES) - $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ $^ $(CGO_LDFLAGS) + $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ $^ $(CGO_LDFLAGS) $(_CGO_LDFLAGS) _cgo_import.c: _cgo1_.o cgo -dynimport _cgo1_.o >_$@ && mv -f _$@ $@ |