Как вызвать Makefile в графическом интерфейсе?

Как вызвать Makefile в графическом интерфейсе?

Большинство пользователей Makefile используют командную строку. Таким образом, им не нужно вызывать ее в GUI. Но Makefile может использоваться как инструмент администрирования для пользователей.

В моем случае клерку поручено поддерживать документ, который меняется ежедневно, и как только она сохраняет файл, «источник» меняется. Я хочу, чтобы она конвертировала его в PDF, проштамповала PDF заданным шаблоном, зашифровала его, объединила с несколькими другими файлами и создала три варианта для разных отделов с разными штампами.

У меня есть Makefile для этой цели, уже написанный. Есть ли способ позволить ей вызвать Makefile, не загоняя меня в трясину дополнительного обучения командной строке? Она может сохранить документ, вызвать Makefile и все.

P.S. Речь не идет о том, как выполнить скрипт оболочки или .EXE-файл, поскольку в вопросе вообще нет ни скриптов оболочки, ни .EXE-файлов, ни каких-либо исполняемых файлов.

решение1

У меня есть два решения для вас, и я предпочитаюРешение Б


Решение А

Самый простой способ без терминала — добавить скрипт-оболочку в папку, где находится Makefile.

  1. Создать скрипт-оболочку

    nano /your/make/file/folder/makeit
    
  2. Добавьте две простые линии

    #!/usr/bin/env bash
    make
    
  3. Сделать скрипт исполняемым

    chmod +x /your/make/file/folder/makeit
    
  4. Настройте nautilus так, чтобы он спрашивал каждый раз, если вы дважды щелкните исполняемый текстовый файл

    gsettings set org.gnome.nautilus.preferences executable-text-activation ask
    

    или для начала не спрашивая

    gsettings set org.gnome.nautilus.preferences executable-text-activation launch
    

Решение Б

A Makefileимеет mimetype

text/x-makefile

Поэтому создайте и используйте файл рабочего стола со скриптом-оболочкой.

  1. Создать скрипт-обертку

    mkdir -p ~/bin
    nano ~/bin/makeit
    
  2. Добавьте код ниже

    #!/usr/bin/env bash
    cd "$(dirname "$1")" || exit
    make
    
  3. Создать файл рабочего стола

    nano ~/.local/share/applications/makeit.desktop
    
  4. Добавьте конфигурацию ниже

    [Desktop Entry]
    Name=Make It
    Comment=Start the make command
    Exec=/home/user/bin/makeit
    Icon=
    Terminal=false
    Type=Application
    Categories=Editor;
    StartupNotify=true
    MimeType=text/x-makefile;
    

    ВАЖНЫЙЗаменятьuserв строке Exec=с вашим именем пользователя вывод

    echo $USER
    
  5. Перезапустите Unity/GNOME Shell, для GNOME Shell, например Alt, - F2, введите rи Enterи Nautilus с

    nautilus -q
    
  6. Свяжите Makefileсо makeitсценарием

    • Откройте файловый менеджер и щелкните правой кнопкой мыши по файлу.Makefile

    • НажмитеOpen With Other Application

    • Нажмите кнопкуView All Applications

    • Выберите записьMake It

решение2

Просто создайте задание cron (через crontab -e), которое будет запускать этот Makefile каждый день (или даже каждую минуту).

решение3

Я обнаружил функцию «Открыть в терминале» в Nautilus.

  1. Щелкните правой кнопкой мыши по пустому пространству вокруг Makefile.
  2. Выберите «Открыть в терминале».
  3. Типmake

Это не совсем то, что требуется, но это самое близкое решение. Половина сложности обучения нового пользователя командной строки — это концепция текущего каталога (в данном случае, вероятно, вся сложность), заставляющая это решение выглядеть хорошо.

Связанный контент