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 to remove 17stripdirs="common compiler generate acpisrc" 18stripfiles="osunixxf.c Makefile README adisasm.h acdos16.h \ 19 acintel.h aclinux.h acmsvc.h acwin.h acwin64.h" 20# files to update paths in 21src_update_files="acpi.h acpiosxf.h" 22 23# pre-clean 24echo pre-clean 25rm -rf ${wrk} 26rm -rf ${dst} 27mkdir -p ${wrk} 28mkdir -p ${dst} 29 30# fetch document 31echo fetch document 32fetch http://developer.intel.com/technology/iapc/acpi/downloads/CHANGES.txt 33tr -d '\r' < CHANGES.txt > CHANGES.txt.tmp 34mv CHANGES.txt.tmp CHANGES.txt 35 36# unpack 37echo unpack 38tar -x -z -f ${src} -C ${wrk} 39 40# strip files 41echo strip 42for i in ${stripdirs}; do 43 find ${wrk} -name ${i} -type d | xargs rm -r 44done 45for i in ${stripfiles}; do 46 find ${wrk} -name ${i} -type f -delete 47done 48 49# move files to destination 50echo copy 51find ${wrk} -type f | xargs -J % mv % ${dst} 52mv CHANGES.txt ${dst} 53 54# update src/headers for appropriate paths 55echo updating paths 56for i in ${src_update_files}; do 57 i=${dst}/$i 58 sed -e 's/platform\///' $i > $i.new && mv $i.new $i 59done 60 61# post-clean 62echo post-clean 63rm -rf ${wrk} 64 65# assist the developer in generating a diff 66echo "Directories you may want to 'cvs diff':" 67echo " src/sys/dev/acpica src/sys/i386/acpica src/sys/ia64/acpica \\" 68echo " src/sys/modules/acpi src/sys/boot src/sys/i386/include \\" 69echo " src/usr.sbin/acpi src/sys/contrib/dev/acpica" 70