Most Makefile users use the commandline. Thus they have no need of evoking it in the GUI. But Makefile can be used as an administration tool for the users too.
In my case, a clerk is tasked to maintain a document which changes daily, and as soon as she saves the file, the "source" is changed. I want her to convert it to PDF, stamp the PDF with a given template, encrypt it, merge it with a few other files, and produce three variations for different departments with different stamps.
I have a Makefile for that purpose, already written. Is there a way to let her evoke the Makefile without putting me to the mire of doing additional commandline training? She can save the document, evoke Makefile, and be done.
P.S. This is not about how to execute a shell script or an .EXE file because there is no shell scripts or .EXE files or any executable files in the question at all.
I have two solutions for you and I prefer Solution B
Solution A
The simplest way without a terminal is, add a wrapper script in the folder where the
Makefile
is.Create a wrapper script
Add two simple lines
Make the script executable
Configure nautilus to ask each time, if you double-click an executable text file
or for a start without asking
Solution B
A
Makefile
has the mimetypeTherefore create and use a desktop file with a wrapper script
Create the wrapper script
Add the code below
Create a desktop file
Add the configuration below
IMPORTANT Replace
user
in the lineExec=
with your username, the output ofRestart Unity/GNOME Shell, for the GNOME Shell e.g. Alt-F2, type
r
and Enter and Nautilus withAssociate the
Makefile
with themakeit
scriptOpen your file manager and right click on a
Makefile
Click Open With Other Application
Click the button View All Applications
Select the entry Make It
Just create a cron job (via
crontab -e
) that runs that Makefile everyday (or even every minute).I discovered "Open in Terminal" feature in nautilus.
make
This isn't exactly what is asked for, but is the closest solution. Half of the difficulty in training new command-line user is the concept of current directory - in this case probably entire difficulty - making this solution look good.