-CFLAGS ?= -O2 -g -Wall -Werror
+CFLAGS ?= -O2 -g -Wall -Werror -I.
CFLAGS += -std=gnu99
CPPFLAGS += -D_GNU_SOURCE -D__CHECK_ENDIAN__
LIBUUID = $(shell $(LD) -o /dev/null -luuid >/dev/null 2>&1; echo $$?)
NVME_DPKG_VERSION=1~`lsb_release -sc`
OBJS := argconfig.o suffix.o parser.o nvme-print.o nvme-ioctl.o \
- nvme-lightnvm.o fabrics.o json.o plugin.o intel-nvme.o \
- lnvm-nvme.o memblaze-nvme.o wdc-nvme.o wdc-utils.o nvme-models.o \
- huawei-nvme.o netapp-nvme.o toshiba-nvme.o micron-nvme.o seagate-nvme.o
-
-nvme: nvme.c nvme.h $(OBJS) NVME-VERSION-FILE
- $(CC) $(CPPFLAGS) $(CFLAGS) nvme.c -o $(NVME) $(OBJS) $(LDFLAGS)
+ nvme-lightnvm.o fabrics.o json.o nvme-models.o plugin.o
+
+PLUGIN_OBJS := \
+ plugins/intel/intel-nvme.o \
+ plugins/lnvm/lnvm-nvme.o \
+ plugins/memblaze/memblaze-nvme.o \
+ plugins/wdc/wdc-nvme.o \
+ plugins/wdc/wdc-utils.o \
+ plugins/huawei/huawei-nvme.o \
+ plugins/netapp/netapp-nvme.o \
+ plugins/toshiba/toshiba-nvme.o \
+ plugins/micron/micron-nvme.o \
+ plugins/seagate/seagate-nvme.o
+
+nvme: nvme.c nvme.h $(OBJS) $(PLUGIN_OBJS) NVME-VERSION-FILE
+ $(CC) $(CPPFLAGS) $(CFLAGS) nvme.c -o $(NVME) $(OBJS) $(PLUGIN_OBJS) $(LDFLAGS)
+
+verify-no-dep: nvme.c nvme.h $(OBJS) NVME-VERSION-FILE
+ $(CC) $(CPPFLAGS) $(CFLAGS) nvme.c -o $@ $(OBJS) $(LDFLAGS)
nvme.o: nvme.c nvme.h nvme-print.h nvme-ioctl.h argconfig.h suffix.h nvme-lightnvm.h fabrics.h
$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
%.o: %.c %.h nvme.h linux/nvme_ioctl.h nvme-ioctl.h nvme-print.h argconfig.h
- $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
doc: $(NVME)
$(MAKE) -C Documentation
all: doc
clean:
- $(RM) $(NVME) *.o *~ a.out NVME-VERSION-FILE *.tar* nvme.spec version control nvme-*.deb
+ $(RM) $(NVME) $(OBJS) $(PLUGIN_OBJS) *~ a.out NVME-VERSION-FILE *.tar* nvme.spec version control nvme-*.deb
$(MAKE) -C Documentation clean
$(RM) tests/*.pyc
+ $(RM) verify-no-dep
clobber: clean
$(MAKE) -C Documentation clobber
#undef CMD_INC_FILE
-#define CMD_INC_FILE huawei-nvme
+#define CMD_INC_FILE plugins/huawei/huawei-nvme
#if !defined(HUAWEI_NVME) || defined(CMD_HEADER_MULTI_READ)
#define HUAWEI_NVME
#undef CMD_INC_FILE
-#define CMD_INC_FILE intel-nvme
+#define CMD_INC_FILE plugins/intel/intel-nvme
#if !defined(INTEL_NVME) || defined(CMD_HEADER_MULTI_READ)
#define INTEL_NVME
#undef CMD_INC_FILE
-#define CMD_INC_FILE lnvm-nvme
+#define CMD_INC_FILE plugins/lnvm/lnvm-nvme
#if !defined(LNVM_NVME) || defined(CMD_HEADER_MULTI_READ)
#define LNVM_NVME
#undef CMD_INC_FILE
-#define CMD_INC_FILE memblaze-nvme
+#define CMD_INC_FILE plugins/memblaze/memblaze-nvme
#if !defined(MEMBLAZE_NVME) || defined(CMD_HEADER_MULTI_READ)
#define MEMBLAZE_NVME
#undef CMD_INC_FILE
-#define CMD_INC_FILE micron-nvme
+#define CMD_INC_FILE plugins/micron/micron-nvme
#if !defined(MICRON_NVME) || defined(CMD_HEADER_MULTI_READ)
#define MICRON_NVME
#undef CMD_INC_FILE
-#define CMD_INC_FILE netapp-nvme
+#define CMD_INC_FILE plugins/netapp/netapp-nvme
#if !defined(NETAPP_NVME) || defined(CMD_HEADER_MULTI_READ)
#define NETAPP_NVME
// Copyright (c) 2017-2018 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
//
// ******************************************************************************************
-//
+//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
//
// \file seagate-nvme.h
// \brief This file defines the functions and macros to make building a nvme-cli seagate plug-in.
-
+
#undef CMD_INC_FILE
-#define CMD_INC_FILE seagate-nvme
+#define CMD_INC_FILE plugins/seagate/seagate-nvme
#if !defined(SEAGATE_NVME) || defined(CMD_HEADER_MULTI_READ)
#define SEAGATE_NVME
PLUGIN(NAME("seagate", "Seagate vendor specific extensions"),
COMMAND_LIST(
- ENTRY("vs-temperature-stats", "Retrieve Seagate temperature statistics ", temp_stats)
- ENTRY("vs-log-page-sup", "Retrieve Seagate Supported Log-pages Information ", log_pages_supp)
- ENTRY("vs-smart-add-log", "Retrieve Seagate extended-SMART Information ", vs_smart_log)
- ENTRY("vs-pcie-stats", "Retrieve Seagate PCIe error statistics ", vs_pcie_error_log)
- ENTRY("clear-pcie-correctable-errors", "Clear Seagate PCIe error statistics ", vs_clr_pcie_correctable_errs)
- ENTRY("get-host-tele", "Retrieve Seagate Host-Initiated Telemetry ", get_host_tele)
- ENTRY("get-ctrl-tele", "Retrieve Seagate Controller-Initiated Telemetry ", get_ctrl_tele)
- ENTRY("vs-internal-log", "Retrieve Seagate Controller-Initiated Telemetry in binary format", vs_internal_log)
- ENTRY("plugin-version", "Shows Seagate plugin's version information ", seagate_plugin_version)
+ ENTRY("vs-temperature-stats", "Retrieve Seagate temperature statistics ", temp_stats)
+ ENTRY("vs-log-page-sup", "Retrieve Seagate Supported Log-pages Information ", log_pages_supp)
+ ENTRY("vs-smart-add-log", "Retrieve Seagate extended-SMART Information ", vs_smart_log)
+ ENTRY("vs-pcie-stats", "Retrieve Seagate PCIe error statistics ", vs_pcie_error_log)
+ ENTRY("clear-pcie-correctable-errors", "Clear Seagate PCIe error statistics ", vs_clr_pcie_correctable_errs)
+ ENTRY("get-host-tele", "Retrieve Seagate Host-Initiated Telemetry ", get_host_tele)
+ ENTRY("get-ctrl-tele", "Retrieve Seagate Controller-Initiated Telemetry ", get_ctrl_tele)
+ ENTRY("vs-internal-log", "Retrieve Seagate Controller-Initiated Telemetry in binary format", vs_internal_log)
+ ENTRY("plugin-version", "Shows Seagate plugin's version information ", seagate_plugin_version)
)
);
#undef CMD_INC_FILE
-#define CMD_INC_FILE toshiba-nvme
+#define CMD_INC_FILE plugins/toshiba/toshiba-nvme
#if !defined(TOSHIBA_NVME) || defined(CMD_HEADER_MULTI_READ)
#define TOSHIBA_NVME
#undef CMD_INC_FILE
-#define CMD_INC_FILE wdc-nvme
+#define CMD_INC_FILE plugins/wdc/wdc-nvme
#if !defined(WDC_NVME) || defined(CMD_HEADER_MULTI_READ)
#define WDC_NVME