# **********************************************************************
# *
# * PostGIS - Spatial Types for PostgreSQL
# * http://postgis.net
# *
# * Copyright (C) 2022 Sandro Santilli <strk@kbt.io>
# * Copyright 2008 Kevin Neufeld
# *
# * This is free software; you can redistribute and/or modify it under
# * the terms of the GNU General Public Licence. See the COPYING file.
# *
# **********************************************************************

top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
srcdir = @srcdir@

CC=@CC@
CFLAGS=@CFLAGS@ @PROJ_CPPFLAGS@
CPPFLAGS = -I$(top_builddir)/liblwgeom -I$(top_srcdir)/liblwgeom @CPPFLAGS@
SHELL = @SHELL@
LIBTOOL = @LIBTOOL@
LDFLAGS = @LDFLAGS@ @GEOS_LDFLAGS@ @PROJ_LDFLAGS@

VPATH = $(srcdir)

IMAGES= \
	../images/de9im01.png \
	../images/de9im02.png \
	../images/st_alphashape01.png \
	../images/st_alphashape02.png \
	../images/st_alphashape03.png \
	../images/st_azimuth01.png \
	../images/st_azimuth02.png \
	../images/st_boundary01.png \
	../images/st_boundary02.png \
	../images/st_buffer01.png \
	../images/st_buffer02.png \
	../images/st_buffer03.png \
	../images/st_buffer04.png \
	../images/st_buffer05.png \
	../images/st_buffer06.png \
	../images/st_buffer07.png \
	../images/st_buffer08.png \
	../images/st_buffer09.png \
	../images/st_buffer10.png \
	../images/st_buffer11.png \
	../images/st_buffer12.png \
	../images/st_buffer13.png \
	../images/st_buildarea01.png \
	../images/st_closestpoint01.png \
	../images/st_closestpoint02.png \
	../images/st_clusterkmeans02.png \
	../images/st_centroid01.png \
	../images/st_centroid02.png \
	../images/st_centroid03.png \
	../images/st_centroid04.png \
	../images/st_contains01.png \
	../images/st_contains02.png \
	../images/st_contains03.png \
	../images/st_contains04.png \
	../images/st_contains05.png \
	../images/st_contains06.png \
	../images/st_concavehull01.png \
	../images/st_concavehull02.png \
	../images/st_convexhull01.png \
	../images/st_crosses01.png \
	../images/st_crosses02.png \
	../images/st_crosses03.png \
	../images/st_crosses04.png \
	../images/st_constraineddelaunaytriangles01.png \
	../images/st_constraineddelaunaytriangles02.png \
	../images/st_delaunaytriangles04.png \
	../images/st_difference01.png \
	../images/st_dumppoints01.png \
	../images/st_envelope01.png \
	../images/st_extrude01.png \
	../images/st_extrude03.png \
	../images/st_generatepoints01.png \
	../images/st_geometricmedian01.png \
	../images/st_hausdorffdistance01.png \
	../images/st_issimple01.png \
	../images/st_issimple02.png \
	../images/st_issimple03.png \
	../images/st_issimple04.png \
	../images/st_issimple05.png \
	../images/st_issimple06.png \
	../images/st_issimple07.png \
	../images/st_isvalid01.png \
	../images/st_isvalid02.png \
	../images/st_isvalid03.png \
	../images/st_isvalid04.png \
	../images/st_isvalid05.png \
	../images/st_isvalid06.png \
	../images/st_isvalid07.png \
	../images/st_isvalid08.png \
	../images/st_isvalid09.png \
	../images/st_letters01.png \
	../images/st_linecrossingdirection01.png \
	../images/st_linecrossingdirection02.png \
	../images/st_linecrossingdirection03.png \
	../images/st_linecrossingdirection04.png \
	../images/st_line_interpolate_point01.png \
	../images/st_line_interpolate_points01.png \
	../images/st_linemerge01.png \
	../images/st_linemerge02.png \
	../images/st_linemerge03.png \
	../images/st_line_substring01.png \
	../images/st_locatebetween01.png \
	../images/st_longestline01.png \
	../images/st_longestline02.png \
	../images/st_longestline03.png \
	../images/st_makevalid01.png \
	../images/st_makevalid02.png \
	../images/st_makevalid03.png \
	../images/st_makevalid04.png \
	../images/st_makevalid05.png \
	../images/st_makevalid06.png \
	../images/st_maximuminscribedcircle01.png \
	../images/st_maximuminscribedcircle02.png \
	../images/st_minimumboundingcircle01.png \
	../images/st_minkowskisum01.png \
	../images/st_minkowskisum02.png \
	../images/st_minkowskisum03.png \
	../images/st_minkowskisum04.png \
	../images/st_offsetcurve01.png \
	../images/st_offsetcurve02.png \
	../images/st_offsetcurve03.png \
	../images/st_offsetcurve04.png \
	../images/st_offsetcurve05.png \
	../images/st_offsetcurve06.png \
	../images/st_optimalalphashape01.png \
	../images/st_optimalalphashape02.png \
	../images/st_orientedenvelope01.png \
	../images/st_overlaps01.png \
	../images/st_overlaps02.png \
	../images/st_overlaps03.png \
	../images/st_overlaps04.png \
	../images/st_overlaps05.png \
	../images/st_overlaps06.png \
	../images/st_pointonsurface.png \
	../images/st_pointonsurface01.png \
	../images/st_pointonsurface02.png \
	../images/st_pointonsurface03.png \
	../images/st_pointonsurface04.png \
	../images/st_triangulatepolygon01.png \
	../images/st_sharedpaths01.png \
	../images/st_sharedpaths02.png \
	../images/st_shortestline01.png \
	../images/st_shortestline02.png \
	../images/st_snap01.png \
	../images/st_snap02.png \
	../images/st_snap03.png \
	../images/st_snap04.png \
	../images/st_snap05.png \
	../images/st_split01.png \
	../images/st_split02.png \
	../images/st_split03.png \
	../images/st_split04.png \
	../images/st_simplifypolygonhull01.png \
	../images/st_simplifypolygonhull02.png \
	../images/st_simplifypolygonhull03.png \
	../images/st_straightskeleton01.png \
	../images/st_approximatemedialaxis01.png \
	../images/st_subdivide01.png \
	../images/st_subdivide02.png \
	../images/st_symdifference01.png \
	../images/st_symdifference02.png \
	../images/st_tesselate03.png \
	../images/st_tesselate04.png \
	../images/st_touches01.png \
	../images/st_touches02.png \
	../images/st_touches03.png \
	../images/st_touches04.png \
	../images/st_touches05.png \
	../images/st_touches06.png \
	../images/st_voronoi01.png \
	../images/st_voronoi02.png \
	../images/st_voronoi03.png \
	../images/st_within01.png

# Images that are created with dimensions 100x100
IMAGES_RESIZED= \
	../images/de9im03.png \
	../images/de9im04.png \
	../images/de9im05.png \
	../images/de9im06.png \
	../images/de9im07.png \
	../images/de9im08.png \
	../images/de9im09.png \
	../images/de9im10.png \
	../images/de9im11.png \
	../images/de9im12.png \
	../images/de9im13.png

OBJS=styles.o generator.o

# Build the generator
all: generator

images_dir:
	mkdir -p ../images

# generate the images
images: $(IMAGES) $(IMAGES_RESIZED)

# Command to build each of the .o files
$(OBJS): %.o: %.c
	$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

# Command to build each of the .wkt files
$(IMAGES): ../images/%.png: %.wkt generator styles.conf | images_dir
	@./generator $< $@

# Command to resize each of the images
$(IMAGES_RESIZED): ../images/%.png: %.wkt generator styles.conf | images_dir
	@./generator $< $@
	convert $@ -resize 100x100 $@

# Build the main executable
generator: $(OBJS) ../../../liblwgeom/.libs/liblwgeom.a
	$(LIBTOOL) --mode=link \
	$(CC) -o $@ $^ $(LDFLAGS)

# Build liblwgeom
../../../liblwgeom/.libs/liblwgeom.a:
	$(MAKE) -C ../../../liblwgeom liblwgeom.la

# Clean target
clean:
	rm -f $(OBJS)
	rm -f generator
	rm -f tmp[0-9].png

distclean: clean
	rm -f Makefile

images-clean:
	rm -f $(IMAGES) $(IMAGES_RESIZED)

.NOTPARALLEL:
