Advertisement
Guest User

Untitled

a guest
Jul 16th, 2016
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1.  
  2. # Nom du projet, utilisé pour le nom du fichier de sortie finale.
  3. BIN_NAME = osumax
  4.  
  5. # Compilateur à utiliser.
  6. CC = g++
  7. # Paramètres de base du compilateur.
  8. CC_ARGS = -IHeaders/ -ILibraries/ns_framework/Headers
  9. CC_ARGS += -ILibraries/osumax_shared/Headers -std=c++11 -fPIC
  10. # Paramètres spécifique pour chaque fichier. Le nom du fichier est sans les
  11. # dossier et sans l'extension (ex. dossier/fichier.cpp -> CC_ARGS_fichier).
  12. # Exemple :
  13. # CC_ARGS_NomDuFichier = Paramètres du compilateur.
  14.  
  15. # Lieur à utiliseur.
  16. LD = g++
  17. # Paramètres du lieur
  18. LD_ARGS = -L./Libraries/
  19. # Librairies à utiliser.
  20. LD_LIBS = -lns_framework -ltinyxml2 -lsfml-system -lsfml-window -lsfml-graphics
  21.  
  22. # Dossier contenant les fichiers sources.
  23. SRC_DIR = Sources
  24. # Dossier de sortie contenant les fichiers intermédiaire.
  25. OBJ_DIR = Objects
  26. # Dossier de sortie contenant le fichier de sortie finale ainsi que les
  27. # resources.
  28. BIN_DIR = .
  29.  
  30.  
  31.  
  32. # Si on est en version de débug
  33. ifeq (@(VARIANT),Debug)
  34. CC_ARGS += -g -Wall -DDEBUG
  35. endif
  36.  
  37. # Si on est en version de production
  38. ifeq (@(VARIANT),Release)
  39. CC_ARGS += -O3 -Wall -Werror -DRELEASE
  40. endif
  41.  
  42.  
  43.  
  44. # Si on vise la platforme Linux
  45. ifeq (@(PLATFORM),Linux)
  46. CC_ARGS += -DLINUX
  47. endif
  48.  
  49. # Si on vise la platforme Windows (pas supporté actuellement)
  50. ifeq (@(PLATFORM),Windows)
  51. error Windows platform not currently supported.
  52. endif
  53.  
  54.  
  55.  
  56. # Si on vise l'architecture x86_64 (64bits)
  57. ifeq (@(ARCH),x86_64)
  58. CC_ARGS += -DX86_64 -m64
  59.  
  60. ifeq (@(PLATFORM),Linux)
  61. LD_ARGS += -m64
  62. endif
  63. endif
  64.  
  65. # Si on vise l'architecture i386 (32bits)
  66. ifeq (@(ARCH),i386)
  67. CC_ARGS += -DI386 -m32
  68.  
  69. ifeq (@(PLATFORM),Linux)
  70. LD_ARGS += -m32
  71. endif
  72. endif
  73.  
  74.  
  75.  
  76. # On définie des macros standards.
  77. !compile = |> ^ Compiling %f... ^ $(CC) $(CC_ARGS) $(CC_ARGS_%g) -c -o %o %f |>
  78. !link = |> $(LD) $(LD_ARGS) $(LD_LIBS) -o %o %f |>
  79.  
  80.  
  81. # Liste des règles.
  82.  
  83.  
  84. # Compilation des fichiers sources.
  85. : foreach Sources/*.cpp |> !compile |> Objects/%g.o {OBJECTS}
  86.  
  87. # Liage des fichiers intermédiaires vers le fichier de sortie final.
  88. : {OBJECTS} | Libraries/<LIBRARIES> |> !link |> $(BIN_DIR)/$(BIN_NAME)
  89.  
  90. : $(BIN_DIR)/$(BIN_NAME) |> bash Scripts/gen_run.sh > %o |> $(BIN_DIR)/run.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement