Skip to content

Commit ba8256b

Browse files
committed
bindings: fix up makefile for c interfaces
to heed the --enable-abi-standard config option Signed-off-by: Howard Pritchard <howardp@lanl.gov>
1 parent 9650e80 commit ba8256b

File tree

2 files changed

+98
-58
lines changed

2 files changed

+98
-58
lines changed

ompi/mpi/c/Makefile.am

Lines changed: 4 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,8 @@
3838
include $(top_srcdir)/Makefile.ompi-rules
3939

4040
noinst_LTLIBRARIES = libmpi_c.la libmpi_c_profile.la
41-
if OMPI_STANDARD_ABI
42-
noinst_LTLIBRARIES += libmpi_c_abi.la libmpi_c_abi_profile.la
43-
endif
4441
if BUILD_MPI_BINDINGS_LAYER
45-
noinst_LTLIBRARIES += libmpi_c_noprofile.la libmpi_c_abi_noprofile.la
42+
noinst_LTLIBRARIES += libmpi_c_noprofile.la
4643
endif
4744

4845
headers = bindings.h
@@ -486,7 +483,6 @@ prototype_sources = \
486483
wtime.c.in
487484

488485
EXTRA_DIST = $(prototype_sources)
489-
BUILT_SOURCES = abi.h standard_abi/mpi.h
490486

491487
# attr_fn.c contains attribute manipulation functions which do not
492488
# profiling implications, and so are always built.
@@ -504,25 +500,12 @@ if BUILD_MPI_BINDINGS_LAYER
504500
libmpi_c_la_LIBADD += libmpi_c_noprofile.la
505501
endif
506502

507-
libmpi_c_abi_la_SOURCES = \
508-
attr_fn.c \
509-
abi_details.c \
510-
abi_supported.c \
511-
abi_version.c
512-
513-
libmpi_c_abi_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES
514-
libmpi_c_abi_la_LIBADD = libmpi_c_abi_profile.la
515-
if BUILD_MPI_BINDINGS_LAYER
516-
libmpi_c_abi_la_LIBADD += libmpi_c_abi_noprofile.la
517-
endif
518-
519503
#
520504
# List of all C files that have profile versions (*_generated.c files were
521505
# generated from prototype_sources above).
522506
#
523507
#
524508
interface_profile_sources = $(prototype_sources:.c.in=_ompi_generated.c)
525-
abi_interface_profile_sources = $(prototype_sources:.c.in=_abi_generated.c)
526509

527510

528511
# Conditionally install the header files
@@ -564,15 +547,6 @@ libmpi_c_profile_la_CPPFLAGS = -DOMPI_BUILD_MPI_PROFILING=1
564547
libmpi_c_noprofile_la_SOURCES = $(interface_profile_sources) $(extra_interface_profile_sources) $(deprecated_interface_profile_sources)
565548
libmpi_c_noprofile_la_CPPFLAGS = -DOMPI_BUILD_MPI_PROFILING=0
566549

567-
libmpi_c_abi_profile_la_SOURCES = $(abi_interface_profile_sources)
568-
libmpi_c_abi_profile_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES -DOMPI_BUILD_MPI_PROFILING=1
569-
570-
libmpi_c_abi_noprofile_la_SOURCES = $(abi_interface_profile_sources)
571-
libmpi_c_abi_noprofile_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES -DOMPI_BUILD_MPI_PROFILING=0
572-
573-
nobase_include_HEADERS = standard_abi/mpi.h
574-
575-
# ABI generation rules
576550
if OMPI_GENERATE_BINDINGS
577551
%_ompi_generated.c: %.c.in
578552
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
@@ -583,36 +557,8 @@ if OMPI_GENERATE_BINDINGS
583557
source \
584558
ompi \
585559
$<
560+
endif
586561

587-
%_abi_generated.c: %.c.in
588-
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
589-
--builddir $(abs_top_builddir) \
590-
--srcdir $(abs_top_srcdir) \
591-
--output $@ \
592-
c \
593-
source \
594-
standard \
595-
$<
596-
abi.h: $(prototype_sources)
597-
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
598-
--builddir $(abs_top_builddir) \
599-
--srcdir $(abs_top_srcdir) \
600-
--output $@ \
601-
c \
602-
header \
603-
--srcdir $(srcdir) \
604-
$(prototype_sources)
605-
standard_abi/mpi.h: $(prototype_sources)
606-
mkdir -p standard_abi
607-
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
608-
--builddir $(abs_top_builddir) \
609-
--srcdir $(abs_top_srcdir) \
610-
--output $@ \
611-
c \
612-
header \
613-
--srcdir $(srcdir) \
614-
--external \
615-
$(prototype_sources)
562+
if OMPI_STANDARD_ABI
563+
include Makefile_abi.include
616564
endif
617-
# Delete generated files on maintainer-clean
618-
MAINTAINERCLEANFILES = *_generated.c abi.h standard_abi/

ompi/mpi/c/Makefile_abi.include

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#
2+
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3+
# University Research and Technology
4+
# Corporation. All rights reserved.
5+
# Copyright (c) 2004-2013 The University of Tennessee and The University
6+
# of Tennessee Research Foundation. All rights
7+
# reserved.
8+
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9+
# University of Stuttgart. All rights reserved.
10+
# Copyright (c) 2004-2005 The Regents of the University of California.
11+
# All rights reserved.
12+
# Copyright (c) 2009-2021 Cisco Systems, Inc. All rights reserved.
13+
# Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
14+
# Copyright (c) 2012 Oak Rigde National Laboratory. All rights reserved.
15+
# Copyright (c) 2012-2013 Inria. All rights reserved.
16+
# Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights
17+
# reserved.
18+
# Copyright (c) 2015-2020 Research Organization for Information Science
19+
# and Technology (RIST). All rights reserved.
20+
# Copyright (c) 2021 Amazon.com, Inc. or its affiliates. All Rights
21+
# reserved.
22+
# Copyright (c) 2025 Advanced Micro Devices, Inc. All Rights reserved.
23+
# $COPYRIGHT$
24+
#
25+
# Additional copyrights may follow
26+
#
27+
# $HEADER$
28+
#
29+
30+
# ABI specific make components
31+
32+
noinst_LTLIBRARIES += libmpi_c_abi.la libmpi_c_abi_profile.la
33+
if BUILD_MPI_BINDINGS_LAYER
34+
noinst_LTLIBRARIES += libmpi_c_abi_noprofile.la
35+
endif
36+
37+
BUILT_SOURCES = abi.h standard_abi/mpi.h
38+
39+
40+
libmpi_c_abi_la_SOURCES = \
41+
attr_fn.c \
42+
abi_details.c \
43+
abi_supported.c \
44+
abi_version.c
45+
46+
libmpi_c_abi_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES
47+
libmpi_c_abi_la_LIBADD = libmpi_c_abi_profile.la
48+
if BUILD_MPI_BINDINGS_LAYER
49+
libmpi_c_abi_la_LIBADD += libmpi_c_abi_noprofile.la
50+
endif
51+
52+
abi_interface_profile_sources = $(prototype_sources:.c.in=_abi_generated.c)
53+
54+
libmpi_c_abi_profile_la_SOURCES = $(abi_interface_profile_sources)
55+
libmpi_c_abi_profile_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES -DOMPI_BUILD_MPI_PROFILING=1
56+
57+
libmpi_c_abi_noprofile_la_SOURCES = $(abi_interface_profile_sources)
58+
libmpi_c_abi_noprofile_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES -DOMPI_BUILD_MPI_PROFILING=0
59+
60+
nobase_include_HEADERS = abi.h standard_abi/mpi.h
61+
62+
if OMPI_GENERATE_BINDINGS
63+
%_abi_generated.c: %.c.in
64+
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
65+
--builddir $(abs_top_builddir) \
66+
--srcdir $(abs_top_srcdir) \
67+
--output $@ \
68+
c \
69+
source \
70+
standard \
71+
$<
72+
abi.h: $(prototype_sources)
73+
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
74+
--builddir $(abs_top_builddir) \
75+
--srcdir $(abs_top_srcdir) \
76+
--output $@ \
77+
c \
78+
header \
79+
--srcdir $(srcdir) \
80+
$(prototype_sources)
81+
standard_abi/mpi.h: $(prototype_sources)
82+
mkdir -p standard_abi
83+
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
84+
--builddir $(abs_top_builddir) \
85+
--srcdir $(abs_top_srcdir) \
86+
--output $@ \
87+
c \
88+
header \
89+
--srcdir $(srcdir) \
90+
--external \
91+
$(prototype_sources)
92+
endif
93+
# Delete generated files on maintainer-clean
94+
MAINTAINERCLEANFILES = *_generated.c abi.h standard_abi/

0 commit comments

Comments
 (0)