Как создать make-файл с помощью сценария оболочки

У меня есть сценарий оболочки, и я хотел бы преобразовать его в make-файл, чтобы его можно было выполнить с помощью команды make all.

Как мне поступить об этом?

Спасибо

2
задан 28 November 2012 в 14:13

3 ответа

Можно создать минимальный make-файл, содержащий:

all:
        YOUR SHELL COMMANDS HERE

Но Вы ничего действительно не получили путем выполнения поэтому, если Вы не переписываете его для использования некоторых функций Make-файла - несколько целей, целевых зависимостей, и т.д. Посмотрите здесь (или много других учебных руководств по Make-файлу) для некоторой информации о том, что можно сделать с make-файлом.

(Обратите внимание, что команды оболочки выполняются с sh отдельно для каждой строки, поэтому при выполнении чего-либо сложного как циклы, устанавливая переменные, оно будет только работать, и добавлением отступа команд должен быть Символ табуляции, не пробелы.)

Быстрый Make-файл для описанного случая (нормальные предупреждения, вероятно, имеет все виды пограничных случаев, мог бы уничтожить Вашу собаку, и т.д.):

src=$(wildcard pictures/*.jpg)
out=$(subst pictures,thumb,$(src))

all : $(out)

thumb/%.jpg: pictures/%.jpg
    convert $< -thumbnail 100 $@
2
ответ дан 28 November 2012 в 14:13

Лучше всего, если вы разделите свои сценарии оболочки на несколько частей. Например. prebuild, build, postbuild. Несколько небольших задач облегчают тестирование сценария.

clean:
  rm -rf build

build:
  gcc sample.c

changelog:
  git log >> changelog.txt

package: changelog build
  zip release.zip a.out changelog.txt 

all: clean package
0
ответ дан 28 November 2012 в 14:13
clean:
  @-rm -rf build
  @echo removed 

build:
  gcc sample.c

changelog:
  git log >> changelog.txt

package: changelog build
  zip release.zip a.out changelog.txt 

all: clean package
0
ответ дан 28 November 2012 в 14:13

Другие вопросы по тегам:

Похожие вопросы: