#! /bin/make -f
#
# Makefile for contructing the /dev directory
#
# $Source: /d2/3.7/src/dev/RCS/MAKEDEV,v $
# @(#)$Revision: 1.1 $
# $Date: 89/03/27 15:19:01 $
#

# 'clone device'
CDEV=24

all:	generic iph gpib tmt pxd owners sii siq sf ptys cdsio hyperchannel

1400:	generic owners

1500:	iph generic owners

gpib:	anything
	rm -f ib*
	for i in 0 1 2 3 4 5 6 7 8 9 ; do mknod ib$$i c 17 $$i ; done

pxd:	anything
	rm -f pxd
	mknod pxd c 23 0
	chmod 0666 pxd

generic: std duart dsd xns ikon

owners:	anything
	chgrp sys * ; chown root *
	chown lp cent ; chgrp bin cent

std:	anything
	rm -f console syscon systty tty mem kmem null drum
	mknod console c  0  0 ; chmod 622 console
	ln console syscon 
	mknod systty  c  0  0 ; chmod 622 systty
	mknod tty     c  1  0 ; chmod 666 tty
	mknod mem     c  2  0
	mknod kmem    c  2  1
	mknod drum    c  2  3
	chgrp sys mem kmem drum; chmod 640 mem kmem drum
	mknod null    c  2  2 ; chmod 666 null
	rm -rf ttyw ttyw?
	mknod ttyw   c  24 5; chmod 666 ttyw
	for i in 0 1 2 3 4 5 6 7 8 9 ;  do \
		mknod ttyw$$i   c  5  $$i ; \
	done
	chmod 666 ttyw ttyw?
	rm -f queue
	mknod queue c 7 0
	chmod 666 queue

MODEL	= /etc/model

dsd:	anything
	rm -f md[01]? rmd[01]? mt1 rmt1 rmt2 mf0a rmf0a
	mknod md0a  b  1  0; mknod md0b  b  1  1
	mknod md0c  b  1  2; mknod md0d  b  1  3
	mknod md0e  b  1  4; mknod md0f  b  1  5
	mknod md0g  b  1  6; mknod md0h  b  1  7
	mknod md1a  b  1  8; mknod md1b  b  1  9
	mknod md1c  b  1  10; mknod md1d  b  1  11
	mknod md1e  b  1  12; mknod md1f  b  1  13
	mknod md1g  b  1  14; mknod md1h  b  1  15
	mknod rmd0a  c  4  0; mknod rmd0b  c  4  1
	mknod rmd0c  c  4  2; mknod rmd0d  c  4  3
	mknod rmd0e  c  4  4; mknod rmd0f  c  4  5
	mknod rmd0g  c  4  6; mknod rmd0h  c  4  7
	mknod rmd1a  c  4  8; mknod rmd1b  c  4  9
	mknod rmd1c  c  4  10;mknod rmd1d  c  4  11
	mknod rmd1e  c  4  12;mknod rmd1f  c  4  13
	mknod rmd1g  c  4  14;mknod rmd1h  c  4  15
	chmod 600 md* rmd*
	mknod mf0a   b  2  0; mknod rmf0a c 12 0
	chmod 666 mf0a rmf0a
	@if test ! -s $(MODEL) || test "3030" != "`cat $(MODEL)`"; then \
		mknod rmt1 c 13 0; \
		mknod rmt2 c 13 1; \
		chmod 666 rmt1 rmt2; \
		ln rmt1 mt1; \
		rm -f floppy rfloppy; \
		ln mf0a floppy; \
		ln rmf0a rfloppy; \
	fi

iph:	anything
	rm -f ip[01]? rip[01]?
	mknod ip0a   b  4  0; mknod ip0b   b  4  1
	mknod ip0c   b  4  2; mknod ip0d   b  4  3
	mknod ip0e   b  4  4; mknod ip0f   b  4  5
	mknod ip0g   b  4  6; mknod ip0h   b  4  7
	mknod rip0a  c 14  0; mknod rip0b  c 14  1
	mknod rip0c  c 14  2; mknod rip0d  c 14  3
	mknod rip0e  c 14  4; mknod rip0f  c 14  5
	mknod rip0g  c 14  6; mknod rip0h  c 14  7
	mknod ip1a   b  4  8; mknod ip1b   b  4  9
	mknod ip1c   b  4  10; mknod ip1d   b  4  11
	mknod ip1e   b  4  12; mknod ip1f   b  4  13
	mknod ip1g   b  4  14; mknod ip1h   b  4  15
	mknod rip1a  c 14  8; mknod rip1b  c 14  9
	mknod rip1c  c 14  10; mknod rip1d  c 14  11
	mknod rip1e  c 14  12; mknod rip1f  c 14  13
	mknod rip1g  c 14  14; mknod rip1h  c 14  15
	chmod 600 ip* rip*

tmt:	anything
	rm -f rmt3 rmt4 bsrmt3 bsrmt4
	mknod rmt3 c 20 0
	mknod rmt4 c 20 1
	mknod bsrmt3 c 20 8
	mknod bsrmt4 c 20 9
	chmod 666 rmt3 rmt4 bsrmt3 bsrmt4

xns:	anything
	rm -f ttyn*
	for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \
		    20 21 22 23 24 25 26 27 28 29 30 31 ; \
	do \
		mknod ttyn$$i c 6 $$i ; \
	done
	chmod 662 ttyn* 

ikon:	anything
	rm -f vers cent vp0
	mknod vers c 27 1
	mknod cent c 27 2
	chmod 666 vers cent
	chown lp cent
	chgrp bin cent
	ln vers vp0

sii:	anything
	rm -f si[01]* rsi[01]*
	mknod si0a b 7 0; mknod si0b b 7 1
	mknod si0c b 7 2; mknod si0d b 7 3
	mknod si0e b 7 4; mknod si0f b 7 5
	mknod si0g b 7 6; mknod si0h b 7 7
	mknod rsi0a c 28 0; mknod rsi0b c 28 1
	mknod rsi0c c 28 2; mknod rsi0d c 28 3
	mknod rsi0e c 28 4; mknod rsi0f c 28 5
	mknod rsi0g c 28 6; mknod rsi0h c 28 7
	mknod si1a b 7 8; mknod si1b b 7 9
	mknod si1c b 7 10; mknod si1d b 7 11
	mknod si1e b 7 12; mknod si1f b 7 13
	mknod si1g b 7 14; mknod si1h b 7 15
	mknod rsi1a c 28 8; mknod rsi1b c 28 9
	mknod rsi1c c 28 10; mknod rsi1d c 28 11
	mknod rsi1e c 28 12; mknod rsi1f c 28 13
	mknod rsi1g c 28 14; mknod rsi1h c 28 15
	chmod 600 si[01]* rsi[01]*
	chown root si[01]* rsi[01]*

siq:	anything
	rm -f sq0 nrsq0
	mknod sq0 c 29 0
	mknod nrsq0 c 29 1
	chmod 666 sq0 nrsq0
	@if test -s $(MODEL) && test "3030" = "`cat $(MODEL)`"; then \
		rm -f rmt1 rmt2; \
		ln sq0 rmt1; \
		ln nrsq0 rmt2; \
	fi

sf:	anything
	rm -f sf0a rsf0a
	mknod sf0a b 8 16
	mknod rsf0a c 30 16
	chmod 600 sf0a rsf0a
	@if test -s $(MODEL) && test "3030" = "`cat $(MODEL)`"; then \
		rm -f floppy rfloppy; \
		ln sf0a floppy; \
		ln rsf0a rfloppy; \
	fi

ptys:	anything
	rm -rf ptc* ttyq*
	mknod ptc   c  24 21
	for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \
		    20 21 22 23 24 25 26 27 28 29 30 31 ; do \
		mknod ttyq$$i c 22 $$i ; \
	done
	chmod 666 ptc* ttyq*


SIO_BDY=rm -rf tty[dmf]$$minor ; \
		mknod ttyd$$minor c $$major $$minor ; \
		mknod ttym$$minor c $$major `expr $$minor + 64`; \
		mknod ttyf$$minor c $$major `expr $$minor + 128` ; \
		chmod 666 tty[dmf]$$minor; \
		chgrp sys tty[dmf]$$minor; \
		done
duart:	anything
	major=3; for minor in 0 1 2 3 ; do $(SIO_BDY)
cdsio0 cdsio:
	major=15; for minor in 4 5 6 7 8 9 10 11 ; do $(SIO_BDY)
cdsio1:
	major=15; for minor in 12 13 14 15 16 17 18 19 ; do $(SIO_BDY)
cdsio2:
	major=15; for minor in 20 21 22 23 24 25 26 27 ; do $(SIO_BDY)
cdsio3:
	major=15; for minor in 28 29 30 31 32 33 34 35 ; do $(SIO_BDY)


hyperchannel: anything
	for i in 1 2 3 4 ; do \
		rm -rf hy0$$i ; \
		mknod hy0$$i c 31 $$i ; \
	done
	chmod 666 hy*

#
# Used to force above rules to run, even if the target (xns for instance)
# exists (as opposed to what the rules create, ttyn0 for instance)
#
anything:
