@@ -113,30 +113,53 @@ TEST_EXE = $(patsubst $(SRCDIR)/tests/%.c, $(BINDIR)/force-test/%, $(TEST_SRC))
113
113
DEPENDENCIES = $(CROSS_OBJ:.o=.d ) $(LOWER_OBJ:.o=.d ) $(HIGHER_OBJ:.o=.d ) $(AUX_OBJ:.o=.d )
114
114
115
115
# Targets
116
- all : exe tests scripts misc
116
+ all : check-required exe tests scripts misc
117
117
exe : aux higher lower
118
118
aux : $(MAIN_AUX_EXE )
119
119
higher : $(MAIN_HIGHER_EXE )
120
120
lower : $(MAIN_LOWER_EXE )
121
121
tests : $(TEST_EXE )
122
122
scripts : bash rstats python external
123
123
dev : $(BINDIR ) /force-stratified-sample # specific target for development
124
- .PHONY : bash rstats python external scripts misc install
125
- # .PHONY: temp all install install_ bash python rstats misc external clean build check
124
+ .PHONY : check-required bash rstats python external scripts misc install
126
125
127
126
# Include dependencies
128
127
-include $(DEPENDENCIES )
129
128
130
129
131
- print-vars :
132
- @echo " main source files: $( TEST_SRC) "
133
- @echo " main program files: $( TEST_EXE) "
134
- @echo " Object files: $( CROSS_OBJ) "
135
- @echo " Compiler flags: $( CFLAGS) "
130
+ # #########################################################################
131
+
132
+ # ## Check external tools
133
+
134
+ REQUIRE = gcc g++ \
135
+ parallel \
136
+ gdalinfo gdal_translate gdaladdo gdalwarp gdalbuildvrt \
137
+ gdal_merge.py gdal_rasterize gdaltransform gdalsrsinfo \
138
+ gdal_edit.py gdal_calc.py gdal-config \
139
+ ogrinfo ogr2ogr \
140
+ gsl-config curl-config \
141
+ unzip tar lockfile-create lockfile-remove rename dos2unix \
142
+ python3 pip3 \
143
+ R \
144
+ landsatlinks \
145
+ opencv_version
146
+
147
+ check-required :
148
+ @missing=$$(for exec in $(REQUIRE ) ; do \
149
+ if ! command -v $$ exec > /dev/null; then \
150
+ echo $$ exec; \
151
+ fi ; \
152
+ done); \
153
+ if [ " $$ missing" ]; then \
154
+ echo " No executable(s) in PATH: $$ missing. Please install the dependencies!" ; \
155
+ exit 1; \
156
+ fi
157
+
136
158
137
159
# #########################################################################
138
160
139
161
# Modules
162
+
140
163
$(OBJDIR ) /% .o : $(SRCDIR ) /modules/cross-level/% .c
141
164
@echo " Compiling $<..."
142
165
$(CXX ) $(CFLAGS ) $(INCLUDES ) $(FLAGS ) -c $< -o $@ $(LIBS )
@@ -155,28 +178,6 @@ $(OBJDIR)/%.o: $(SRCDIR)/modules/aux-level/%.c
155
178
156
179
# #########################################################################
157
180
158
-
159
- # ## DEPENDENCIES
160
-
161
- # EXECUTABLES = gcc g++ \
162
- # parallel \
163
- # gdalinfo gdal_translate gdaladdo gdalwarp gdalbuildvrt \
164
- # gdal_merge.py gdal_rasterize gdaltransform gdalsrsinfo \
165
- # gdal_edit.py gdal_calc.py gdal-config \
166
- # ogrinfo ogr2ogr \
167
- # gsl-config curl-config \
168
- # unzip tar lockfile-create lockfile-remove rename dos2unix \
169
- # python3 pip3 \
170
- # R \
171
- # landsatlinks \
172
- # opencv_version
173
-
174
- # OK := $(foreach exec,$(EXECUTABLES),\
175
- # $(if $(shell which $(exec)),OK,$(error "No $(exec) in PATH, install dependencies!")))
176
-
177
-
178
- # #########################################################################
179
-
180
181
# Main executables
181
182
182
183
$(BINDIR ) /% : $(SRCDIR ) /main/aux-level/% .c $(CROSS_OBJ ) $(AUX_OBJ )
@@ -199,6 +200,8 @@ $(BINDIR)/force-test/%: $(SRCDIR)/tests/%.c $(SRCDIR)/tests/unity/unity.c $(CROS
199
200
$(CXX ) $(CFLAGS ) $(INCLUDES ) $(FLAGS ) -o $@ $^ $(LIBS )
200
201
201
202
203
+ # #########################################################################
204
+
202
205
# Bash scripts
203
206
204
207
bash :
@@ -243,6 +246,8 @@ misc:
243
246
# $(G11) $(CFLAGS) $(GDAL) $(GSL) $(CURL) $(SPLITS) $(OPENCV) $(PYTHON) $(PYTHON2) $(RSTATS) -o $(TB)/dummy src/dummy.c $(TC)/*.o $(TA)/*.o $(TH)/*.o $(LDGDAL) $(LDGSL) $(LDCURL) $(LDSPLITS) $(LDOPENCV) $(LDPYTHON) $(LDRSTATS)
244
247
245
248
249
+ # #########################################################################
250
+
246
251
# install the software
247
252
248
253
install : all
0 commit comments