patch-2.4.0-test2 linux/drivers/scsi/Makefile

Next file: linux/drivers/scsi/NCR53C9x.c
Previous file: linux/drivers/scsi/ChangeLog.sym53c8xx
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test1/linux/drivers/scsi/Makefile linux/drivers/scsi/Makefile
@@ -1,19 +1,18 @@
+#
 # Makefile for linux/drivers/scsi
 #
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
+# 30 May 2000, Christoph Hellwig <chhellwig@gmx.net>
+# Rewritten to use lists instead of if-statements.
 #
 
-L_TARGET := scsi.a
-L_OBJS   := 
-M_OBJS   := 
-MX_OBJS  := 
-MIX_OBJS :=
+O_TARGET := scsidrv.o
 MOD_LIST_NAME := SCSI_MODULES
-SCSI_SRCS = $(wildcard $(L_OBJS:%.o=%.c))
 
-ALL_SUB_DIRS := pcmcia
+SUB_DIRS	:=
+MOD_SUB_DIRS	:=
+MOD_IN_SUBDIRS	:=
+ALL_SUB_DIRS	:= $(SUB_DIRS) pcmcia
+
 ifeq ($(CONFIG_PCMCIA),y)
   SUB_DIRS += pcmcia
   MOD_IN_SUB_DIRS += pcmcia
@@ -23,697 +22,146 @@
   endif
 endif
 
+export-objs	:= scsi_syms.o
+list-multi	:= scsi_mod.o sr_mod.o initio.o a100u2w.o
+
 CFLAGS_aha152x.o =   -DAHA152X_STAT -DAUTOCONF
 CFLAGS_gdth.o    = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS
 CFLAGS_seagate.o =   -DARBITRATE -DPARITY -DSEAGATE_USE_ASM
 
-.SUFFIXES:
-.SUFFIXES: .c .o .h .a .S
-
-ifeq (${CFLAGS},)
-CFLAGS = -D__KERNEL__=1 \
-	-DMODULE -Wall -Wstrict-prototypes -I. -I../../include \
-	-O2 -fomit-frame-pointer
-
-include ../../.config
-
-TOPDIR = ../..
-
-endif
-
-ifeq ($(CONFIG_SCSI),y)
-  # We must attach scsi_syms.o to scsi.o, as otherwise there is nothing to
-  # pull the object file from the archive.
-  O_TARGET := scsi_n_syms.o
-  O_OBJS   := scsi.o
-  ifeq ($(CONFIG_MODULES),y)
-    OX_OBJS  := scsi_syms.o
-  endif
-  L_OBJS += scsi_n_syms.o hosts.o scsi_ioctl.o constants.o scsicam.o
-  L_OBJS += scsi_error.o scsi_obsolete.o scsi_queue.o scsi_lib.o 
-  L_OBJS += scsi_merge.o scsi_proc.o scsi_dma.o scsi_scan.o
-else
-  ifeq ($(CONFIG_SCSI),m)
-    MIX_OBJS += scsi_syms.o
-    M_OBJS += scsi_mod.o
-  endif
-endif
-
-ifeq ($(CONFIG_CHR_DEV_ST),y)
-L_OBJS += st.o
-else
-  ifeq ($(CONFIG_CHR_DEV_ST),m)
-  M_OBJS += st.o
-  endif
-endif
-
-ifeq ($(CONFIG_BLK_DEV_SD),y)
-L_OBJS += sd.o
-else
-  ifeq ($(CONFIG_BLK_DEV_SD),m)
-  M_OBJS += sd_mod.o
-  endif
-endif
-
-ifeq ($(CONFIG_BLK_DEV_SR),y)
-L_OBJS += sr.o sr_ioctl.o sr_vendor.o
-else
-  ifeq ($(CONFIG_BLK_DEV_SR),m)
-  M_OBJS += sr_mod.o
-  endif
-endif
-
-ifeq ($(CONFIG_CHR_DEV_SG),y)
-L_OBJS += sg.o
-else
-  ifeq ($(CONFIG_CHR_DEV_SG),m)
-  M_OBJS += sg.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_ADVANSYS),y)
-L_OBJS += advansys.o
-else
-  ifeq ($(CONFIG_SCSI_ADVANSYS),m)
-  M_OBJS += advansys.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_PCI2000),y)
-L_OBJS += pci2000.o
-else
-    ifeq ($(CONFIG_SCSI_PCI2000),m)
-    M_OBJS += pci2000.o
-    endif
-endif
-
-ifeq ($(CONFIG_SCSI_PCI2220I),y)
-L_OBJS += pci2220i.o
-else
-    ifeq ($(CONFIG_SCSI_PCI2220I),m)
-    M_OBJS += pci2220i.o
-    endif
-endif
-
-ifeq ($(CONFIG_SCSI_PSI240I),y)
-L_OBJS += psi240i.o
-else
-    ifeq ($(CONFIG_SCSI_PSI240I),m)
-    M_OBJS += psi240i.o
-    endif
-endif
-
-ifeq ($(CONFIG_MVME16x_SCSI),y)
-L_OBJS += mvme16x.o 53c7xx.o
-else
-  ifeq ($(CONFIG_MVME16x_SCSI),m)
-  M_OBJS += mvme16x.o 53c7xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_BVME6000_SCSI),y)
-L_OBJS += bvme6000.o 53c7xx.o
-else
-  ifeq ($(CONFIG_BVME6000_SCSI),m)
-  M_OBJS += bvme6000.o 53c7xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_SIM710),y)
-L_OBJS += sim710.o
-else
-  ifeq ($(CONFIG_SCSI_SIM710),m)
-  M_OBJS += sim710.o
-  endif
-endif
-
-ifeq ($(CONFIG_A4000T_SCSI),y)
-L_OBJS += amiga7xx.o 53c7xx.o
-else
-  ifeq ($(CONFIG_A4000T_SCSI),m)
-  M_OBJS += amiga7xx.o 53c7xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_A4091_SCSI),y)
-L_OBJS += amiga7xx.o 53c7xx.o
-else
-  ifeq ($(CONFIG_A4091_SCSI),m)
-  M_OBJS += amiga7xx.o 53c7xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_BLZ603EPLUS_SCSI),y)
-L_OBJS += amiga7xx.o 53c7xx.o
-else
-  ifeq ($(CONFIG_BLZ603EPLUS_SCSI),m)
-  M_OBJS += amiga7xx.o 53c7xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_WARPENGINE_SCSI),y)
-L_OBJS += amiga7xx.o 53c7xx.o
-else
-  ifeq ($(CONFIG_WARPENGINE_SCSI),m)
-  M_OBJS += amiga7xx.o 53c7xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_A3000_SCSI),y)
-L_OBJS += a3000.o wd33c93.o
-else
-  ifeq ($(CONFIG_A3000_SCSI),m)
-  M_OBJS += a3000.o wd33c93.o
-  endif
-endif
-
-ifeq ($(CONFIG_A2091_SCSI),y)
-L_OBJS += a2091.o wd33c93.o
-else
-  ifeq ($(CONFIG_A2091_SCSI),m)
-  M_OBJS += a2091.o wd33c93.o
-  endif
-endif
-
-ifeq ($(CONFIG_GVP11_SCSI),y)
-L_OBJS += gvp11.o wd33c93.o
-else
-  ifeq ($(CONFIG_GVP11_SCSI),m)
-  M_OBJS += gvp11.o wd33c93.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_SGIWD93),y)
-L_OBJS += sgiwd93.o wd33c93.o
-else
-  ifeq ($(CONFIG_SCSI_SGIWD93),m)
-  M_OBJS += sgiwd93.o wd33c93.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_MCA_53C9X),y)
-L_OBJS += NCR53C9x.o mca_53c9x.o
-else
-  ifeq ($(CONFIG_SCSI_MCA_53C9X),m)
-  M_OBJS += NCR53C9x.o mca_53c9x.o
-  endif
-endif
-
-ifeq ($(CONFIG_CYBERSTORM_SCSI),y)
-L_OBJS += NCR53C9x.o cyberstorm.o
-else
-  ifeq ($(CONFIG_CYBERSTORM_SCSI),m)
-  M_OBJS += NCR53C9x.o cyberstorm.o
-  endif
-endif
-
-ifeq ($(CONFIG_CYBERSTORMII_SCSI),y)
-L_OBJS += NCR53C9x.o cyberstormII.o
-else
-  ifeq ($(CONFIG_CYBERSTORMII_SCSI),m)
-  M_OBJS += NCR53C9x.o cyberstormII.o
-  endif
-endif
-
-ifeq ($(CONFIG_BLZ2060_SCSI),y)
-L_OBJS += NCR53C9x.o blz2060.o
-else
-  ifeq ($(CONFIG_BLZ2060_SCSI),m)
-  M_OBJS += NCR53C9x.o blz2060.o
-  endif
-endif
-
-ifeq ($(CONFIG_BLZ1230_SCSI),y)
-L_OBJS += NCR53C9x.o blz1230.o
-else
-  ifeq ($(CONFIG_BLZ1230_SCSI),m)
-  M_OBJS += NCR53C9x.o blz1230.o
-  endif
-endif
-
-ifeq ($(CONFIG_FASTLANE_SCSI),y)
-L_OBJS += NCR53C9x.o fastlane.o
-else
-  ifeq ($(CONFIG_FASTLANE_SCSI),m)
-  M_OBJS += NCR53C9x.o fastlane.o
-  endif
-endif
-
-ifeq ($(CONFIG_OKTAGON_SCSI),y)
-L_OBJS += NCR53C9x.o oktagon_esp.o oktagon_io.o
-else
-  ifeq ($(CONFIG_OKTAGON_SCSI),m)
-  M_OBJS += NCR53C9x.o oktagon_esp.o oktagon_io.o
-  endif
-endif
-
-ifeq ($(CONFIG_ATARI_SCSI),y)
-L_OBJS += atari_scsi.o
-else
-  ifeq ($(CONFIG_ATARI_SCSI),m)
-  M_OBJS += atari_scsi.o
-  endif
-endif
-
-ifeq ($(CONFIG_MAC_SCSI),y)
-L_OBJS += mac_scsi.o
-else
-  ifeq ($(CONFIG_MAC_SCSI),m)
-  M_OBJS += mac_scsi.o
-  endif
-endif
-
-ifeq ($(CONFIG_SUN3_SCSI),y)
-L_OBJS += sun3_scsi.o
-else
-  ifeq ($(CONFIG_SUN3_SCSI),m)
-  M_OBJS += sun3_scsi.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_MAC_ESP),y)
-L_OBJS += mac_esp.o NCR53C9x.o
-else
-	ifeq ($(CONFIG_SCSI_MAC_ESP),m)
-	M_OBJS += mac_esp.o NCR53C9x.o
-	endif
-endif
-
-ifeq ($(CONFIG_SCSI_PPA),y)
-L_OBJS += ppa.o
-else
-  ifeq ($(CONFIG_SCSI_PPA),m)
-  M_OBJS += ppa.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_IMM),y)
-L_OBJS += imm.o
-else
-  ifeq ($(CONFIG_SCSI_IMM),m)
-  M_OBJS += imm.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_QLOGIC_FAS),y)
-L_OBJS += qlogicfas.o
-else
-  ifeq ($(CONFIG_SCSI_QLOGIC_FAS),m)
-  M_OBJS += qlogicfas.o
-  endif
-endif
-
-
-ifeq ($(CONFIG_SCSI_QLOGIC_ISP),y)
-L_OBJS += qlogicisp.o 
-else
-  ifeq ($(CONFIG_SCSI_QLOGIC_ISP),m)
-  M_OBJS += qlogicisp.o 
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_QLOGIC_1280),y)
-L_OBJS += qla1280.o 
-else
-  ifeq ($(CONFIG_SCSI_QLOGIC_1280),m)
-  M_OBJS += qla1280.o 
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_ACARD),y)
-L_OBJS += atp870u.o
-else
-  ifeq ($(CONFIG_SCSI_ACARD),m)
-  M_OBJS += atp870u.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_INITIO),y)
-L_OBJS += initio.o
-else
-  ifeq ($(CONFIG_SCSI_INITIO),m)
-  M_OBJS += initio.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_INIA100),y)
-L_OBJS += a100u2w.o
-else
-  ifeq ($(CONFIG_SCSI_INIA100),m)
-  M_OBJS += a100u2w.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_QLOGIC_FC),y)
-L_OBJS += qlogicfc.o 
-else
-  ifeq ($(CONFIG_SCSI_QLOGIC_FC),m)   
-  M_OBJS += qlogicfc.o 
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_AHA152X),y)
-L_OBJS += aha152x.o
-else
-  ifeq ($(CONFIG_SCSI_AHA152X),m)
-  M_OBJS += aha152x.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_AHA1542),y)
-L_OBJS += aha1542.o
-else
-  ifeq ($(CONFIG_SCSI_AHA1542),m)
-  M_OBJS += aha1542.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_AHA1740),y)
-L_OBJS += aha1740.o
-else
-  ifeq ($(CONFIG_SCSI_AHA1740),m)
-  M_OBJS += aha1740.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_AIC7XXX),y)
-L_OBJS += aic7xxx.o
-else
-  ifeq ($(CONFIG_SCSI_AIC7XXX),m)
-  M_OBJS += aic7xxx.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_IPS),y)
-L_OBJS += ips.o
-else
-  ifeq ($(CONFIG_SCSI_IPS),m)
-  M_OBJS += ips.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_DC390T),y)
-L_OBJS += tmscsim.o
-else
-  ifeq ($(CONFIG_SCSI_DC390T),m)
-  M_OBJS += tmscsim.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_AM53C974),y)
-L_OBJS += AM53C974.o
-else
-  ifeq ($(CONFIG_SCSI_AM53C974),m)
-  M_OBJS += AM53C974.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_BUSLOGIC),y)
-L_OBJS += BusLogic.o
-else
-  ifeq ($(CONFIG_SCSI_BUSLOGIC),m)
-  M_OBJS += BusLogic.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_EATA_DMA),y)
-L_OBJS += eata_dma.o
-else
-  ifeq ($(CONFIG_SCSI_EATA_DMA),m)
-  M_OBJS += eata_dma.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_EATA_PIO),y)
-L_OBJS += eata_pio.o
-else
-  ifeq ($(CONFIG_SCSI_EATA_PIO),m)
-  M_OBJS += eata_pio.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_U14_34F),y)
-L_OBJS += u14-34f.o
-else
-  ifeq ($(CONFIG_SCSI_U14_34F),m)
-  M_OBJS += u14-34f.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_SUNESP),y)
-L_OBJS += esp.o
-else
-  ifeq ($(CONFIG_SCSI_SUNESP),m)
-  M_OBJS += esp.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_QLOGICPTI),y)
-L_OBJS += qlogicpti.o
-else
-  ifeq ($(CONFIG_SCSI_QLOGICPTI),m)
-  M_OBJS += qlogicpti.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_MESH),y)
-L_OBJS += mesh.o
-else
-  ifeq ($(CONFIG_SCSI_MESH),m)
-  M_OBJS += mesh.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_MAC53C94),y)
-L_OBJS += mac53c94.o
-else
-  ifeq ($(CONFIG_SCSI_MAC53C94),m)
-  M_OBJS += mac53c94.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_GDTH),y)
-L_OBJS += gdth.o
-else
-  ifeq ($(CONFIG_SCSI_GDTH),m)
-  M_OBJS += gdth.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_DEBUG),y)
-L_OBJS += scsi_debug.o
-else
-  ifeq ($(CONFIG_SCSI_DEBUG),m)
-  M_OBJS += scsi_debug.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_FUTURE_DOMAIN),y)
-L_OBJS += fdomain.o
-else
-  ifeq ($(CONFIG_SCSI_FUTURE_DOMAIN),m)
-  M_OBJS += fdomain.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_IN2000),y)
-L_OBJS += in2000.o
-else
-  ifeq ($(CONFIG_SCSI_IN2000),m)
-  M_OBJS += in2000.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_GENERIC_NCR5380),y)
-L_OBJS += g_NCR5380.o
-else
-  ifeq ($(CONFIG_SCSI_GENERIC_NCR5380),m)
-  M_OBJS += g_NCR5380.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_NCR53C7xx),y)
-L_OBJS += 53c7,8xx.o 
-else
-  ifeq ($(CONFIG_SCSI_NCR53C7xx),m)
-  M_OBJS += 53c7,8xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_NCR53C8XX),y)
-L_OBJS += ncr53c8xx.o 
-else
-  ifeq ($(CONFIG_SCSI_NCR53C8XX),m)
-  M_OBJS += ncr53c8xx.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_SYM53C8XX),y)
-L_OBJS += sym53c8xx.o 
-else
-  ifeq ($(CONFIG_SCSI_SYM53C8XX),m)
-  M_OBJS += sym53c8xx.o 
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_PAS16),y)
-L_OBJS += pas16.o
-else
-  ifeq ($(CONFIG_SCSI_PAS16),m)
-  M_OBJS += pas16.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_SEAGATE),y)
-L_OBJS += seagate.o
-else
-  ifeq ($(CONFIG_SCSI_SEAGATE),m)
-  M_OBJS += seagate.o
-  endif
-endif
-ifndef CONFIG_SCSI_SEAGATE
-  ifeq ($(CONFIG_SCSI_FD_8xx),y)
-  L_OBJS += seagate.o
-  else
-    ifeq ($(CONFIG_SCSI_FD_8xx),m)
-    M_OBJS += seagate.o
-    endif
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_7000FASST),y)
-L_OBJS += wd7000.o
-else
-  ifeq ($(CONFIG_SCSI_7000FASST),m)
-  M_OBJS += wd7000.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_IBMMCA),y)
-L_OBJS += ibmmca.o
-else
-  ifeq ($(CONFIG_SCSI_IBMMCA),m)
-  M_OBJS += ibmmca.o
-  endif
-endif
+obj-$(CONFIG_SCSI)		+= scsi_mod.o
+obj-$(CONFIG_CHR_DEV_ST)	+= st.o
+obj-$(CONFIG_BLK_DEV_SD)	+= sd.o
+obj-$(CONFIG_BLK_DEV_SR)	+= sr_mod.o
+obj-$(CONFIG_CHR_DEV_SG)	+= sg.o
+
+obj-$(CONFIG_SCSI_ADVANSYS)	+= advansys.o
+obj-$(CONFIG_SCSI_PCI2000)	+= pci2000.o
+obj-$(CONFIG_SCSI_PCI2220I)	+= pci2220i.o
+obj-$(CONFIG_SCSI_PSI240I)	+= psi240i.o
+obj-$(CONFIG_MVME16x_SCSI)	+= mvme16x.o	53c7xx.o
+obj-$(CONFIG_BVME6000_SCSI)	+= bvme6000.o	53c7xx.o
+obj-$(CONFIG_SCSI_SIM710)	+= sim710.o
+obj-$(CONFIG_A4000T_SCSI)	+= amiga7xx.o	53c7xx.o
+obj-$(CONFIG_A4091_SCSI)	+= amiga7xx.o	53c7xx.o
+obj-$(CONFIG_BLZ603EPLUS_SCSI)	+= amiga7xx.o	53c7xx.o
+obj-$(CONFIG_WARPENGINE_SCSI)	+= amiga7xx.o	53c7xx.o
+obj-$(CONFIG_A3000_SCSI)	+= a3000.o	wd33c93.o
+obj-$(CONFIG_A2091_SCSI)	+= a2091.o	wd33c93.o
+obj-$(CONFIG_GVP11_SCSI)	+= gvp11.o	wd33c93.o
+obj-$(CONFIG_SCSI_SGIWD93)	+= sgiwd93.o	wd33c93.o
+obj-$(CONFIG_SCSI_MCA_53C9X)	+= NCR53C9x.o	mca_53c9x.o
+obj-$(CONFIG_CYBERSTORM_SCSI)	+= NCR53C9x.o	cyberstorm.o
+obj-$(CONFIG_CYBERSTORMII_SCSI)	+= NCR53C9x.o	cyberstormII.o
+obj-$(CONFIG_BLZ2060_SCSI)	+= NCR53C9x.o	blz2060.o
+obj-$(CONFIG_BLZ1230_SCSI)	+= NCR53C9x.o	blz1230.o
+obj-$(CONFIG_FASTLANE_SCSI)	+= NCR53C9x.o	fastlane.o
+obj-$(CONFIG_OKTAGON_SCSI)	+= NCR53C9x.o	oktagon_esp.o	oktagon_io.o
+obj-$(CONFIG_ATARI_SCSI)	+= atari_scsi.o
+obj-$(CONFIG_MAC_SCSI)		+= mac_scsi.o
+obj-$(CONFIG_SUN3_SCSI)		+= sun3_scsi.o
+obj-$(CONFIG_SCSI_MAC_ESP)	+= mac_esp.o	NCR53C9x.o
+obj-$(CONFIG_SCSI_PPA)		+= ppa.o
+obj-$(CONFIG_SCSI_IMM)		+= imm.o
+obj-$(CONFIG_SCSI_QLOGIC_FAS)	+= qlogicfas.o
+obj-$(CONFIG_SCSI_QLOGIC_ISP)	+= qlogicisp.o 
+obj-$(CONFIG_SCSI_QLOGIC_1280)	+= qla1280.o 
+obj-$(CONFIG_SCSI_ACARD)	+= atp870u.o
+obj-$(CONFIG_SCSI_INITIO)	+= initio.o
+obj-$(CONFIG_SCSI_INIA100)	+= a100u2w.o
+obj-$(CONFIG_SCSI_QLOGIC_FC)	+= qlogicfc.o 
+obj-$(CONFIG_SCSI_AHA152X)	+= aha152x.o
+obj-$(CONFIG_SCSI_AHA1542)	+= aha1542.o
+obj-$(CONFIG_SCSI_AHA1740)	+= aha1740.o
+obj-$(CONFIG_SCSI_AIC7XXX)	+= aic7xxx.o
+obj-$(CONFIG_SCSI_IPS)		+= ips.o
+obj-$(CONFIG_SCSI_DC390T)	+= tmscsim.o
+obj-$(CONFIG_SCSI_AM53C974)	+= AM53C974.o
+obj-$(CONFIG_SCSI_BUSLOGIC)	+= BusLogic.o
+obj-$(CONFIG_SCSI_EATA_DMA)	+= eata_dma.o
+obj-$(CONFIG_SCSI_EATA_PIO)	+= eata_pio.o
+obj-$(CONFIG_SCSI_U14_34F)	+= u14-34f.o
+obj-$(CONFIG_SCSI_SUNESP)	+= esp.o
+obj-$(CONFIG_SCSI_QLOGICPTI)	+= qlogicpti.o
+obj-$(CONFIG_SCSI_MESH)		+= mesh.o
+obj-$(CONFIG_SCSI_MAC53C94)	+= mac53c94.o
+obj-$(CONFIG_SCSI_GDTH)		+= gdth.o
+
+obj-$(CONFIG_SCSI_DEBUG)	+= scsi_debug.o
+
+obj-$(CONFIG_SCSI_FUTURE_DOMAIN)+= fdomain.o
+obj-$(CONFIG_SCSI_IN2000)	+= in2000.o
+obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o
+obj-$(CONFIG_SCSI_NCR53C7xx)	+= 53c7,8xx.o 
+obj-$(CONFIG_SCSI_NCR53C8XX)	+= ncr53c8xx.o 
+obj-$(CONFIG_SCSI_SYM53C8XX)	+= sym53c8xx.o 
+obj-$(CONFIG_SCSI_PAS16)	+= pas16.o
+obj-$(CONFIG_SCSI_SEAGATE)	+= seagate.o
+obj-$(CONFIG_SCSI_FD_8xx)	+= seagate.o
+obj-$(CONFIG_SCSI_7000FASST)	+= wd7000.o
+obj-$(CONFIG_SCSI_IBMMCA)	+= ibmmca.o
+obj-$(CONFIG_SCSI_FD_MCS)	+= fd_mcs.o
+obj-$(CONFIG_SCSI_T128)		+= t128.o
+obj-$(CONFIG_SCSI_DMX3191D)	+= dmx3191d.o
+obj-$(CONFIG_SCSI_DTC3280)	+= dtc.o
+obj-$(CONFIG_SCSI_ULTRASTOR)	+= ultrastor.o
+obj-$(CONFIG_SCSI_PLUTO)	+= pluto.o
+obj-$(CONFIG_SCSI_FCAL)		+= fcal.o
+obj-$(CONFIG_SCSI_EATA)		+= eata.o
+obj-$(CONFIG_SCSI_NCR53C406A)	+= NCR53c406a.o
+obj-$(CONFIG_SCSI_MEGARAID)	+= megaraid.o
+obj-$(CONFIG_SCSI_SYM53C416)	+= sym53c416.o
+obj-$(CONFIG_BLK_DEV_IDESCSI)	+= ide-scsi.o
+obj-$(CONFIG_JAZZ_ESP)		+= NCR53C9x.o	jazz_esp.o
+obj-$(CONFIG_SCSI_DECNCR)	+= NCR53C9x.o	dec_esp.o
+obj-$(CONFIG_SUN3X_ESP)		+= NCR53C9x.o	sun3x_esp.o
+obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o
+
+scsi_mod-objs	:= hosts.o scsi.o scsi_ioctl.o constants.o \
+			scsicam.o scsi_proc.o scsi_error.o \
+			scsi_obsolete.o scsi_queue.o scsi_lib.o \
+			scsi_merge.o scsi_dma.o scsi_scan.o \
+			scsi_syms.o
+sr_mod-objs	:= sr.o sr_ioctl.o sr_vendor.o
+initio-objs	:= ini9100u.o i91uscsi.o
+a100u2w-objs	:= inia100.o i60uscsi.o
+
+# Extract lists of the multi-part drivers.
+# The 'int-*' lists are the intermediate files used to build the multi's.
+multi-y		:= $(filter $(list-multi), $(obj-y))
+multi-m		:= $(filter $(list-multi), $(obj-m))
+int-y		:= $(sort $(foreach m, $(multi-y), $($(basename $(m))-objs)))
+int-m		:= $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs)))
+
+# Files that are both resident and modular: remove from modular.
+obj-m		:= $(filter-out	$(obj-y), $(obj-m))
+int-m		:= $(filter-out	$(int-y), $(int-m))
+
+# Take multi-part drivers out of obj-y and put components in.
+obj-y		:= $(filter-out	$(list-multi), $(obj-y)) $(int-y)
+
+O_OBJS		:= $(filter-out	$(export-objs), $(obj-y))
+OX_OBJS		:= $(filter	$(export-objs), $(obj-y))
+M_OBJS		:= $(sort $(filter-out	$(export-objs), $(obj-m)))
+MX_OBJS		:= $(sort $(filter	$(export-objs), $(obj-m)))
+MI_OBJS		:= $(sort $(filter-out	$(export-objs), $(int-m)))
+MIX_OBJS	:= $(sort $(filter	$(export-objs), $(int-m)))
 
-ifeq ($(CONFIG_SCSI_FD_MCS),y)
-L_OBJS += fd_mcs.o
-else
-  ifeq ($(CONFIG_SCSI_FD_MCS),m)
-  M_OBJS += fd_mcs.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_T128),y)
-L_OBJS += t128.o
-else
-  ifeq ($(CONFIG_SCSI_T128),m)
-  M_OBJS += t128.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_DMX3191D),y)
-L_OBJS += dmx3191d.o
-else
-  ifeq ($(CONFIG_SCSI_DMX3191D),m)
-  M_OBJS += dmx3191d.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_DTC3280),y)
-L_OBJS += dtc.o
-else
-  ifeq ($(CONFIG_SCSI_DTC3280),m)
-  M_OBJS += dtc.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_ULTRASTOR),y)
-L_OBJS += ultrastor.o
-else
-  ifeq ($(CONFIG_SCSI_ULTRASTOR),m)
-  M_OBJS += ultrastor.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_PLUTO),y)
-L_OBJS += pluto.o
-else
-  ifeq ($(CONFIG_SCSI_PLUTO),m)
-  M_OBJS += pluto.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_FCAL),y)
-L_OBJS += fcal.o
-else
-  ifeq ($(CONFIG_SCSI_FCAL),m)
-  M_OBJS += fcal.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_EATA),y)
-L_OBJS += eata.o
-else
-  ifeq ($(CONFIG_SCSI_EATA),m)
-  M_OBJS += eata.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_NCR53C406A),y)
-L_OBJS += NCR53c406a.o
-else
-  ifeq ($(CONFIG_SCSI_NCR53C406A),m)
-  M_OBJS += NCR53c406a.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_MEGARAID),y)
-L_OBJS += megaraid.o
-else
-  ifeq ($(CONFIG_SCSI_MEGARAID),m)
-  M_OBJS += megaraid.o
-  endif
-endif
-
-ifeq ($(CONFIG_SCSI_SYM53C416),y)
-L_OBJS += sym53c416.o
-else
-  ifeq ($(CONFIG_SCSI_SYM53C416),m)
-  M_OBJS += sym53c416.o
-  endif
-endif
+include $(TOPDIR)/Rules.make
 
-ifeq ($(CONFIG_BLK_DEV_IDESCSI),y)
-L_OBJS += ide-scsi.o
-else
-  ifeq ($(CONFIG_BLK_DEV_IDESCSI),m)
-  M_OBJS += ide-scsi.o
-  endif
-endif
 
-ifeq ($(CONFIG_JAZZ_ESP),y)
-L_OBJS += NCR53C9x.o jazz_esp.o
-endif
+scsi_mod.o: $(scsi_mod-objs)
+	$(LD) -r -o $@ $(scsi_mod-objs)
 
-ifeq ($(CONFIG_SCSI_DECNCR),y)
-L_OBJS += NCR53C9x.o dec_esp.o
-endif
+sr_mod.o: $(sr_mod-objs)
+	$(LD) -r -o $@ $(sr_mod-objs)
 
-ifeq ($(CONFIG_SUN3X_ESP),y)
-L_OBJS += NCR53C9x.o sun3x_esp.o
-endif
+initio.o: $(initio-objs)
+	$(LD) -r -o $@ $(initio-objs)
 
-ifeq ($(CONFIG_BLK_DEV_3W_XXXX_RAID),y)
-L_OBJS += 3w-xxxx.o
-else
-  ifeq ($(CONFIG_BLK_DEV_3W_XXXX_RAID),m)
-  M_OBJS += 3w-xxxx.o
-  endif
-endif
+a100u2w.o: $(a100u2w-objs)
+	$(LD) -r -o $@ $(a100u2w-objs)
 
-include $(TOPDIR)/Rules.make
 
 53c8xx_d.h: 53c7,8xx.scr script_asm.pl
 	ln -sf 53c7,8xx.scr fake8.c
@@ -745,23 +193,3 @@
 sim710_u.h: sim710_d.h
 
 sim710.o : sim710_d.h
- 
-initio.o: ini9100u.o i91uscsi.o
-	$(LD) -r -o initio.o ini9100u.o i91uscsi.o
-
-a100u2w.o: inia100.o i60uscsi.o
-	$(LD) -r -o a100u2w.o inia100.o i60uscsi.o
-
-scsi_mod.o: $(MIX_OBJS) hosts.o scsi.o scsi_ioctl.o constants.o \
-		scsicam.o scsi_proc.o scsi_error.o scsi_obsolete.o \
-		scsi_queue.o scsi_lib.o scsi_merge.o scsi_dma.o scsi_scan.o
-	$(LD) $(LD_RFLAG) -r -o $@ $(MIX_OBJS) hosts.o scsi.o scsi_ioctl.o \
-		constants.o scsicam.o scsi_proc.o scsi_merge.o     \
-		scsi_error.o scsi_obsolete.o scsi_queue.o scsi_lib.o \
-		scsi_dma.o scsi_scan.o
-
-sr_mod.o: sr.o sr_ioctl.o sr_vendor.o
-	$(LD) $(LD_RFLAG) -r -o $@ sr.o sr_ioctl.o sr_vendor.o
-
-sd_mod.o: sd.o
-	$(LD) $(LD_RFLAG) -r -o $@ sd.o

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)