OSDN Git Service

Simplify libgo Makefile conditionals.
[pf3gnuchains/gcc-fork.git] / libgo / Makefile.am
index d73af0d..f7a0da0 100644 (file)
@@ -312,6 +312,7 @@ runtime_files = \
        runtime/go-breakpoint.c \
        runtime/go-caller.c \
        runtime/go-can-convert-interface.c \
+       runtime/go-cgo.c \
        runtime/go-chan-cap.c \
        runtime/go-chan-len.c \
        runtime/go-check-interface.c \
@@ -319,6 +320,7 @@ runtime_files = \
        runtime/go-closed.c \
        runtime/go-construct-map.c \
        runtime/go-convert-interface.c \
+       runtime/go-copy.c \
        runtime/go-defer.c \
        runtime/go-deferred-recover.c \
        runtime/go-eface-compare.c \
@@ -680,38 +682,6 @@ go_runtime_files = \
        go/runtime/type.go \
        version.go
 
-if LIBGO_IS_386
-GOARCH = 386
-else
-if LIBGO_IS_X86_64
-GOARCH = amd64
-else
-if LIBGO_IS_ARM
-GOARCH = arm
-else
-GOARCH = unknown
-endif
-endif
-endif
-
-if LIBGO_IS_LINUX
-GOOS = linux
-else
-if LIBGO_IS_DARWIN
-GOOS = darwin
-else
-if LIBGO_IS_FREEBSD
-GOOS = freebsd
-else
-if LIBGO_IS_RTEMS
-GOOS = rtems
-else
-GOOS = unknown
-endif
-endif
-endif
-endif
-
 version.go: s-version; @true
 s-version: Makefile
        rm -f version.go.tmp
@@ -928,52 +898,10 @@ go_debug_pe_files = \
        go/debug/pe/file.go \
        go/debug/pe/pe.go
 
-if LIBGO_IS_LINUX
-proc_file = go/debug/proc/proc_linux.go
-if LIBGO_IS_386
-regs_file = go/debug/proc/regs_linux_386.go
-else
-if LIBGO_IS_X86_64
-regs_file = go/debug/proc/regs_linux_amd64.go
-else
-regs_file =
-endif
-endif
-else
-if LIBGO_IS_DARWIN
-proc_file = go/debug/proc/proc_darwin.go
-if LIBGO_IS_386
-regs_file = go/debug/proc/regs_darwin_386.go
-else
-if LIBGO_IS_X86_64
-regs_file = go/debug/proc/regs_darwin_amd64.go
-else
-regs_file =
-endif
-endif
-else
-if LIBGO_IS_FREEBSD
-proc_file = go/debug/proc/proc_freebsd.go
-if LIBGO_IS_386
-regs_file = go/debug/proc/regs_freebsd_386.go
-else
-if LIBGO_IS_X86_64
-regs_file = go/debug/proc/regs_freebsd_amd64.go
-else
-regs_file =
-endif
-endif
-else
-proc_file =
-regs_file =
-endif
-endif
-endif
-
 go_debug_proc_files = \
        go/debug/proc/proc.go \
-       $(proc_file) \
-       $(regs_file)
+       go/debug/proc/proc_$(GOOS).go \
+       go/debug/proc/regs_$(GOOS)_$(GOARCH).go
 
 go_encoding_ascii85_files = \
        go/encoding/ascii85/ascii85.go
@@ -1091,26 +1019,10 @@ go_testing_quick_files = \
 go_testing_script_files = \
        go/testing/script/script.go
 
-if LIBGO_IS_LINUX
-syscall_os_file = syscalls/syscall_linux.go
-if LIBGO_IS_386
-syscall_arch_file = syscalls/syscall_linux_386.go
-else
-if LIBGO_IS_X86_64
-syscall_arch_file = syscalls/syscall_linux_amd64.go
-else
-syscall_arch_file =
-endif
-endif
-else
-syscall_os_file =
-syscall_arch_file =
-endif
-
 if LIBGO_IS_RTEMS
 syscall_exec_os_file = syscalls/exec_stubs.go
 syscall_socket_os_file = syscalls/socket_bsd.go
-syscall_socket_epoll_file=
+syscall_socket_epoll_file =
 syscall_sysfile_os_file = syscalls/sysfile_rtems.go
 syscall_syscall_file = syscalls/syscall_stubs.go
 syscall_errstr_file = syscalls/errstr_rtems.go
@@ -1129,6 +1041,14 @@ syscall_errstr_decl_file = syscalls/errstr_decl.go
 endif
 endif
 
+syscall_arch.go: s-syscall_arch; @true
+s-syscall_arch: Makefile
+       rm -f syscall_arch.go.tmp
+       echo "package syscall" > syscall_arch.go.tmp
+       echo 'const ARCH = "'$(GOARCH)'"' >> syscall_arch.go.tmp
+       $(SHELL) $(srcdir)/../move-if-change syscall_arch.go.tmp syscall_arch.go
+       $(STAMP) $@
+
 go_syscall_files = \
        $(syscall_errstr_file) \
        $(syscall_errstr_decl_file) \
@@ -1140,11 +1060,12 @@ go_syscall_files = \
        $(syscall_syscall_file) \
        syscalls/syscall_unix.go \
        syscalls/stringbyte.go \
-       $(syscall_os_file) \
-       $(syscall_arch_file) \
+       syscalls/syscall_$(GOOS).go \
+       syscalls/syscall_$(GOOS)_$(GOARCH).go \
        syscalls/sysfile_posix.go \
        $(syscall_sysfile_os_file) \
-       sysinfo.go
+       sysinfo.go \
+       syscall_arch.go
 go_syscall_c_files = \
        syscalls/errno.c
 
@@ -1267,7 +1188,7 @@ libgo_go_objs = \
 
 libgo_la_SOURCES = $(runtime_files)
 
-libgo_la_LIBADD = $(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS)
+libgo_la_LIBADD = $(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS)
 
 libgobegin_a_SOURCES = \
        runtime/go-main.c
@@ -1283,7 +1204,7 @@ LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \
 
 GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
        $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) \
-       $(PTHREAD_LIBS) -o $@
+       $(PTHREAD_LIBS) $(MATH_LIBS) -o $@
 
 # Build a package.
 BUILDARCHIVE = \
@@ -1291,7 +1212,7 @@ BUILDARCHIVE = \
        test -d $(@D) || $(MKDIR_P) $(@D); \
        rm -f $@; \
        files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
-       if $(LTGOCOMPILE) -c -fgo-prefix="libgo_$(@D)" -o $@.$(OBJEXT) $$files; then \
+       if $(LTGOCOMPILE) -I . -c -fgo-prefix="libgo_$(@D)" -o $@.$(OBJEXT) $$files; then \
          $(AR) rc $@ $@.$(OBJEXT); \
        else exit 1; fi
 
@@ -1314,13 +1235,15 @@ CHECK = \
        MAKE="$(MAKE)"; \
        export MAKE; \
        rm -f $@-log; \
-       echo -n "$(@D) " >$@-log 2>&1; \
        prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
        test "$${prefix}" != "." || prefix="$(@D)"; \
-       $(srcdir)/testsuite/gotest --dejagnu=$(use_dejagnu) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; \
-       x=$$?; \
-       cat $@-log; \
-       exit $$x
+       if $(srcdir)/testsuite/gotest --dejagnu=$(use_dejagnu) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; then \
+         echo "PASS: $(@D)"; \
+       else \
+         echo "FAIL: $(@D)"; \
+         cat $@-log; \
+         exit 1; \
+       fi
 
 # Build all packages before checking any.
 CHECK_DEPS = libgo.la libgobegin.a \
@@ -1365,7 +1288,8 @@ bufio/check: $(CHECK_DEPS)
        $(CHECK)
 .PHONY: bufio/check
 
-bytes/libbytes.a: $(go_bytes_files) $(go_bytes_c_files) io.gox os.gox utf8.gox
+bytes/libbytes.a: $(go_bytes_files) $(go_bytes_c_files) io.gox os.gox \
+               unicode.gox utf8.gox
        test -d bytes || $(MKDIR_P) bytes
        $(LTGOCOMPILE) -c -o bytes/bytes.$(OBJEXT) -fgo-prefix=libgo_bytes $(srcdir)/go/bytes/buffer.go $(srcdir)/go/bytes/bytes.go $(srcdir)/go/bytes/bytes_decl.go
        $(LTCOMPILE) -c -o bytes/index.$(OBJEXT) $(srcdir)/go/bytes/indexbyte.c