@@ -91,12 +91,12 @@ include funcs.mk
91
91
toolchain_path =$($($(host_arch ) _$(host_os ) _native_toolchain) _prefixbin)
92
92
final_build_id_long+ =$(shell $(build_SHA256SUM ) config.site.in)
93
93
final_build_id+ =$(shell echo -n $(final_build_id_long ) | $(build_SHA256SUM ) | cut -c-$(HASH_LENGTH ) )
94
- $(host_prefix ) /.stamp_$(final_build_id ) : | $(native_packages ) $(packages )
94
+ $(host_prefix ) /.stamp_$(final_build_id ) : $(native_packages ) $(packages )
95
95
$(AT ) rm -rf $(@D )
96
96
$(AT ) mkdir -p $(@D )
97
- $(AT ) echo copying packages: $|
97
+ $(AT ) echo copying packages: $^
98
98
$(AT ) echo to: $(@D )
99
- $(AT ) cd $(@D ) ; $(foreach package,$| , tar xf $($(package ) _cached) ; )
99
+ $(AT ) cd $(@D ) ; $(foreach package,$^ , tar xf $($(package ) _cached) ; )
100
100
$(AT ) touch $@
101
101
102
102
$(host_prefix ) /share/config.site : config.site.in $(host_prefix ) /.stamp_$(final_build_id )
@@ -121,13 +121,41 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
121
121
$< > $@
122
122
$(AT)touch $@
123
123
124
- install : $(host_prefix ) /share/config.site
125
- download-one : $(all_sources )
124
+
125
+ define check_or_remove_cached
126
+ mkdir -p $(BASE_CACHE ) /$(host ) /$(package ) && cd $(BASE_CACHE ) /$(host ) /$(package ) ; \
127
+ $(build_SHA256SUM ) -c $($(package ) _cached_checksum) >/dev/null 2>/dev/null || \
128
+ ( rm -f $($(package ) _cached_checksum) ; \
129
+ if test -f "$($(package ) _cached) "; then echo "Checksum mismatch for $(package ) . Forcing rebuild.."; rm -f $($(package ) _cached_checksum) $($(package ) _cached) ; fi )
130
+ endef
131
+
132
+ define check_or_remove_sources
133
+ mkdir -p $($(package ) _source_dir) ; cd $($(package ) _source_dir) ; \
134
+ $(build_SHA256SUM ) -c $($(package ) _fetched) >/dev/null 2>/dev/null || \
135
+ ( if test -f $($(package ) _all_sources) ; then echo "Checksum missing or mismatched for $(package ) source. Forcing re-download."; fi; \
136
+ rm -f $($(package ) _all_sources) $($(1 ) _fetched) )
137
+ endef
138
+
139
+ check-packages :
140
+ @$(foreach package,$(all_packages ) ,$(call check_or_remove_cached,$(package ) ) ;)
141
+ check-sources :
142
+ @$(foreach package,$(all_packages ) ,$(call check_or_remove_sources,$(package ) ) ;)
143
+
144
+ $(host_prefix ) /share/config.site : check-packages
145
+
146
+ check-packages : check-sources
147
+
148
+ install : check-packages $(host_prefix ) /share/config.site
149
+
150
+
151
+ download-one : check-sources $(all_sources )
152
+
126
153
download-osx :
127
154
@$(MAKE ) -s HOST=x86_64-apple-darwin11 download-one
128
155
download-linux :
129
156
@$(MAKE ) -s HOST=x86_64-unknown-linux-gnu download-one
130
157
download-win :
131
158
@$(MAKE ) -s HOST=x86_64-w64-mingw32 download-one
132
159
download : download-osx download-linux download-win
133
- .PHONY : install cached download-one download-osx download-linux download-win download
160
+
161
+ .PHONY : install cached download-one download-osx download-linux download-win download check-packages check-sources
0 commit comments