> On Sun, Feb 12, 2006 at 09:23:43PM +0100, Martin Willers wrote:
> >
> > program: $(OBJECTS)
> > echo "const char build_time[] = \"`date`\";" > build.c
> > $(CC) -c build.c
> > $(CC) -o $@ $(OBJECTS) build.o
> >
> > However, with this approach, I have to use an explicit
> > compiler call to compile build.c - it would be nicer if I could
> > let a pattern rule force compilation of build.c.
> >
> > Is there a better way to do this?
>
> Wouldn't this do?
>
> build.c : $(OBJECTS)
> echo "const char build_time[] = \"`date`\";" > build.c
>
>
> program: $(OBJECTS) build.o
> $(CC) -o $@ $(OBJECTS) build.o
>
no need for an intermediate file for something like that.
[EMAIL PROTECTED]:/tmp# cat Makefile
all: hello
NOW := $(shell date -u "+%Y/%m/%d %H:%M")
CFLAGS += -DBUILDTIME='"$(NOW)"'
hello: hello.c
[EMAIL PROTECTED]:/tmp# cat hello.c
#include <stdio.h>
main(){
printf("\n"BUILDTIME"\n");
return 0;
}
[EMAIL PROTECTED]:/tmp# make
cc -DBUILDTIME='"2006/02/25 15:16"' hello.c -o hello
[EMAIL PROTECTED]:/tmp# ./hello
2006/02/25 15:16
[EMAIL PROTECTED]:/tmp#
hofrat
_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make