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