blob: 99b5958f12acf358e956ad9d7df609cfe1352432 [file] [log] [blame] [edit]
#
# Makefile for slurm API library
AUTOMAKE_OPTIONS = foreign
INCLUDES = -I$(top_srcdir)
if WITH_GNU_LD
VERSION_SCRIPT = \
version.map
OTHER_FLAGS = \
-Wl,--version-script=$(VERSION_SCRIPT)
endif
# libslurmdb version information :
#
# Update META file information before a public release only!
#
# Note that libtool builds libslurmdb.so.<major>.<age>.<rev>
# where major = API_MAJOR = (API_CURRENT - API_AGE)
# and age = API_AGE
# and rev = API_REVISION
#
# The following examples are based upon initial values of API_CURRENT = 6,
# API_AGE = 4, API_REVISION = 6.
#
# If any interfaces have been added: increment API_CURRENT, increment API_AGE,
# and set API_REVISION = 0 (e.g. libslurmdb.so.2.4.6 -> libslurmdb.so.2.5.0)
#
# If any interfaces have been removed: increment API_CURRENT, set API_AGE = 0,
# and set API_REVISION = 0 (e.g. libslurmdb.so.2.4.6 -> libslurmdb.so.7.0.0)
#
# If any interfaces have changed: increment API_CURRENT only
# (e.g. libslurmdb.so.2.4.6 -> libslurmdb.so.3.4.6)
#
# If the interfaces have not changed, but underlying code has changed at all:
# increment API_REVISION only (e.g. libslurmdb.so.2.4.6 -> libslurmdb.so.2.4.7)
#
current = $(SLURM_API_CURRENT)
age = $(SLURM_API_AGE)
rev = $(SLURM_API_REVISION)
lib_LTLIBRARIES = libslurmdb.la
# BUILT_SOURCES tells automake that when "make" is called, these targets
# need to be built before anything else.
BUILT_SOURCES = $(VERSION_SCRIPT) libslurmdb.la
# libslurmdb.o contains all the api symbols and will export
# them to plugins that are loaded. Since you can not include both libslurm
# and libslurmdb in the same program because of extra symbols this is needed.
# libslurmdb.o are for convenience, and it is not installed.
noinst_PROGRAMS = libslurmdb.o
libslurmdb_la_SOURCES = \
account_functions.c \
archive_functions.c \
assoc_functions.c \
cluster_functions.c \
cluster_report_functions.c \
coord_functions.c \
connection_functions.c \
extra_get_functions.c \
job_report_functions.c \
qos_functions.c \
resv_report_functions.c \
usage_functions.c \
user_functions.c \
user_report_functions.c \
wckey_functions.c
libslurmdb_la_LIBADD = $(top_builddir)/src/api/libslurmhelper.la
libslurmdb_la_LDFLAGS = \
$(LIB_LDFLAGS) \
-version-info $(current):$(rev):$(age) \
$(OTHER_FLAGS)
# This was made so we could export all symbols from libcommon
# on multiple platforms
libslurmdb_o_SOURCES =
libslurmdb_o_LDADD = $(top_builddir)/src/api/libslurm.o
libslurmdb.o: $(libslurmdb_la_OBJECTS) $(libslurmdb_o_LDADD)
$(LINK) $(libslurmdb_la_OBJECTS) $(libslurmdb_o_LDADD)
force:
$(libslurmdb_o_LDADD) $(libslurmdb_la_LIBADD) : force
@cd `dirname $@` && $(MAKE) `basename $@`
$(VERSION_SCRIPT) :
(echo "{ global:"; \
echo " slurm_*;"; \
echo " slurmdb_*;"; \
echo " local: *;"; \
echo "};") > $(VERSION_SCRIPT)
CLEANFILES = \
$(VERSION_SCRIPT)
DISTCLEANFILES = \
$(VERSION_SCRIPT)