CC=g++
DBGFLAGS=-ggdb3 -Wall -Wextra -Wpedantic -Wno-sign-compare
OPTFLAGS=-O3 -DNDEBUG -Wno-sign-compare
# CFLAGS=-c -std=c++17 $(DBGFLAGS)
CFLAGS=-c -std=c++17 $(OPTFLAGS)
LDFLAGS=-static
SOURCES=main.cpp graph.cpp hypergraph.cpp chordal.cpp hyperfect.cpp utils.cpp tests_chordal.cpp tests_hyperfect.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=orient
OTHERS=Makefile graph.hpp hypergraph.cpp chordal.hpp hyperfect.hpp interfaces.hpp utils.hpp tests_chordal.hpp tests_hyperfect.hpp
ZIP=zip
ZIPFILE=orient.zip

all: $(EXECUTABLE) #$(ZIPFILE)

$(EXECUTABLE): $(OBJECTS)
	$(CC) $(OBJECTS) $(LDFLAGS) -o $@

%.o : %.cpp
	$(CC) $(CFLAGS) $< -o $@

$(ZIPFILE): $(SOURCES) $(OTHERS)
	$(ZIP) $(ZIPFILE) $(SOURCES) $(OTHERS)

clean:
	rm -f $(OBJECTS) $(EXECUTABLE) $(ZIPFILE)

.PHONY: all clean