Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. CC=g++
  2. DEV=-Wall -g -std=c++14
  3. OPT=-O3 -std=c++14
  4. JSON=json.hpp
  5. SORTING_SOURCES=insertionsort.cpp mergesort.cpp quicksort.cpp
  6. SORTING_HEADERS=$(SORTING_SOURCES:.cpp=.h)
  7. SORTING_DEV_OBJ=$(SORTING_SOURCES:.cpp=.o)
  8. SORTING_OPT_OBJ=$(SORTING_SOURCES:.cpp=.o3)
  9. EXPERIMENT_EXE_SOURCES=timealgorithms.cxx
  10. EXPERIMENT_EXE=$(EXPERIMENT_EXE_SOURCES:.cxx=.exe)
  11. VERIFICATION_EXE_SOURCES=createdata.cxx consistentresultverification.cxx sortedverification.cxx
  12. VERIFICATION_EXE=$(VERIFICATION_EXE_SOURCES:.cxx=.exe)
  13. .PHONY: all
  14. all: sorting_lib $(EXPERIMENT_EXE) $(VERIFICATION_EXE)
  15. # Sorting library
  16. .PHONY: $(SORTING_LIB)
  17. sorting_lib: $(SORTING_DEV_OBJ) $(SORTING_OPT_OBJ)
  18. $(SORTING_DEV_OBJ): %.o: %.cpp %.h
  19. $(CC) $(DEV) -c $< -o $@
  20. $(SORTING_OPT_OBJ): %.o3: %.cpp %.h
  21. $(CC) $(OPT) -c $< -o $@
  22. # Executables
  23. $(EXPERIMENT_EXE): %.exe: %.cxx $(SORTING_OPT_OBJ)
  24. $(CC) $(OPT) $^ -o $@
  25. $(VERIFICATION_EXE): %.exe: %.cxx $(JSON)
  26. $(CC) $(DEV) -o $@ $<
  27. # Build
  28. .PHONY: clean
  29. clean:
  30. rm -f *.o
  31. rm -f *.o3
  32. rm -f *.exe
  33. rm -rf *.exe.dSYM
  34. .PHONY: update
  35. update:
  36. make clean
  37. make all