#!/bin/bash

cp -f stview.app/Contents/MacOS/.libs/stview stview.app/Contents/MacOS/
mkdir -p stview.app/Contents/Frameworks;
awk '

BEGIN {
  of="stview.app/Contents/MacOS/stview";
  f="stview.app/Contents/MacOS/stview";
  filedeps[f]="";
  files=0;
  
  while (files<length(filedeps)){
    for (f in filedeps){
      if (length(filedeps[f])>0) continue;
      print ">" f;
      cmd="otool -L " f;
      while (cmd|getline > 0){
#        if (substr($0,length($0),1)==":" || $1 ~ /^\/usr|^\/System/) continue;
        if (/:$/ || $1 ~ /^\/usr|^\/System/) continue;
        filedeps[f]=filedeps[f] SUBSEP $1;
        print $1;
        if (!($1 in filedeps))
          filedeps[$1]="";
      }
      close(cmd);
      ++files;
    }
  }

  for (f in filedeps){
    if (f==of) continue;
    system("cp " f " stview.app/Contents/Frameworks/$(basename " f ")");
    system("echo cp " f " stview.app/Contents/Frameworks/$(basename " f ")");
    system("chmod u+rwx stview.app/Contents/Frameworks/$(basename " f ")");
    split(filedeps[f],a,SUBSEP);
    for (i=2; i<=length(a); ++i){
      system("echo install_name_tool -change " a[i] " @executable_path/../Frameworks/$(basename " a[i] ") stview.app/Contents/Frameworks/$(basename " f ")");
      system("install_name_tool -change " a[i] " @executable_path/../Frameworks/$(basename " a[i] ") stview.app/Contents/Frameworks/$(basename " f ")");
    }
  }
  split(filedeps[of],a,SUBSEP);
  for (i=2; i<=length(a); ++i)
    system("install_name_tool -change " a[i] " @executable_path/../Frameworks/$(basename " a[i] ") " of);
  exit(0);
}
'
