# **********************************************************************
# *
# * 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_srcdir = ../../..
srcdir = .

CC=gcc
CFLAGS=-std=gnu99 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection    -I/usr/gdal311/include -fno-math-errno -fno-signed-zeros -Wall -flto -I/usr/proj96/include
CPPFLAGS = -I$(top_builddir)/liblwgeom -I$(top_srcdir)/liblwgeom  -I/usr/geos313/include -I/usr/proj96/include  -I/usr/include/libxml2 -I/usr/include -I/usr/include/json-c  -DNDEBUG 
SHELL = /bin/sh
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LDFLAGS = -Wl,-rpath,/usr/libspatialite50/lib -Wl,-rpath,/usr/proj96/lib64 -Wl,-rpath,/usr/geos313/lib64 -Wl,-z,relro -Wl,--as-needed  -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes  -L/usr/geos313/lib64 -lgeos_c -L/usr/proj96/lib64 -L/usr/gdal311/lib -L/usr/libgeotiff17/lib -ltiff -L/usr/lib64 -lm -flto -L/usr/geos313/lib64 -lgeos_c -L/usr/proj96/lib -lproj



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:
