2017-02-20 50 views
0

Я пытаюсь получить nmake - версия 6, чтобы реконструировать c-проект, тем самым смягчая болезненные правила одиночной строки для каждого исходного файла и связанного с ним объекта.nmake v6 recursive build c files

См пример ниже:

В настоящее время это то, что у меня есть, который работает (фрагмент) ...

File1 = aes 
File2 = sha256  
File3 = pkcs5 

$(ObjDir)\$(File1).o : $(SrcDir)\$(File1).c 
    @echo Compiling ... $(File1) 
    @$(CC) -c $(Includes) $(CFLAGS) $(SrcDir)\$(File1).c 

$(ObjDir)\$(File2).o : $(SrcDir)\$(File2).c 
    @echo Compiling ... $(File2) 
    @$(CC) -c $(Includes) $(CFLAGS) $(SrcDir)\$(File2).c 

$(ObjDir)\$(File3).o : $(SrcDir)\$(File3).c 
    @echo Compiling ... $(File3) 
    @$(CC) -c $(Includes) $(CFLAGS) $(SrcDir)\$(File3).c 

Однако, я бы предпочел, чтобы сделать что-то вроде этого (не работает, никакой ошибки брошенные) ... ссылки

$(ObjDir)\$(SrcDir:%|fF.c=%|fF.o): $(SrcDir)\%.c 
    @echo Compiling ... $(*B) 
    @$(CC) -c $(Includes) $(CFLAGS) $*.c 

Команда используется:
[Имя файла Макросы]: https://msdn.microsoft.com/en-us/library/aa233975(v=vs.60).aspx
[Имя файла-Parts Синтаксис]: https://msdn.microsoft.com/en-us/library/aa233961(v=vs.60).aspx
[Макроподстановка]: https://msdn.microsoft.com/en-us/library/bsd42ets.aspx

Спасибо за вашу помощь заранее.

ответ

0

Для тех, кто, вероятно, работал над решением. Я понял, как добиться того, чего хочу. См. Мой вариант ниже:

OBJS=aes.o \ 
    sha256.o \ 
    pkcs5.o 

$(OBJS): 
    @echo Compiling $(*B).c ... 
    $(CC) $(Includes) $(CFLAGS) $(SrcDir)\$(*B).c