#----------------------------------------------------------
# $Source: /home/CVSMCF/prj_pr5800-firm/src/romfs/Makefile,v $
#----------------------------------------------------------

all : check romfs_dirs device_files input_devices

.PHONY : all check romfs_dirs device_files

#------------------------------------------------
# this rule checks parameter ROMFSDIR is given
#------------------------------------------------
check:
	@test -n "$(ROMFSDIR)" || (echo "ROMFSDIR not given" && exit 1)
	@echo "checked ROMFSDIR=$(ROMFSDIR)"

ROMFS_DIRS-i386-linux = var/run var/log
ROMFS_DIRS-HAVELEVELING-y = opt/images/leveling opt/images/leveling/sw
ROMFS_DIRS = \
	bin \
	boot \
	dev dev/input\
	etc \
	opt opt/fnt opt/app opt/maps opt/po opt/bin \
	$(ROMFS_DIRS-HAVELEVELING-$(HAVELEVELING)) \
	home \
	lib \
	mnt \
	proc \
	tmp \
	usr \
	sys \
	var \
	$(ROMFS_DIRS-$(TARGET))

DEVICES = \
	tty,c,5,0	console,c,5,1	cua0,c,5,64	cua1,c,5,65 \
	mem,c,1,1	kmem,c,1,2	null,c,1,3	zero,c,1,5 \
	\
	random,c,1,8	urandom,c,1,9 \
	\
	ram0,b,1,0	ram1,b,1,1	ram2,b,1,2	ram3,b,1,3 \
	\
	ptyp0,c,2,0 	ptyp1,c,2,1 	ptyp2,c,2,2 	ptyp3,c,2,3 \
	ptyp4,c,2,4 	ptyp5,c,2,5 	ptyp6,c,2,6 	ptyp7,c,2,7 \
	ptyp8,c,2,8 	ptyp9,c,2,9 	ptypa,c,2,10	ptypb,c,2,11 \
	ptypc,c,2,12	ptypd,c,2,13	ptype,c,2,14	ptypf,c,2,15 \
	ptyq0,c,2,16	ptyq1,c,2,17	ptyq2,c,2,18	ptyq3,c,2,19 \
	ptyq4,c,2,20	ptyq5,c,2,21	ptyq6,c,2,22	ptyq7,c,2,23 \
	ptyq8,c,2,24	ptyq9,c,2,25	ptyqa,c,2,26	ptyqb,c,2,27 \
	ptyqc,c,2,28	ptyqd,c,2,29	ptyqe,c,2,30	ptyqf,c,2,31 \
	\
	ttyp0,c,3,0 	ttyp1,c,3,1 	ttyp2,c,3,2 	ttyp3,c,3,3 \
	ttyp4,c,3,4 	ttyp5,c,3,5 	ttyp6,c,3,6 	ttyp7,c,3,7 \
	ttyp8,c,3,8 	ttyp9,c,3,9 	ttypa,c,3,10	ttypb,c,3,11 \
	ttypc,c,3,12	ttypd,c,3,13	ttype,c,3,14	ttypf,c,3,15 \
	ttyq0,c,3,16	ttyq1,c,3,17	ttyq2,c,3,18	ttyq3,c,3,19 \
	ttyq4,c,3,20	ttyq5,c,3,21	ttyq6,c,3,22	ttyq7,c,3,23 \
	ttyq8,c,3,24	ttyq9,c,3,25	ttyqa,c,3,26	ttyqb,c,3,27 \
	ttyqc,c,3,28	ttyqd,c,3,29	ttyqe,c,3,30	ttyqf,c,3,31 \
	\
	tty0,c,4,0	tty1,c,4,1	tty2,c,4,2	tty3,c,4,3 \
	tty4,c,4,4 \
	ttyS0,c,4,64	ttyS1,c,4,65	ttyS2,c,4,66 \
	ttyS3,c,4,67	ttyS4,c,4,68	ttyS5,c,4,69	ttyS6,c,4,70 \
	ttyS7,c,4,71	ttyS8,c,4,72 \
	\
	mmcblk0,b,254,0 mmcblk0p1,b,254,1 mmcblk0p2,b,254,2 mmcblk0p3,b,254,3 \
	mmcblk0p4,b,254,4 \
	\
	mtd0,c,90,0    mtd1,c,90,2        mtd2,c,90,4      mtd3,c,90,6 \
	mtd4,c,90,8    mtd5,c,90,10       mtd6,c,90,12     mtd7,c,90,14 \
	mtdblock0,b,31,0 mtdblock1,b,31,1 mtdblock2,b,31,2 mtdblock3,b,31,3 \
	mtdblock4,b,31,4 mtdblock5,b,31,5 mtdblock6,b,31,6 mtdblock7,b,31,7 \
	\
	i2c0,c,89,0	i2c1,c,89,1	i2c2,c,89,2	i2c3,c,89,3 \
	\
	qspi0,c,126,0  qspi1,c,126,1  qspi2,c,126,2  qspi3,c,126,3 \
	qspi4,c,126,4  qspi5,c,126,5  qspi6,c,126,6  qspi7,c,126,7 \
	qspi8,c,126,8  qspi9,c,126,9  qspia,c,126,10  qspib,c,126,11  \
	qspic,c,126,12  qspid,c,126,13  qspie,c,126,14  qspif,c,126,15\
	\
	watchdog,c,10,130 \
	beep,c,10,128 \
	boot,c,10,129 \
	can0,c,91,0


INPUT_DEVICES = event0,c,13,64 keyb0,c,10,240 keyboard,c,10,150

romfs_dirs : $(addprefix $(ROMFSDIR)/,$(ROMFS_DIRS))

$(addprefix $(ROMFSDIR)/,$(ROMFS_DIRS)):
	@mkdir -vp $@

device_files : $(addprefix $(ROMFSDIR)/dev/@,$(DEVICES))

input_devices: $(addprefix $(ROMFSDIR)/dev/input/@,$(INPUT_DEVICES))

$(addprefix $(ROMFSDIR)/dev/@,$(DEVICES)) :
	touch $@

$(addprefix $(ROMFSDIR)/dev/input/@,$(INPUT_DEVICES)):
	touch $@

SEARCH_DIRS-HAVELEVELING-y = opt
SEARCH_DIRS = etc bin \
	$(SEARCH_DIRS-HAVELEVELING-$(HAVELEVELING))
 
FILES_TO_BE_INSTALLED := $(shell find $(SEARCH_DIRS) -type f ! -path "*/.svn*" ! -name "*~")
#$(warning FILES_TO_BE_INSTALLED=$(FILES_TO_BE_INSTALLED))
#$(error stop)

romfs_files: $(addprefix $(ROMFSDIR)/,$(FILES_TO_BE_INSTALLED))

define copy_rule
$(ROMFSDIR)/$1 : $1
	@cp -v $1 $(ROMFSDIR)/$1
endef

$(foreach file,$(FILES_TO_BE_INSTALLED),$(eval $(call copy_rule,$(file))))

install: check romfs_files
	ln -sf /var/dev/log $(ROMFSDIR)/dev/log
	if [ "$$(find $(ROMFSDIR) -name '.svn')" != "" ] ; then echo "SVN in ROMFS" ; exit 1 ; fi
	if [ "$$(find $(ROMFSDIR) -name '*~')" != "" ] ; then echo "~ in ROMFS" ; exit 1 ; fi

clean:	check
	echo "Removing ROMFSDIR $(ROMFSDIR)"
	rm -rf $(ROMFSDIR)

