makefile .mod правило компиляции - PullRequest
0 голосов
/ 13 мая 2018

Я изменяю make-файл кода.После компиляции я вижу, что генерируются некоторые * .mod файлы.Посмотрев онлайн, я понял, что это файлы модулей, но не вижу для них правила компиляции.Я пытаюсь изменить каталог, в котором эти файлы создаются.Я могу изменить правило для объектных файлов, но не могу найти правило, которое генерирует файлы * .mod.

Глядя на make-файл, может кто-нибудь посоветовать мне, если строка в этом файле генерирует их или как изменить их каталог.Вот make-файл:

   # GNU Makefile

   # Paths
   SDIR=./solver
   ODIR=./obj
   _CASE=./WorkCases/problem
   CASE=$(SDIR)/$(_CASE)
   TOP = .  

   FC      =       ifort

   FFLAGS          =       -fpp -O1 -DPTR_INTEGER8 -warn nousage

   # Define rule to make .f90
   $(ODIR)/%.o : $(SDIR)/%.f90 
    $(FC) -c $(FFLAGS) $< -o $@


   # set executable name
   EXEC = $(dir ${CASE})/$(basename $(notdir ${CASE})).out


   # shared global variables
   _SHARED_OBJ =    shared_modules.o main_vars.o debug_vars.o
   SHARED_OBJ = $(patsubst %,$(ODIR)/%,$(_SHARED_OBJ))

   OBJ     =  ${_SHARED_OBJ} $(_CASE).PARAMS.o 
   OBJ = $(patsubst %,$(SDIR)/%,$(_OBJ))

   MAIN_OBJ = $(ODIR)/main.o


   main : ${SHARED_OBJ} $(OBJ) $(MAIN_OBJ) 
    $(FC) ${FFLAGS} $(OBJ) $(MAIN_OBJ) -o $(EXEC) -lstdc++ -shared-intel

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете указать каталог назначения для файлов .mod с помощью опции компилятора -module.

-module <directory> 

См. Документацию ifort здесь :

Вы можете использовать опцию компиляции пути модуля, чтобы указать каталог в котором создаются файлы модуля. Если вы не используете эту опцию, Файлы модулей создаются в текущем каталоге.

...