Je travaille sur un moteur 2D multiplate-forme pour les appareils mobiles (Windows Mobile 6 et Android). Ma version Windows est à peu près prête, mais je dois quand même m'assurer que la même fonctionnalité est disponible sur Android. Ce que je veux est un Makefile
à la racine du projet et plusieurs Makefile
pour le projet lui-même et les applications de test.Makefiles: Récupère .cpp d'un répertoire et place le .o compilé dans un autre répertoire
Makefile
---Engine
------Makefile
------src
------bin
------intermediate
---Tests
------TestOne
---------Makefile
---------src
---------bin
---------intermediate
------TestTwo
---------Makefile
---------src
---------bin
---------intermediate
Je fonde mes tentatives sur la Makefile
suivante:
include ../makeinclude
PROGS = test1
SOURCES = $(wildcard *.cpp)
# first compile main.o and start.o, then compile the rest
OBJECTS = main.o start.o $(SOURCES:.cpp=.o)
all: $(PROGS)
clean:
rm -f *.o src
test1: $(OBJECTS)
$(LD) --entry=_start --dynamic-linker system/bin/linker -nostdlib -rpath system/lib -rpath $(LIBS) -L $(LIBS) -lm -lc -lui -lGLESv1_CM $^ -o ../[email protected]
acpy ../$(PROGS)
.cpp.o:
$(CC) $(CFLAGS) -I $(GLES_INCLUDES) -c $*.cpp $(CLIBS)
Cependant, je ne suis pas très bon avec ces choses. Ce que je veux, c'est qu'il prenne les .cpp qui se trouvent dans le dossier src
, les compile en .o et les place dans le dossier intermediate
et, enfin, compile les .o à l'exe compilé et le place dans le dossier bin
.
J'ai réussi à se désintoxiquer à travailler comme ça:
cd intermediate && rm -f *.o
Cependant, je ne peux pas l'obtenir pour récupérer de la Cpp, les compiler et les mettre dans le dossier intermediate
.
J'ai regardé plusieurs autres Makefiles
, mais aucun ne fait les choses que je veux faire.
Toute aide est appréciée.
Veuillez spécifier "make" au lieu de "makefile". Plus d'infos: http://meta.stackexchange.com/questions/24030/why-do-they-specify-makefile-tag-instead-of-make/26567#26567 –
Eh bien, je * suis * un noob concernant ces choses . : P – knight666