AM_DEFAULT_SOURCE_EXT = .cpp

ACLOCAL_AMFLAGS = -Im4

sbin_PROGRAMS = \
	openpower-update-manager \
	openpower-pnor-msl

openpower_update_manager_SOURCES = \
	activation.cpp \
	version.cpp \
	item_updater.cpp \
	item_updater_main.cpp \
	utils.cpp

if UBIFS_LAYOUT
include ubi/Makefile.am.include
else
include static/Makefile.am.include
if HAVE_SYSTEMD
  systemdsystemunit_DATA = \
    openpower-pnor-update@.service
endif
endif

if WANT_SIGNATURE_VERIFY_BUILD
openpower_update_manager_SOURCES += \
	image_verify.cpp
endif

nodist_openpower_update_manager_SOURCES = \
	org/openbmc/Associations/server.cpp

openpower_pnor_msl_SOURCES = \
	msl_verify.cpp \
	msl_verify_main.cpp

CLEANFILES = \
	org/openbmc/Associations/server.cpp \
	org/openbmc/Associations/server.hpp

BUILT_SOURCES = \
	org/openbmc/Associations/server.cpp \
	org/openbmc/Associations/server.hpp

generic_cxxflags = \
	$(SYSTEMD_CFLAGS) \
	$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
	$(SDBUSPLUS_CFLAGS) \
	$(PHOSPHOR_LOGGING_CFLAGS) \
	-flto
generic_ldflags = \
	$(SYSTEMD_LIBS) \
	$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
	$(SDBUSPLUS_LIBS) \
	$(PHOSPHOR_LOGGING_LIBS) \
	-lstdc++fs \
	-lssl \
	-lcrypto

org/openbmc/Associations/server.cpp: org/openbmc/Associations.interface.yaml
	@mkdir -p `dirname $@`
	$(SDBUSPLUSPLUS) -r $(srcdir) interface server-cpp org.openbmc.Associations > $@

org/openbmc/Associations/server.hpp: org/openbmc/Associations.interface.yaml
	@mkdir -p `dirname $@`
	$(SDBUSPLUSPLUS) -r $(srcdir) interface server-header org.openbmc.Associations > $@

openpower_update_manager_CXXFLAGS = $(generic_cxxflags)
openpower_update_manager_LDFLAGS = $(generic_ldflags)
openpower_pnor_msl_CXXFLAGS = $(generic_cxxflags)
openpower_pnor_msl_LDFLAGS = $(generic_ldflags)

SUBDIRS = test
