2 # Makefile fragment to generate makefile.all and update version.c
4 # Non-core sources and version.c
5 noncoresrc = amiga.c ansi2knr.c bf_test.c corplot.c gpexecute.c gplt_x11.c \
6 os9.c strftime.c version.c vms.c
8 coresrc := $(filter-out $(noncoresrc),$(wildcard *.c))
10 coreterm := $(shell cd ../term && echo *.trm)
12 version := $(shell cat ../VERSION)
13 file_version := $(shell sed -n 's/.*gnuplot_version.*"\(.*\)".*/\1/p' ./version.c|tr -d ' ')
15 patchlevel := $(shell cat ../PATCHLEVEL)
16 file_pl := $(shell sed -n 's/.*gnuplot_patchlevel.*"\(.*\)".*/\1/p' ./version.c|tr -d ' ')
20 makefile.all: Makefile.maint
21 @echo "# $@ generated automatically by GNU make" >$@t
23 @echo '# List of core object files except version.$$(O)' >>$@t
24 @echo COREOBJS = $(coresrc:.c=.'$$(O)') \
25 | fmt | (tr '\012' @; echo) | sed 's/@$$/%/;s/@/ \\@/g' \
26 | tr @% '\012\012' >>$@t
27 @echo "# List of terminal driver sources" >>$@t
28 @echo CORETERM = $(patsubst %.trm,$$\(T\)%.trm,$(coreterm)) \
29 | fmt | (tr '\012' @; echo) | sed 's/@$$/%/;s/@/ \\@/g' \
30 | tr @% '\012\012' >>$@t
31 @if cmp -s $@ $@t; then rm -f $@t; else mv $@t $@; fi
33 version.c: ../VERSION ../PATCHLEVEL
35 @if [ "$(version)" != "$(file_version)" -o \
36 "$(patchlevel)" != "$(file_pl)" ]; then \
37 sed -e '/^const char gnuplot_version/ s/"[^"]*"/"@VERS@"/' \
38 -e '/^const char gnuplot_patchlevel/ s/"[^"]*"/"@PLVL@"/' \
39 -e '/^const char gnuplot_date/ s/"[^"]*"/"@DATE@"/' \
40 -e "s/@VERS@/$(version)/" -e "s/@PLVL@/$(patchlevel)/" \
41 -e "s/@DATE@/$(date)/" $@ >$@t; \
42 if cmp -s $@ $@t; then rm -f $@t; else mv $@t $@; fi \