re PR target/80090 (Incorrect assembler - output_addr_const may generate visibility...
[gcc.git] / libgomp / Makefile.am
index 3786bee4c134b0f88a98d5d51770e258703590cf..17af7d71d7de1a83331c7672bd7fa8a48e44a2bf 100644 (file)
@@ -4,12 +4,13 @@ ACLOCAL_AMFLAGS = -I .. -I ../config
 SUBDIRS = testsuite
 
 ## May be used by toolexeclibdir.
-gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
+gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
 
 config_path = @config_path@
-search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir)
+search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) \
+             $(top_srcdir)/../include
 
-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/finclude
+fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude
 libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
 
 vpath % $(strip $(search_path))
@@ -22,24 +23,59 @@ toolexeclib_LTLIBRARIES = libgomp.la
 nodist_toolexeclib_HEADERS = libgomp.spec
 
 if LIBGOMP_BUILD_VERSIONED_SHLIB
-libgomp_version_script = -Wl,--version-script,$(top_srcdir)/libgomp.map
+# -Wc is only a libtool option.
+comma = ,
+PREPROCESS = $(subst -Wc$(comma), , $(COMPILE)) -E
+
+libgomp.ver: $(top_srcdir)/libgomp.map
+       $(EGREP) -v '#(#| |$$)' $< | \
+         $(PREPROCESS) -P -include config.h - > $@ || (rm -f $@ ; exit 1)
+
+if LIBGOMP_BUILD_VERSIONED_SHLIB_GNU
+libgomp_version_script = -Wl,--version-script,libgomp.ver
+libgomp_version_dep = libgomp.ver
+endif
+if LIBGOMP_BUILD_VERSIONED_SHLIB_SUN
+libgomp_version_script = -Wl,-M,libgomp.ver-sun
+libgomp_version_dep = libgomp.ver-sun
+libgomp.ver-sun : libgomp.ver \
+               $(top_srcdir)/../contrib/make_sunver.pl \
+               $(libgomp_la_OBJECTS) $(libgomp_la_LIBADD)
+       perl $(top_srcdir)/../contrib/make_sunver.pl \
+         libgomp.ver \
+         $(libgomp_la_OBJECTS:%.lo=.libs/%.o) \
+        `echo $(libgomp_la_LIBADD) | \
+           sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
+        > $@ || (rm -f $@ ; exit 1)
+endif
 else
 libgomp_version_script =
+libgomp_version_dep =
 endif
 libgomp_version_info = -version-info $(libtool_VERSION)
 libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script) \
-        -no-undefined -bindir "$(bindir)"
+        $(lt_host_flags)
+libgomp_la_DEPENDENCIES = $(libgomp_version_dep)
 libgomp_la_LINK = $(LINK) $(libgomp_la_LDFLAGS)
 
-libgomp_la_SOURCES = alloc.c barrier.c critical.c env.c error.c iter.c \
-       iter_ull.c loop.c loop_ull.c ordered.c parallel.c sections.c single.c \
-       task.c team.c work.c lock.c mutex.c proc.c sem.c bar.c ptrlock.c \
-       time.c fortran.c affinity.c
+libgomp_la_SOURCES = alloc.c atomic.c barrier.c critical.c env.c error.c \
+       icv.c icv-device.c iter.c iter_ull.c loop.c loop_ull.c ordered.c \
+       parallel.c sections.c single.c task.c team.c work.c lock.c mutex.c \
+       proc.c sem.c bar.c ptrlock.c time.c fortran.c affinity.c target.c \
+       splay-tree.c libgomp-plugin.c oacc-parallel.c oacc-host.c oacc-init.c \
+       oacc-mem.c oacc-async.c oacc-plugin.c oacc-cuda.c priority_queue.c
+
+include $(top_srcdir)/plugin/Makefrag.am
+
+if USE_FORTRAN
+libgomp_la_SOURCES += openacc.f90
+endif
 
 nodist_noinst_HEADERS = libgomp_f.h
-nodist_libsubinclude_HEADERS = omp.h
+nodist_libsubinclude_HEADERS = omp.h openacc.h
 if USE_FORTRAN
-nodist_finclude_HEADERS = omp_lib.h omp_lib.f90 omp_lib.mod omp_lib_kinds.mod
+nodist_finclude_HEADERS = omp_lib.h omp_lib.f90 omp_lib.mod omp_lib_kinds.mod \
+       openacc_lib.h openacc.f90 openacc.mod openacc_kinds.mod
 endif
 
 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
@@ -49,8 +85,12 @@ LINK = $(LIBTOOL) --tag CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 
 omp_lib_kinds.mod: omp_lib.mod
        :
-omp_lib.mod: omp_lib.f90
-       $(FC) $(FCFLAGS) -fsyntax-only omp_lib.f90
+openacc_kinds.mod: openacc.mod
+       :
+openacc.mod: openacc.lo
+       :
+%.mod: %.f90
+       $(FC) $(FCFLAGS) -fsyntax-only $<
 fortran.lo: libgomp_f.h
 fortran.o: libgomp_f.h
 env.lo: libgomp_f.h