Привет! Имеется *.asm файлы, которые компилируются в *.obj файлы, а те в mylib.lib Хочу составить make файл, который бы компилировал только изменившиеся файлы. Число asm файлов может постоянно меняться. Нашел вроде бы то, что мне надо .asm.obj: ml /c /coff $< И почему-то не работает у меня этот скрипт. nmake.exe ничего не выводит в консоль, пишет только стандартный текст (All rights reserved....) Что я не так делаю?
Нужно еще цель сборки указать. Например: OBJS=mod1.obj mod2.obj mod3.obj TARGET=mylib.lib all: $(TARGET) $(TARGET): $(OBJS) link /out:mylib.lib $(OBJS)
Если кол-во obj файлов меняется и их довольно много, не удобно перечислять (OBJS=mod1.obj mod2.obj mod3.obj)? Можно указать, что каждому asm файлу должен соответствовать obj с таким же именем и из полученных obj должен собираться lib. Логика такая - надо перекомпилировать все asm файлы для которых нет obj или они(obj) устарели, затем если хотябы один obj "старше" lib, то перелинковать lib. Первый пункт вроде бы решается так: asm.obj: ml /c /coff $< но видимо что-то не правильно Второй полагаю что так: TARGET=mylib.lib all: $(TARGET) $(TARGET): *.asm link /out:mylib.lib *.asm
Попробуй так: Код (Text): TARGET=mylib.lib OBJS=*.obj all: $(TARGET) $(TARGET): $(OBJS) link /out:$(TARGET) $(OBJS) .asm.obj: ml /c /coff $<