Makefile 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. export LC_ALL=C
  2. CXXFLAGS= -Wall -pedantic -g -ggdb -std=c++11
  3. LDFLAGS= -lpthread
  4. QUANTUM=10
  5. CONTEXT_SWITCH=2
  6. CORE_SWITCH=5
  7. OBJS=main.o simu.o basesched.o basetask.o tasks.o sched_rr.o sched_fcfs.o sched_sjf.o sched_rsjf.o sched_mfq.o
  8. MAIN=simusched
  9. .PHONY: all clean new informe
  10. all: $(MAIN)
  11. $(MAIN): $(OBJS)
  12. $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
  13. %.o: %.cpp %.h basesched.h
  14. basesched.o: basesched.cpp basesched.h
  15. basetask.o: basetask.cpp basetask.h
  16. main.o: main.cpp simu.h basetask.h basesched.h tasks.h sched_fcfs.h \
  17. sched_mfq.h sched_rr.h sched_rsjf.h sched_sjf.h
  18. simu.o: simu.cpp simu.h basetask.h basesched.h
  19. simusched.o: simusched.cpp basetask.h basesched.h tasks.h
  20. tasks.o: tasks.cpp tasks.h basetask.h
  21. clean:
  22. rm -f $(OBJS) $(MAIN)
  23. rm -rf informe/imagenes
  24. rm -rf informe/*.pdf
  25. preinforme: ejercicio1 ejercicio2 ejercicio3 ejercicio4 ejercicio5
  26. informe: informe/informe.pdf
  27. informe/informe.pdf: informe/informe.md preinforme
  28. pandoc informe/informe.md -o informe/informe.pdf
  29. new: clean all
  30. makedir:
  31. mkdir -p informe/imagenes
  32. ejercicio1: all makedir
  33. ./simusched consola.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio1.png
  34. ejercicio2: all makedir
  35. ./simusched ejer2.tsk 1 2 $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_1core.png
  36. ./simusched ejer2.tsk 2 2 $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_2core.png
  37. ./simusched ejer2.tsk 4 2 $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_4core.png
  38. ejercicio3: all makedir
  39. ./simusched ejer3.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio3_1core.png
  40. ejercicio4: all makedir
  41. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_1core.png
  42. ./simusched ejer2.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 2 $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_2core.png
  43. ./simusched ejer2.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 4 $(QUANTUM) $(QUANTUM) $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_4core.png
  44. ejercicio5: all makedir
  45. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 02 | ./graphsched.py > informe/imagenes/ejercicio5_1core_02q.png
  46. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 05 | ./graphsched.py > informe/imagenes/ejercicio5_1core_05q.png
  47. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 10 | ./graphsched.py > informe/imagenes/ejercicio5_1core_10q.png
  48. ejercicio7: all makedir
  49. ./simusched ejer7-sjf.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedSJF 1 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_1core.png
  50. ./simusched ejer7-sjf.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedSJF 2 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_2core.png
  51. ./simusched ejer7-rsjf.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRSJF 1 $(QUANTUM) 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_1core.png
  52. ./simusched ejer7-rsjf.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRSJF 2 $(QUANTUM) $(QUANTUM) 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_2core.png
  53. ejercicio9: all makedir
  54. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 10 05 | ./graphsched.py > informe/imagenes/ejercicio9_1core.png
  55. ./simusched ejer2.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 10 05 02 | ./graphsched.py > informe/imagenes/ejercicio9_2core.png
  56. ./simusched ejer2.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 10 07 05 02 | ./graphsched.py > informe/imagenes/ejercicio9_4core.png
  57. casos: all makedir
  58. for f in casos/*json; do ./scripts/batchplotter.py $$f; done