Makefile 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. CC=g++
  2. DEV=-Wall -g -std=c++14
  3. OPT=-O3 -std=c++14
  4. JSON=json.hpp
  5. CREATE_DATA_SRC=createsortingdata.cxx createheapoperationdata.cxx
  6. CREATE_DATA_EXE=$(CREATE_DATA_SRC:.cxx=.exe)
  7. HEAP_DATA_SRC=heapsort.cxx
  8. HEAP_DATA_EXE=$(HEAP_DATA_SRC:.cxx=.exe)
  9. BUILD_DATA_SRC=buildheap.cxx
  10. BUILD_DATA_EXE=$(BUILD_DATA_SRC:.cxx=.exe)
  11. PRIORITY_SOURCES=priorityqueue.cpp
  12. PRIORITY_HEADERS=$(PRIORITY_SOURCES:.cpp=.h)
  13. PRIORITY_DEV_OBJ=$(PRIORITY_SOURCES:.cpp=.o)
  14. PRIORITY_OPT_OBJ=$(PRIORITY_SOURCES:.cpp=.o3)
  15. .PHONY: all
  16. all: priority_cla $(CREATE_DATA_EXE) $(HEAP_DATA_EXE) $(BUILD_DATA_EXE)
  17. # Priority Queue
  18. .PHONY: $(PRIORITY_CLA)
  19. priority_cla: $(PRIORITY_DEV_OBJ) $(PRIORITY_OPT_OBJ)
  20. $(CREATE_DATA_EXE): %.exe: %.cxx $(JSON)
  21. $(CC) $(OPT) $< -o $@
  22. # priority queue objects(?)
  23. $(PRIORITY_DEV_OBJ): %.o: %.cpp %.h
  24. $(CC) $(DEV) -c $< -o $@
  25. $(PRIORITY_OPT_OBJ): %.o3: %.cpp %.h
  26. $(CC) $(OPT) -c $< -o $@
  27. # heap sort code executable
  28. $(HEAP_DATA_EXE): %.exe: %.cxx $(PRIORITY_OPT_OBJ)
  29. $(CC) $(OPT) $^ -o $@
  30. # build heap code executable
  31. $(BUILD_DATA_EXE): %.exe: %.cxx $(PRIORITY_OPT_OBJ)
  32. $(CC) $(OPT) $^ -o $@
  33. # Build
  34. .PHONY: clean
  35. clean:
  36. rm -f *.o
  37. rm -f *.o3
  38. rm -f *.exe
  39. rm -rf *.exe.dSYM
  40. .PHONY: update
  41. update:
  42. make clean
  43. make all