Использование make.exe

Тема в разделе "WASM.BEGINNERS", создана пользователем Android, 2 июл 2006.

  1. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Привет!
    Имеется *.asm файлы, которые компилируются в *.obj файлы, а те в mylib.lib
    Хочу составить make файл, который бы компилировал только изменившиеся файлы. Число asm файлов может постоянно меняться. Нашел вроде бы то, что мне надо
    .asm.obj:
    ml /c /coff $<

    И почему-то не работает у меня этот скрипт. nmake.exe ничего не выводит в консоль, пишет только стандартный текст (All rights reserved....)

    Что я не так делаю?
     
  2. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Нужно еще цель сборки указать.
    Например:
    OBJS=mod1.obj mod2.obj mod3.obj
    TARGET=mylib.lib
    all: $(TARGET)
    $(TARGET): $(OBJS)
    link /out:mylib.lib $(OBJS)
     
  3. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Если кол-во 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
     
  4. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Попробуй так:
    Код (Text):
    1. TARGET=mylib.lib
    2. OBJS=*.obj
    3. all: $(TARGET)
    4. $(TARGET): $(OBJS)
    5.     link /out:$(TARGET) $(OBJS)
    6. .asm.obj:
    7.     ml /c /coff $<
     
  5. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Спасибо, все работает