| Index: generate_gypi.sh | 
| diff --git a/generate_gypi.sh b/generate_gypi.sh | 
| index a00618861d4935112736d87d34de408878736f43..0a316602b9cadd0648441ab5bc4345f893e047aa 100755 | 
| --- a/generate_gypi.sh | 
| +++ b/generate_gypi.sh | 
| @@ -249,37 +249,51 @@ function convert_srcs_to_project_files { | 
| fi | 
|  | 
| # Write a single .gni file that includes all source files for all archs. | 
| -  if [ 0 -ne ${#x86_list} ]; then | 
| -    local c_sources=$(echo "$source_list" | egrep '.(c|h)$') | 
| -    local assembly_sources=$(echo "$source_list" | egrep '.asm$') | 
| -    local mmx_sources=$(echo "$intrinsic_list" | grep '_mmx\.c$') | 
| -    local sse2_sources=$(echo "$intrinsic_list" | grep '_sse2\.c$') | 
| -    local sse3_sources=$(echo "$intrinsic_list" | grep '_sse3\.c$') | 
| -    local ssse3_sources=$(echo "$intrinsic_list" | grep '_ssse3\.c$') | 
| -    local sse4_1_sources=$(echo "$intrinsic_list" | grep '_sse4\.c$') | 
| -    local avx_sources=$(echo "$intrinsic_list" | grep '_avx\.c$') | 
| -    local avx2_sources=$(echo "$intrinsic_list" | grep '_avx2\.c$') | 
| - | 
| -    write_gni c_sources $2 "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni assembly_sources $2_assembly "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni mmx_sources $2_mmx "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni sse2_sources $2_sse2 "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni sse3_sources $2_sse3 "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni ssse3_sources $2_ssse3 "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni sse4_1_sources $2_sse4_1 "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni avx_sources $2_avx "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni avx2_sources $2_avx2 "$BASE_DIR/libvpx_srcs.gni" | 
| -  else | 
| -    local c_sources=$(echo "$source_list" | egrep '.(c|h)$') | 
| -    local assembly_sources=$(echo -e "$source_list\n$intrinsic_list" | \ | 
| -      egrep '.asm$') | 
| -    local neon_sources=$(echo "$intrinsic_list" | grep '_neon\.c$') | 
| -    write_gni c_sources $2 "$BASE_DIR/libvpx_srcs.gni" | 
| -    write_gni assembly_sources $2_assembly "$BASE_DIR/libvpx_srcs.gni" | 
| -    if [ 0 -ne ${#neon_sources} ]; then | 
| -      write_gni neon_sources $2_neon "$BASE_DIR/libvpx_srcs.gni" | 
| +  # First all the non-specific files not found in vp8, vp9, or vpx_dsp | 
| +  local c_sources=$(echo "$source_list" | \ | 
| +    egrep -v "^vp(8|9|x_dsp)" | \ | 
| +    egrep ".(c|h)$") | 
| +  local assembly_sources=$(echo "$source_list" | \ | 
| +    egrep -v "^vp(8|9|x_dsp)" | \ | 
| +    egrep ".asm$") | 
| +  write_gni c_sources $2 "$BASE_DIR/libvpx_srcs.gni" | 
| +  write_gni assembly_sources $2_assembly "$BASE_DIR/libvpx_srcs.gni" | 
| + | 
| +  # Break out the remaining files by specific targets. GN does not | 
| +  # disambiguate by path so this is the only way to avoid name conflicts. | 
| +  for library in vp8 vp9 vpx_dsp; do | 
| +    if [ 0 -ne ${#x86_list} ]; then | 
| +      local c_sources=$(echo "$source_list" | egrep "^${library}.+.(c|h)$") | 
| +      local assembly_sources=$(echo "$source_list" | egrep "^${library}.+.asm$") | 
| +      local mmx_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_mmx\.c$") | 
| +      local sse2_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_sse2\.c$") | 
| +      local sse3_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_sse3\.c$") | 
| +      local ssse3_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_ssse3\.c$") | 
| +      local sse4_1_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_sse4\.c$") | 
| +      local avx_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_avx\.c$") | 
| +      local avx2_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_avx2\.c$") | 
| + | 
| +      write_gni c_sources ${library}_$2 "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni assembly_sources ${library}_$2_assembly "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni mmx_sources ${library}_$2_mmx "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni sse2_sources ${library}_$2_sse2 "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni sse3_sources ${library}_$2_sse3 "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni ssse3_sources ${library}_$2_ssse3 "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni sse4_1_sources ${library}_$2_sse4_1 "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni avx_sources ${library}_$2_avx "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni avx2_sources ${library}_$2_avx2 "$BASE_DIR/libvpx_srcs.gni" | 
| +    else | 
| +      local c_sources=$(echo "$source_list" | egrep "^${library}.+.(c|h)$") | 
| +      local assembly_sources=$(echo -e "$source_list\n$intrinsic_list" | \ | 
| +        egrep "^${library}.+.asm$") | 
| +      local neon_sources=$(echo "$intrinsic_list" | egrep "^${library}.+_neon\.c$") | 
| +      write_gni c_sources ${library}_$2 "$BASE_DIR/libvpx_srcs.gni" | 
| +      write_gni assembly_sources ${library}_$2_assembly "$BASE_DIR/libvpx_srcs.gni" | 
| +      if [ 0 -ne ${#neon_sources} ]; then | 
| +        write_gni neon_sources ${library}_$2_neon "$BASE_DIR/libvpx_srcs.gni" | 
| +      fi | 
| fi | 
| -  fi | 
| +  done | 
| } | 
|  | 
| # Clean files from previous make. | 
|  |