реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> конвертация nmake в gmake
romez777
сообщение Dec 18 2007, 09:32
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Приветствую,

переношу проект с visual studio на arm-gcc. Почитал http://www.gnu.org/software/make/manual/make.html но не нашел аналога !MESSAGE в gnu make для выдачи сообщения. Есть @echo, но оно работает только в теле целей, а мне нужно выводить некоторые сообщения в ifndef ... endif конструкциях.

Заранее благодарю.
Go to the top of the page
 
+Quote Post
doomer#gp
сообщение Dec 18 2007, 12:02
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 382
Регистрация: 10-03-05
Из: USA
Пользователь №: 3 234



Вы про такое ?



Код
//  ......
//  ......

  // set the interrupt controller defaults
  #if defined(RAM_RUN)
    MEMMAP = MEMMAP_SRAM;                 // map interrupt vectors space into SRAM
  #elif defined(ROM_RUN)
    MEMMAP = MEMMAP_FLASH;                // map interrupt vectors space into FLASH
  #else
    #error RUN_MODE not defined!
  #endif

//......
//......
Go to the top of the page
 
+Quote Post
spf
сообщение Dec 18 2007, 12:28
Сообщение #3


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(romez777 @ Dec 18 2007, 14:32) *
Почитал http://www.gnu.org/software/make/manual/make.html но не нашел аналога !MESSAGE в gnu make для выдачи сообщения. Есть @echo, но оно работает только в теле целей, а мне нужно выводить некоторые сообщения в ifndef ... endif конструкциях.

Может подойдет
makefile:

Код
ifndef TEST
$(warning Вывод текста )
endif

Результат работы:
Код
[running 'make ' in 'E:\Temp']
makefile:4: Вывод текста


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
romez777
сообщение Dec 19 2007, 23:44
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Цитата(spf @ Dec 18 2007, 15:28) *
Может подойдет
makefile:

Код
ifndef TEST
$(warning Вывод текста )
endif

Результат работы:
Код
[running 'make ' in 'E:\Temp']
makefile:4: Вывод текста



Большое спасибо, это как раз то, что я искал!
Go to the top of the page
 
+Quote Post
romez777
сообщение Dec 26 2007, 01:52
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Приветствую,

еще интересует, как в gnu make сделать подобный финт:

Код
@if not exist $(OBJ) mkdir $(OBJ)


т.е. проверить существование каталога, и если он присутствует/отстуствует - совершить какие-то действия, например удалить его или наоборот создать.

Наверное можно принудительно вызывать mkdir или del и проверять код возврата, но это как-то криво. Может быть есть способ более красивый и правильный.

Спасибо.
Go to the top of the page
 
+Quote Post
amw
сообщение Dec 26 2007, 08:42
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(romez777 @ Dec 26 2007, 03:52) *
Приветствую,

еще интересует, как в gnu make сделать подобный финт:

Код
@if not exist $(OBJ) mkdir $(OBJ)


т.е. проверить существование каталога, и если он присутствует/отстуствует - совершить какие-то действия, например удалить его или наоборот создать.

Наверное можно принудительно вызывать mkdir или del и проверять код возврата, но это как-то криво. Может быть есть способ более красивый и правильный.

Спасибо.

Не, не криво.

Код
DIRNAME = outdir
OBJ = $(DIRNAME)/main.o

$(DIRNAME):
    mkdir $@

$(OBJ): main.c $(DIRNAME)
    $(CC) тра-ля-ля


Ну или
Код
DIRNAME = outdir
OBJ = $(DIRNAME)/main.o

$(DIRNAME):
    @if not exist $(DIRNAME) mkdir $(DIRNAME)

$(OBJ): main.c $(DIRNAME)
    $(CC) тра-ля-ля


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
romez777
сообщение Dec 26 2007, 23:21
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Цитата(amw @ Dec 26 2007, 11:42) *
Код
DIRNAME = outdir
OBJ = $(DIRNAME)/main.o

$(DIRNAME):
    @if not exist $(DIRNAME) mkdir $(DIRNAME)

$(OBJ): main.c $(DIRNAME)
    $(CC) тра-ля-ля


Gnu make не воспринимает такие конструкции: @if not exist
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 18:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016