Makefile overhaul

- support out-of-tree builds
- explicitly define required sources
- differentiate built sources
- avoid temporary files in srcdir
parent 569f84ec
...@@ -3,3 +3,5 @@ ACLOCAL_AMFLAGS = -I m4 -I @VARNISHAPI_DATAROOTDIR@/aclocal ...@@ -3,3 +3,5 @@ ACLOCAL_AMFLAGS = -I m4 -I @VARNISHAPI_DATAROOTDIR@/aclocal
DISTCHECK_CONFIGURE_FLAGS = RST2MAN=: DISTCHECK_CONFIGURE_FLAGS = RST2MAN=:
SUBDIRS = src SUBDIRS = src
EXTRA_DIST = LICENSE
AM_CFLAGS = $(VARNISHAPI_CFLAGS) AM_CFLAGS = $(VARNISHAPI_CFLAGS)
HDRS = type_magics.h type_cp.h tbl_types.h
# Modules # Modules
vmod_LTLIBRARIES = \ vmod_LTLIBRARIES = \
...@@ -9,25 +10,25 @@ vmod_LTLIBRARIES = \ ...@@ -9,25 +10,25 @@ vmod_LTLIBRARIES = \
libvmod_topvar.la libvmod_topvar.la
libvmod_constant_la_LDFLAGS = $(VMOD_LDFLAGS) libvmod_constant_la_LDFLAGS = $(VMOD_LDFLAGS)
libvmod_constant_la_SOURCES = vmod_constant.c libvmod_constant_la_SOURCES = $(HDRS) vmod_constant.c
nodist_libvmod_constant_la_SOURCES = \ nodist_libvmod_constant_la_SOURCES = \
vcc_constant_if.c \ vcc_constant_if.c \
vcc_constant_if.h vcc_constant_if.h
libvmod_globalvar_la_LDFLAGS = $(VMOD_LDFLAGS) libvmod_globalvar_la_LDFLAGS = $(VMOD_LDFLAGS)
libvmod_globalvar_la_SOURCES = vmod_globalvar.c libvmod_globalvar_la_SOURCES = $(HDRS) vmod_globalvar.c vmb.h
nodist_libvmod_globalvar_la_SOURCES = \ nodist_libvmod_globalvar_la_SOURCES = \
vcc_globalvar_if.c \ vcc_globalvar_if.c \
vcc_globalvar_if.h vcc_globalvar_if.h
libvmod_taskvar_la_LDFLAGS = $(VMOD_LDFLAGS) libvmod_taskvar_la_LDFLAGS = $(VMOD_LDFLAGS)
libvmod_taskvar_la_SOURCES = vmod_taskvar.c libvmod_taskvar_la_SOURCES = $(HDRS) vmod_taskvar.c tasktop.h
nodist_libvmod_taskvar_la_SOURCES = \ nodist_libvmod_taskvar_la_SOURCES = \
vcc_taskvar_if.c \ vcc_taskvar_if.c \
vcc_taskvar_if.h vcc_taskvar_if.h
libvmod_topvar_la_LDFLAGS = $(VMOD_LDFLAGS) libvmod_topvar_la_LDFLAGS = $(VMOD_LDFLAGS)
libvmod_topvar_la_SOURCES = vmod_topvar.c libvmod_topvar_la_SOURCES = $(HDRS) vmod_topvar.c tasktop.h
nodist_libvmod_topvar_la_SOURCES = \ nodist_libvmod_topvar_la_SOURCES = \
vcc_topvar_if.c \ vcc_topvar_if.c \
vcc_topvar_if.h vcc_topvar_if.h
...@@ -37,49 +38,47 @@ nodist_libvmod_topvar_la_SOURCES = \ ...@@ -37,49 +38,47 @@ nodist_libvmod_topvar_la_SOURCES = \
@BUILD_VMOD_TASKVAR@ @BUILD_VMOD_TASKVAR@
@BUILD_VMOD_TOPVAR@ @BUILD_VMOD_TOPVAR@
VCCS = \ GEN_VCCS = \
vmod_constant.vcc \ vmod_constant.vcc \
vmod_globalvar.vcc \ vmod_globalvar.vcc \
vmod_taskvar.vcc \ vmod_taskvar.vcc \
vmod_topvar.vcc vmod_topvar.vcc
CS = \ GEN_TESTS = \
vmod_constant.c \
vmod_globalvar.c \
vmod_taskvar.c \
vmod_topvar.c
TESTS = \
vtc/vmod_constant.vtc \ vtc/vmod_constant.vtc \
vtc/vmod_globalvar.vtc \ vtc/vmod_globalvar.vtc \
vtc/vmod_taskvar.vtc \ vtc/vmod_taskvar.vtc \
vtc/vmod_topvar.vtc \ vtc/vmod_topvar.vtc
vtc/clash.vtc
$(CS): type_magics.h type_cp.h tbl_types.h
vmod_taskvar.c: tasktop.h TESTS = \
vmod_topvar.c: tasktop.h $(GEN_TESTS) \
vtc/clash.vtc
$(VCCS): $(top_srcdir)/LICENSE tbl_types.h $(GEN_VCCS): $(top_srcdir)/LICENSE tbl_types.h
$(TESTS): tbl_vtc.h $(GEN_TESTS): tbl_vtc.h vtc/.dummy
.vcctpl.vcc: .vcctpl.vcc:
@rm -f $<.h @rm -f $@.h
@ln -s $< $<.h ln $< $@.h || cp $< $@.h
$(AM_V_GEN) ( echo '#-' && \ $(AM_V_GEN) ( echo '#-' && \
sed < $(top_srcdir)/LICENSE 's:^:# :' && \ sed < $(top_srcdir)/LICENSE 's:^:# :' && \
$(CPP) $<.h | sed '/^#/ d; s:\\n *:\ $(CPP) $@.h | sed '/^#/ d; s:\\n *:\
:g') >$@ :g') >$@.tmp
@rm -f $<.h @rm -f $<.h
mv $@.tmp $@
vtc/.dummy:
test -d vtc || mkdir vtc
>vtc/.dummy
.vtctpl.vtc: .vtctpl.vtc:
@rm -f $<.h @rm -f $@.h
@ln $< $<.h ln $< $@.h || cp $< $@.h
$(AM_V_GEN) ($(CPP) $<.h | sed '/^#/ d; s:\\n *:\ $(AM_V_GEN) ($(CPP) -I$(srcdir)/vtc $@.h | sed '/^#/ d; s:\\n *:\
:g; s: *%% *::g;') >$@ :g; s: *%% *::g;') >$@.tmp
@rm -f $<.h @rm -f $@.h
mv $@.tmp $@
# Test suite # Test suite
...@@ -94,9 +93,10 @@ AM_VTC_LOG_FLAGS = \ ...@@ -94,9 +93,10 @@ AM_VTC_LOG_FLAGS = \
# Documentation # Documentation
# we dist our generated files
dist_doc_DATA = \ dist_doc_DATA = \
$(VCCS) \ $(GEN_VCCS) \
$(TESTS) $(GEN_TESTS)
dist_man_MANS = \ dist_man_MANS = \
vmod_constant.3 \ vmod_constant.3 \
...@@ -104,6 +104,12 @@ dist_man_MANS = \ ...@@ -104,6 +104,12 @@ dist_man_MANS = \
vmod_taskvar.3 \ vmod_taskvar.3 \
vmod_topvar.3 vmod_topvar.3
.rst.3:
.rst.1:
$(AM_V_GEN) $(RST2MAN) $< $@ $(AM_V_GEN) $(RST2MAN) $< $@
EXTRA_DIST = \
tbl_vtc.h
MAINTAINERCLEANFILES = \
$(GEN_TESTS) \
$(GEN_VCCS)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment