1aafdbb39SMike Smith#!/bin/sh 2aafdbb39SMike Smith# $FreeBSD$ 3aafdbb39SMike Smith# 4aafdbb39SMike Smith# Unpack an ACPI CA drop and restructure it to fit the FreeBSD layout 5aafdbb39SMike Smith# 6aafdbb39SMike Smith 703053237SMitsuru IWASAKIif [ ! $# -eq 1 ]; then 803053237SMitsuru IWASAKI echo "usage: $0 acpica_archive" 903053237SMitsuru IWASAKI exit 1003053237SMitsuru IWASAKIfi 1103053237SMitsuru IWASAKI 12aafdbb39SMike Smithsrc=$1 13a7a3b383SJung-uk Kimwrk="$(realpath .)/_acpi_ca_unpack" 14a7a3b383SJung-uk Kimdst="$(realpath .)/acpi_ca_destination" 15aafdbb39SMike Smith 1699d3ab06SNate Lawson# files that should keep their full directory path 17a159c266SJung-uk Kimfulldirs="common compiler components include os_specific" 1899d3ab06SNate Lawson 19a9f12690SJung-uk Kim# files to remove 2028482948SJung-uk Kimstripdirs="generate libraries parsers preprocessor tests tools" 21a009b7dcSJung-uk Kimstripfiles="Makefile README aslcompiler.y accygwin.h acdragonfly.h \ 22a009b7dcSJung-uk Kim acdragonflyex.h acefi.h acefiex.h achaiku.h acintel.h aclinux.h \ 23a009b7dcSJung-uk Kim aclinuxex.h acmacosx.h acmsvc.h acmsvcex.h acnetbsd.h acos2.h \ 24*722b1667SJung-uk Kim acqnx.h acwin.h acwin64.h acwinex.h aczephyr.h new_table.txt \ 25*722b1667SJung-uk Kim osbsdtbl.c osefitbl.c osefixf.c osfreebsdtbl.c oslinuxtbl.c \ 26*722b1667SJung-uk Kim osunixdir.c osunixmap.c oswindir.c oswintbl.c oswinxf.c \ 27*722b1667SJung-uk Kim oszephyr.c readme.txt utclib.c utprint.c" 28a9f12690SJung-uk Kim 29a9f12690SJung-uk Kim# include files to canonify 305ef50723SJung-uk Kimsrc_headers="acapps.h acbuffer.h acclib.h accommon.h acconfig.h \ 310d84335fSJung-uk Kim acconvert.h acdebug.h acdisasm.h acdispat.h acevents.h \ 320d84335fSJung-uk Kim acexcep.h acglobal.h achware.h acinterp.h aclocal.h acmacros.h \ 330d84335fSJung-uk Kim acnames.h acnamesp.h acobject.h acopcode.h acoutput.h \ 340d84335fSJung-uk Kim acparser.h acpi.h acpiosxf.h acpixf.h acpredef.h acresrc.h \ 356c30ff13SJung-uk Kim acrestyp.h acstruct.h actables.h actbinfo.h actbl.h actbl1.h \ 366c30ff13SJung-uk Kim actbl2.h actbl3.h actypes.h acutils.h acuuid.h amlcode.h \ 376c30ff13SJung-uk Kim amlresrc.h platform/acenv.h platform/acenvex.h \ 386c30ff13SJung-uk Kim platform/acfreebsd.h platform/acgcc.h" 393c1812acSJung-uk Kimcomp_headers="aslcompiler.h asldefine.h aslglobal.h aslmessages.h \ 40eef1b955SJung-uk Kim aslsupport.l asltypes.h dtcompiler.h dttemplate.h preprocess.h" 413c4bac86SJung-uk Kimplatform_headers="acfreebsd.h acgcc.h" 42aafdbb39SMike Smith 43aafdbb39SMike Smith# pre-clean 44aafdbb39SMike Smithecho pre-clean 45a9f12690SJung-uk Kimrm -rf ${wrk} ${dst} 46aafdbb39SMike Smithmkdir -p ${wrk} 47aafdbb39SMike Smithmkdir -p ${dst} 48aafdbb39SMike Smith 49aafdbb39SMike Smith# unpack 50aafdbb39SMike Smithecho unpack 51aafdbb39SMike Smithtar -x -z -f ${src} -C ${wrk} 52aafdbb39SMike Smith 53aafdbb39SMike Smith# strip files 54aafdbb39SMike Smithecho strip 55aafdbb39SMike Smithfor i in ${stripdirs}; do 56a88e22b7SJung-uk Kim find ${wrk} -name ${i} -type d -print | xargs rm -r 57aafdbb39SMike Smithdone 58aafdbb39SMike Smithfor i in ${stripfiles}; do 59aafdbb39SMike Smith find ${wrk} -name ${i} -type f -delete 60aafdbb39SMike Smithdone 61aafdbb39SMike Smith 62a9f12690SJung-uk Kim# copy files 6399d3ab06SNate Lawsonecho copying full dirs 6499d3ab06SNate Lawsonfor i in ${fulldirs}; do 65a88e22b7SJung-uk Kim find ${wrk} -name ${i} -type d -print | xargs -J % mv % ${dst} 6699d3ab06SNate Lawsondone 67a9f12690SJung-uk Kimecho copying remaining files 68a88e22b7SJung-uk Kimfind ${wrk} -type f -print | xargs -J % mv % ${dst} 69f6c1dddaSNate Lawson 70c33a1f33SDavid E. O'Brien# canonify include paths 716eb081afSJung-uk Kimfor H in ${src_headers}; do 72d052a1ccSJung-uk Kim find ${dst} -name "*.[chly]" -type f -print | \ 73a9f12690SJung-uk Kim xargs sed -i "" -e "s|[\"<]$H[\">]|\<contrib/dev/acpica/include/$H\>|g" 746eb081afSJung-uk Kimdone 756eb081afSJung-uk Kimfor H in ${comp_headers}; do 76a7a3b383SJung-uk Kim find ${dst}/common ${dst}/compiler ${dst}/components \ 77a7a3b383SJung-uk Kim -name "*.[chly]" -type f | \ 786eb081afSJung-uk Kim xargs sed -i "" -e "s|[\"<]$H[\">]|\<contrib/dev/acpica/compiler/$H\>|g" 796eb081afSJung-uk Kimdone 803c4bac86SJung-uk Kimfor H in ${platform_headers}; do 81a88e22b7SJung-uk Kim find ${dst}/include/platform -name "*.h" -type f -print | \ 823c4bac86SJung-uk Kim xargs sed -i "" -e "s|[\"<]$H[\">]|\<contrib/dev/acpica/include/platform/$H\>|g" 833c4bac86SJung-uk Kimdone 84c33a1f33SDavid E. O'Brien 85aafdbb39SMike Smith# post-clean 86aafdbb39SMike Smithecho post-clean 87aafdbb39SMike Smithrm -rf ${wrk} 88f6c1dddaSNate Lawson 89f6c1dddaSNate Lawson# assist the developer in generating a diff 903f0275a0SJung-uk Kimecho "Directories you may want to 'svn diff':" 913f0275a0SJung-uk Kimecho " sys/contrib/dev/acpica sys/dev/acpica \\" 92493deb39SJung-uk Kimecho " sys/amd64/acpica sys/arm64/acpica sys/i386/acpica sys/x86/acpica \\" 93493deb39SJung-uk Kimecho " sys/amd64/include sys/arm64/include sys/i386/include include \\" 94ca987d46SWarner Loshecho " stand sys/conf sys/modules/acpi usr.sbin/acpi" 95