#
# Makefile -- Build instructions for SM2010, Weiss-Electronic
#

ROMFSIMG = $(IMAGEDIR)/romfs.img
IMAGE    = $(IMAGEDIR)/sm2010.rom

ROMFS_DIRS = bin dev etc home lib mnt proc usr var

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       ram0,b,1,0 \
	\
	ram1,b,1,1 \
	\
	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 \
	\
	rom0,b,31,0    rom1,b,31,1        rom2,b,31,2      rom3,b,31,3 \
	rom4,b,31,4    rom5,b,31,5        rom6,b,31,6      rom7,b,31,7 \
	rom8,b,31,8    rom9,b,31,9 \
	\
	tty0,c,4,0     tty1,c,4,1         tty2,c,4,2       tty3,c,4,3 \
	ttyS0,c,4,64   ttyS1,c,4,65 \
	ttyS2,c,4,66   ttyS3,c,4,67 \
	ttyS4,c,4,68   ttyS5,c,4,69 \
	\
	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 \
	\
	zero,c,1,5     random,c,1,8       urandom,c,1,9 \
	\
	modem,c,24,64 \
	cuam,c,25,64 \
	fb0,c,29,0 \
	ts,c,10,9

clean:

romfs:
	[ -d $(ROMFSDIR)/$$i ] || mkdir -p $(ROMFSDIR)
	for i in $(ROMFS_DIRS); do \
		[ -d $(ROMFSDIR)/$$i ] || mkdir -p $(ROMFSDIR)/$$i; \
	done
	for i in $(DEVICES); do \
		touch $(ROMFSDIR)/dev/@$$i; \
	done
	# these permissions are needed for openpty and family to work
	# on non-ptmx ptys
	chmod 620 $(ROMFSDIR)/dev/@[pt]ty[pqrsPQRS][0-9a-f],*
	$(ROMFSINST) -s /var/tmp /tmp
	$(ROMFSINST) /etc/rc
	$(ROMFSINST) /etc/inittab
	$(ROMFSINST) /etc/services
	$(ROMFSINST) /etc/inetd.conf
#webpage:
#	$(ROMFSINST) /home/httpd/wlogo.gif
#	$(ROMFSINST) /home/httpd/sm2010.jpeg
	case "$(LINUXDIR)" in \
	*2.4.*) ;; \
	*) echo "ttyS0:linux:/bin/sh" >> $(ROMFSDIR)/etc/inittab ;; \
	esac
	$(ROMFSINST) /etc/motd

image:
	#overwrite index.html
	$(ROMFSINST) /home/httpd/index.html
	[ -d $(IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
	genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)
	$(CROSS_COMPILE)objcopy -O binary -j .text $(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.text
	$(CROSS_COMPILE)objcopy -O binary -j .data $(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.data
	cat $(IMAGEDIR)/linux.text $(IMAGEDIR)/linux.data $(ROMFSIMG) > $(IMAGE)
	#2003-07-11 gc: we have now 1MB flash
	@perl -e '$$s=sprintf "%d", (((-s "$(IMAGE)")+1023) / 1024); \
	   die "image to large ($${s}k)\n" if ($$s > 1024); \
	   printf "image size: %dk\n", $$s;'
	perl $(ROOTDIR)/vendors/Weiss/SM2010/srec.pl $(IMAGE) > $(IMAGEDIR)/linux.srec


