Hi, everybody:

I have a project with several executable targets. The building progress
for all of these targets are nearly same, except there dependent source
codes. In the meanwhile, I may add some other executable targets in
this project. Hence I want to write a unified Makefile so that it
can add some new targets by just adding project name into target list.
So my idea is:
        for each target, create a file named as $(target name).list
        in this file, I can put the list of source codes.
        In Makefile, there is a macro named as "MODULE_LIST", which
        contains the list of my targets. I hope that Makefile can
        check the source codes for each target automatically.

Following is main part of my Makefile:

========================================================================
MODULE_LIST     = proj1 proj2 proj3 ...

all:    $(MODULE_LIST)

$(MODULE_LIST):%:
        override MODULE_SOURCE = $(sort $(filter-out /%, $(shell cat \
                                 $*.list)))
        override MODULE_OBJS   = $(MODULE_SOURCE:%.c=%.o)

$(MODULE_LIST):%: $(MODULE_OBJS)

$(MODULE_OBJS): $(MODULE_SOURCE)
        $(CC) -c $< -o $@
...
========================================================================

But it doesn't work. Because $(MODULE_OBJS) can only be expanded in the
body of "$(MODULE_LIST):%:" rule.
could you please tell me how to do it?

Thanks in advance.

Sincerely

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Lei Yin, Ph.D
Celestry Design Technologies, Inc
1982A Zanker Road, San Jose, CA 95112
Tel: (408)501-2313(O) | Fax: (408)501-2607
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"I'd change the world but God won't give me the source code" -- Anonymous



_______________________________________________
Help-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/help-make

Reply via email to