patch-2.4.0-test9 linux/fs/Makefile

Next file: linux/fs/adfs/adfs.h
Previous file: linux/fs/Config.in
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test8/linux/fs/Makefile linux/fs/Makefile
@@ -1,348 +1,91 @@
 #
 # Makefile for the Linux filesystems.
 #
-# 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 (not a .c file).
-#
-# Note 2! The CFLAGS definitions are now in the main makefile.
+# 14 Sep 2000, Christoph Hellwig <hch@caldera.de>
+# Rewritten to use lists instead of if-statements.
+# 
 
-FILESYSTEMS = $(join $(SUB_DIRS),$(SUB_DIRS:%=/%.o))
 O_TARGET := fs.o
-O_OBJS    = open.o read_write.o devices.o file_table.o buffer.o \
+
+export-objs :=	filesystems.o
+mod-subdirs :=	nls
+
+obj-y :=	open.o read_write.o devices.o file_table.o buffer.o \
 		super.o  block_dev.o stat.o exec.o pipe.o namei.o fcntl.o \
 		ioctl.o readdir.o select.o fifo.o locks.o \
-		dcache.o inode.o attr.o bad_inode.o file.o iobuf.o \
-		$(BINFMTS) $(FILESYSTEMS)
-OX_OBJS := filesystems.o
-
-ALL_SUB_DIRS := coda minix ext2 fat msdos vfat proc isofs nfs umsdos ntfs \
-		hpfs sysv smbfs ncpfs ufs efs affs romfs autofs hfs lockd \
-		nfsd nls devpts devfs adfs partitions qnx4 udf bfs cramfs \
-		openpromfs autofs4 ramfs jffs
-
-SUB_DIRS :=
+		dcache.o inode.o attr.o bad_inode.o file.o iobuf.o dnotify.o \
+		filesystems.o
 
 ifeq ($(CONFIG_QUOTA),y)
-O_OBJS += dquot.o
+obj-y += dquot.o
 else
-O_OBJS += noquot.o
-endif
-
-ifdef CONFIG_PROC_FS
-SUB_DIRS += proc
+obj-y += noquot.o
 endif
 
-SUB_DIRS += partitions
+subdir-$(CONFIG_PROC_FS)	+= proc
+subdir-y			+= partitions
 
 # Do not add any filesystems before this line
+subdir-$(CONFIG_EXT2_FS)	+= ext2
+subdir-$(CONFIG_CRAMFS)		+= cramfs
+subdir-$(CONFIG_RAMFS)		+= ramfs
+subdir-$(CONFIG_CODA_FS)	+= coda
+subdir-$(CONFIG_MINIX_FS)	+= minix
+subdir-$(CONFIG_FAT_FS)		+= fat
+subdir-$(CONFIG_MSDOS_FS)	+= msdos
+subdir-$(CONFIG_VFAT_FS)	+= vfat
+subdir-$(CONFIG_BFS_FS)		+= bfs
+subdir-$(CONFIG_ISO9660_FS)	+= isofs
+subdir-$(CONFIG_DEVFS_FS)	+= devfs
+subdir-$(CONFIG_HFS_FS)		+= hfs
+subdir-$(CONFIG_NFS_FS)		+= nfs
+subdir-$(CONFIG_NFSD)		+= nfsd
+subdir-$(CONFIG_LOCKD)		+= lockd
+subdir-$(CONFIG_NLS)		+= nls
+subdir-$(CONFIG_UMSDOS_FS)	+= umsdos
+subdir-$(CONFIG_SYSV_FS)	+= sysv
+subdir-$(CONFIG_SMB_FS)		+= smbfs
+subdir-$(CONFIG_NCP_FS)		+= ncpfs
+subdir-$(CONFIG_HPFS_FS)	+= hpfs
+subdir-$(CONFIG_NTFS_FS)	+= ntfs
+subdir-$(CONFIG_UFS_FS)		+= ufs
+subdir-$(CONFIG_EFS_FS)		+= efs
+subdir-$(CONFIG_JFFS_FS)	+= jffs
+subdir-$(CONFIG_AFFS_FS)	+= affs
+subdir-$(CONFIG_ROMFS_FS)	+= romfs
+subdir-$(CONFIG_QNX4FS_FS)	+= qnx4
+subdir-$(CONFIG_UDF_FS)		+= udf
+subdir-$(CONFIG_AUTOFS_FS)	+= autofs
+subdir-$(CONFIG_AUTOFS4_FS)	+= autofs4
+subdir-$(CONFIG_ADFS_FS)	+= adfs
+subdir-$(CONFIG_DEVPTS_FS)	+= devpts
+subdir-$(CONFIG_SUN_OPENPROMFS)	+= openpromfs
+
+
+obj-$(CONFIG_BINFMT_AOUT)	+= binfmt_aout.o
+obj-$(CONFIG_BINFMT_EM86)	+= binfmt_em86.o
+obj-$(CONFIG_BINFMT_MISC)	+= binfmt_misc.o
 
-ifeq ($(CONFIG_EXT2_FS),y)
-SUB_DIRS += ext2
-else
-  ifeq ($(CONFIG_EXT2_FS),m)
-  MOD_SUB_DIRS += ext2
-  endif
-endif
-
-ifeq ($(CONFIG_CRAMFS),y)
-SUB_DIRS += cramfs
-else
-  ifeq ($(CONFIG_CRAMFS),m)
-  MOD_SUB_DIRS += cramfs
-  endif
-endif
-
-ifeq ($(CONFIG_RAMFS),y)
-SUB_DIRS += ramfs
-else
-  ifeq ($(CONFIG_RAMFS),m)
-  MOD_SUB_DIRS += ramfs
-  endif
-endif
-
-ifeq ($(CONFIG_CODA_FS),y)
-SUB_DIRS += coda
-else
-  ifeq ($(CONFIG_CODA_FS),m)
-  MOD_SUB_DIRS += coda
-  endif
-endif
-
-ifeq ($(CONFIG_MINIX_FS),y)
-SUB_DIRS += minix
-else
-  ifeq ($(CONFIG_MINIX_FS),m)
-  MOD_SUB_DIRS += minix
-  endif
-endif
-
-ifeq ($(CONFIG_FAT_FS),y)
-SUB_DIRS += fat
-else
-  ifeq ($(CONFIG_FAT_FS),m)
-  MOD_SUB_DIRS += fat
-  endif
-endif
-
-ifeq ($(CONFIG_MSDOS_FS),y)
-SUB_DIRS += msdos
-else
-  ifeq ($(CONFIG_MSDOS_FS),m)
-  MOD_SUB_DIRS += msdos
-  endif
-endif
-
-ifeq ($(CONFIG_VFAT_FS),y)
-SUB_DIRS += vfat
-else
-  ifeq ($(CONFIG_VFAT_FS),m)
-  MOD_SUB_DIRS += vfat
-  endif
-endif
-
-ifeq ($(CONFIG_BFS_FS),y)
-SUB_DIRS += bfs
-else
-  ifeq ($(CONFIG_BFS_FS),m)
-  MOD_SUB_DIRS += bfs
-  endif
-endif
- 
-ifeq ($(CONFIG_ISO9660_FS),y)
-SUB_DIRS += isofs
-else
-  ifeq ($(CONFIG_ISO9660_FS),m)
-  MOD_SUB_DIRS += isofs
-  endif
-endif
-
-ifdef CONFIG_DEVFS_FS
-SUB_DIRS += devfs
-endif
-
-ifeq ($(CONFIG_HFS_FS),y)
-SUB_DIRS += hfs
-else
-  ifeq ($(CONFIG_HFS_FS),m)
-  MOD_SUB_DIRS += hfs
-  endif
-endif
-
-ifeq ($(CONFIG_NFS_FS),y)
-SUB_DIRS += nfs
-else
-  ifeq ($(CONFIG_NFS_FS),m)
-  MOD_SUB_DIRS += nfs
-  endif
-endif
-
-ifeq ($(CONFIG_NFSD),y)
-CONFIG_LOCKD := y
-SUB_DIRS += nfsd
-else
-  ifeq ($(CONFIG_NFSD),m)
-  MOD_SUB_DIRS += nfsd
-  endif
-endif
-
-ifeq ($(CONFIG_LOCKD),y)
-SUB_DIRS += lockd
-else
-  ifeq ($(CONFIG_LOCKD),m)
-  MOD_SUB_DIRS := lockd $(MOD_SUB_DIRS)
-  endif
-endif
-
-# Since CONFIG_NLS might be set to y while there are modules
-# to be build in the nls/ directory, we need to enter the nls
-# directory every time, but with different rules.
-ifeq ($(CONFIG_NLS),y)
-SUB_DIRS += nls
-MOD_IN_SUB_DIRS += nls
-else
-  ifeq ($(CONFIG_NLS),m)
-  MOD_SUB_DIRS += nls
-  endif
-endif
-
-ifeq ($(CONFIG_UMSDOS_FS),y)
-SUB_DIRS += umsdos
-else
-  ifeq ($(CONFIG_UMSDOS_FS),m)
-  MOD_SUB_DIRS += umsdos
-  endif
-endif
-
-ifeq ($(CONFIG_SYSV_FS),y)
-SUB_DIRS += sysv
-else
-  ifeq ($(CONFIG_SYSV_FS),m)
-  MOD_SUB_DIRS += sysv
-  endif
-endif
-
-ifeq ($(CONFIG_SMB_FS),y)
-SUB_DIRS += smbfs
-else
-  ifeq ($(CONFIG_SMB_FS),m)
-  MOD_SUB_DIRS += smbfs
-  endif
-endif
-
-ifeq ($(CONFIG_NCP_FS),y)
-SUB_DIRS += ncpfs
-else
-  ifeq ($(CONFIG_NCP_FS),m)
-  MOD_SUB_DIRS += ncpfs
-  endif
-endif
-
-ifeq ($(CONFIG_HPFS_FS),y)
-SUB_DIRS += hpfs
-else
-  ifeq ($(CONFIG_HPFS_FS),m)
-  MOD_SUB_DIRS += hpfs
-  endif
-endif
-
-ifeq ($(CONFIG_NTFS_FS),y)
-SUB_DIRS += ntfs
-else
-  ifeq ($(CONFIG_NTFS_FS),m)
-  MOD_SUB_DIRS += ntfs
-  endif
-endif
-
-ifeq ($(CONFIG_UFS_FS),y)
-SUB_DIRS += ufs
-else
-  ifeq ($(CONFIG_UFS_FS),m)
-  MOD_SUB_DIRS += ufs
-  endif
-endif
-
-ifeq ($(CONFIG_EFS_FS),y)
-SUB_DIRS += efs
-else
-  ifeq ($(CONFIG_EFS_FS),m)
-  MOD_SUB_DIRS += efs
-  endif
-endif
-
-ifeq ($(CONFIG_JFFS_FS),y)
-SUB_DIRS += jffs
-else
-  ifeq ($(CONFIG_JFFS_FS),m)
-  MOD_SUB_DIRS += jffs
-  endif
-endif
-
-ifeq ($(CONFIG_AFFS_FS),y)
-SUB_DIRS += affs
-else
-  ifeq ($(CONFIG_AFFS_FS),m)
-  MOD_SUB_DIRS += affs
-  endif
-endif
-
-ifeq ($(CONFIG_ROMFS_FS),y)
-SUB_DIRS += romfs
-else
-  ifeq ($(CONFIG_ROMFS_FS),m)
-  MOD_SUB_DIRS += romfs
-  endif
-endif
-
-ifeq ($(CONFIG_QNX4FS_FS),y)
-SUB_DIRS += qnx4
-else
-  ifeq ($(CONFIG_QNX4FS_FS),m)
-  MOD_SUB_DIRS += qnx4
-  endif
-endif
-
-ifeq ($(CONFIG_UDF_FS),y)
-SUB_DIRS += udf
-else
-  ifeq ($(CONFIG_UDF_FS),m)
-  MOD_SUB_DIRS += udf
-  endif
-endif
-
-ifeq ($(CONFIG_AUTOFS_FS),y)
-SUB_DIRS += autofs
-else
-  ifeq ($(CONFIG_AUTOFS_FS),m)
-  MOD_SUB_DIRS += autofs
-  endif
-endif
-
-ifeq ($(CONFIG_AUTOFS4_FS),y)
-SUB_DIRS += autofs4
-else
-  ifeq ($(CONFIG_AUTOFS4_FS),m)
-  MOD_SUB_DIRS += autofs4
-  endif
-endif
-
-ifeq ($(CONFIG_ADFS_FS),y)
-SUB_DIRS += adfs
-else
-  ifeq ($(CONFIG_ADFS_FS),m)
-  MOD_SUB_DIRS += adfs
-  endif
-endif
-
-ifeq ($(CONFIG_DEVPTS_FS),y)
-SUB_DIRS += devpts
-else
-  ifeq ($(CONFIG_DEVPTS_FS),m)
-  MOD_SUB_DIRS += devpts
-  endif
-endif
+# binfmt_script is always there
+obj-y				+= binfmt_script.o
 
-ifeq ($(CONFIG_SUN_OPENPROMFS),y)
-SUB_DIRS += openpromfs
-else
-  ifeq ($(CONFIG_SUN_OPENPROMFS),m)
-  MOD_SUB_DIRS += openpromfs
-  endif
-endif
+obj-$(CONFIG_BINFMT_ELF)	+= binfmt_elf.o
 
-ifeq ($(CONFIG_BINFMT_AOUT),y)
-BINFMTS += binfmt_aout.o
-else
-  ifeq ($(CONFIG_BINFMT_AOUT),m)
-  M_OBJS += binfmt_aout.o
-  endif
-endif
+# persistent filesystems
+obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
 
-ifeq ($(CONFIG_BINFMT_EM86),y)
-BINFMTS += binfmt_em86.o
-else
-  ifeq ($(CONFIG_BINFMT_EM86),m)
-  M_OBJS += binfmt_em86.o
-  endif
-endif
 
-ifeq ($(CONFIG_BINFMT_MISC),y)
-BINFMTS += binfmt_misc.o
-else
-  ifeq ($(CONFIG_BINFMT_MISC),m)
-  M_OBJS += binfmt_misc.o
-  endif
-endif
+# Subdirectories that should be entered when MAKING_MODULES=1, even if set to 'y'.
+both-m		:= $(filter $(mod-subdirs), $(subdir-y))
 
-# binfmt_script is always there
-BINFMTS += binfmt_script.o
+# Translate to Rules.make lists.
+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)))
 
-ifeq ($(CONFIG_BINFMT_ELF),y)
-BINFMTS += binfmt_elf.o
-else
-  ifeq ($(CONFIG_BINFMT_ELF),m)
-  M_OBJS += binfmt_elf.o
-  endif
-endif
+SUB_DIRS	:= $(subdir-y)
+MOD_SUB_DIRS	:= $(sort $(subdir-m) $(both-m))
+ALL_SUB_DIRS 	:= $(sort $(subdir-y) $(subdir-m) $(subdir-n) $(subdir-))
 
 include $(TOPDIR)/Rules.make

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