| 1 |
GDAL_ROOT = @abs_top_builddir@ |
|---|
| 2 |
top_builddir = $(GDAL_ROOT) |
|---|
| 3 |
|
|---|
| 4 |
# |
|---|
| 5 |
# the library can be built by the native build or with the help of libtool |
|---|
| 6 |
# |
|---|
| 7 |
HAVE_LIBTOOL = @HAVE_LIBTOOL@ |
|---|
| 8 |
LIBTOOL = @LIBTOOL@ |
|---|
| 9 |
ifeq ($(HAVE_LIBTOOL),yes) |
|---|
| 10 |
LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile |
|---|
| 11 |
LIBTOOL_LINK = $(LIBTOOL) --mode=link |
|---|
| 12 |
LIBTOOL_INSTALL = $(LIBTOOL) --mode=install |
|---|
| 13 |
LIBTOOL_FINISH = $(LIBTOOL) --mode=finish --silent |
|---|
| 14 |
LIBTOOL_CLEAN = $(LIBTOOL) --mode=clean |
|---|
| 15 |
else |
|---|
| 16 |
LIBTOOL_FINISH = @BINTRUE@ |
|---|
| 17 |
endif |
|---|
| 18 |
|
|---|
| 19 |
CC = $(LIBTOOL_COMPILE) @CC@ |
|---|
| 20 |
CXX = $(LIBTOOL_COMPILE) @CXX@ |
|---|
| 21 |
LD = $(LIBTOOL_LINK) @CXX@ |
|---|
| 22 |
RM = $(LIBTOOL_CLEAN) /bin/rm -f *.lo |
|---|
| 23 |
INSTALL = $(LIBTOOL_INSTALL) $(GDAL_ROOT)/install-sh -c |
|---|
| 24 |
INSTALL_LIB = $(LIBTOOL_INSTALL) $(GDAL_ROOT)/install-sh -c |
|---|
| 25 |
INSTALL_DATA = $(GDAL_ROOT)/install-sh -c -m 0644 |
|---|
| 26 |
INSTALL_DIR = $(GDAL_ROOT)/install-sh -d |
|---|
| 27 |
|
|---|
| 28 |
#Flags to build optimized relese version |
|---|
| 29 |
CXX_OPTFLAGS = @CXXFLAGS@ |
|---|
| 30 |
C_OPTFLAGS = @CFLAGS@ |
|---|
| 31 |
# Flags to build debug version |
|---|
| 32 |
CXX_DBGFLAGS = -g -DDEBUG |
|---|
| 33 |
C_DBGFLAGS = -g -DDEBUG |
|---|
| 34 |
# Flags to build profiling version |
|---|
| 35 |
CXX_PROFFLAGS = -g3 -pg -DDEBUG |
|---|
| 36 |
C_PROFFLAGS = -g3 -pg -DDEBUG |
|---|
| 37 |
|
|---|
| 38 |
LIBS = @LIBS@ $(KAK_LIBS) $(DWG_LIBS) $(SDE_LIB) $(CURL_LIB) $(IDB_LIB) |
|---|
| 39 |
|
|---|
| 40 |
PYTHON_INCLUDES = @PYTHON_INCLUDES@ |
|---|
| 41 |
PYTHON_LIBS = @PYTHON_LIBS@ |
|---|
| 42 |
PYTHON_CFLAGS = @PYTHON_CFLAGS@ @NUMPY_FLAG@ |
|---|
| 43 |
PYTHON = @PYTHON@ |
|---|
| 44 |
PYTHON_DEV = @PYTHON_DEV@ |
|---|
| 45 |
PY_LD_SHARED = @PY_LD_SHARED@ |
|---|
| 46 |
PY_SO_EXT = @PY_SO_EXT@ |
|---|
| 47 |
|
|---|
| 48 |
# Next Generation SWIG bindings |
|---|
| 49 |
BINDINGS = @BINDINGS@ |
|---|
| 50 |
|
|---|
| 51 |
HAVE_OGDI = @HAVE_OGDI@ |
|---|
| 52 |
OGR_ENABLED = @OGR_ENABLED@ |
|---|
| 53 |
|
|---|
| 54 |
OSX_FRAMEWORK_PREFIX = /Library/Frameworks/GDAL.framework |
|---|
| 55 |
OSX_VERSION_FRAMEWORK_PREFIX = ${OSX_FRAMEWORK_PREFIX}/Versions/@GDAL_VERSION_MAJOR@.@GDAL_VERSION_MINOR@ |
|---|
| 56 |
|
|---|
| 57 |
prefix = @prefix@ |
|---|
| 58 |
exec_prefix = @exec_prefix@ |
|---|
| 59 |
INST_PREFIX = @exec_prefix@ |
|---|
| 60 |
INST_INCLUDE = @includedir@ |
|---|
| 61 |
INST_DATA = @datadir@ |
|---|
| 62 |
INST_LIB = @libdir@ |
|---|
| 63 |
INST_BIN = @bindir@ |
|---|
| 64 |
INST_PYMOD = @pymoddir@ |
|---|
| 65 |
INST_DOCS = @exec_prefix@/doc |
|---|
| 66 |
INST_MAN = @mandir@ |
|---|
| 67 |
|
|---|
| 68 |
# |
|---|
| 69 |
# Whether we use debug flags, or optimization is determined by |
|---|
| 70 |
# the CFG environment variable. Set to debug for debug builds. |
|---|
| 71 |
# This is similar to the OGDI builds. |
|---|
| 72 |
# |
|---|
| 73 |
ifneq (,$(findstring debug,$(CFG))) |
|---|
| 74 |
C_ODFLAGS = $(C_DBGFLAGS) |
|---|
| 75 |
CXX_ODFLAGS = $(CXX_DBGFLAGS) |
|---|
| 76 |
endif |
|---|
| 77 |
|
|---|
| 78 |
ifneq (,$(findstring gprof,$(CFG))) |
|---|
| 79 |
C_ODFLAGS = $(CXX_PROFFLAGS) |
|---|
| 80 |
CXX_ODFLAGS = $(C_PROFFLAGS) |
|---|
| 81 |
LNK_FLAGS = -pg |
|---|
| 82 |
endif |
|---|
| 83 |
|
|---|
| 84 |
ifeq ($(CFG),) |
|---|
| 85 |
C_ODFLAGS = $(C_OPTFLAGS) |
|---|
| 86 |
CXX_ODFLAGS = $(CXX_OPTFLAGS) |
|---|
| 87 |
endif |
|---|
| 88 |
|
|---|
| 89 |
CPPFLAGS = @CPPFLAGS@ -I$(GDAL_ROOT)/port @EXTRA_INCLUDES@ |
|---|
| 90 |
CFLAGS = @C_WFLAGS@ @C_PIC@ $(C_ODFLAGS) $(USER_DEFS) |
|---|
| 91 |
CXXFLAGS = @CXX_WFLAGS@ @CXX_PIC@ $(CXX_ODFLAGS) $(USER_DEFS) |
|---|
| 92 |
|
|---|
| 93 |
RANLIB = @RANLIB@ |
|---|
| 94 |
SO_EXT = @SO_EXT@ |
|---|
| 95 |
LD_SHARED = @LD_SHARED@ |
|---|
| 96 |
EXE = @EXE_EXT@ |
|---|
| 97 |
|
|---|
| 98 |
ifeq ($(notdir $(LD_SHARED)),true) |
|---|
| 99 |
HAVE_LD_SHARED = no |
|---|
| 100 |
else |
|---|
| 101 |
HAVE_LD_SHARED = yes |
|---|
| 102 |
endif |
|---|
| 103 |
|
|---|
| 104 |
GDAL_INCLUDE = -I$(GDAL_ROOT)/port -I$(GDAL_ROOT)/gcore \ |
|---|
| 105 |
-I$(GDAL_ROOT)/alg \ |
|---|
| 106 |
-I$(GDAL_ROOT)/ogr -I$(GDAL_ROOT)/ogr/ogrsf_frmts |
|---|
| 107 |
|
|---|
| 108 |
# libtool targets and help variables |
|---|
| 109 |
LIBGDAL := libgdal.la |
|---|
| 110 |
LIBGDAL_CURRENT := 12 |
|---|
| 111 |
LIBGDAL_REVISION := 4 |
|---|
| 112 |
LIBGDAL_AGE := 11 |
|---|
| 113 |
|
|---|
| 114 |
# native build targets and variables |
|---|
| 115 |
GDAL_VER = @GDAL_VER@ |
|---|
| 116 |
|
|---|
| 117 |
# version info |
|---|
| 118 |
GDAL_VERSION_MAJOR = @GDAL_VERSION_MAJOR@ |
|---|
| 119 |
GDAL_VERSION_MINOR = @GDAL_VERSION_MINOR@ |
|---|
| 120 |
GDAL_VERSION_REV = @GDAL_VERSION_REV@ |
|---|
| 121 |
|
|---|
| 122 |
GDAL_LIB = $(GDAL_ROOT)/libgdal.a |
|---|
| 123 |
GDAL_SLIB = $(GDAL_ROOT)/libgdal.$(SO_EXT) |
|---|
| 124 |
GDAL_SLIB_LINK = -L$(GDAL_ROOT) -lgdal |
|---|
| 125 |
|
|---|
| 126 |
# Mac OS X Framework definition |
|---|
| 127 |
MACOSX_FRAMEWORK = @MACOSX_FRAMEWORK@ |
|---|
| 128 |
|
|---|
| 129 |
# |
|---|
| 130 |
# OGR/PostgreSQL support. |
|---|
| 131 |
# |
|---|
| 132 |
HAVE_OGR_PG = @HAVE_PG@ |
|---|
| 133 |
PG_INC = @PG_INC@ |
|---|
| 134 |
|
|---|
| 135 |
# |
|---|
| 136 |
# MySQL support. |
|---|
| 137 |
# |
|---|
| 138 |
HAVE_MYSQL = @HAVE_MYSQL@ |
|---|
| 139 |
MYSQL_LIB = @MYSQL_LIB@ |
|---|
| 140 |
MYSQL_INC = @MYSQL_INC@ |
|---|
| 141 |
LIBS += $(MYSQL_LIB) |
|---|
| 142 |
|
|---|
| 143 |
# |
|---|
| 144 |
# HDF4 Support. |
|---|
| 145 |
# |
|---|
| 146 |
HDF4_INCLUDE = @HDF4_INCLUDE@ -I$(GDAL_ROOT)/ogr |
|---|
| 147 |
|
|---|
| 148 |
# |
|---|
| 149 |
# HDF5 Support. |
|---|
| 150 |
# |
|---|
| 151 |
HAVE_HDF5 = @HAVE_HDF5@ |
|---|
| 152 |
HDF5_INCLUDE = @HDF5_INCLUDE@ |
|---|
| 153 |
|
|---|
| 154 |
# |
|---|
| 155 |
# DODS Include file location |
|---|
| 156 |
# |
|---|
| 157 |
DODS_INC = @DODS_INC@ |
|---|
| 158 |
ifeq ($(DODS_INC),) |
|---|
| 159 |
HAVE_DODS = no |
|---|
| 160 |
else |
|---|
| 161 |
HAVE_DODS = yes |
|---|
| 162 |
endif |
|---|
| 163 |
|
|---|
| 164 |
# |
|---|
| 165 |
# SQLite |
|---|
| 166 |
# |
|---|
| 167 |
SQLITE_INC = @SQLITE_INC@ |
|---|
| 168 |
HAVE_SQLITE = @HAVE_SQLITE@ |
|---|
| 169 |
|
|---|
| 170 |
# |
|---|
| 171 |
# JPEG2000 via Kakadu Support. |
|---|
| 172 |
# |
|---|
| 173 |
KAKDIR = @KAKDIR@ |
|---|
| 174 |
|
|---|
| 175 |
ifneq ($(KAKDIR),) |
|---|
| 176 |
ifeq ($(HAVE_LIBTOOL),yes) |
|---|
| 177 |
include $(GDAL_ROOT)/frmts/jp2kak/jp2kak.lst |
|---|
| 178 |
KAK_LIBS = $(KAK_OBJ) |
|---|
| 179 |
endif |
|---|
| 180 |
endif |
|---|
| 181 |
|
|---|
| 182 |
# |
|---|
| 183 |
# JPEG-2000 Support via JasPer library. |
|---|
| 184 |
# |
|---|
| 185 |
HAVE_JASPER = @HAVE_JASPER@ |
|---|
| 186 |
JASPER_INCLUDE = -I../libjasper/include |
|---|
| 187 |
JASPER_FLAGS = @JASPER_FLAGS@ |
|---|
| 188 |
|
|---|
| 189 |
# |
|---|
| 190 |
# MrSID support via LizardTech's DSDK |
|---|
| 191 |
# |
|---|
| 192 |
MRSID_FLAGS = @MRSID_FLAGS@ |
|---|
| 193 |
MRSID_INCLUDE = @MRSID_INCLUDE@ |
|---|
| 194 |
|
|---|
| 195 |
# |
|---|
| 196 |
# Xerces C++ XML Parser for GML. |
|---|
| 197 |
# |
|---|
| 198 |
HAVE_XERCES = @HAVE_XERCES@ |
|---|
| 199 |
XERCES_INCLUDE = @XERCES_INCLUDE@ |
|---|
| 200 |
|
|---|
| 201 |
# |
|---|
| 202 |
# Oracle Spatial Support |
|---|
| 203 |
# |
|---|
| 204 |
HAVE_OCI = @HAVE_OCI@ |
|---|
| 205 |
OCI_INCLUDE = @OCI_INCLUDE@ |
|---|
| 206 |
|
|---|
| 207 |
# GEOS Support |
|---|
| 208 |
|
|---|
| 209 |
HAVE_GEOS = @HAVE_GEOS@ |
|---|
| 210 |
GEOS_CFLAGS = @GEOS_CFLAGS@ |
|---|
| 211 |
|
|---|
| 212 |
# GRASS Support |
|---|
| 213 |
|
|---|
| 214 |
GRASS_SETTING = @GRASS_SETTING@ |
|---|
| 215 |
GRASS_INCLUDE = @GRASS_INCLUDE@ |
|---|
| 216 |
GRASS_GISBASE = @GRASS_GISBASE@ |
|---|
| 217 |
HAVE_GRASS = @HAVE_GRASS@ |
|---|
| 218 |
|
|---|
| 219 |
# |
|---|
| 220 |
# SDE |
|---|
| 221 |
# |
|---|
| 222 |
HAVE_SDE = @SDE_ENABLED@ |
|---|
| 223 |
SDE_LIB = @SDE_LIB@ |
|---|
| 224 |
SDE_INC = @SDE_INC@ |
|---|
| 225 |
|
|---|
| 226 |
# |
|---|
| 227 |
# Curl |
|---|
| 228 |
# |
|---|
| 229 |
CURL_SETTING = @CURL_SETTING@ |
|---|
| 230 |
CURL_LIB = @CURL_LIB@ |
|---|
| 231 |
CURL_INC = @CURL_INC@ |
|---|
| 232 |
|
|---|
| 233 |
# |
|---|
| 234 |
# DWGdirect Library |
|---|
| 235 |
# |
|---|
| 236 |
DWGDIRECT = @DWGDIRECT@ |
|---|
| 237 |
DWG_PLT = @DWG_PLT@ |
|---|
| 238 |
|
|---|
| 239 |
ifneq ($(DWGDIRECT),) |
|---|
| 240 |
DWG_LIBDIR = $(DWGDIRECT)/lib/$(DWG_PLT) |
|---|
| 241 |
DWG_LIBS = $(DWG_LIBDIR)/DD_$(DWG_PLT)_ModelerGeometry.a \ |
|---|
| 242 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_AcisRenderer.a \ |
|---|
| 243 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Br.a \ |
|---|
| 244 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_AcisBuilder.a \ |
|---|
| 245 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Db.a \ |
|---|
| 246 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Gs.a \ |
|---|
| 247 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_SpatialIndex.a \ |
|---|
| 248 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Gi.a \ |
|---|
| 249 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Ge.a \ |
|---|
| 250 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Root.a \ |
|---|
| 251 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_FT.a \ |
|---|
| 252 |
$(DWG_LIBDIR)/DD_$(DWG_PLT)_Alloc.a |
|---|
| 253 |
HAVE_DWGDIRECT = yes |
|---|
| 254 |
else |
|---|
| 255 |
DWG_LIBS = |
|---|
| 256 |
HAVE_DWGDIRECT = no |
|---|
| 257 |
endif |
|---|
| 258 |
|
|---|
| 259 |
# |
|---|
| 260 |
# "Panorama" GIS support. |
|---|
| 261 |
# |
|---|
| 262 |
HAVE_PANORAMA = @HAVE_PANORAMA@ |
|---|
| 263 |
PANORAMA_INC = @PANORAMA_INC@ |
|---|
| 264 |
|
|---|
| 265 |
# |
|---|
| 266 |
# Informix DataBlade support |
|---|
| 267 |
# |
|---|
| 268 |
HAVE_IDB = @HAVE_IDB@ |
|---|
| 269 |
IDB_INC = @IDB_INC@ |
|---|
| 270 |
IDB_LIB = @IDB_LIB@ |
|---|
| 271 |
|
|---|
| 272 |
# |
|---|
| 273 |
# FMEObjects |
|---|
| 274 |
# |
|---|
| 275 |
ifeq (@X_FME_HOME@,) |
|---|
| 276 |
HAVE_FME = no |
|---|
| 277 |
FME_INCLUDE = |
|---|
| 278 |
else |
|---|
| 279 |
HAVE_FME = yes |
|---|
| 280 |
FME_INCLUDE = -I@X_FME_HOME@/fmeobjects/cpp |
|---|
| 281 |
endif |
|---|
| 282 |
|
|---|
| 283 |
# PCRaster support |
|---|
| 284 |
PCRASTER_SETTING = @PCRASTER_SETTING@ |
|---|
| 285 |
|
|---|
| 286 |
OGDI_INCLUDE = @OGDI_INCLUDE@ |
|---|
| 287 |
|
|---|
| 288 |
PNG_SETTING = @PNG_SETTING@ |
|---|
| 289 |
JPEG_SETTING = @JPEG_SETTING@ |
|---|
| 290 |
TIFF_SETTING = @TIFF_SETTING@ |
|---|
| 291 |
GEOTIFF_SETTING = @GEOTIFF_SETTING@ |
|---|
| 292 |
GIF_SETTING = @GIF_SETTING@ |
|---|
| 293 |
FITS_SETTING = @FITS_SETTING@ |
|---|
| 294 |
OGDI_SETTING = @HAVE_OGDI@ |
|---|
| 295 |
ODBC_SETTING = @ODBC_SETTING@ |
|---|
| 296 |
# PGeo driver is built-in when ODBC is available |
|---|
| 297 |
PGEO_SETTING = @ODBC_SETTING@ |
|---|
| 298 |
NETCDF_SETTING = @NETCDF_SETTING@ |
|---|
| 299 |
LIBZ_SETTING = @LIBZ_SETTING@ |
|---|
| 300 |
|
|---|
| 301 |
# |
|---|
| 302 |
# PROJ.4 stuff |
|---|
| 303 |
# |
|---|
| 304 |
PROJ_STATIC = @PROJ_STATIC@ |
|---|
| 305 |
ifeq ($(PROJ_STATIC),yes) |
|---|
| 306 |
PROJ_FLAGS = -DPROJ_STATIC |
|---|
| 307 |
endif |
|---|
| 308 |
PROJ_INCLUDE = @PROJ_INCLUDE@ |
|---|
| 309 |
|
|---|
| 310 |
GDAL_LIBS = $(GDAL_LIB) |
|---|
| 311 |
|
|---|
| 312 |
ifeq ($(OGR_ENABLED),yes) |
|---|
| 313 |
GDAL_LIBS := $(GDAL_LIB) $(OCI_LIB) $(GDAL_LIBS) |
|---|
| 314 |
CPPFLAGS := -DOGR_ENABLED $(CPPFLAGS) |
|---|
| 315 |
endif |
|---|
| 316 |
|
|---|
| 317 |
# |
|---|
| 318 |
# Note these codes have to exactly match the format directory names, |
|---|
| 319 |
# and their uppercase form should be the format portion of the |
|---|
| 320 |
# format registration entry point. eg. gdb -> GDALRegister_GDB(). |
|---|
| 321 |
# |
|---|
| 322 |
GDAL_FORMATS = gxf gtiff hfa aigrid aaigrid ceos ceos2 iso8211 xpm \ |
|---|
| 323 |
sdts raw dted mem jdem envisat elas fit vrt usgsdem l1b \ |
|---|
| 324 |
nitf bmp pcidsk airsar rs2 ilwis rmf rik leveller sgi \ |
|---|
| 325 |
idrisi \ |
|---|
| 326 |
@OPT_GDAL_FORMATS@ |
|---|
| 327 |
|
|---|
| 328 |
# |
|---|
| 329 |
# CONFIG_LIBS is what local program should link against, and CONFIG_LIBS_INS |
|---|
| 330 |
# is what will be emitted into the gdal-config script that is installed |
|---|
| 331 |
# globally. |
|---|
| 332 |
# |
|---|
| 333 |
|
|---|
| 334 |
ifeq ($(HAVE_LIBTOOL), yes) |
|---|
| 335 |
CONFIG_LIBS = $(GDAL_ROOT)/$(LIBGDAL) |
|---|
| 336 |
CONFIG_LIBS_INS = -L$(INST_LIB) -lgdal |
|---|
| 337 |
EXE_DEP_LIBS = $(GDAL_ROOT)/$(LIBGDAL) |
|---|
| 338 |
SO_EXT = la |
|---|
| 339 |
else |
|---|
| 340 |
|
|---|
| 341 |
ifeq ($(HAVE_LD_SHARED),yes) |
|---|
| 342 |
CONFIG_LIBS = $(GDAL_SLIB_LINK) $(LIBS) |
|---|
| 343 |
CONFIG_LIBS_INS = -L$(INST_LIB) -lgdal |
|---|
| 344 |
EXE_DEP_LIBS = $(GDAL_SLIB) |
|---|
| 345 |
else |
|---|
| 346 |
CONFIG_LIBS = $(GDAL_LIBS) $(LIBS) |
|---|
| 347 |
CONFIG_LIBS_INS = $(foreach LF,$(GDAL_LIBS),$(INST_LIB)/$(notdir $(LF)))\ |
|---|
| 348 |
$(LIBS) |
|---|
| 349 |
EXE_DEP_LIBS = $(GDAL_LIB) |
|---|
| 350 |
endif |
|---|
| 351 |
|
|---|
| 352 |
endif # HAVE_LIBTOOL |
|---|
| 353 |
|
|---|
| 354 |
|
|---|
| 355 |
# |
|---|
| 356 |
# generic library rules |
|---|
| 357 |
# |
|---|
| 358 |
|
|---|
| 359 |
# |
|---|
| 360 |
# gdal and ogr low level drivers use the following default rules in order to |
|---|
| 361 |
# populate the ../o/ directory with all object and library object files |
|---|
| 362 |
# |
|---|
| 363 |
|
|---|
| 364 |
O_OBJ = $(foreach file,$(OBJ),../o/$(file)) |
|---|
| 365 |
|
|---|
| 366 |
../o/%.o: %.c |
|---|
| 367 |
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< |
|---|
| 368 |
|
|---|
| 369 |
../o/%.o: %.cpp |
|---|
| 370 |
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< |
|---|
| 371 |
|
|---|
| 372 |
%.o: %.c |
|---|
| 373 |
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< |
|---|
| 374 |
|
|---|
| 375 |
%.o: %.cpp |
|---|
| 376 |
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< |
|---|
| 377 |
|
|---|
| 378 |
# |
|---|
| 379 |
# default rules for handling subdirectories |
|---|
| 380 |
# |
|---|
| 381 |
|
|---|
| 382 |
%-target: |
|---|
| 383 |
$(MAKE) -C $* |
|---|
| 384 |
|
|---|
| 385 |
%-clean: |
|---|
| 386 |
$(MAKE) -C $* clean |
|---|