# SPDX-License-Identifier: GPL-2.0
#
# Makefile for linux/drivers/scsi
#
# 30 May 2000, Christoph Hellwig <hch@infradead.org>
# Rewritten to use lists instead of if-statements.
#
# 20 Sep 2000, Torben Mathiasen <tmm@image.dk>
# Changed link order to reflect new scsi initialization.
#
# *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!
# The link order must be, SCSI Core, SCSI HBA drivers, and
# lastly SCSI peripheral drivers (disk/tape/cdrom/etc.) to
# satisfy certain initialization assumptions in the SCSI layer.
# *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!
CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS
obj-$([31mCONFIG_PCMCIA[0m) += pcmcia/
obj-$([31mCONFIG_SCSI[0m) += scsi_mod.o
obj-$([31mCONFIG_BLK_SCSI_REQUEST[0m) += scsi_common.o
obj-$([31mCONFIG_RAID_ATTRS[0m) += raid_class.o
# --- NOTE ORDERING HERE ---
# For kernel non-modular link, transport attributes need to
# be initialised before drivers
# --------------------------
obj-$([31mCONFIG_SCSI_SPI_ATTRS[0m) += scsi_transport_spi.o
obj-$([31mCONFIG_SCSI_FC_ATTRS[0m) += scsi_transport_fc.o
obj-$([31mCONFIG_SCSI_ISCSI_ATTRS[0m) += scsi_transport_iscsi.o
obj-$([31mCONFIG_SCSI_SAS_ATTRS[0m) += scsi_transport_sas.o
obj-$([31mCONFIG_SCSI_SAS_LIBSAS[0m) += libsas/
obj-$([31mCONFIG_SCSI_SRP_ATTRS[0m) += scsi_transport_srp.o
obj-$([31mCONFIG_SCSI_DH[0m) += device_handler/
obj-$([31mCONFIG_LIBFC[0m) += libfc/
obj-$([31mCONFIG_LIBFCOE[0m) += fcoe/
obj-$([31mCONFIG_FCOE[0m) += fcoe/
obj-$([31mCONFIG_FCOE_FNIC[0m) += fnic/
obj-$([31mCONFIG_SCSI_SNIC[0m) += snic/
obj-$([31mCONFIG_SCSI_BNX2X_FCOE[0m) += libfc/ fcoe/ bnx2fc/
obj-$([31mCONFIG_QEDF[0m) += qedf/
obj-$([31mCONFIG_ISCSI_TCP[0m) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o
obj-$([31mCONFIG_INFINIBAND_ISER[0m) += libiscsi.o
obj-$([31mCONFIG_ISCSI_BOOT_SYSFS[0m) += iscsi_boot_sysfs.o
obj-$([31mCONFIG_SCSI_A4000T[0m) += 53c700.o a4000t.o
obj-$([31mCONFIG_SCSI_ZORRO7XX[0m) += 53c700.o zorro7xx.o
obj-$([31mCONFIG_SCSI_ZORRO_ESP[0m) += esp_scsi.o zorro_esp.o
obj-$([31mCONFIG_A3000_SCSI[0m) += a3000.o wd33c93.o
obj-$([31mCONFIG_A2091_SCSI[0m) += a2091.o wd33c93.o
obj-$([31mCONFIG_GVP11_SCSI[0m) += gvp11.o wd33c93.o
obj-$([31mCONFIG_MVME147_SCSI[0m) += mvme147.o wd33c93.o
obj-$([31mCONFIG_SGIWD93_SCSI[0m) += sgiwd93.o wd33c93.o
obj-$([31mCONFIG_ATARI_SCSI[0m) += atari_scsi.o
obj-$([31mCONFIG_MAC_SCSI[0m) += mac_scsi.o
obj-$([31mCONFIG_SCSI_MAC_ESP[0m) += esp_scsi.o mac_esp.o
obj-$([31mCONFIG_SUN3_SCSI[0m) += sun3_scsi.o sun3_scsi_vme.o
obj-$([31mCONFIG_MVME16x_SCSI[0m) += 53c700.o mvme16x_scsi.o
obj-$([31mCONFIG_BVME6000_SCSI[0m) += 53c700.o bvme6000_scsi.o
obj-$([31mCONFIG_SCSI_SIM710[0m) += 53c700.o sim710.o
obj-$([31mCONFIG_SCSI_ADVANSYS[0m) += advansys.o
obj-$([31mCONFIG_SCSI_BUSLOGIC[0m) += BusLogic.o
obj-$([31mCONFIG_SCSI_DPT_I2O[0m) += dpt_i2o.o
obj-$([31mCONFIG_SCSI_ARCMSR[0m) += arcmsr/
obj-$([31mCONFIG_SCSI_AHA152X[0m) += aha152x.o
obj-$([31mCONFIG_SCSI_AHA1542[0m) += aha1542.o
obj-$([31mCONFIG_SCSI_AHA1740[0m) += aha1740.o
obj-$([31mCONFIG_SCSI_AIC7XXX[0m) += aic7xxx/
obj-$([31mCONFIG_SCSI_AIC79XX[0m) += aic7xxx/
obj-$([31mCONFIG_SCSI_AACRAID[0m) += aacraid/
obj-$([31mCONFIG_SCSI_AIC94XX[0m) += aic94xx/
obj-$([31mCONFIG_SCSI_PM8001[0m) += pm8001/
obj-$([31mCONFIG_SCSI_ISCI[0m) += isci/
obj-$([31mCONFIG_SCSI_IPS[0m) += ips.o
obj-$([31mCONFIG_SCSI_FDOMAIN[0m) += fdomain.o
obj-$([31mCONFIG_SCSI_FDOMAIN_PCI[0m) += fdomain_pci.o
obj-$([31mCONFIG_SCSI_FDOMAIN_ISA[0m) += fdomain_isa.o
obj-$([31mCONFIG_SCSI_GENERIC_NCR5380[0m) += g_NCR5380.o
obj-$([31mCONFIG_SCSI_QLOGIC_FAS[0m) += qlogicfas408.o qlogicfas.o
obj-$([31mCONFIG_PCMCIA_QLOGIC[0m) += qlogicfas408.o
obj-$([31mCONFIG_SCSI_QLOGIC_1280[0m) += qla1280.o
obj-$([31mCONFIG_SCSI_QLA_FC[0m) += qla2xxx/
obj-$([31mCONFIG_SCSI_QLA_ISCSI[0m) += libiscsi.o qla4xxx/
obj-$([31mCONFIG_SCSI_LPFC[0m) += lpfc/
obj-$([31mCONFIG_SCSI_BFA_FC[0m) += bfa/
obj-$([31mCONFIG_SCSI_CHELSIO_FCOE[0m) += csiostor/
obj-$([31mCONFIG_SCSI_DMX3191D[0m) += dmx3191d.o
obj-$([31mCONFIG_SCSI_HPSA[0m) += hpsa.o
obj-$([31mCONFIG_SCSI_SMARTPQI[0m) += smartpqi/
obj-$([31mCONFIG_SCSI_SYM53C8XX_2[0m) += sym53c8xx_2/
obj-$([31mCONFIG_SCSI_ZALON[0m) += zalon7xx.o
obj-$([31mCONFIG_SCSI_DC395x[0m) += dc395x.o
obj-$([31mCONFIG_SCSI_AM53C974[0m) += esp_scsi.o am53c974.o
obj-$([31mCONFIG_CXLFLASH[0m) += cxlflash/
obj-$([31mCONFIG_MEGARAID_LEGACY[0m) += megaraid.o
obj-$([31mCONFIG_MEGARAID_NEWGEN[0m) += megaraid/
obj-$([31mCONFIG_MEGARAID_SAS[0m) += megaraid/
obj-$([31mCONFIG_SCSI_MPT3SAS[0m) += mpt3sas/
obj-$([31mCONFIG_SCSI_UFSHCD[0m) += ufs/
obj-$([31mCONFIG_SCSI_ACARD[0m) += atp870u.o
obj-$([31mCONFIG_SCSI_SUNESP[0m) += esp_scsi.o sun_esp.o
obj-$([31mCONFIG_SCSI_GDTH[0m) += gdth.o
obj-$([31mCONFIG_SCSI_INITIO[0m) += initio.o
obj-$([31mCONFIG_SCSI_INIA100[0m) += a100u2w.o
obj-$([31mCONFIG_SCSI_QLOGICPTI[0m) += qlogicpti.o
obj-$([31mCONFIG_SCSI_MESH[0m) += mesh.o
obj-$([31mCONFIG_SCSI_MAC53C94[0m) += mac53c94.o
obj-$([31mCONFIG_SCSI_MYRB[0m) += myrb.o
obj-$([31mCONFIG_SCSI_MYRS[0m) += myrs.o
obj-$([31mCONFIG_BLK_DEV_3W_XXXX_RAID[0m) += 3w-xxxx.o
obj-$([31mCONFIG_SCSI_3W_9XXX[0m) += 3w-9xxx.o
obj-$([31mCONFIG_SCSI_3W_SAS[0m) += 3w-sas.o
obj-$([31mCONFIG_SCSI_PPA[0m) += ppa.o
obj-$([31mCONFIG_SCSI_IMM[0m) += imm.o
obj-$([31mCONFIG_JAZZ_ESP[0m) += esp_scsi.o jazz_esp.o
obj-$([31mCONFIG_SUN3X_ESP[0m) += esp_scsi.o sun3x_esp.o
obj-$([31mCONFIG_SCSI_LASI700[0m) += 53c700.o lasi700.o
obj-$([31mCONFIG_SCSI_SNI_53C710[0m) += 53c700.o sni_53c710.o
obj-$([31mCONFIG_SCSI_NSP32[0m) += nsp32.o
obj-$([31mCONFIG_SCSI_IPR[0m) += ipr.o
obj-$([31mCONFIG_SCSI_IBMVSCSI[0m) += ibmvscsi/
obj-$([31mCONFIG_SCSI_IBMVSCSIS[0m) += ibmvscsi_tgt/
obj-$([31mCONFIG_SCSI_IBMVFC[0m) += ibmvscsi/
obj-$([31mCONFIG_SCSI_HPTIOP[0m) += hptiop.o
obj-$([31mCONFIG_SCSI_STEX[0m) += stex.o
obj-$([31mCONFIG_SCSI_MVSAS[0m) += mvsas/
obj-$([31mCONFIG_SCSI_MVUMI[0m) += mvumi.o
obj-$([31mCONFIG_PS3_ROM[0m) += ps3rom.o
obj-$([31mCONFIG_SCSI_CXGB3_ISCSI[0m) += libiscsi.o libiscsi_tcp.o cxgbi/
obj-$([31mCONFIG_SCSI_CXGB4_ISCSI[0m) += libiscsi.o libiscsi_tcp.o cxgbi/
obj-$([31mCONFIG_SCSI_BNX2_ISCSI[0m) += libiscsi.o bnx2i/
obj-$([31mCONFIG_QEDI[0m) += libiscsi.o qedi/
obj-$([31mCONFIG_BE2ISCSI[0m) += libiscsi.o be2iscsi/
obj-$([31mCONFIG_SCSI_ESAS2R[0m) += esas2r/
obj-$([31mCONFIG_SCSI_PMCRAID[0m) += pmcraid.o
obj-$([31mCONFIG_SCSI_VIRTIO[0m) += virtio_scsi.o
obj-$([31mCONFIG_VMWARE_PVSCSI[0m) += vmw_pvscsi.o
obj-$([31mCONFIG_XEN_SCSI_FRONTEND[0m) += xen-scsifront.o
obj-$([31mCONFIG_HYPERV_STORAGE[0m) += hv_storvsc.o
obj-$([31mCONFIG_SCSI_WD719X[0m) += wd719x.o
obj-$([31mCONFIG_ARM[0m) += arm/
obj-$([31mCONFIG_CHR_DEV_ST[0m) += st.o
obj-$([31mCONFIG_BLK_DEV_SD[0m) += sd_mod.o
obj-$([31mCONFIG_BLK_DEV_SR[0m) += sr_mod.o
obj-$([31mCONFIG_CHR_DEV_SG[0m) += sg.o
obj-$([31mCONFIG_CHR_DEV_SCH[0m) += ch.o
obj-$([31mCONFIG_SCSI_ENCLOSURE[0m) += ses.o
obj-$([31mCONFIG_SCSI_HISI_SAS[0m) += hisi_sas/
# This goes last, so that "real" scsi devices probe earlier
obj-$([31mCONFIG_SCSI_DEBUG[0m) += scsi_debug.o
scsi_mod-y += scsi.o hosts.o scsi_ioctl.o \
scsicam.o scsi_error.o scsi_lib.o
scsi_mod-$([31mCONFIG_SCSI_CONSTANTS[0m) += constants.o
scsi_mod-$([31mCONFIG_SCSI_DMA[0m) += scsi_lib_dma.o
scsi_mod-y += scsi_scan.o scsi_sysfs.o scsi_devinfo.o
scsi_mod-$([31mCONFIG_SCSI_NETLINK[0m) += scsi_netlink.o
scsi_mod-$([31mCONFIG_SYSCTL[0m) += scsi_sysctl.o
scsi_mod-$([31mCONFIG_SCSI_PROC_FS[0m) += scsi_proc.o
scsi_mod-$([31mCONFIG_BLK_DEBUG_FS[0m) += scsi_debugfs.o
scsi_mod-y += scsi_trace.o scsi_logging.o
scsi_mod-$([31mCONFIG_PM[0m) += scsi_pm.o
scsi_mod-$([31mCONFIG_SCSI_DH[0m) += scsi_dh.o
hv_storvsc-y := storvsc_drv.o
sd_mod-objs := sd.o
sd_mod-$([31mCONFIG_BLK_DEV_INTEGRITY[0m) += sd_dif.o
sd_mod-$([31mCONFIG_BLK_DEV_ZONED[0m) += sd_zbc.o
sr_mod-objs := sr.o sr_ioctl.o sr_vendor.o
ncr53c8xx-flags-$([31mCONFIG_SCSI_ZALON[0m) \
:= -DCONFIG_NCR53C8XX_PREFETCH -DSCSI_NCR_BIG_ENDIAN \
-DCONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS
CFLAGS_ncr53c8xx.o := $(ncr53c8xx-flags-y) $(ncr53c8xx-flags-m)
zalon7xx-objs := zalon.o ncr53c8xx.o
# Files generated that shall be removed upon make clean
clean-files := 53c700_d.h 53c700_u.h scsi_devinfo_tbl.c
$(obj)/53c700.o: $(obj)/53c700_d.h
$(obj)/scsi_sysfs.o: $(obj)/scsi_devinfo_tbl.c
quiet_cmd_bflags = GEN $@
cmd_bflags = sed -n 's/.*define *BLIST_\([A-Z0-9_]*\) *.*/BLIST_FLAG_NAME(\1),/p' $< > $@
$(obj)/scsi_devinfo_tbl.c: include/scsi/scsi_devinfo.h
$(call if_changed,bflags)
# If you want to play with the firmware, uncomment
# GENERATE_FIRMWARE := 1
ifdef GENERATE_FIRMWARE
$(obj)/53c700_d.h: $(src)/53c700.scr $(src)/script_asm.pl
$(PERL) -s $(src)/script_asm.pl -ncr7x0_family $@ $(@:_d.h=_u.h) < $<
endif