1# We get a full absolute path to the tree in this case so that when we
2# generate the various paths in the local gdal-config file they will work
3# from anywhere in the filesystem.
4
5include ../GDALmake.opt
6
7CPPFLAGS :=	-I$(GDAL_ROOT)/frmts/vrt $(CPPFLAGS) $(JSON_INCLUDE) $(PROJ_INCLUDE) -I$(GDAL_ROOT)/ogr/ogrsf_frmts/geojson -I$(GDAL_ROOT)/ogr/ogrsf_frmts/generic -g
8LNK_FLAGS :=	$(LDFLAGS)
9DEP_LIBS =	$(EXE_DEP_LIBS) $(XTRAOBJ)
10
11BIN_LIST =	gdalinfo$(EXE) gdal_translate$(EXE) \
12		gdaladdo$(EXE) gdalwarp$(EXE) nearblack$(EXE) gdalmanage$(EXE) \
13		gdalenhance$(EXE) gdaltransform$(EXE) gdaldem$(EXE) \
14		gdallocationinfo$(EXE) gdalsrsinfo$(EXE) gdalmdiminfo$(EXE) \
15		gdalmdimtranslate$(EXE) gdal_viewshed$(EXE) gdal_create$(EXE)
16
17OBJ = commonutils.o gdalinfo_lib.o gdal_translate_lib.o gdalwarp_lib.o ogr2ogr_lib.o \
18	gdaldem_lib.o nearblack_lib.o gdal_grid_lib.o gdal_rasterize_lib.o gdalbuildvrt_lib.o \
19	gdalmdiminfo_lib.o gdalmdimtranslate_lib.o
20
21BIN_LIST += 	gdal_contour$(EXE) \
22		gdaltindex$(EXE) \
23		gdal_rasterize$(EXE) \
24		gdal_grid$(EXE) \
25		ogrinfo$(EXE) \
26		ogr2ogr$(EXE) \
27		ogrtindex$(EXE) \
28		ogrlineref$(EXE) \
29		testepsg$(EXE) \
30		gdalbuildvrt$(EXE)
31
32ifeq ($(GNM_ENABLED),yes)
33BIN_LIST += 	gnmmanage$(EXE) gnmanalyse$(EXE)
34CPPFLAGS +=	-I$(GDAL_ROOT)/gnm
35endif
36
37ifeq ($(HAVE_GEOS),yes)
38CPPFLAGS 	:=	$(CPPFLAGS) -DHAVE_GEOS=1 $(GEOS_CFLAGS)
39endif
40
41NON_DEFAULT_LIST = 	multireadtest$(EXE) dumpoverviews$(EXE) \
42	gdalwarpsimple$(EXE) gdalflattenmask$(EXE) \
43	gdaltorture$(EXE) gdal2ogr$(EXE) test_ogrsf$(EXE) \
44	gdalasyncread$(EXE) testreprojmulti$(EXE)
45
46default:	gdal-config-inst gdal-config $(BIN_LIST)
47
48all: default $(NON_DEFAULT_LIST)
49
50lib-depend:
51	(cd ../gcore ; $(MAKE) )
52	(cd ../port ; $(MAKE) )
53
54appslib: $(OBJ:.o=.$(OBJ_EXT))
55
56gdalinfo_lib.$(OBJ_EXT): gdalinfo_lib.cpp
57	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
58
59gdal_translate_lib.$(OBJ_EXT): gdal_translate_lib.cpp
60	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
61
62gdalwarp_lib.$(OBJ_EXT): gdalwarp_lib.cpp
63	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
64
65ogr2ogr_lib.$(OBJ_EXT): ogr2ogr_lib.cpp
66	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
67
68gdaldem_lib.$(OBJ_EXT): gdaldem_lib.cpp
69	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
70
71nearblack_lib.$(OBJ_EXT): nearblack_lib.cpp
72	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
73
74gdal_grid_lib.$(OBJ_EXT): gdal_grid_lib.cpp
75	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
76
77gdal_rasterize_lib.$(OBJ_EXT): gdal_rasterize_lib.cpp
78	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
79
80gdalbuildvrt_lib.$(OBJ_EXT): gdalbuildvrt_lib.cpp
81	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
82
83gdalmdiminfo_lib.$(OBJ_EXT): gdalmdiminfo_lib.cpp
84	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
85
86gdalmdimtranslate_lib.$(OBJ_EXT): gdalmdimtranslate_lib.cpp
87	$(CXX) -c $(GDAL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
88
89gdalinfo$(EXE):	gdalinfo_bin.$(OBJ_EXT) $(DEP_LIBS)
90	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) $(CONFIG_LIB_UTILS) -o $@
91
92gdalmdiminfo$(EXE):	gdalmdiminfo_bin.$(OBJ_EXT) $(DEP_LIBS)
93	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) $(CONFIG_LIB_UTILS) -o $@
94
95gdalmdimtranslate$(EXE):	gdalmdimtranslate_bin.$(OBJ_EXT) $(DEP_LIBS)
96	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) $(CONFIG_LIB_UTILS) -o $@
97
98gdal_translate$(EXE):	gdal_translate_bin.$(OBJ_EXT) $(DEP_LIBS)
99	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
100
101gdaladdo$(EXE):	gdaladdo.$(OBJ_EXT)  $(DEP_LIBS)
102	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
103
104gdalwarp$(EXE): gdalwarp_bin.$(OBJ_EXT) $(DEP_LIBS)
105	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
106
107gdal_contour$(EXE):	gdal_contour.$(OBJ_EXT) $(DEP_LIBS)
108	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
109
110nearblack$(EXE):	nearblack_bin.$(OBJ_EXT) $(DEP_LIBS)
111	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
112
113gdalmanage$(EXE):	gdalmanage.$(OBJ_EXT) $(DEP_LIBS)
114	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
115
116gdal_rasterize$(EXE):	gdal_rasterize_bin.$(OBJ_EXT) $(DEP_LIBS)
117	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
118
119gdaltindex$(EXE):	gdaltindex.$(OBJ_EXT) $(DEP_LIBS)
120	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
121
122gdalbuildvrt$(EXE):	gdalbuildvrt_bin.$(OBJ_EXT) $(DEP_LIBS)
123	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
124
125multireadtest$(EXE):	multireadtest.$(OBJ_EXT) $(DEP_LIBS)
126	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
127
128dumpoverviews$(EXE):	dumpoverviews.$(OBJ_EXT) $(DEP_LIBS)
129	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
130
131gdalenhance$(EXE):	gdalenhance.$(OBJ_EXT) $(DEP_LIBS)
132	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
133
134gdaldem$(EXE): gdaldem_bin.$(OBJ_EXT) $(DEP_LIBS)
135	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
136
137gdal_grid$(EXE):	gdal_grid_bin.$(OBJ_EXT) $(DEP_LIBS)
138	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
139
140gdalwarpsimple$(EXE): gdalwarpsimple.$(OBJ_EXT) $(DEP_LIBS)
141	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
142
143gdaltransform$(EXE): gdaltransform.$(OBJ_EXT) $(DEP_LIBS)
144	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
145
146gdallocationinfo$(EXE): gdallocationinfo.$(OBJ_EXT) $(DEP_LIBS)
147	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
148
149gdalsrsinfo$(EXE):	gdalsrsinfo.$(OBJ_EXT)  $(DEP_LIBS)
150	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
151
152gdalflattenmask$(EXE): gdalflattenmask.$(OBJ_EXT) $(DEP_LIBS)
153	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
154
155gdaltorture$(EXE): gdaltorture.$(OBJ_EXT) $(DEP_LIBS)
156	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
157
158gdal2ogr$(EXE):	gdal2ogr.$(OBJ_EXT) $(DEP_LIBS)
159	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
160
161ogrinfo$(EXE):	ogrinfo.$(OBJ_EXT)  $(DEP_LIBS)
162	$(LD) $(LNK_FLAGS) $<  $(XTRAOBJ) $(CONFIG_LIBS) -o $@
163
164ogrlineref$(EXE):	ogrlineref.$(OBJ_EXT)  $(DEP_LIBS)
165	$(LD) $(LNK_FLAGS) $<  $(XTRAOBJ) $(CONFIG_LIBS) -o $@
166
167ogr2ogr$(EXE):	ogr2ogr_bin.$(OBJ_EXT)  $(DEP_LIBS)
168	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
169
170testepsg$(EXE):	testepsg.$(OBJ_EXT) $(DEP_LIBS)
171	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
172
173ogrtindex$(EXE):	ogrtindex.$(OBJ_EXT) $(DEP_LIBS)
174	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
175
176test_ogrsf$(EXE):	test_ogrsf.$(OBJ_EXT)  $(DEP_LIBS)
177	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
178
179gdalasyncread$(EXE):	gdalasyncread.$(OBJ_EXT) $(DEP_LIBS)
180	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
181
182testreprojmulti$(EXE):	testreprojmulti.$(OBJ_EXT) $(DEP_LIBS)
183	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
184
185gnmmanage$(EXE):	gnmmanage.$(OBJ_EXT) $(DEP_LIBS)
186	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
187
188gnmanalyse$(EXE):	gnmanalyse.$(OBJ_EXT) $(DEP_LIBS)
189	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
190
191gdal_viewshed$(EXE):	gdal_viewshed.$(OBJ_EXT) $(DEP_LIBS)
192	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
193
194gdal_create$(EXE):	gdal_create.$(OBJ_EXT) $(DEP_LIBS)
195	$(LD) $(LNK_FLAGS) $< $(XTRAOBJ) $(CONFIG_LIBS) -o $@
196
197clean:
198	$(RM) *.o $(BIN_LIST) core gdal-config gdal-config-inst
199
200$(DEP_LIBS):
201
202
203gdal-config:	gdal-config.in ../GDALmake.opt ./GNUmakefile ../VERSION
204	rm -f gdal-config
205	echo '#!/bin/sh' > gdal-config
206	echo 'CONFIG_LIBS="$(CONFIG_LIBS)"' >> gdal-config
207	echo 'CONFIG_DEP_LIBS="$(LIBS)"' >> gdal-config
208	echo 'CONFIG_PREFIX="$(GDAL_ROOT)"' >> gdal-config
209	echo 'CONFIG_CFLAGS="-I$(GDAL_ROOT)/port -I$(GDAL_ROOT)/gcore -I$(GDAL_ROOT)/alg -I$(GDAL_ROOT)/gnm -I$(GDAL_ROOT)/ogr -I$(GDAL_ROOT)/ogr/ogrsf_frmts -I$(GDAL_ROOT)/frmts/vrt -I$(GDAL_ROOT)/apps"' >> gdal-config
210	echo 'CONFIG_DATA="$(GDAL_ROOT)/data"' >> gdal-config
211	echo 'CONFIG_VERSION="'`cat ../VERSION`'"' >> gdal-config
212	echo 'CONFIG_OGR_ENABLED=yes' >> gdal-config  # Deprecated.  Always true.
213	echo 'CONFIG_GNM_ENABLED=$(GNM_ENABLED)' >> gdal-config
214	echo 'CONFIG_FORMATS="$(GDAL_FORMATS)"' >> gdal-config
215	cat gdal-config.in >> gdal-config
216	chmod a+x gdal-config
217
218gdal-config-inst:	gdal-config.in ../GDALmake.opt ./GNUmakefile ../VERSION
219	rm -f gdal-config-inst
220	echo '#!/bin/sh' > gdal-config-inst
221	echo 'CONFIG_LIBS="$(CONFIG_LIBS_INS)"' >> gdal-config-inst
222	echo 'CONFIG_DEP_LIBS="$(LIBS)"' >> gdal-config-inst
223	echo 'CONFIG_PREFIX="$(INST_PREFIX)"' >> gdal-config-inst
224	echo 'CONFIG_CFLAGS="-I$(INST_INCLUDE)"' >> gdal-config-inst
225	echo 'CONFIG_DATA="$(INST_DATA)"' >> gdal-config-inst
226	echo 'CONFIG_VERSION="'`cat ../VERSION`'"' >> gdal-config-inst
227	echo 'CONFIG_OGR_ENABLED=yes' >> gdal-config-inst  # Deprecated.  Always true.
228	echo 'CONFIG_GNM_ENABLED=$(GNM_ENABLED)' >> gdal-config-inst
229	echo 'CONFIG_FORMATS="$(GDAL_FORMATS)"' >> gdal-config-inst
230	cat gdal-config.in >> gdal-config-inst
231	chmod a+x gdal-config-inst
232
233
234install: default
235	for f in $(BIN_LIST) ; do $(BSD_INSTALL_PROGRAM) $$f $(DESTDIR)$(INST_BIN) ; done
236	$(BSD_INSTALL_DATA) gdal_utils.h $(DESTDIR)$(INST_INCLUDE)
237	$(BSD_INSTALL_SCRIPT) gdal-config-inst $(DESTDIR)$(INST_BIN)/gdal-config
238
239