Skip to content

Commit 49f042c

Browse files
committed
bindings: fix up makefile for c interfaces
to heed the --enable-abi-standard config option Signed-off-by: Howard Pritchard <[email protected]>
1 parent 991457e commit 49f042c

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
@@ -483,7 +480,6 @@ prototype_sources = \
483480
wtime.c.in
484481

485482
EXTRA_DIST = $(prototype_sources)
486-
BUILT_SOURCES = abi.h standard_abi/mpi.h
487483

488484
# attr_fn.c contains attribute manipulation functions which do not
489485
# profiling implications, and so are always built.
@@ -501,25 +497,12 @@ if BUILD_MPI_BINDINGS_LAYER
501497
libmpi_c_la_LIBADD += libmpi_c_noprofile.la
502498
endif
503499

504-
libmpi_c_abi_la_SOURCES = \
505-
attr_fn.c \
506-
abi_details.c \
507-
abi_supported.c \
508-
abi_version.c
509-
510-
libmpi_c_abi_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES
511-
libmpi_c_abi_la_LIBADD = libmpi_c_abi_profile.la
512-
if BUILD_MPI_BINDINGS_LAYER
513-
libmpi_c_abi_la_LIBADD += libmpi_c_abi_noprofile.la
514-
endif
515-
516500
#
517501
# List of all C files that have profile versions (*_generated.c files were
518502
# generated from prototype_sources above).
519503
#
520504
#
521505
interface_profile_sources = $(prototype_sources:.c.in=_ompi_generated.c)
522-
abi_interface_profile_sources = $(prototype_sources:.c.in=_abi_generated.c)
523506

524507

525508
# Conditionally install the header files
@@ -561,15 +544,6 @@ libmpi_c_profile_la_CPPFLAGS = -DOMPI_BUILD_MPI_PROFILING=1
561544
libmpi_c_noprofile_la_SOURCES = $(interface_profile_sources) $(extra_interface_profile_sources) $(deprecated_interface_profile_sources)
562545
libmpi_c_noprofile_la_CPPFLAGS = -DOMPI_BUILD_MPI_PROFILING=0
563546

564-
libmpi_c_abi_profile_la_SOURCES = $(abi_interface_profile_sources)
565-
libmpi_c_abi_profile_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES -DOMPI_BUILD_MPI_PROFILING=1
566-
567-
libmpi_c_abi_noprofile_la_SOURCES = $(abi_interface_profile_sources)
568-
libmpi_c_abi_noprofile_la_CPPFLAGS = -DOMPI_NO_MPI_PROTOTYPES -DOMPI_BUILD_MPI_PROFILING=0
569-
570-
nobase_include_HEADERS = standard_abi/mpi.h
571-
572-
# ABI generation rules
573547
if OMPI_GENERATE_BINDINGS
574548
%_ompi_generated.c: %.c.in
575549
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
@@ -580,36 +554,8 @@ if OMPI_GENERATE_BINDINGS
580554
source \
581555
ompi \
582556
$<
557+
endif
583558

584-
%_abi_generated.c: %.c.in
585-
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
586-
--builddir $(abs_top_builddir) \
587-
--srcdir $(abs_top_srcdir) \
588-
--output $@ \
589-
c \
590-
source \
591-
standard \
592-
$<
593-
abi.h: $(prototype_sources)
594-
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
595-
--builddir $(abs_top_builddir) \
596-
--srcdir $(abs_top_srcdir) \
597-
--output $@ \
598-
c \
599-
header \
600-
--srcdir $(srcdir) \
601-
$(prototype_sources)
602-
standard_abi/mpi.h: $(prototype_sources)
603-
mkdir -p standard_abi
604-
$(OMPI_V_GEN) $(PYTHON) $(top_srcdir)/ompi/mpi/bindings/bindings.py \
605-
--builddir $(abs_top_builddir) \
606-
--srcdir $(abs_top_srcdir) \
607-
--output $@ \
608-
c \
609-
header \
610-
--srcdir $(srcdir) \
611-
--external \
612-
$(prototype_sources)
559+
if OMPI_STANDARD_ABI
560+
include Makefile_abi.include
613561
endif
614-
# Delete generated files on maintainer-clean
615-
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)