1#!/bin/sh 2# $FreeBSD$ 3# 4# Unpack an ACPI CA drop and restructure it to fit the FreeBSD layout 5# 6 7if [ ! $# -eq 1 ]; then 8 echo "usage: $0 acpica_archive" 9 exit 10fi 11 12src=$1 13wrk=./_acpi_ca_unpack 14dst=./acpi_ca_destination 15 16# files that should keep their full directory path 17fulldirs="common compiler" 18# files to remove 19stripdirs="generate acpisrc" 20stripfiles="16bit.h Makefile README a16find.c a16utils.asm \ 21 a16utils.lst a16utils.obj adisasm.h acdos16.h acintel.h \ 22 aclinux.h acmsvc.h acnetbsd.h acwin.h acwin64.h readme.txt" 23 24# files to update paths in 25src_update_files="acpi.h acpiosxf.h" 26 27# pre-clean 28echo pre-clean 29rm -rf ${wrk} 30rm -rf ${dst} 31mkdir -p ${wrk} 32mkdir -p ${dst} 33 34# fetch document 35echo fetch document 36fetch http://developer.intel.com/technology/iapc/acpi/downloads/CHANGES.txt 37tr -d '\r' < CHANGES.txt > CHANGES.txt.tmp 38mv CHANGES.txt.tmp CHANGES.txt 39 40# unpack 41echo unpack 42tar -x -z -f ${src} -C ${wrk} 43 44# strip files 45echo strip 46for i in ${stripdirs}; do 47 find ${wrk} -name ${i} -type d | xargs rm -r 48done 49for i in ${stripfiles}; do 50 find ${wrk} -name ${i} -type f -delete 51done 52 53echo copying full dirs 54for i in ${fulldirs}; do 55 find ${wrk} -name ${i} -type d | xargs -J % mv % ${dst} 56done 57 58# move files to destination 59echo copying flat dirs 60find ${wrk} -type f | xargs -J % mv % ${dst} 61mv CHANGES.txt ${dst} 62 63# update src/headers for appropriate paths 64echo updating paths 65for i in ${src_update_files}; do 66 i=${dst}/$i 67 sed -e 's/platform\///' $i > $i.new && mv $i.new $i 68done 69 70# post-clean 71echo post-clean 72rm -rf ${wrk} 73 74# assist the developer in generating a diff 75echo "Directories you may want to 'cvs diff':" 76echo " src/sys/dev/acpica src/sys/i386/acpica src/sys/ia64/acpica \\" 77echo " src/sys/modules/acpi src/sys/boot src/sys/i386/include \\" 78echo " src/usr.sbin/acpi src/sys/contrib/dev/acpica" 79