Q:

How to run a Makefile with a list of arguments from another file

I am using csh. 
Inside my makefile I have something like this: 
run:
    program -switch "--alpha 3 --beta 4 --gamma 5"

My aim is to be able to set the arguments inside -switch when I run the makefile. I found different solutions on how to do it but in my case, the arguments of type alpha, beta and gamma are about 20-25 in number. Ideally I'd like to place them in a file like this:

file: simple_script_run

--alpha 3 \
--beta  5 \
--gamma 5 \
--..etc

I'd rather have the arguments in separate lines for better readability. The file simple_script_run is located with other similar files each containing a configuration of the argument inside a directory run_scripts. The latter is located in the same path as my makefile. 
The aim is to be able to replace the list of arguments inside the makefile to something like: 
program -switch "$(RUN_ARGS)"

It is mandatory that the list of arguments are contained with "". Now I'd like to run the makefile with a command similar to: 
make run RUN_ARGS=$(< run_scripts/simple_script_run)

Obviously, this didn't work and I wonder why. Can you suggest a fix to my solution or a better idea? I'd be glad to hear from you.  

A:

This worked for me:
Configuration file (backslashes not needed):
--alpha 3
--beta  5
--gamma 5

myprog:
#!/bin/bash
echo "arg1=$1"
echo "arg2=$2"

Makefile:
# define the newline as a multi-line variable
define \n

endef

# Convert newlines to spaces in $(ARGS)
MK_ARGS := $(subst ${\n}, , $(ARGS))
# MK_ARGS := $(shell echo "$(ARGS)") # A more expensive way

all:
        @echo "MK_ARGS=$(MK_ARGS)"
        @bash myprog -switch "$(MK_ARGS)"

Run result of make ARGS="$(< config)":
MK_ARGS=--alpha 3 --beta  5 --gamma 5
1=-switch
2=--alpha 3 --beta  5 --gamma 5

