ton commobject.hpp ne doit pas se trouver dans le dossier courant, qui est bien entendu l'endroit ou tous ces fichiers sont recherchés.
sinon, je sais pas.
pour clean, il croit que clean est un fichier.
il faut lui dire que "clean" n'est pas un fichier en ajoutant cette règle comme dépendance de ".PHONY"
.PHONY: clean
#vieuxsouvenirs#
Zeph 2011-11-05 at 11:44pm comme dit squalyl, pas besoin de t'embêter, mingw32-make (rah, pourquoi ce nom ?!) dans un cmd t'évitera d'avoir à bidouiller des pseudo-shells unix sous Windows et autres hérésies ^^

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Folco 2011-11-06 at 12:40am ps -> je haie les softs qui gèrent mal les espaces au parsing. J'ai perdu 1/2 heure à cause d'espaces à la place de tabulations, et d'un espace après un semicolon. Super fin :/
ps2 -> Y a-t-il des macros définies par make pour savoir sur quel OS on se trouve ? genre OSX, WIN32, LINUX ? Non ça n'existe pas ça ?

<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
sur windows t'as la variable d'environnement OS qui vaut Windows_NT (voir la commande set) et pas sous linux, sinon à part ça, je crois pas ^^
du pseudocode makefile a corriger
avant les règles:
ifeq($OS,Windows_NT)
DELETE=del /y
else
DELETE=rm -f
endif
et dans la règle
$(DELETE) file
je crois...
Folco 2011-11-06 at 12:03pm Mais c'est crade, non ? Enfin, j'y ai pensé mais ça m'a paru horrible...
J'ai donc fouillé un peu MSYS, j'ai paramétré %HOME%, C:\MinGW est bien monté comme il faut dans fstab, il me reste une question.
Comment faire pour que rm soit appelé par mingw32-make maintenant ? A partir d'où dois-je lancer tout ce bazard unix pour que rm soit reconnu ? Je dois partir directement du shell de msys ? Donc je dois préciser un autre point de montage dans fstab, genre "d:\programmation\...\monprojet $(HOME)/prog", puis lancer le build à partir du shell de MSYS (msys.bat) ?

<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
nitro 2011-11-06 at 04:45pm Quelques remarques :
- utilise g++ à la place de gcc pour faire du C++, ça link automatiquement la lib standard c++ quand tu fais un binaire (là tu n'as qu'une lib statique donc tu ne vois pas le problème)
- du coup, il faut utiliser CXX et non pas CPP (et d'ailleurs c'est CC pour gcc, car CPP c'est le preprocesseur), et ton CXXFLAGS était déjà bon
- à partir de là, la règle implicite %o: %.cpp n'est plus nécessaire car elle est déjà définie par défaut
- ton -I$(INCLUDE) est à mettre dans les CPPFLAGS (pour le preprocesseur) plutôt que CXXFLAGS
- tu peux aussi utiliser $(RM) à la place de 'rm -f', c'est défini par défaut et ton Makefile fonctionnera sur les systèmes où il n'y a pas de rm (ça n'a pas vraiment d'importance, et je ne connais même pas de quels systèmes il s'agit, mais je le précise comme ça quand tu verras $(RM) dans un Makefile tu sauras de quoi il s'agit)
- utilise plutôt "distclean" comme règle, c'est standard
- et enfin, tu peux faire générer les dépendances de tes .o automatiquement par gcc, il suffit de rajouter '-MMD -MP' dans tes CXXFLAGS, ce qui aura pour effet de générer un bout de makefile pour chaque .o avec les dépendances, qu'il ne reste plus qu'à inclure dans ton Makefile :
[code]DEPS=$(OBJ:.o=.d)
-include $(DEPS)[/code]
So much code to write, so little time.
je savais pas que $(RM) était déja défini avec la valeur kivabien pour la plate-forme, c'est cool.
Folco 2011-11-06 at 05:45pm Et elle est où, la doc de ces valeurs prédéfinie ?

<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !