Makefile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. TEST_DATA_SRC=testCode.cxx
  8. TEST_DATA_EXE=$(TEST_DATA_SRC:.cxx=.exe)
  9. HEAP_DATA_SRC=heapsort.cxx
  10. HEAP_DATA_EXE=$(HEAP_DATA_SRC:.cxx=.exe)
  11. BUILD_DATA_SRC=buildheap.cxx
  12. BUILD_DATA_EXE=$(BUILD_DATA_SRC:.cxx=.exe)
  13. PRIORITY_SOURCES=priorityqueue.cpp
  14. PRIORITY_HEADERS=$(PRIORITY_SOURCES:.cpp=.h)
  15. PRIORITY_DEV_OBJ=$(PRIORITY_SOURCES:.cpp=.o)
  16. PRIORITY_OPT_OBJ=$(PRIORITY_SOURCES:.cpp=.o3)
  17. .PHONY: all
  18. all: priority_cla $(CREATE_DATA_EXE) $(TEST_DATA_EXE) $(HEAP_DATA_EXE) $(BUILD_DATA_EXE)
  19. # Priority Queue
  20. .PHONY: $(PRIORITY_CLA)
  21. priority_cla: $(PRIORITY_DEV_OBJ) $(PRIORITY_OPT_OBJ)
  22. $(CREATE_DATA_EXE): %.exe: %.cxx $(JSON)
  23. $(CC) $(OPT) $< -o $@
  24. # priority queue objects(?)
  25. $(PRIORITY_DEV_OBJ): %.o: %.cpp %.h
  26. $(CC) $(DEV) -c $< -o $@
  27. $(PRIORITY_OPT_OBJ): %.o3: %.cpp %.h
  28. $(CC) $(OPT) -c $< -o $@
  29. # test code executable
  30. $(TEST_DATA_EXE): %.exe: %.cxx $(PRIORITY_OPT_OBJ)
  31. $(CC) $(OPT) $^ -o $@
  32. # heap sort code executable
  33. $(HEAP_DATA_EXE): %.exe: %.cxx $(PRIORITY_OPT_OBJ)
  34. $(CC) $(OPT) $^ -o $@
  35. # build heap code executable
  36. $(BUILD_DATA_EXE): %.exe: %.cxx $(PRIORITY_OPT_OBJ)
  37. $(CC) $(OPT) $^ -o $@
  38. # Build
  39. .PHONY: clean
  40. clean:
  41. rm -f *.o
  42. rm -f *.o3
  43. rm -f *.exe
  44. rm -rf *.exe.dSYM
  45. .PHONY: update
  46. update:
  47. make clean
  48. make all