Sarah
Sarah

Reputation: 25

How can I run an executable file without the "./" using a MakeFile?

I want to run my program with an executable without the "./"

For example lets say I have the makefile:

 all: RUN

 RUN: main.o

       gcc -0 RUN main.o

 main.o: main.c

      gcc -c main.c

So in order to run the program normally I would say in the terminal "make" then put "./RUN" to invoke the program.

But I would just like to say in the terminal "make" then "RUN" to invoke the program.

So to conclude I would just like to say >RUN instead of >./RUN inside the terminal. Is there any command I can use to do this inside the Makefile?

When I just put "RUN" in the terminal it just says command not found.

Upvotes: 1

Views: 5186

Answers (2)

It is a matter of $PATH, which is imported by make from your environment.

You might set it in your Makefile, perhaps with

export PATH=$(PATH):.

or

export PATH:=$(shell echo $$PATH:.)

but I don't recommend doing that (it could be a security hole).

I recommend on the contrary using explicitly ./RUN in your Makefile, which is much more readable and less error-prone (what would happen if you got a RUN program somewhere else in your PATH ?).

BTW, you'll better read more about make, run once make -p to understand the builtin rules known to make, and have

CC= gcc
CFLAGS+= -Wall -g

(because you really want all warnings & debug info)

and simply

main.o: main.c

(without recipes in that rule) in your Makefile

Upvotes: 3

Shantanu Terang
Shantanu Terang

Reputation: 208

change your makefile to

    all: RUN

    RUN: main.o

        gcc -o RUN main.o && ./RUN

    main.o: main.c

        gcc -c main.c

just put ./filename in your makefile

Upvotes: 0

Related Questions