VERSION=1_5_4 DATE="May 2005" TESTFILE="" \ "struct { int a,b,c; } test = { .a = 0, .b = 1, .c = 2 }; " \ "static int __attribute__((__section__(\"test_section\"),__aligned__(1))) a = 0; " \ "static int b = 1; " \ "static int __attribute__((__section__(\"test_section\"),__aligned__(1))) c = 2; " \ "int" "main()" "{ return (&c != &(&a)[1]) ? -1 : 0; } " FILTER= grep -v "temp"|\ grep -v "~" |\ grep -v "\#" |\ grep -v "isdntrace.-........-......"|\ grep -v ".orig" S=/usr/src I4B_FILES=\ ${S}/sys/i386/include/i4b*h \ ${S}/sys/i4b \ ${S}/usr.sbin/i4b \ # #${S}/etc/rc.d/isdnd \ #${S}/etc/rc.isdn \ #${S}/etc/isdn \ #${S}/share/examples/isdn \ #${S}/share/isdn \ #${S}/share/doc/en_US.ISO_8859-1/books/handbook/isdn.html # USB_FILES=\ ${S}/sys/modules/usb/Makefile \ ${S}/sys/modules/ugen/Makefile \ ${S}/sys/tools/usbdevs2h.awk\ ${S}/sys/dev/usb/usb.h \ ${S}/sys/dev/usb/usb_port.h \ ${S}/sys/dev/usb/usbdi.h \ ${S}/sys/dev/usb/usbdi_util.h \ ${S}/sys/dev/usb/usbdivar.h \ ${S}/sys/dev/usb2/*c\ ${S}/sys/dev/usb2/*h\ #${S}/sys/dev/usb/usbdevs CONFIG_FILES=\ ${S}/sys/conf/files \ ${S}/sys/conf/files.pc98 \ ${S}/sys/conf/files.i386 \ DIFF=new_ihfc_${VERSION}.diff.bz2 DIFF_FILES=\ ${S}/sys/i386/include/bus_at386.h \ \ ${S}/sys/dev/sound/pcm/sound.c \ ${S}/sys/dev/sound/pcm/vchan.c \ ${S}/sys/dev/sound/pcm/channel.c \ ${S}/sys/dev/sound/pcm/channel.h \ ${S}/sys/dev/sound/pcm/dsp.c \ ${S}/sys/dev/sound/isa/sb16.c \ ${S}/sys/dev/sound/isa/sb8.c \ ${S}/sys/dev/usb/ukbd.c \ ${S}/sys/dev/usb/umass.c \ ${S}/sys/dev/usb/umodem.c \ ${S}/sys/dev/usb/uvisor.c \ ${S}/sys/dev/usb/ucycom.c \ ${S}/sys/dev/usb/hid.c \ ${S}/sys/dev/usb/usb_quirks.c \ ${S}/include/Makefile \ ${S}/sys/conf/kmod.mk \ MACHINE=/usr/include/machine MACHINE_FILES=\ ${MACHINE}/i4b*h \ BACKUP=i4b_system_backup_${VERSION}.tar.bz2 BACKUP_FILES=\ ${I4B_FILES} \ ${USB_FILES} \ ${CONFIG_FILES} \ ${DIFF_FILES} \ ${MACHINE_FILES} \ /usr/include/dev/usb2/* \ PACKAGE=new_ihfc_${VERSION}.tar.bz2 PACKAGE_FILES=`find \ ${I4B_FILES} \ ${USB_FILES} \ \ | ${FILTER}` FILES_APPEND='\n\ \#\n\ \# ISDN4BSD system-files\n\ \#\n\ i4b_drivers.o standard dependency \"$$S/i4b/layer4/i4b_drivers.awk Makefile\" compile-with \"$${AWK} -f $${.ALLSRC} | $${CC} -c -o $${.TARGET} $${ASM_CFLAGS} $${WERROR} -\" no-implicit-rule clean \"i4b_drivers.o\"\n\ i4b/driver/i4b_trace.c count i4btrc\n\ i4b/driver/i4b_rbch.c count i4brbch\n\ i4b/driver/i4b_tel.c count i4btel\n\ i4b/driver/i4b_ing.c count i4bing\n\ i4b/driver/i4b_ipr.c count i4bipr\n\ i4b/driver/i4b_isppp.c count i4bisppp\n\ i4b/driver/i4b_ctl.c optional i4bctl\n\ net/slcompress.c optional i4bipr\n\ net/slcompress.c optional i4bisppp\n\ net/if_spppsubr.c optional i4bisppp\n\ net/if_spppfr.c optional i4bisppp\n\ i4b/dss1/i4b_l2fsm.c optional i4b\n\ i4b/dss1/i4b_l2fsm.c optional i4bdss1\n\ i4b/layer4/i4b_i4bdrv.c optional i4b\n\ i4b/layer4/i4b_l4.c optional i4b\n\ i4b/layer4/i4b_l4mgmt.c optional i4b\n\ i4b/layer4/i4b_mbuf.c optional i4b\n\ i4b/layer1/i4b_l1.c optional i4b\n\ i4b/layer1/i4b_hdlc.c optional i4b\n\ \#\n\ \# USB support\n\ dev/usb2/_uhci.c optional usb\n\ dev/usb2/_uhci_pci.c optional usb\n\ dev/usb2/_uhci.c optional uhci\n\ dev/usb2/_uhci_pci.c optional uhci\n\ dev/usb2/_ohci.c optional usb\n\ dev/usb2/_ohci_pci.c optional usb\n\ dev/usb2/_ohci.c optional ohci\n\ dev/usb2/_ohci_pci.c optional ohci\n\ dev/usb2/_ehci.c optional ehci\n\ dev/usb2/_ehci_pci.c optional ehci\n\ dev/usb2/_uhub.c optional usb\n\ dev/usb2/_usb.c optional usb\n\ dev/usb2/_usb_requests.c optional usb\n\ dev/usb2/_usb_subr.c optional usb\n\ dev/usb2/_usb_transfer.c optional usb\n\ dev/usb2/_ugen.c optional ugen\n\ usbdevs.h optional usb dependency \"$$S/tools/usbdevs2h.awk $$S/dev/usb/usbdevs\" compile-with \"$${AWK} -f $$S/tools/usbdevs2h.awk $$S/dev/usb/usbdevs\" no-obj no-implicit-rule before-depend clean \"usbdevs.h\"\n\ ' FILES_I386_PC98_APPEND='\n\ \#\n\ \# ihfc driver\n\ \#\n\ i4b/layer1/ihfc2/i4b_ihfc2_l1if.c optional new_ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_pnp.c optional new_ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_drv.c optional new_ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_dev.c optional new_ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_end.c optional new_ihfc\n\ \#\n\ i4b/layer1/ihfc2/i4b_ihfc2_l1if.c optional iwic\n\ i4b/layer1/ihfc2/i4b_ihfc2_pnp.c optional iwic\n\ i4b/layer1/ihfc2/i4b_ihfc2_drv.c optional iwic\n\ i4b/layer1/ihfc2/i4b_ihfc2_dev.c optional iwic\n\ i4b/layer1/ihfc2/i4b_ihfc2_end.c optional iwic\n\ \#\n\ i4b/layer1/ihfc2/i4b_ihfc2_l1if.c optional itjc\n\ i4b/layer1/ihfc2/i4b_ihfc2_pnp.c optional itjc\n\ i4b/layer1/ihfc2/i4b_ihfc2_drv.c optional itjc\n\ i4b/layer1/ihfc2/i4b_ihfc2_dev.c optional itjc\n\ i4b/layer1/ihfc2/i4b_ihfc2_end.c optional itjc\n\ \#\n\ i4b/layer1/ihfc2/i4b_ihfc2_l1if.c optional ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_pnp.c optional ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_drv.c optional ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_dev.c optional ihfc\n\ i4b/layer1/ihfc2/i4b_ihfc2_end.c optional ihfc\n\ ' CHANNEL_H_APPEND="\n\ void chn_rel(struct cdev *dev, struct pcm_channel *rdch, struct pcm_channel *wrch, u_int32_t prio);\n\ int chn_get(struct cdev *dev, struct pcm_channel **rdch, struct pcm_channel **wrch, u_int32_t prio);\n\n" help: @echo "# " @echo "# ISDN4BSD v."${VERSION:C/_/./g}" - "${DATE} @echo "# " @echo "# source directory: "${S} @echo "# backup directory: "`pwd` @echo "# targets: ""help fetch all install deinstall clean" @echo "# usage: ""make install" @echo "# " @echo "# " @echo "# 1. make sure the following lines are " @echo "# in your kernel configuration file" @echo "# (\"${S}/sys/i386/conf/custom\"):" @echo "#" @echo "# I4B section" @echo "#" @echo "options IPR_VJ" @echo "device \"i4bdss1\"" @echo "device \"i4b\"" @echo "device \"i4btrc\" 8" @echo "device \"i4bctl\"" @echo "device \"i4brbch\" 8" @echo "device \"i4btel\" 8" @echo "device \"i4bipr\" 8" @echo "device \"i4bisppp\" 8" @echo "" @echo "device ihfc" @echo "device usb" @echo "device pcm" @echo "#or device sound" @echo "#if device pcm does not exist" @echo "" @echo "#" @echo "# 2. recompile and install the kernel: " @echo "# \"cd ${S} && make buildkernel installkernel " @echo "# KERNCONF=custom -DNO_MODULES -DNOCLEAN -DNO_CLEAN\"" @echo "#" @echo "# the second time you run make " @echo "# you can add -DNO_KERNELDEPEND " @echo "#" @echo "# 3. write down "`pwd`"/kernel" @echo "# and reboot" @echo "" @echo "#" @echo "# In case of trouble you can send an e-mail to:" @echo "# hselasky@c2i.net" @echo "" @echo "# type \"make help\" to display this message again" @echo "" cc_test: Makefile # # compiler test # @echo "" @echo "Testing compiler ..." @echo "" @((echo ${TESTFILE} | cc -x c -o cc_test - ) && ./cc_test) || \ @echo "you need to upgrade your 'cc' compiler (see /usr/ports/lang/??)" fetch: fetch http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/${DIFF} fetch http://home.c2i.net/hselasky/isdn4bsd/privat/temporary/${PACKAGE} backup: # # make backup _once_ # @echo "" @echo "Collecting files and information ..." @echo "Installing to: "${S} @echo "" @echo "Please write down this location:" @echo `pwd`"/kernel" @echo "" @sleep 10 .if !exists(${BACKUP}.dont.remove) cp -rv /boot/kernel/kernel . (cd ${S}/usr.sbin/i4b && make clean) || echo -n mkdir ${S}/sys/i4b || echo -n mkdir ${S}/sys/dev/usb2 || echo -n mkdir ${S}/include || echo -n mkdir /usr/include || echo -n mkdir /usr/include/dev || echo -n mkdir /usr/include/dev/usb2 || echo -n mkdir /usr/include/machine || echo -n .for FILE in \ ${S}/sys/dev/usb2/_usb.c \ ${S}/sys/dev/usb2/usb.h \ /usr/include/dev/usb2/usb.h \ /usr/include/machine/i4b_ioctl.h \ ${DIFF_FILES} [ -f ${FILE} ] || touch ${FILE} || echo -n .endfor tar -jcvf ${BACKUP} -C/ ${BACKUP_FILES} @touch ${BACKUP}.dont.remove .endif update_pcm: sed -e s/relchns/chn_rel/g \ -e s/getchns/chn_get/g \ -e s/"chn_get(struct cdev \*"/"chn_get(dev_t "/g \ -e s/"chn_rel(struct cdev \*"/"chn_rel(dev_t "/g \ ${S}/sys/dev/sound/pcm/dsp.c > tempfile cat tempfile > ${S}/sys/dev/sound/pcm/dsp.c sed -e s/"MTX_DEF)"/"MTX_DEF|MTX_RECURSE)"/g \ ${S}/sys/dev/sound/pcm/sound.c \ | sed -e s/"d->flags = 0;"/""/g > tempfile cat tempfile > ${S}/sys/dev/sound/pcm/sound.c { cat ${S}/sys/dev/sound/pcm/channel.h | \ grep -v " chn_rel(" | \ grep -v " chn_get("; printf ${CHANNEL_H_APPEND}; } > tempfile cat tempfile > ${S}/sys/dev/sound/pcm/channel.h update_conf: # # update configuration # # cleanup # .for FILE in ${CONFIG_FILES} cat ${FILE} \ | grep -v "i4b" \ | grep -v "new_usb" \ | grep -v "dev/usb2" \ | grep -v "dev/usb/ehci.c" \ | grep -v "dev/usb/ehci_pci.c" \ | grep -v "dev/usb/ohci.c" \ | grep -v "dev/usb/ohci_pci.c" \ | grep -v "dev/usb/uhci.c" \ | grep -v "dev/usb/uhci_pci.c" \ | grep -v "dev/usb/uhub.c" \ | grep -v "dev/usb/usb.c" \ | grep -v "dev/usb/usb_mem.c" \ | grep -v "dev/usb/usb_subr.c" \ | grep -v "dev/usb/usbdi.c" \ | grep -v "dev/usb/usbdi_util.c" \ | grep -v "dev/usb/ugen.c" \ | sed -e s/"S\/dev\/usb\/usbdevs -h"/"S\/dev\/usb\/usbdevs"/g \ | sed -e s/"S\/dev\/usb\/usbdevs -d"/"S\/dev\/usb\/usbdevs"/g \ > tempfile cat tempfile > ${FILE} .endfor # # update # printf ${FILES_APPEND} >> ${S}/sys/conf/files printf ${FILES_I386_PC98_APPEND} >> ${S}/sys/conf/files.pc98 printf ${FILES_I386_PC98_APPEND} >> ${S}/sys/conf/files.i386 all: build: install: help backup cc_test update_conf update_pcm ${DIFF} ${PACKAGE} # cleanup rm -f -rv ${I4B_FILES} ${USB_FILES} ${MACHINE_FILES} # install tar -jxvf ${PACKAGE} -C${S} # patch (bzcat ${DIFF} | patch -N -l -d ${S}) || echo -n # patch sed -e s/"dev_t dev"/"struct cdev \*dev"/g \ ${S}/sys/dev/sound/pcm/dsp.c > tempfile cat tempfile > ${S}/sys/dev/sound/pcm/dsp.c # update machine cp -rv ${S}/sys/i386/include/i4b*h ${MACHINE}/ # have usbdevs.h and usbdevs_data.h rebuilt touch ${S}/sys/dev/usb/usbdevs # have usb rebuilt touch ${S}/sys/dev/usb2/* # update usbhid.h (([ ! -f ${S}/sys/dev/usb/usbhid.h ] || \ (cat ${S}/sys/dev/usb/usbhid.h | grep "include " > /dev/null)) && \ (cp ${S}/sys/dev/usb2/usb_hid_copy.h ${S}/sys/dev/usb/usbhid.h)) || echo -n # update USB header files rm -f /usr/include/dev/usb2/* || echo -n cp -v ${S}/sys/dev/usb2/*h /usr/include/dev/usb2/ || echo -n cat ${S}/include/Makefile \ | sed -e s/" dev\/usb2 "/""/g \ | sed -e s/" dev\/usb "/" dev\/usb dev\/usb2 "/g \ > tempfile cat tempfile > ${S}/include/Makefile # update kmod.mk cat ${S}/sys/conf/kmod.mk \ | sed -e s/"@\/dev\/usb\/usbdevs -h"/"@\/dev\/usb\/usbdevs"/g \ | sed -e s/"@\/dev\/usb\/usbdevs -d"/"@\/dev\/usb\/usbdevs"/g \ > tempfile cat tempfile > ${S}/sys/conf/kmod.mk # create if_spppfr.c, if missing ([ ! -f ${S}/sys/net/if_spppfr.c ] && \ (touch ${S}/sys/net/if_spppfr.c)) \ || echo -n # install cd ${S}/usr.sbin/i4b; make cleandepend clean depend all install man ihfc # # deinstall_usb: ${BACKUP} # # # rm -f -rv ${USB_FILES} # tar -jxvf ${BACKUP} -C/ ${USB_FILES:C/${S}/"*"/} # uninstall: deinstall deinstall: ${BACKUP} rm -f -rv ${I4B_FILES} ${USB_FILES} ${MACHINE_FILES} || echo -n rm -f -v /usr/include/dev/usb2/* || echo -n tar -jxvf ${BACKUP} -C/ # # make sure a new backup is made at next # install # rm -f ${BACKUP}.dont.remove clean: rm -f cc_test tempfile pcm.temp files.temp diffs.temp # # ${DIFF} and ${PACKAGE} is not removed # diffs: rm -f diffs.temp .for FILE in ${DIFF_FILES:C/${S}\///} @((( cd ${S} && diff -b -cr ${FILE}.ref ${FILE} ) >> diffs.temp) && echo ${FILE} does not differ) || echo -n .endfor package: diffs cd ${S}/usr.sbin/i4b && make clean bzip2 diffs.temp && mv diffs.temp.bz2 ${DIFF} (cd ${S}; tar --norecurse -cvf - ${PACKAGE_FILES:C/${S}\///}) > diffs.temp bzip2 diffs.temp && mv diffs.temp.bz2 ${PACKAGE} list_files: cd ${S}; ls -l ${PACKAGE_FILES:C/${S}\///} print_files_append: @printf ${FILES_APPEND} @printf ${FILES_I386_PC98_APPEND} backdate: touch -t 200011111111 ${S}/sys/i386/include/bus_at386.h #-HPS