2020-05-20 19:46:35 +03:00
|
|
|
SUBDIRS = . test
|
2018-07-14 12:27:31 +03:00
|
|
|
|
2020-11-02 20:56:28 +03:00
|
|
|
bin_PROGRAMS = ior mdtest md-workbench
|
2011-11-10 05:38:34 +04:00
|
|
|
if USE_CAPS
|
2020-11-02 20:56:28 +03:00
|
|
|
bin_PROGRAMS += IOR MDTEST MD-WORKBENCH
|
2011-11-10 05:38:34 +04:00
|
|
|
endif
|
2011-10-27 21:46:40 +04:00
|
|
|
|
2020-11-02 20:56:28 +03:00
|
|
|
noinst_HEADERS = ior.h utilities.h parse_options.h aiori.h iordef.h ior-internal.h option.h mdtest.h aiori-debug.h aiori-POSIX.h md-workbench.h
|
2017-10-20 00:26:52 +03:00
|
|
|
|
2018-07-14 12:27:31 +03:00
|
|
|
lib_LIBRARIES = libaiori.a
|
2020-11-02 20:56:28 +03:00
|
|
|
libaiori_a_SOURCES = ior.c mdtest.c utilities.c parse_options.c ior-output.c option.c md-workbench.c
|
2017-10-20 00:26:52 +03:00
|
|
|
|
2018-07-07 15:24:59 +03:00
|
|
|
extraSOURCES = aiori.c aiori-DUMMY.c
|
2017-10-20 00:26:52 +03:00
|
|
|
extraLDADD =
|
|
|
|
extraLDFLAGS =
|
|
|
|
extraCPPFLAGS =
|
2014-08-14 02:53:24 +04:00
|
|
|
|
2020-11-03 13:52:45 +03:00
|
|
|
md_workbench_SOURCES = md-workbench-main.c
|
2020-11-02 20:56:28 +03:00
|
|
|
md_workbench_LDFLAGS =
|
|
|
|
md_workbench_LDADD = libaiori.a
|
|
|
|
md_workbench_CPPFLAGS =
|
|
|
|
|
2018-07-14 13:11:47 +03:00
|
|
|
ior_SOURCES = ior-main.c
|
2017-10-20 00:26:52 +03:00
|
|
|
ior_LDFLAGS =
|
2018-07-14 13:11:47 +03:00
|
|
|
ior_LDADD = libaiori.a
|
2017-10-20 00:26:52 +03:00
|
|
|
ior_CPPFLAGS =
|
2011-10-28 03:50:05 +04:00
|
|
|
|
2018-07-14 13:11:47 +03:00
|
|
|
mdtest_SOURCES = mdtest-main.c
|
2017-10-20 00:26:52 +03:00
|
|
|
mdtest_LDFLAGS =
|
2018-07-14 13:11:47 +03:00
|
|
|
mdtest_LDADD = libaiori.a
|
2017-10-20 00:26:52 +03:00
|
|
|
mdtest_CPPFLAGS =
|
2014-08-14 02:53:24 +04:00
|
|
|
|
|
|
|
if USE_HDFS_AIORI
|
S3 with Multi-Part Upload for N:1 is working.
Testing on our EMC ViPR installation. Therefore, we also have available
some EMC extensions. For example, EMC supports a special "byte-range"
header-option ("Range: bytes=-1-") which allows appending to an object.
This is not needed for N:1 (where every write creates an independent part),
but is vital for N:N (where every write is considered an append, unless
"transfer-size" is the same as "block-size").
We also use a LANL-extended implementation of aws4c 0.5, which provides
some special features, and allows greater efficiency. That is included in
this commit as a tarball. Untar it somewhere else and build it, to produce
a library, which is linked with IOR. (configure with --with-S3).
TBD: EMC also supports a simpler alternative to Multi-Part Upload, which
appears to have several advantages. We'll add that in next, but wanted to
capture this as is, before I break it.
2014-10-27 22:16:20 +03:00
|
|
|
# TBD: figure out how to find the appropriate -I and -L dirs. Maybe we can
|
|
|
|
# get them from the corresponding bin/ dir in $PATH, or pick an
|
|
|
|
# environment var to use (and set it in modulefiles), or provide a
|
|
|
|
# config-flag, to set a variable we use here.
|
2017-10-20 00:26:52 +03:00
|
|
|
extraSOURCES += aiori-HDFS.c
|
|
|
|
extraCPPFLAGS += -I/opt/hadoop-2.2.0/include
|
|
|
|
extraLDFLAGS += -L/opt/hadoop-2.2.0/lib/native
|
|
|
|
extraLDADD += -lhdfs
|
2014-08-14 02:53:24 +04:00
|
|
|
endif
|
|
|
|
|
|
|
|
if USE_HDF5_AIORI
|
2017-10-20 00:26:52 +03:00
|
|
|
extraSOURCES += aiori-HDF5.c
|
|
|
|
extraLDADD += -lhdf5 -lz
|
2011-10-28 03:50:05 +04:00
|
|
|
endif
|
2014-09-18 21:20:37 +04:00
|
|
|
|
2018-08-06 13:04:26 +03:00
|
|
|
if USE_IME_AIORI
|
|
|
|
extraSOURCES += aiori-IME.c
|
|
|
|
extraCPPFLAGS += -I/opt/ddn/ime/include
|
|
|
|
extraLDFLAGS += -L/opt/ddn/ime/lib
|
|
|
|
extraLDADD += -lim_client
|
|
|
|
endif
|
|
|
|
|
2011-10-28 03:50:05 +04:00
|
|
|
if USE_MPIIO_AIORI
|
2017-10-20 00:26:52 +03:00
|
|
|
extraSOURCES += aiori-MPIIO.c
|
2011-10-28 03:50:05 +04:00
|
|
|
endif
|
2014-09-18 21:20:37 +04:00
|
|
|
|
2011-10-28 03:50:05 +04:00
|
|
|
if USE_NCMPI_AIORI
|
2017-10-20 00:26:52 +03:00
|
|
|
extraSOURCES += aiori-NCMPI.c
|
|
|
|
extraLDADD += -lpnetcdf
|
2011-10-28 03:50:05 +04:00
|
|
|
endif
|
2014-09-18 21:20:37 +04:00
|
|
|
|
2018-05-08 14:08:29 +03:00
|
|
|
if USE_MMAP_AIORI
|
|
|
|
extraSOURCES += aiori-MMAP.c
|
|
|
|
endif
|
|
|
|
|
2014-08-14 02:53:24 +04:00
|
|
|
if USE_POSIX_AIORI
|
2017-10-20 00:26:52 +03:00
|
|
|
extraSOURCES += aiori-POSIX.c
|
2014-08-14 02:53:24 +04:00
|
|
|
endif
|
|
|
|
|
2020-07-21 18:16:13 +03:00
|
|
|
if USE_AIO_AIORI
|
|
|
|
extraSOURCES += aiori-aio.c
|
|
|
|
extraLDADD += -laio
|
|
|
|
endif
|
|
|
|
|
2019-10-31 18:29:09 +03:00
|
|
|
if USE_PMDK_AIORI
|
|
|
|
extraSOURCES += aiori-PMDK.c
|
|
|
|
extraLDADD += -lpmem
|
|
|
|
endif
|
|
|
|
|
2018-02-23 19:38:24 +03:00
|
|
|
if USE_RADOS_AIORI
|
|
|
|
extraSOURCES += aiori-RADOS.c
|
|
|
|
extraLDADD += -lrados
|
2018-06-13 21:37:37 +03:00
|
|
|
endif
|
|
|
|
|
2020-03-05 04:40:05 +03:00
|
|
|
if USE_CEPHFS_AIORI
|
|
|
|
extraSOURCES += aiori-CEPHFS.c
|
|
|
|
extraLDADD += -lcephfs
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
2018-08-27 20:22:38 +03:00
|
|
|
if USE_DAOS_AIORI
|
2020-11-03 13:01:09 +03:00
|
|
|
extraSOURCES += aiori-DFS.c
|
|
|
|
extraLDADD += -lgurt -ldaos_common -ldaos -ldfs -luuid
|
2018-08-27 20:22:38 +03:00
|
|
|
endif
|
2011-11-10 05:38:34 +04:00
|
|
|
|
2019-06-21 15:05:41 +03:00
|
|
|
if USE_GFARM_AIORI
|
|
|
|
extraSOURCES += aiori-Gfarm.c
|
|
|
|
extraLDADD += -lgfarm
|
|
|
|
endif
|
|
|
|
|
2020-06-30 15:41:59 +03:00
|
|
|
if USE_S3_4C_AIORI
|
|
|
|
extraSOURCES += aiori-S3-4c.c
|
2015-05-19 18:36:28 +03:00
|
|
|
if AWS4C_DIR
|
2017-10-20 00:26:52 +03:00
|
|
|
extraCPPFLAGS += $(AWS4C_CPPFLAGS)
|
|
|
|
extraLDFLAGS += $(AWS4C_LDFLAGS)
|
2015-05-19 18:36:28 +03:00
|
|
|
endif
|
2017-10-20 00:26:52 +03:00
|
|
|
extraLDADD += -lcurl
|
|
|
|
extraLDADD += -lxml2
|
|
|
|
extraLDADD += -laws4c
|
|
|
|
extraLDADD += -laws4c_extra
|
2020-08-13 18:25:36 +03:00
|
|
|
extraLDADD += -lcrypto
|
S3 with Multi-Part Upload for N:1 is working.
Testing on our EMC ViPR installation. Therefore, we also have available
some EMC extensions. For example, EMC supports a special "byte-range"
header-option ("Range: bytes=-1-") which allows appending to an object.
This is not needed for N:1 (where every write creates an independent part),
but is vital for N:N (where every write is considered an append, unless
"transfer-size" is the same as "block-size").
We also use a LANL-extended implementation of aws4c 0.5, which provides
some special features, and allows greater efficiency. That is included in
this commit as a tarball. Untar it somewhere else and build it, to produce
a library, which is linked with IOR. (configure with --with-S3).
TBD: EMC also supports a simpler alternative to Multi-Part Upload, which
appears to have several advantages. We'll add that in next, but wanted to
capture this as is, before I break it.
2014-10-27 22:16:20 +03:00
|
|
|
endif
|
|
|
|
|
2020-06-30 15:41:59 +03:00
|
|
|
if USE_S3_LIBS3_AIORI
|
|
|
|
extraSOURCES += aiori-S3-libs3.c
|
|
|
|
extraLDADD += -ls3
|
|
|
|
endif
|
|
|
|
|
2019-09-03 08:26:12 +03:00
|
|
|
if WITH_LUSTRE
|
|
|
|
extraLDADD += -llustreapi
|
|
|
|
endif
|
|
|
|
|
2018-08-07 17:10:08 +03:00
|
|
|
ior_SOURCES += $(extraSOURCES)
|
|
|
|
ior_LDFLAGS += $(extraLDFLAGS)
|
|
|
|
ior_LDADD += $(extraLDADD)
|
2017-10-20 00:26:52 +03:00
|
|
|
ior_CPPFLAGS += $(extraCPPFLAGS)
|
|
|
|
|
2018-08-07 17:10:08 +03:00
|
|
|
mdtest_SOURCES += $(extraSOURCES)
|
|
|
|
mdtest_LDFLAGS += $(extraLDFLAGS)
|
|
|
|
mdtest_LDADD += $(extraLDADD)
|
2017-10-20 00:26:52 +03:00
|
|
|
mdtest_CPPFLAGS += $(extraCPPFLAGS)
|
|
|
|
|
2020-11-03 13:52:45 +03:00
|
|
|
md_workbench_SOURCES += $(extraSOURCES)
|
|
|
|
md_workbench_LDFLAGS += $(extraLDFLAGS)
|
|
|
|
md_workbench_LDADD += $(extraLDADD)
|
|
|
|
md_workbench_CPPFLAGS += $(extraCPPFLAGS)
|
|
|
|
|
|
|
|
MD_WORKBENCH_SOURCES = $(md_workbench_SOURCES)
|
|
|
|
MD_WORKBENCH_LDFLAGS = $(md_workbench_LDFLAGS)
|
|
|
|
MD_WORKBENCH_LDADD = $(md_workbench_LDADD)
|
|
|
|
MD_WORKBENCH_CPPFLAGS = $(md_workbench_CPPFLAGS)
|
|
|
|
|
S3 with Multi-Part Upload for N:1 is working.
Testing on our EMC ViPR installation. Therefore, we also have available
some EMC extensions. For example, EMC supports a special "byte-range"
header-option ("Range: bytes=-1-") which allows appending to an object.
This is not needed for N:1 (where every write creates an independent part),
but is vital for N:N (where every write is considered an append, unless
"transfer-size" is the same as "block-size").
We also use a LANL-extended implementation of aws4c 0.5, which provides
some special features, and allows greater efficiency. That is included in
this commit as a tarball. Untar it somewhere else and build it, to produce
a library, which is linked with IOR. (configure with --with-S3).
TBD: EMC also supports a simpler alternative to Multi-Part Upload, which
appears to have several advantages. We'll add that in next, but wanted to
capture this as is, before I break it.
2014-10-27 22:16:20 +03:00
|
|
|
IOR_SOURCES = $(ior_SOURCES)
|
2018-08-07 17:10:08 +03:00
|
|
|
IOR_LDFLAGS = $(ior_LDFLAGS)
|
S3 with Multi-Part Upload for N:1 is working.
Testing on our EMC ViPR installation. Therefore, we also have available
some EMC extensions. For example, EMC supports a special "byte-range"
header-option ("Range: bytes=-1-") which allows appending to an object.
This is not needed for N:1 (where every write creates an independent part),
but is vital for N:N (where every write is considered an append, unless
"transfer-size" is the same as "block-size").
We also use a LANL-extended implementation of aws4c 0.5, which provides
some special features, and allows greater efficiency. That is included in
this commit as a tarball. Untar it somewhere else and build it, to produce
a library, which is linked with IOR. (configure with --with-S3).
TBD: EMC also supports a simpler alternative to Multi-Part Upload, which
appears to have several advantages. We'll add that in next, but wanted to
capture this as is, before I break it.
2014-10-27 22:16:20 +03:00
|
|
|
IOR_LDADD = $(ior_LDADD)
|
2018-08-07 17:10:08 +03:00
|
|
|
IOR_CPPFLAGS = $(ior_CPPFLAGS)
|
S3 with Multi-Part Upload for N:1 is working.
Testing on our EMC ViPR installation. Therefore, we also have available
some EMC extensions. For example, EMC supports a special "byte-range"
header-option ("Range: bytes=-1-") which allows appending to an object.
This is not needed for N:1 (where every write creates an independent part),
but is vital for N:N (where every write is considered an append, unless
"transfer-size" is the same as "block-size").
We also use a LANL-extended implementation of aws4c 0.5, which provides
some special features, and allows greater efficiency. That is included in
this commit as a tarball. Untar it somewhere else and build it, to produce
a library, which is linked with IOR. (configure with --with-S3).
TBD: EMC also supports a simpler alternative to Multi-Part Upload, which
appears to have several advantages. We'll add that in next, but wanted to
capture this as is, before I break it.
2014-10-27 22:16:20 +03:00
|
|
|
|
2017-10-20 00:26:52 +03:00
|
|
|
MDTEST_SOURCES = $(mdtest_SOURCES)
|
2018-08-07 17:10:08 +03:00
|
|
|
MDTEST_LDFLAGS = $(mdtest_LDFLAGS)
|
2017-10-20 00:26:52 +03:00
|
|
|
MDTEST_LDADD = $(mdtest_LDADD)
|
|
|
|
MDTEST_CPPFLAGS = $(mdtest_CPPFLAGS)
|
2018-07-14 12:27:31 +03:00
|
|
|
|
|
|
|
libaiori_a_SOURCES += $(extraSOURCES)
|
2018-08-07 17:10:08 +03:00
|
|
|
libaiori_a_CPPFLAGS = $(extraCPPFLAGS)
|
2020-07-01 11:19:10 +03:00
|
|
|
|
2020-11-03 13:52:45 +03:00
|
|
|
# Generate a config file with the build flags to allow the reuse of library
|
|
|
|
.PHONY: build.conf
|
2020-07-01 11:19:10 +03:00
|
|
|
all-local: build.conf
|
|
|
|
build.conf:
|
|
|
|
@echo LDFLAGS=$(LDFLAGS) $(extraLDFLAGS) $(extraLDADD) > build.conf
|
|
|
|
@echo CFLAGS=$(CFLAGS) $(extraCPPFLAGS) >> build.conf
|