| OLD | NEW |
| 1 # Copyright (c) 2012 Google Inc. All rights reserved. | 1 # Copyright (c) 2012 Google Inc. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 # Notes: | 5 # Notes: |
| 6 # | 6 # |
| 7 # This is all roughly based on the Makefile system used by the Linux | 7 # This is all roughly based on the Makefile system used by the Linux |
| 8 # kernel, but is a non-recursive make -- we put the entire dependency | 8 # kernel, but is a non-recursive make -- we put the entire dependency |
| 9 # graph in front of make and let it figure it out. | 9 # graph in front of make and let it figure it out. |
| 10 # | 10 # |
| (...skipping 2038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2049 '\n') | 2049 '\n') |
| 2050 for toolset in toolsets: | 2050 for toolset in toolsets: |
| 2051 root_makefile.write('TOOLSET := %s\n' % toolset) | 2051 root_makefile.write('TOOLSET := %s\n' % toolset) |
| 2052 WriteRootHeaderSuffixRules(root_makefile) | 2052 WriteRootHeaderSuffixRules(root_makefile) |
| 2053 | 2053 |
| 2054 # Put build-time support tools next to the root Makefile. | 2054 # Put build-time support tools next to the root Makefile. |
| 2055 dest_path = os.path.dirname(makefile_path) | 2055 dest_path = os.path.dirname(makefile_path) |
| 2056 gyp.common.CopyTool(flavor, dest_path) | 2056 gyp.common.CopyTool(flavor, dest_path) |
| 2057 | 2057 |
| 2058 # Find the list of targets that derive from the gyp file(s) being built. | 2058 # Find the list of targets that derive from the gyp file(s) being built. |
| 2059 user_all_target = False |
| 2059 needed_targets = set() | 2060 needed_targets = set() |
| 2060 for build_file in params['build_files']: | 2061 for build_file in params['build_files']: |
| 2061 for target in gyp.common.AllTargets(target_list, target_dicts, build_file): | 2062 for target in gyp.common.AllTargets(target_list, target_dicts, build_file): |
| 2062 needed_targets.add(target) | 2063 needed_targets.add(target) |
| 2064 user_all_target |= gyp.common.ParseQualifiedTarget(target)[1] == 'all' |
| 2063 | 2065 |
| 2064 build_files = set() | 2066 build_files = set() |
| 2065 include_list = set() | 2067 include_list = set() |
| 2066 for qualified_target in target_list: | 2068 for qualified_target in target_list: |
| 2067 build_file, target, toolset = gyp.common.ParseQualifiedTarget( | 2069 build_file, target, toolset = gyp.common.ParseQualifiedTarget( |
| 2068 qualified_target) | 2070 qualified_target) |
| 2069 | 2071 |
| 2070 this_make_global_settings = data[build_file].get('make_global_settings', []) | 2072 this_make_global_settings = data[build_file].get('make_global_settings', []) |
| 2071 assert make_global_settings_array == this_make_global_settings, ( | 2073 assert make_global_settings_array == this_make_global_settings, ( |
| 2072 "make_global_settings needs to be the same for all targets.") | 2074 "make_global_settings needs to be the same for all targets.") |
| (...skipping 20 matching lines...) Expand all Loading... |
| 2093 target + '.' + toolset + options.suffix + '.mk') | 2095 target + '.' + toolset + options.suffix + '.mk') |
| 2094 | 2096 |
| 2095 spec = target_dicts[qualified_target] | 2097 spec = target_dicts[qualified_target] |
| 2096 configs = spec['configurations'] | 2098 configs = spec['configurations'] |
| 2097 | 2099 |
| 2098 if flavor == 'mac': | 2100 if flavor == 'mac': |
| 2099 gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec) | 2101 gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec) |
| 2100 | 2102 |
| 2101 writer = MakefileWriter(generator_flags, flavor) | 2103 writer = MakefileWriter(generator_flags, flavor) |
| 2102 writer.Write(qualified_target, base_path, output_file, spec, configs, | 2104 writer.Write(qualified_target, base_path, output_file, spec, configs, |
| 2103 part_of_all=qualified_target in needed_targets) | 2105 part_of_all=qualified_target in needed_targets and |
| 2106 not user_all_target) |
| 2104 | 2107 |
| 2105 # Our root_makefile lives at the source root. Compute the relative path | 2108 # Our root_makefile lives at the source root. Compute the relative path |
| 2106 # from there to the output_file for including. | 2109 # from there to the output_file for including. |
| 2107 mkfile_rel_path = gyp.common.RelativePath(output_file, | 2110 mkfile_rel_path = gyp.common.RelativePath(output_file, |
| 2108 os.path.dirname(makefile_path)) | 2111 os.path.dirname(makefile_path)) |
| 2109 include_list.add(mkfile_rel_path) | 2112 include_list.add(mkfile_rel_path) |
| 2110 | 2113 |
| 2111 # Write out per-gyp (sub-project) Makefiles. | 2114 # Write out per-gyp (sub-project) Makefiles. |
| 2112 depth_rel_path = gyp.common.RelativePath(options.depth, os.getcwd()) | 2115 depth_rel_path = gyp.common.RelativePath(options.depth, os.getcwd()) |
| 2113 for build_file in build_files: | 2116 for build_file in build_files: |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2144 root_makefile.write("endif\n") | 2147 root_makefile.write("endif\n") |
| 2145 root_makefile.write('\n') | 2148 root_makefile.write('\n') |
| 2146 | 2149 |
| 2147 if (not generator_flags.get('standalone') | 2150 if (not generator_flags.get('standalone') |
| 2148 and generator_flags.get('auto_regeneration', True)): | 2151 and generator_flags.get('auto_regeneration', True)): |
| 2149 WriteAutoRegenerationRule(params, root_makefile, makefile_name, build_files) | 2152 WriteAutoRegenerationRule(params, root_makefile, makefile_name, build_files) |
| 2150 | 2153 |
| 2151 root_makefile.write(SHARED_FOOTER) | 2154 root_makefile.write(SHARED_FOOTER) |
| 2152 | 2155 |
| 2153 root_makefile.close() | 2156 root_makefile.close() |
| OLD | NEW |