CC = gcc
LIBS = -lm

CFLAGS = -O2 -s

RANDOMDATA = mk_random_points
RANDOMDATA_OBJ = mk_random_points.o

ADDNOISE = add_noise
ADDNOISE_OBJ = add_noise.o read_points.o

EXHAUSTIVE = exhaustive
EXHAUSTIVE_OBJ = main.o read_points.o inquire_exhaustive.o 

WINUP = winup
WINUP_OBJ = main.o read_points.o inquire_winup.o

MKWINUP = mk_winup
MKWINUP_OBJ = mk_winup.o read_points.o

CLUSTERHAAR = clusterhaar
CLUSTERHAAR_OBJ = main.o read_points.o inquire_cluster.o transform_haar.o

MKCLUSTERHAAR = mk_clusterhaar
MKCLUSTERHAAR_OBJ = mk_cluster.o transform_haar.o read_points.o

CLUSTERORIGIN = clusterorigin
CLUSTERORIGIN_OBJ = main.o read_points.o inquire_cluster.o transform_origin.o

MKCLUSTERORIGIN = mk_clusterorigin
MKCLUSTERORIGIN_OBJ = mk_cluster.o transform_origin.o read_points.o

all: $(RANDOMDATA) $(ADDNOISE) $(EXHAUSTIVE) $(WINUP) $(MKWINUP) $(CLUSTERHAAR) $(MKCLUSTERHAAR) $(CLUSTERORIGIN) $(MKCLUSTERORIGIN) run

$(RANDOMDATA): $(RANDOMDATA_OBJ)
	$(CC) $(CFLAGS) -o $(RANDOMDATA) $(RANDOMDATA_OBJ) $(LIBS)

$(ADDNOISE): $(ADDNOISE_OBJ)
	$(CC) $(CFLAGS) -o $(ADDNOISE) $(ADDNOISE_OBJ) $(LIBS)

$(EXHAUSTIVE): $(EXHAUSTIVE_OBJ)
	$(CC) $(CFLAGS) -o $(EXHAUSTIVE) $(EXHAUSTIVE_OBJ) $(LIBS)

$(WINUP): $(WINUP_OBJ)
	$(CC) $(CFLAGS) -o $(WINUP) $(WINUP_OBJ) $(LIBS)

$(MKWINUP): $(MKWINUP_OBJ)
	$(CC) $(CFLAGS) -o $(MKWINUP) $(MKWINUP_OBJ) $(LIBS)

$(CLUSTERHAAR): $(CLUSTERHAAR_OBJ)
	$(CC) $(CFLAGS) -o $(CLUSTERHAAR) $(CLUSTERHAAR_OBJ) $(LIBS)

$(MKCLUSTERHAAR): $(MKCLUSTERHAAR_OBJ)
	$(CC) $(CFLAGS) -o $(MKCLUSTERHAAR) $(MKCLUSTERHAAR_OBJ) $(LIBS)

$(CLUSTERORIGIN): $(CLUSTERORIGIN_OBJ)
	$(CC) $(CFLAGS) -o $(CLUSTERORIGIN) $(CLUSTERORIGIN_OBJ) $(LIBS)

$(MKCLUSTERORIGIN): $(MKCLUSTERORIGIN_OBJ)
	$(CC) $(CFLAGS) -o $(MKCLUSTERORIGIN) $(MKCLUSTERORIGIN_OBJ) $(LIBS)

run: run.o
	$(CC) $(CFLAGS) -o run run.o
