Makefile overhaul

- support out-of-tree builds
- explicitly define required sources
- differentiate built sources
- avoid temporary files in srcdir
parent ae53f7da
......@@ -3,3 +3,5 @@ ACLOCAL_AMFLAGS = -I m4 -I @VARNISHAPI_DATAROOTDIR@/aclocal
DISTCHECK_CONFIGURE_FLAGS = RST2MAN=:
SUBDIRS = src
EXTRA_DIST = LICENSE
AM_CFLAGS = $(VARNISHAPI_CFLAGS)
HDRS = type_magics.h type_cp.h tbl_types.h
# Modules
vmod_LTLIBRARIES = \
......@@ -9,25 +10,25 @@ vmod_LTLIBRARIES = \
libvmod_topvar.la
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 = \
vcc_constant_if.c \
vcc_constant_if.h
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 = \
vcc_globalvar_if.c \
vcc_globalvar_if.h
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 = \
vcc_taskvar_if.c \
vcc_taskvar_if.h
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 = \
vcc_topvar_if.c \
vcc_topvar_if.h
......@@ -37,49 +38,47 @@ nodist_libvmod_topvar_la_SOURCES = \
@BUILD_VMOD_TASKVAR@
@BUILD_VMOD_TOPVAR@
VCCS = \
GEN_VCCS = \
vmod_constant.vcc \
vmod_globalvar.vcc \
vmod_taskvar.vcc \
vmod_topvar.vcc
CS = \
vmod_constant.c \
vmod_globalvar.c \
vmod_taskvar.c \
vmod_topvar.c
TESTS = \
GEN_TESTS = \
vtc/vmod_constant.vtc \
vtc/vmod_globalvar.vtc \
vtc/vmod_taskvar.vtc \
vtc/vmod_topvar.vtc \
vtc/clash.vtc
$(CS): type_magics.h type_cp.h tbl_types.h
vtc/vmod_topvar.vtc
vmod_taskvar.c: tasktop.h
vmod_topvar.c: tasktop.h
TESTS = \
$(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:
@rm -f $<.h
@ln -s $< $<.h
@rm -f $@.h
ln $< $@.h || cp $< $@.h
$(AM_V_GEN) ( echo '#-' && \
sed < $(top_srcdir)/LICENSE 's:^:# :' && \
$(CPP) $<.h | sed '/^#/ d; s:\\n *:\
:g') >$@
$(CPP) $@.h | sed '/^#/ d; s:\\n *:\
:g') >$@.tmp
@rm -f $<.h
mv $@.tmp $@
vtc/.dummy:
test -d vtc || mkdir vtc
>vtc/.dummy
.vtctpl.vtc:
@rm -f $<.h
@ln $< $<.h
$(AM_V_GEN) ($(CPP) $<.h | sed '/^#/ d; s:\\n *:\
:g; s: *%% *::g;') >$@
@rm -f $<.h
@rm -f $@.h
ln $< $@.h || cp $< $@.h
$(AM_V_GEN) ($(CPP) -I$(srcdir)/vtc $@.h | sed '/^#/ d; s:\\n *:\
:g; s: *%% *::g;') >$@.tmp
@rm -f $@.h
mv $@.tmp $@
# Test suite
......@@ -94,9 +93,10 @@ AM_VTC_LOG_FLAGS = \
# Documentation
# we dist our generated files
dist_doc_DATA = \
$(VCCS) \
$(TESTS)
$(GEN_VCCS) \
$(GEN_TESTS)
dist_man_MANS = \
vmod_constant.3 \
......@@ -104,6 +104,12 @@ dist_man_MANS = \
vmod_taskvar.3 \
vmod_topvar.3
.rst.1:
.rst.3:
$(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