| 92 | */ |
| 93 | |
| 94 | int32_t make( LIST * targets, int32_t anyhow ) |
| 95 | { |
| 96 | COUNTS counts[ 1 ]; |
| 97 | int32_t status = 0; /* 1 if anything fails */ |
| 98 | |
| 99 | #ifdef OPT_HEADER_CACHE_EXT |
| 100 | hcache_init(); |
| 101 | #endif |
| 102 | |
| 103 | memset( (char *)counts, 0, sizeof( *counts ) ); |
| 104 | |
| 105 | /* Make sure that the tables are set up correctly. |
| 106 | */ |
| 107 | exec_init(); |
| 108 | |
| 109 | /* First bind all targets with LOCATE_TARGET setting. This is needed to |
| 110 | * correctly handle dependencies to generated headers. |
| 111 | */ |
| 112 | bind_explicitly_located_targets(); |
| 113 | |
| 114 | { |
| 115 | LISTITER iter, end; |
| 116 | PROFILE_ENTER( MAKE_MAKE0 ); |
| 117 | for ( iter = list_begin( targets ), end = list_end( targets ); iter != end; iter = list_next( iter ) ) |
| 118 | { |
| 119 | TARGET * t = bindtarget( list_item( iter ) ); |
| 120 | if ( t->fate == T_FATE_INIT ) |
| 121 | make0( t, 0, 0, counts, anyhow, 0 ); |
| 122 | } |
| 123 | PROFILE_EXIT( MAKE_MAKE0 ); |
| 124 | } |
| 125 | |
| 126 | #ifdef OPT_GRAPH_DEBUG_EXT |
| 127 | if ( DEBUG_GRAPH ) |
| 128 | { |
| 129 | LISTITER iter, end; |
| 130 | for ( iter = list_begin( targets ), end = list_end( targets ); iter != end; iter = list_next( iter ) ) |
| 131 | dependGraphOutput( bindtarget( list_item( iter ) ), 0 ); |
| 132 | } |
| 133 | #endif |
| 134 | |
| 135 | if ( DEBUG_MAKE ) |
| 136 | { |
| 137 | if ( counts->targets ) |
| 138 | out_printf( "...found %d target%s...\n", counts->targets, |
| 139 | counts->targets > 1 ? "s" : "" ); |
| 140 | if ( counts->temp ) |
| 141 | out_printf( "...using %d temp target%s...\n", counts->temp, |
| 142 | counts->temp > 1 ? "s" : "" ); |
| 143 | if ( counts->updating ) |
| 144 | out_printf( "...updating %d target%s...\n", counts->updating, |
| 145 | counts->updating > 1 ? "s" : "" ); |
| 146 | if ( counts->cantfind ) |
| 147 | out_printf( "...can't find %d target%s...\n", counts->cantfind, |
| 148 | counts->cantfind > 1 ? "s" : "" ); |
| 149 | if ( counts->cantmake ) |
| 150 | out_printf( "...can't make %d target%s...\n", counts->cantmake, |
| 151 | counts->cantmake > 1 ? "s" : "" ); |
no test coverage detected