Repo du projet de programmation fonctionnelle en Ocaml, pour le binôme Paul Faure et Elies Tali.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 7.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. EMPLOI=null
  2. GRAPH=null
  3. ORIGIN=-1
  4. DESTINATION=-1
  5. default :
  6. @echo "USAGE : Sélectionnez une cible : \n -> build_[labelflot|path|tools]test\n -> demo_[labelflot|path|tools]test\n -> build_FordFulkerson\n -> demo_FordFulkerson GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\"\n -> format\n -> edit\n -> clean\n"
  7. man:
  8. @echo "Ce Makefile permet la compilation et l'exécution du code Ocaml lié au projet Ocaml de 4IR codé par TALI Elies et FAURE Paul"
  9. @echo "L'objectif de ce projet était d'implémenter l'algorithme de Ford Fulkerson (V1), et de l'utiliser pour un cas particulier (ici, l'affectation de taches) (V2)\n"
  10. @echo "Ce projet a été divisé en package :\n - LabelFlotCost : gérant les labels des graphes de flot avec prise en compte du cout\n - LabelFlot : gérant les labels des graphes de flot\n - Path : gérant les chemins dans les graphes\n - Tools : des outils pour travailler sur les graphes"
  11. @echo "\nTous ces modules sont testables (fichier de type 'nom_package'test.ml) grace au module test créé"
  12. @echo "Il est possible de compiler ces fichiers de test avec la cible build_'nom_package'test, un fichier 'nom_package'test.native sera crée"
  13. @echo "Il est possible d'executer ces fichiers de test avec la cible demo_'nom_package'test\n"
  14. @echo "En ce qui concerne Ford Fulkerson, il a été codé dans le module flot, et, peut être lancé grace au fichier FordFulkerson.ml"
  15. @echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V1)"
  16. @echo " - build_FordFulkerson : pour compiler le programme et créér FordFulkerson.native"
  17. @echo " - demo_FordFulkerson GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  18. @echo " Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/flot/graph1) entre l'origine et la destination donnée (ex 0 et 5)"
  19. @echo " Cela charge le graphe, l'exporte au format svg, applique FordFulkerson, exporte le résultat au format svg, et l'affiche dans Firefox\n"
  20. @echo "En ce qui concerne Ford Fulkerson avec prise en compte du cout, il a été codé dans le module flotcost, et, peut être lancé grace au fichier FordFulkersonCost.ml"
  21. @echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V3)"
  22. @echo " - build_FordFulkersonCost : pour compiler le programme et créér FordFulkersonCost.native"
  23. @echo " - demo_FordFulkersonCost GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  24. @echo " Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/flotcost/graph1) entre l'origine et la destination donnée (ex 0 et 5)"
  25. @echo " Cela charge le graphe, l'exporte au format svg, applique FordFulkersonCost, exporte le résultat au format svg, et l'affiche dans Firefox\n"
  26. @echo "En ce qui concerne l'affectation d'emploi, elle a été codée dans le module emploifile, et, peut être lancé grace au fichier emploifiletest.ml"
  27. @echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V2)"
  28. @echo " - build_Emploi : pour compiler le programme et créér emploifiletest.native"
  29. @echo " - demo_Emploi EMPLOI=\"chemin\""
  30. @echo " Pour compiler le programme l'executer sur le fichier d'emplois donné (ex ./emplois/emploi1)"
  31. @echo " Cela charge le fichier, le transforme en graphe, applique FordFulkerson pour affecter les emplois, exporte le résultat au format svg, et l'affiche dans Firefox\n"
  32. @echo "En ce qui concerne l'affectation d'emploi avec priorisation, elle a été codée dans le module emploifilecost, et, peut être lancé grace au fichier emploifilecosttest.ml"
  33. @echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V3)"
  34. @echo " - build_EmploiCost : pour compiler le programme et créér emploifilecosttest.native"
  35. @echo " - demo_EmploiCost EMPLOI=\"chemin\""
  36. @echo " Pour compiler le programme l'executer sur le fichier d'emplois donné (ex ./emplois/emploi1)"
  37. @echo " Cela charge le fichier, le transforme en graphe, applique FordFulkersonCost pour affecter les emplois, exporte le résultat au format svg, et l'affiche dans Firefox\n"
  38. @echo " NB : Emploi et EmploiCost utilisent les mêmes fichers en entier, pour la priorisation des voeux, l'ordre d'écriture compte\n"
  39. @echo "Autres cibles : "
  40. @echo " - format : Pour indenter le code"
  41. @echo " - edit : Pour ouvrir le code dans VsCode"
  42. @echo " - clean : Pour supprimer les fichiers dot, les fichiers native, ainsi que le répertoire _build"
  43. help: man
  44. build_%test: %
  45. @echo "\n==== COMPILING" $< "====\n"
  46. ocamlbuild $<test.native
  47. demo_%test: % build_%test
  48. @echo "\n==== EXECUTING" $< "====\n"
  49. ./$<test.native
  50. labelflotcost:
  51. labelflot:
  52. path:
  53. tools:
  54. build_FordFulkerson:
  55. @echo "\n==== COMPILING FordFulkerson ====\n"
  56. ocamlbuild FordFulkerson.native
  57. demo_FordFulkerson: build_FordFulkerson
  58. ifeq ($(GRAPH),null)
  59. @echo "USAGE : make demo_FordFulkerson GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  60. else ifeq ($(ORIGIN),-1)
  61. @echo "USAGE : make demo_FordFulkerson GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  62. else ifeq ($(DESTINATION),-1)
  63. @echo "USAGE : make demo_FordFulkerson GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  64. else
  65. ./FordFulkerson.native $(GRAPH) $(ORIGIN) $(DESTINATION) $(GRAPH).dot $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).dot
  66. dot -Tsvg $(GRAPH).dot > $(GRAPH).svg
  67. dot -Tsvg $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).dot > $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).svg
  68. firefox $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).svg
  69. endif
  70. build_FordFulkersonCost:
  71. @echo "\n==== COMPILING FordFulkersonCost ====\n"
  72. ocamlbuild FordFulkersonCost.native
  73. demo_FordFulkersonCost: build_FordFulkersonCost
  74. ifeq ($(GRAPH),null)
  75. @echo "USAGE : make demo_FordFulkersonCost GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  76. else ifeq ($(ORIGIN),-1)
  77. @echo "USAGE : make demo_FordFulkersonCost GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  78. else ifeq ($(DESTINATION),-1)
  79. @echo "USAGE : make demo_FordFulkersonCost GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
  80. else
  81. ./FordFulkersonCost.native $(GRAPH) $(ORIGIN) $(DESTINATION) $(GRAPH).dot $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).dot
  82. dot -Tsvg $(GRAPH).dot > $(GRAPH).svg
  83. dot -Tsvg $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).dot > $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).svg
  84. firefox $(GRAPH)output_from_$(ORIGIN)_to_$(DESTINATION).svg
  85. endif
  86. build_Emploi:
  87. @echo "\n==== COMPILING Emploi ====\n"
  88. ocamlbuild emploifiletest.native
  89. demo_Emploi: build_Emploi
  90. ifeq ($(EMPLOI),null)
  91. @echo "USAGE : make demo_Emploi EMPLOI=\"chemin\""
  92. else
  93. ./emploifiletest.native $(EMPLOI) $(EMPLOI)_affected.dot
  94. dot -Tsvg $(EMPLOI)_affected.dot > $(EMPLOI)_affected.svg
  95. firefox $(EMPLOI)_affected.svg
  96. endif
  97. build_EmploiCost:
  98. @echo "\n==== COMPILING EmploiCost ====\n"
  99. ocamlbuild emploifilecosttest.native
  100. demo_EmploiCost: build_EmploiCost
  101. ifeq ($(EMPLOI),null)
  102. @echo "USAGE : make demo_EmploiCost EMPLOI=\"chemin\""
  103. else
  104. ./emploifilecosttest.native $(EMPLOI) $(EMPLOI)_priorised_affected.dot
  105. dot -Tsvg $(EMPLOI)_priorised_affected.dot > $(EMPLOI)_priorised_affected.svg
  106. firefox $(EMPLOI)_priorised_affected.svg
  107. endif
  108. format:
  109. ocp-indent --inplace src/*
  110. edit:
  111. code . -n
  112. clean:
  113. @rm -rf _build/
  114. @rm *.native graphs/*/*.dot emplois/*.dot