Bonjour, je ne sais pas trop où mettre mon message alors je le mets sur ce forum car mon programme est en C... J'ai un pb pour faire mon Makefile. Je désire paralléliser mon code et je ne sais pas trop où modifier mon Makefile. Pour compiler, je dois écrire la ligne suivante (en supposant que mon prgm n'est constitué que d'un seul fichier main.c) :
mpicc.mpich main.c -o out
(out est le nom de mon exécutable) et pour exéctuer mon code sur 10 machines je dois écrire
mpirun.mpich -np 10 out
Donc où dois modifier mon Makefile pour compiler et exécuter mon prgm ? Je vous envoie mon Makefile qui correspond à mon code séquentiel.
# inspire de http://gl.developpez.com/tutoriel/outil/makefile/
# compilateur utilise
CC=gcc #CPP pour le C++ et CC pour le C
CFLAGS=-Wall -W -O
LDFLAGS=-Wall -O2 -lm -static
# on inclut tous les headers
INCLUDE_DIR1=../include/includeCVode
INCLUDE_DIR2=../include/myinclude
# EXEC contient le nom des executables a generer.
EXEC=out
# Fichiers sources
SRC= $(wildcard ../source/sourceCVode/*.c) $(wildcard ../source/mysource/*.c) main.c
# Fichiers objets le .c est remplace par un .o
OBJ=$(SRC:.c=.o)
# Regles de compilation:
all: $(EXEC)
out: $(OBJ)
@$(CC) -o $@ $^ $(LDFLAGS)
# Creation des .o a partir des .c qui se verront appeles par defaut.
%.o: %.c
@$(CC) -o $@ -c $< -I$(INCLUDE_DIR1) -I$(INCLUDE_DIR2) $(CFLAGS)
clean:
@rm -rfv $(EXEC) $(OBJ) *~
Merci
Configuration: Susr Pro 9.3