#
# Makefile for the kernel block device drivers.
#
# 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).
#
# Note 2! The CFLAGS definition is now inherited from the
# parent makefile.
#

.c.s:
	$(CC) $(CFLAGS) -S $<
.s.o:
	$(AS) -c -o $*.o $<
.c.o:
	$(CC) $(CFLAGS) -c $<

#
# Note : at this point, these files are compiled on all systems. 
# In the future, some of these should be built conditionally.
#

OBJS := ll_rw_blk.o genhd.o loop.o
SRCS := ll_rw_blk.c genhd.c loop.c

ifdef CONFIG_RAMDISK
ifeq ($(CONFIG_RAMDISK),CONFIG_RAMDISK)
OBJS := $(OBJS) ramdisk.o
else
LOADOBJS := $(LOADOBJS) ramdisk.o
endif
SRCS := $(SRCS) ramdisk.c
endif

ifdef CONFIG_FLOPPY
ifeq ($(CONFIG_FLOPPY),CONFIG_FLOPPY)
OBJS := $(OBJS) floppy.o
else
LOADOBJS := $(LOADOBJS) floppy.o
endif
SRCS := $(SRCS) floppy.c
endif

ifdef CONFIG_CDU31A
ifeq ($(CONFIG_CDU31A),CONFIG_CDU31A)
OBJS := $(OBJS) cdu31a.o
else
LOADOBJS := $(LOADOBJS) cdu31a.o
endif
SRCS := $(SRCS) cdu31a.c
endif

ifdef CONFIG_PANASONIC
ifeq ($(CONFIG_PANASONIC),CONFIG_PANASONIC)
OBJS := $(OBJS) panasonic.o
else
LOADOBJS := $(LOADOBJS) panasonic.o
endif
SRCS := $(SRCS) panasonic.c
endif

ifdef CONFIG_CDU535
ifeq ($(CONFIG_CDU535),CONFIG_CDU535)
OBJS := $(OBJS) cdu535.o
else
LOADOBJS := $(LOADOBJS) cdu535.o
endif
SRCS := $(SRCS) cdu535.c
endif

ifdef CONFIG_MCD
ifeq ($(CONFIG_MCD),CONFIG_MCD)
OBJS := $(OBJS) mcd.o
else
LOADOBJS := $(LOADOBJS) mcd.o
endif
SRCS := $(SRCS) mcd.c
endif

ifdef CONFIG_BLK_DEV_HD
ifeq ($(CONFIG_BLK_DEV_HD),CONFIG_BLK_DEV_HD)
OBJS := $(OBJS) hd.o
else
LOADOBJS := $(LOADOBJS) hd.o
endif
SRCS := $(SRCS) hd.c
endif

ifdef CONFIG_BLK_DEV_XD
ifeq ($(CONFIG_BLK_DEV_XD),CONFIG_BLK_DEV_XD)
OBJS := $(OBJS) xd.o
else
LOADOBJS := $(LOADOBJS) xd.o
endif
SRCS := $(SRCS) xd.c
endif

ifdef CONFIG_DOUBLE
ifeq ($(CONFIG_DOUBLE),CONFIG_DOUBLE)
#OBJS := $(OBJS) lzw.o double.o dbtools.o
OBJS := $(OBJS) lzw.o lzrw2.o lzrw3-a.o pred.o double.o dbtools.o dbsuper.o
else
#LOADOBJS := $(LOADOBJS) lzw.o double.o dbtools.o
LOADOBJS := $(LOADOBJS) lzw.o lzrw2.o lzrw3-a.o pred.o double.o dbtools.o dbsuper.o
endif
SRCS := $(SRCS) lzw.c lzrw2.c lzrw3-a.c pred.c double.c dbtools.c dbsuper.c
endif

ifdef CONFIG_LMSCD
ifeq ($(CONFIG_LMSCD),CONFIG_LMSCD)
OBJS := $(OBJS) lmscd.o
else
LOADOBJS := $(LOADOBJS) lmscd.o
endif
SRCS := $(SRCS) lmscd.c
endif

ifdef CONFIG_SBPCD
ifdef PATCHLEVEL
CFLAGS := $(CFLAGS) -DPATCHLEVEL=$(PATCHLEVEL) 
endif
ifeq ($(CONFIG_SBPCD),CONFIG_SBPCD)
OBJS := $(OBJS) sbpcd.o
else
LOADOBJS := $(LOADOBJS) sbpcd.o
endif
SRCS := $(SRCS) sbpcd.c
endif

ifdef PATCHLEVEL
CFLAGS := $(CFLAGS) -DPATCHLEVEL=$(PATCHLEVEL) 
endif
all: block.a dble.o

dble.o:	lzw.o double.o dbtools.o
	ld -r -o dble.o lzw.o double.o dbtools.o

block.a: $(OBJS) $(LOADOBJS)
	rm -f block.a
	$(AR) rcs block.a $(OBJS)
	sync

dep:
	$(CPP) -M $(SRCS) > .depend

dummy:

#
# include a dependency file if one exists
#
ifeq (.depend,$(wildcard .depend))
include .depend
endif
