summaryrefslogtreecommitdiff
path: root/src/Make.pkg
diff options
context:
space:
mode:
Diffstat (limited to 'src/Make.pkg')
-rw-r--r--src/Make.pkg249
1 files changed, 0 insertions, 249 deletions
diff --git a/src/Make.pkg b/src/Make.pkg
deleted file mode 100644
index fc80cf6e6..000000000
--- a/src/Make.pkg
+++ /dev/null
@@ -1,249 +0,0 @@
-# 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.
-
-all: package
-package: _obj/$(TARG).a
-testpackage: _test/$(TARG).a
-
-include $(QUOTED_GOROOT)/src/Make.common
-
-# The quietgcc wrapper is for our own source code
-# while building the libraries, not arbitrary source code
-# as encountered by cgo.
-ifeq ($(HOST_CC),quietgcc)
-HOST_CC:=gcc
-endif
-ifeq ($(HOST_LD),quietgcc)
-HOST_LD:=gcc
-endif
-
-# GNU Make 3.80 has a bug in lastword
-# elem=$(lastword $(subst /, ,$(TARG)))
-TARG_words=$(subst /, ,$(TARG))
-elem=$(word $(words $(TARG_words)),$(TARG_words))
-
-ifeq ($(elem),$(TARG))
-dir=
-else
-dir=$(patsubst %/$(elem),%,$(TARG))
-endif
-
-pkgdir=$(QUOTED_GOROOT)/pkg/$(GOOS)_$(GOARCH)
-
-ifeq ($(TARGDIR),)
-TARGDIR:=$(pkgdir)
-endif
-
-INSTALLFILES+=$(TARGDIR)/$(TARG).a
-
-# The rest of the cgo rules are below, but these variable updates
-# must be done here so they apply to the main rules.
-ifdef CGOFILES
-GOFILES+=$(patsubst %.go,_obj/%.cgo1.go,$(CGOFILES)) _obj/_cgo_gotypes.go
-CGO_OFILES+=$(patsubst %.go,%.cgo2.o,$(CGOFILES)) _cgo_export.o
-OFILES+=_cgo_defun.$O _cgo_import.$O $(CGO_OFILES)
-endif
-
-ifdef SWIGFILES
-GOFILES+=$(patsubst %.swig,_obj/%.go,$(patsubst %.swigcxx,%.swig,$(SWIGFILES)))
-OFILES+=$(patsubst %.swig,_obj/%_gc.$O,$(patsubst %.swigcxx,%.swig,$(SWIGFILES)))
-SWIG_PREFIX=$(subst /,-,$(TARG))
-SWIG_SOS+=$(patsubst %.swig,_obj/$(SWIG_PREFIX)-%.so,$(patsubst %.swigcxx,%.swig,$(SWIGFILES)))
-INSTALLFILES+=$(patsubst %.swig,$(TARGDIR)/swig/$(SWIG_PREFIX)-%.so,$(patsubst %.swigcxx,%.swig,$(SWIGFILES)))
-endif
-
-PREREQ+=$(patsubst %,%.make,$(DEPS))
-
-coverage:
- gotest
- 6cov -g $(shell pwd) $O.out | grep -v '_test\.go:'
-
-CLEANFILES+=*.so _obj _test _testmain.go *.exe _cgo* test.out build.out
-
-test:
- gotest
-
-testshort:
- gotest -test.short -test.timeout=120
-
-bench:
- gotest -test.bench=. -test.run="Do not run tests"
-
-nuke: clean
- rm -f $(TARGDIR)/$(TARG).a
-
-testpackage-clean:
- rm -f _test/$(TARG).a
-
-install: $(INSTALLFILES)
-
-$(TARGDIR)/$(TARG).a: _obj/$(TARG).a
- @mkdir -p $(TARGDIR)/$(dir)
- cp _obj/$(TARG).a "$@"
-
-_go_.$O: $(GOFILES) $(PREREQ)
- $(GC) $(GCIMPORTS) -o $@ $(GOFILES)
-
-_gotest_.$O: $(GOFILES) $(GOTESTFILES) $(PREREQ)
- $(GC) $(GCIMPORTS) -o $@ $(GOFILES) $(GOTESTFILES)
-
-_obj/$(TARG).a: _go_.$O $(OFILES)
- @mkdir -p _obj/$(dir)
- rm -f _obj/$(TARG).a
- gopack grc $@ _go_.$O $(OFILES)
-
-_test/$(TARG).a: _gotest_.$O $(OFILES)
- @mkdir -p _test/$(dir)
- rm -f _test/$(TARG).a
- gopack grc $@ _gotest_.$O $(OFILES)
-
-importpath:
- @echo $(TARG)
-
-dir:
- @echo $(dir)
-
-# To use cgo in a Go package, add a line
-#
-# CGOFILES=x.go y.go
-#
-# to the main Makefile. This signals that cgo should process x.go
-# and y.go when building the package.
-# There are three optional variables to set, CGO_CFLAGS, CGO_LDFLAGS,
-# and CGO_DEPS, which specify compiler flags, linker flags, and linker
-# dependencies to use when compiling (using gcc) the C support for
-# x.go and y.go.
-
-# Cgo translates each x.go file listed in $(CGOFILES) into a basic
-# translation of x.go, called _obj/x.cgo1.go. Additionally, three other
-# files are created:
-#
-# _obj/_cgo_gotypes.go - declarations needed for all .go files in the package; imports "unsafe"
-# _obj/_cgo_defun.c - C trampoline code to be compiled with 6c and linked into the package
-# _obj/x.cgo2.c - C implementations compiled with gcc to create a dynamic library
-#
-
-ifdef CGOFILES
-_obj/_cgo_run: $(CGOFILES)
- @mkdir -p _obj
- CGOPKGPATH=$(dir) cgo -- $(CGO_CFLAGS) $(CGOFILES)
- touch _obj/_cgo_run
-
-# _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.
-_obj/_load_cgo_flags: _obj/_cgo_run
- $(eval include _obj/_cgo_flags)
-
-# Include any previous flags in case cgo files are up to date.
--include _obj/_cgo_flags
-
-# Ugly but necessary - cgo writes these files too.
-_obj/_cgo_gotypes.go _obj/_cgo_export.c _obj/_cgo_export.h _obj/_cgo_main.c _obj/_cgo_defun.c: _obj/_load_cgo_flags
- @true
-
-_obj/%.cgo1.go _obj/%.cgo2.c: _obj/_cgo_defun.c
- @true
-endif
-
-# Compile rules for gcc source files.
-%.o: %.c
- $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $(_CGO_CFLAGS) $*.c
-
-%.o: _obj/%.c
- $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -I . -g -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $(_CGO_CFLAGS) $^
-
-# To find out which symbols are needed from external libraries
-# and which libraries are needed, we build a simple a.out that
-# links all the objects we just created and then use cgo -dynimport
-# to inspect it. That is, we make gcc tell us which dynamic symbols
-# and libraries are involved, instead of duplicating gcc's logic ourselves.
-# After main we have to define all the symbols that will be provided
-# by Go code. That's crosscall2 and any exported symbols.
-
-_cgo1_.o: _cgo_main.o $(CGO_OFILES)
- $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -g -fPIC -O2 -o $@ $^ $(CGO_LDFLAGS) $(_CGO_LDFLAGS)
-
-_obj/_cgo_import.c: _cgo1_.o
- @mkdir -p _obj
- cgo -dynimport _cgo1_.o >$@_ && mv -f $@_ $@
-
-# The rules above added x.cgo1.go and _cgo_gotypes.go to $(GOFILES),
-# added _cgo_defun.$O to $OFILES, and added the installed copy of
-# package_x.so (built from x.cgo2.c) to $(INSTALLFILES).
-
-# Have to run gcc with the right size argument on hybrid 32/64 machines.
-_CGO_CFLAGS_386=-m32
-_CGO_CFLAGS_amd64=-m64
-_CGO_LDFLAGS_freebsd=-shared -lpthread -lm
-_CGO_LDFLAGS_linux=-shared -lpthread -lm
-_CGO_LDFLAGS_darwin=-dynamiclib -Wl,-undefined,dynamic_lookup
-_CGO_LDFLAGS_windows=-shared -lm -mthreads
-
-# Have to compile the runtime header.
-RUNTIME_CFLAGS=-I$(pkgdir)
-
-# Compile _cgo_defun.c with 6c; needs access to the runtime headers.
-_cgo_defun.$O: _obj/_cgo_defun.c
- $(CC) $(CFLAGS) $(RUNTIME_CFLAGS) -I . -o "$@" _obj/_cgo_defun.c
-
-# To use swig in a Go package, add a line
-#
-# SWIGFILES=x.swig
-#
-# to the main Makefile. This signals that SWIG should process the
-#.swig file when building the package.
-#
-# To wrap C code, use an extension of .swig. To wrap C++ code, use an
-# extension of .swigcxx.
-#
-# SWIGFILES=myclib.swig mycxxlib.swigcxx
-
-ifdef SWIGFILES
-_obj/%._swig_run _obj/%.go _obj/%_gc.c _obj/%_wrap.c: %.swig
- @mkdir -p _obj
- swig -go -module $* -soname $(SWIG_PREFIX)-$*.so -o _obj/$*_wrap.c -outdir _obj $<
-
-_obj/%._swig_run _obj/%.go _obj/%_gc.c _obj/%_wrap.cxx: %.swigcxx
- @mkdir -p _obj
- swig -go -c++ -module $* -soname $(SWIG_PREFIX)-$*.so -o _obj/$*_wrap.cxx -outdir _obj $<
-
-_obj/%_gc.$O: _obj/%_gc.c
- $(CC) $(CFLAGS) -I . -I$(pkgdir) -o "$@" _obj/$*_gc.c
-
-_obj/%_wrap.o: _obj/%_wrap.c
- $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -I . -g -fPIC -O2 -o $@ -c $^ $(SWIG_CFLAGS)
-
-HOST_CXX=g++
-
-_obj/%_wrapcxx.o: _obj/%_wrap.cxx
- $(HOST_CXX) $(_CGO_CFLAGS_$(GOARCH)) -I . -g -fPIC -O2 -o $@ -c $^ $(SWIG_CXXFLAGS)
-
-_obj/$(SWIG_PREFIX)-%.so: _obj/%_wrap.o
- $(HOST_CC) $(_CGO_CFLAGS_$(GOARCH)) -o $@ $^ $(SWIG_LDFLAGS) $(_CGO_LDFLAGS_$(GOOS)) $(_SWIG_LDFLAGS_$(GOOS))
-
-_obj/$(SWIG_PREFIX)-%.so: _obj/%_wrapcxx.o
- $(HOST_CXX) $(_CGO_CFLAGS_$(GOARCH)) -o $@ $^ $(SWIG_LDFLAGS) $(_CGO_LDFLAGS_$(GOOS)) $(_SWIG_LDFLAGS_$(GOOS))
-
-$(TARGDIR)/swig/$(SWIG_PREFIX)-%.so: _obj/$(SWIG_PREFIX)-%.so
- @mkdir -p $(TARGDIR)/swig
- cp $< "$@"
-
-all: $(SWIG_SOS)
-
-SWIG_RPATH=-r $(TARGDIR)/swig
-
-endif
-
-# Generic build rules.
-# These come last so that the rules above can override them
-# for more specific file names.
-%.$O: %.c $(HFILES)
- $(CC) $(CFLAGS) -o "$@" $*.c
-
-%.$O: _obj/%.c $(HFILES)
- $(CC) $(CFLAGS) -I . -o "$@" _obj/$*.c
-
-%.$O: %.s
- $(AS) $*.s