Commit 151c79d2 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Add alternate build-system prototype

parent 3136e23c
.PHONY: default
default: all
WARNS ?= 1
.PHONY: depend all clean install test
depend all clean install test:
@$(MAKE) --no-print-directory -f Makefile.phk TGT=$@ real-$@ \
$(shell env CC=$(CC) WARNS=$(WARNS) sh ${TOPDIR}/config.phk $(TOPDIR) $(CURDIR) )
CFLAGS += $(CF_CFLAGS) $(CF_CWFLAGS)
CFLAGS += -I$(CURDIR)
CFLAGS += -I$(TOPDIR)
CFLAGS += -I$(TOPDIR)/include
CFLAGS += -I$(TOPDIR)/lib/libvgz
CFLAGS += -I/usr/local/include
SHLIB_LDFLAGS += -shared -Wl,-x -Wl,--fatal-warnings -Wl,--warn-shared-textrel
VMOD_LDFLAGS += ${SHLIB_LDFLAGS}
#######################################################################
INSTALL_BASE ?= $(TOPDIR)/_install
#######################################################################
LIB_VARNISH = -L $(TOPDIR)/lib/libvarnish -lvarnish
LIB_VARNISHAPI = $(TOPDIR)/lib/libvarnishapi/libvarnishapi.a
LIB_VARNISHTOOLS = -L $(TOPDIR)/lib/libvarnishtools -lvarnishtools
LIB_VCC = -L $(TOPDIR)/lib/libvcc -lvcc
LIB_VGZ = -L $(TOPDIR)/lib/libvgz -lvgz
LIB_PCRE = -L /usr/local/lib -lpcre
LIB_EXECINFO = -lexecinfo
LIB_CURSES = -lcurses
LIB_READLINE = -lreadline
#######################################################################
ifdef USE_THREADS
CFLAGS += -pthread -D_THREAD_SAFE -g -O2
PROG_LDFLAGS += -pthread -D_THREAD_SAFE -g -O2
endif
ifdef USE_DLOPEN
PROG_LDFLAGS += -Wl,-E
endif
#######################################################################
ifdef SUBDIRS
ifeq "$(findstring k,$(MAKEFLAGS))" ""
EOPT=set -e
else
EOPT=set +e
endif
define run-subdirs
$(EOPT) ; for dir in $(SUBDIRS); do \
echo "->> $$dir $(@:real-%=%)" ; \
$(MAKE) -C $$dir -f Makefile.phk $(@:real-%=%) ; \
done
endef
else
define run-subdirs
endef
endif
#######################################################################
ifdef NOWORK
ifdef SUBDIRS
.PHONY: subdirs $(SUBDIRS)
subdirs: $(SUBDIRS)
$(SUBDIRS):
$(MAKE) -C $@ -f Makefile.phk $(@:real-%=%)
TODO += subdirs
endif
endif
#######################################################################
.SUFFIXES: .So
.c.So:
${CC} $(CFLAGS) -fPIC -c $< -o $@
#######################################################################
TODO_DEPEND += $(MADE_FILES)
TODO_ALL += $(MADE_FILES)
CLEAN_FILES += $(MADE_FILES)
MADE_SRC = $(filter %.c, $(MADE_FILES))
#######################################################################
ifdef PROG_SRC
PROGNAME = $(notdir $(CURDIR))
MANNAME=$(PROGNAME).1
TODO_DEPEND += _.depprog
TODO_ALL += $(PROGNAME)
TODO_INSTALL += prog_install
PROG_SRC += $(MADE_SRC)
PROG_OBJ = $(notdir $(PROG_SRC:.c=.o))
CLEAN_FILES += $(PROGNAME) $(PROG_OBJ) _.depprog $(MANNAME)
_.depprog: ${PROG_SRC} ${MADE_FILES}
$(CC) $(CFLAGS) -MM $^ > _.depprog
ifeq ($(TGT), all)
include _.depprog
endif
$(PROGNAME): $(PROG_OBJ)
$(CC) $(PROG_LDFLAGS) -o $(PROGNAME) $^ $(LD_ADD)
.PHONY: prog_install
prog_install: $(PROGNAME)
@cp $(PROGNAME) $(INSTALL_BASE)/bin/
@[ ! -f $(MANNAME) ] || cp $(MANNAME) $(INSTALL_BASE)/man/
endif
#######################################################################
ifdef SHLIB_SRC
SHLIBNAME = $(notdir $(CURDIR))
TODO_ALL += $(SHLIBNAME).so
TODO_DEPEND += _.depshlib
TODO_INSTALL += shlib_install
SHLIB_SRC += $(MADE_SRC)
SHLIB_OBJ = $(notdir $(SHLIB_SRC:.c=.So))
CLEAN_FILES += $(SHLIB_OBJ) $(SHLIBNAME).so _.depshlib
_.depshlib: ${SHLIB_SRC} ${MADE_FILES}
$(CC) $(CFLAGS) -MM $^ |sed 's/o:/So:/' > _.depshlib
ifeq ($(TGT), all)
include _.depshlib
endif
$(SHLIBNAME).so: $(SHLIB_OBJ)
$(CC) $(SHLIB_LDFLAGS) -o $(SHLIBNAME).so $^
.PHONY: shlib_install
shlib_install: $(SHLIBNAME).so
@cp $(SHLIBNAME).so $(INSTALL_BASE)/lib/
endif
#######################################################################
ifdef LIB_SRC
LIBNAME = $(notdir $(CURDIR))
TODO_ALL += $(LIBNAME).a
TODO_DEPEND += _.deplib
LIB_SRC += $(MADE_SRC)
LIB_OBJ = $(notdir $(LIB_SRC:.c=.o))
CLEAN_FILES += $(LIB_OBJ) $(LIBNAME).a _.deplib
_.deplib: ${LIB_SRC} ${MADE_FILES}
$(CC) $(CFLAGS) -MM $^ > _.deplib
ifeq ($(TGT), all)
include _.deplib
endif
$(LIBNAME).a: $(LIB_OBJ)
$(AR) -rc $(LIBNAME).a $^
ranlib $(LIBNAME).a
endif
#######################################################################
ifdef VMOD_SRC
#VMODNAME = $(subst libvmod_,,$(notdir $(CURDIR)))
VMODNAME = $(notdir $(CURDIR))
TODO_ALL += vcc_if.h vcc_if.c $(VMODNAME).so
TODO_DEPEND += _.depvmod
TODO_INSTALL += vmod_install
VMOD_SRC += $(MADE_SRC)
VMOD_SRC += vcc_if.c
VMOD_OBJ = $(notdir $(VMOD_SRC:.c=.So))
CLEAN_FILES += $(VMOD_OBJ) vcc_if.c vcc_if.h $(VMODNAME).so _.depvmod
CFLAGS += -I$(TOPDIR)/bin/varnishd
_.depvmod: ${VMOD_SRC} ${MADE_FILES}
$(CC) $(CFLAGS) -MM $^ |sed 's/o:/So:/' > _.depvmod
ifeq ($(TGT), all)
include _.depvmod
endif
vcc_if.c vcc_if.h: vmod.vcc $(TOPDIR)/lib/libvcc/vmodtool.py
${PYTHON} $(TOPDIR)/lib/libvcc/vmodtool.py
$(VMODNAME).so: $(VMOD_OBJ)
$(CC) $(VMOD_LDFLAGS) -o $(VMODNAME).so $^
.PHONY: vmod_install
vmod_install: $(VMODNAME).so
@cp $(VMODNAME).so $(INSTALL_BASE)/libexec/
endif
#######################################################################
ifdef RST_MAN
ifdef HAVE_RST2HTML
TODO_ALL += ${MANNAME}
${MANNAME}: ${RST_MAN}
rst2man ${RST_MAN} $(MANNAME)
endif
endif
#######################################################################
.PHONY: real-depend
real-depend: $(TODO) $(TODO_DEPEND)
@$(run-subdirs)
@true
.PHONY: real-all
real-all: $(TODO) $(TODO_ALL)
@$(run-subdirs)
@true
.PHONY: real-clean
real-clean: $(TODO) $(TODO_CLEAN)
@$(run-subdirs)
@[ "x$(CLEAN_FILES)" = "x" ] || rm -f $(CLEAN_FILES)
.PHONY: real-install
real-install: $(TODO_INSTALL)
@$(run-subdirs)
@true
.PHONY: real-test
real-test: $(TODO_TEST)
@$(run-subdirs)
@true
#######################################################################
SUBDIRS = lib bin doc
CLEAN_FILES += config.h include/vcs_version. include/vmod_abi.h _.cache
TODO_INSTALL += top_install
TOPDIR = $(CURDIR)
include $(TOPDIR)/Makefile.inc.phk
.PHONY: top_install
top_install:
@for d in man doc etc bin lib libexec ; do \
mkdir -p $(INSTALL_BASE)/$$d ; \
done
SUBDIRS += varnishadm
SUBDIRS += varnishd
SUBDIRS += varnishlog
SUBDIRS += varnishncsa
# varnishreplay
SUBDIRS += varnishtest
SUBDIRS += varnishstat
# SUBDIRS += varnishhist
# SUBDIRS += varnishtop
TOPDIR = $(CURDIR)/..
include $(TOPDIR)/Makefile.inc.phk
PROG_SRC = varnishadm.c
LD_ADD += ${LIB_VARNISHAPI}
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_PCRE}
LD_ADD += ${LIB_READLINE}
LD_ADD += -lm
RST_MAN += $(TOPDIR)/doc/sphinx/reference/varnishadm.rst
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
VPATH += cache common mgt waiter storage hash
PROG_SRC += cache/cache_acceptor.c
PROG_SRC += cache/cache_backend.c
PROG_SRC += cache/cache_backend_cfg.c
PROG_SRC += cache/cache_backend_poll.c
PROG_SRC += cache/cache_ban.c
PROG_SRC += cache/cache_busyobj.c
PROG_SRC += cache/cache_cli.c
PROG_SRC += cache/cache_dir.c
PROG_SRC += cache/cache_esi_deliver.c
PROG_SRC += cache/cache_esi_fetch.c
PROG_SRC += cache/cache_esi_parse.c
PROG_SRC += cache/cache_expire.c
PROG_SRC += cache/cache_fetch.c
PROG_SRC += cache/cache_fetch_proc.c
PROG_SRC += cache/cache_gzip.c
PROG_SRC += cache/cache_hash.c
PROG_SRC += cache/cache_http.c
PROG_SRC += cache/cache_http1_deliver.c
PROG_SRC += cache/cache_http1_fetch.c
PROG_SRC += cache/cache_http1_fsm.c
PROG_SRC += cache/cache_http1_proto.c
PROG_SRC += cache/cache_lck.c
PROG_SRC += cache/cache_main.c
PROG_SRC += cache/cache_mempool.c
PROG_SRC += cache/cache_obj.c
PROG_SRC += cache/cache_panic.c
PROG_SRC += cache/cache_pipe.c
PROG_SRC += cache/cache_pool.c
PROG_SRC += cache/cache_req_fsm.c
PROG_SRC += cache/cache_rfc2616.c
PROG_SRC += cache/cache_session.c
PROG_SRC += cache/cache_shmlog.c
PROG_SRC += cache/cache_vary.c
PROG_SRC += cache/cache_vcl.c
PROG_SRC += cache/cache_vrt.c
PROG_SRC += cache/cache_vrt_re.c
PROG_SRC += cache/cache_vrt_var.c
PROG_SRC += cache/cache_vrt_vmod.c
PROG_SRC += cache/cache_wrk.c
PROG_SRC += cache/cache_wrw.c
PROG_SRC += cache/cache_ws.c
PROG_SRC += common/common_vsc.c
PROG_SRC += common/common_vsm.c
PROG_SRC += hash/hash_classic.c
PROG_SRC += hash/hash_critbit.c
PROG_SRC += hash/hash_mgt.c
PROG_SRC += hash/hash_simple_list.c
PROG_SRC += mgt/mgt_child.c
PROG_SRC += mgt/mgt_cli.c
PROG_SRC += mgt/mgt_main.c
PROG_SRC += mgt/mgt_param.c
PROG_SRC += mgt/mgt_param_bits.c
PROG_SRC += mgt/mgt_param_tbl.c
PROG_SRC += mgt/mgt_param_tweak.c
PROG_SRC += mgt/mgt_pool.c
PROG_SRC += mgt/mgt_sandbox.c
PROG_SRC += mgt/mgt_sandbox_solaris.c
PROG_SRC += mgt/mgt_shmem.c
PROG_SRC += mgt/mgt_vcc.c
PROG_SRC += storage/stevedore.c
PROG_SRC += storage/stevedore_mgt.c
PROG_SRC += storage/stevedore_utils.c
PROG_SRC += storage/storage_file.c
PROG_SRC += storage/storage_malloc.c
PROG_SRC += storage/storage_persistent.c
PROG_SRC += storage/storage_persistent_mgt.c
PROG_SRC += storage/storage_persistent_silo.c
PROG_SRC += storage/storage_persistent_subr.c
PROG_SRC += storage/storage_synth.c
PROG_SRC += storage/storage_umem.c
PROG_SRC += waiter/cache_waiter.c
PROG_SRC += waiter/cache_waiter_epoll.c
PROG_SRC += waiter/cache_waiter_kqueue.c
PROG_SRC += waiter/cache_waiter_poll.c
PROG_SRC += waiter/cache_waiter_ports.c
PROG_SRC += waiter/mgt_waiter.c
USE_THREADS = YES
USE_DLOPEN = YES
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_VCC}
LD_ADD += ${LIB_PCRE}
LD_ADD += ${LIB_EXECINFO}
LD_ADD += ${LIB_VGZ}
LD_ADD += -lm
RST_MAN += $(TOPDIR)/doc/sphinx/reference/varnishd.rst
MADE_FILES += default_vcl.h
TODO_INSTALL += install_etc
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
#
# Turn the default.vcl file into a C-string we can include in the program.
#
default_vcl.h: default.vcl
echo '/*' > $@
echo ' * NB: This file is machine generated, DO NOT EDIT!' >> $@
echo ' *' >> $@
echo ' * Edit default.vcl instead and run make' >> $@
echo ' *' >> $@
echo ' */' >> $@
echo '' >> $@
sed -e 's/"/\\"/g' \
-e 's/$$/\\n"/' \
-e 's/^/ "/' default.vcl >> $@
.PHONY: install_etc
install_etc: default_vcl.h
@cp default_vcl.h $(INSTALL_BASE)/etc/
PROG_SRC = varnishhist.c
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_VARNISHAPI}
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
PROG_SRC = varnishlog.c
PROG_SRC = varnishlog_options.c
LD_ADD += ${LIB_VARNISHTOOLS}
LD_ADD += ${LIB_VARNISHAPI}
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_PCRE}
LD_ADD += -lm
TODO_ALL += build_man
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
.PHONY: build_man
PROG_SRC += base64.c
PROG_SRC += varnishncsa.c
PROG_SRC += varnishncsa_options.c
LD_ADD += ${LIB_VARNISHTOOLS}
LD_ADD += ${LIB_VARNISHAPI}
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_PCRE}
LD_ADD += -lm
TODO_ALL += build_man
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
.PHONY: build_man
PROG_SRC = varnishreplay.c
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_VARNISHAPI}
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
PROG_SRC += varnishstat.c
PROG_SRC += varnishstat_curses.c
LD_ADD += ${LIB_VARNISHAPI}
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_PCRE}
LD_ADD += ${LIB_CURSES}
LD_ADD += -lm
RST_MAN += $(TOPDIR)/doc/sphinx/reference/varnishstat.rst
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
PROG_SRC += vtc.c
PROG_SRC += vtc_client.c
PROG_SRC += vtc_http.c
PROG_SRC += vtc_log.c
PROG_SRC += vtc_logexp.c
PROG_SRC += vtc_main.c
PROG_SRC += vtc_sema.c
PROG_SRC += vtc_server.c
PROG_SRC += vtc_varnish.c
LD_ADD += ${LIB_VARNISHAPI}
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_PCRE}
LD_ADD += ${LIB_VGZ}
LD_ADD += -lm
USE_THREADS = yes
RST_MAN += $(TOPDIR)/doc/sphinx/reference/varnishtest.rst
TODO_TEST += all_tests
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
.PHONY: all_tests
all_tests:
./varnishtest -i -j 4 tests/*.vtc
PROG_SRC = varnishtop.c
LD_ADD += ${LIB_VARNISH}
LD_ADD += ${LIB_VARNISHAPI}
LD_ADD += ${LIB_PCRE}
LD_ADD += ${LIB_CURSES}
TOPDIR = $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
#!/bin/sh
set -e
#######################################################################
# Adminstrative settings
ADM_PROJECT=varnish
ADM_VERSION=trunk
CONFIG_H=phk_hack/config.h
#######################################################################
# We always rebuild the config when make is run in the toplevel directory
# Otherwise, we try to use a cached config, if we have one.
#
# We know we're in the toplevel directory, because we get passed
# TOPDIR and CURDIR as arguments
if [ "x$1" = "x" -o "x$2" = "x" ] ; then
echo "Missing arguments, assuming topdir" 1>&2
set `pwd` `pwd`
fi
if [ "x$1" = "x$2" ] ; then
rm -f _.cache
elif [ "x$1" != "x" -a -d $1 ] ; then
cd $1
fi
#######################################################################
# autocrap co-existence
# We put our config.h somewhere else and delete autocraps.
# Autocrap regenerates its own config.h and doesn't know about ours
mkdir -p phk_hack
rm -f config.h
#######################################################################
if [ -f _.cache -a -f ${CONFIG_H} ] ; then
cat _.cache
exit 0
fi
echo "Building Config" 1>&2
#######################################################################
# Look for #include files for HAVE_ etc.
if true ; then
rm -f ${CONFIG_H}_
echo '' > ${CONFIG_H}_
for i in \
curses.h \
endian.h \
execinfo.h \
ncurses.h \
ncurses/curses.h \
ncursesw.h \
ncursesw/curses.h \
priv.h \
pthread_np.h \
readline/history.h \
readline/readline.h \
sys/endian.h \
sys/filio.h \
sys/mount.h \
sys/statvfs.h \
sys/vfs.h \
umem.h
do
if [ -f /usr/include/$i ] ; then
n=`echo $i | tr '[a-z/.]' '[A-Z__]'`
echo "#define HAVE_$n 1" >> ${CONFIG_H}_
fi
done
echo "#define PACKAGE_TARNAME \"${ADM_PROJECT}\"" >> ${CONFIG_H}_
echo "#define PACKAGE_VERSION \"${ADM_VERSION}\"" >> ${CONFIG_H}_
echo '
#define VARNISH_STATE_DIR "/tmp/phk/"
' >> ${CONFIG_H}_
if [ ! -f ${CONFIG_H} ] ; then
mv ${CONFIG_H}_ ${CONFIG_H}
elif ! cmp -s ${CONFIG_H} ${CONFIG_H}_ ; then
mv ${CONFIG_H}_ ${CONFIG_H}
else
rm -f ${CONFIG_H}_
fi
fi
#######################################################################
# Create files depending on VCS (git) output
VCSF=include/vcs_version.h
VMAV=include/vmod_abi.h
if [ -d ./.git ] ; then
V=`git show -s --pretty=format:%h`
else
V="NOGIT"
fi
(
echo "/* $V */"
echo "/*"
echo " * NB: This file is machine generated, DO NOT EDIT!"
echo " *"
echo " * make(1) updates this when necessary"
echo " *"
echo " */"
echo "#define VCS_Version \"$V\""
) > ${VCSF}_
if [ ! -f ${VCSF} ] ; then
mv ${VCSF}_ ${VCSF}
rm -f ${VMAV}
elif ! cmp -s ${VCSF}_ ${VCSF} ; then
mv ${VCSF}_ ${VCSF}
rm -f ${VMAV}
else
rm ${VCSF}_
fi
if [ ! -f ${VMAV} ] ; then
echo "#define VMOD_ABI_Version \"Varnish trunk $V\"" > ${VMAV}
fi
#######################################################################
# Ask the compiler about stuff
ask_compiler() {
a=`echo "$2" |
${CC-cc} -E - -DWARNS=${WARNS-1} |
sed -e '/^#/d' -e '/^$/d' -e 's/"//g' -e 's/~/"/g' `
echo "$1='" $a "'" >> _.cache
}
# Warning flags
ask_compiler CF_CWFLAGS '
#if WARNS >= 1
"-Wall"
"-Werror"
#endif
#if WARNS >= 2
"-W"
"-fstack-protector"
"-Wno-format-y2k"
"-Wno-unused-parameter"
"-Wstrict-prototypes"
"-Wmissing-prototypes"
"-Wpointer-arith"
"-Wreturn-type"
"-Wcast-qual"
"-Wwrite-strings"
"-Wswitch"
"-Wshadow"
"-Wunused-parameter"
"-Wcast-align"
"-Wchar-subscripts"
"-Winline"
"-Wnested-externs"
"-Wno-pointer-sign"
"-Wno-empty-body"
"-Wextra"
"-Wno-missing-field-initializers"
"-Wno-sign-compare"
#if defined(__clang__)
"-Wmissing-variable-declarations"
"-Wno-string-plus-int"
#endif
#endif
'
# Configuration options
ask_compiler CF_CFLAGS '
#if defined(__SVR4) && defined(sun)
// Solaris and OmniOS
"-DHAVE_GETHRTIME"
"-DHAVE_PORT_CREATE"
"-DHAVE_SETPPRIV"
#endif
#if !defined(__APPLE__)
"-DHAVE_DAEMON"
#endif
// Where does this not work ?
"-DSO_SNDTIMEO_WORKS"
"-DSO_RCVTIMEO_WORKS"
"-DHAVE_TCP_KEEP"
"-DVCC_CC=~\~exec $(CC) -D_THREAD_SAFE -std=gnu99 -g -O2 -Wall -Werror -pthread -fpic -shared -Wl,-x -o %o %s\~~"
"-DVCC_WARNS=~\~$(CF_CWFLAGS)\~~"
"-I$(TOPDIR)/phk_hack"
'
#######################################################################
# Find a Python interpreter
#
for i in 3.2 2.7 "" 2.5 2.6 3.0 3.1
do
if python$i < /dev/null > /dev/null 2>&1 ; then
echo PYTHON=python$i >> _.cache
break
fi
done
#######################################################################
# Find a rst2* tools
#
if echo | rst2html > /dev/null 2>&1 ; then
echo "HAVE_RST2HTML=1" >> _.cache
fi
cat _.cache
exit 0
# HAVE_ACCEPT_FILTERS +
# HAVE_BACKTRACE +
# HAVE_CLOCK_GETTIME +
# HAVE_DAEMON +
# HAVE_DLADDR +
# HAVE_KQUEUE +
# HAVE_NANOSLEEP +
# HAVE_PTHREAD_SET_NAME_NP +
# HAVE_SETPROCTITLE +
# HAVE_SRANDOMDEV +
# HAVE_TCP_KEEP +
# HAVE_TIMEGM +
# PACKAGE_TARNAME +
# PACKAGE_VERSION +
# SO_RCVTIMEO_WORKS +
# SO_SNDTIMEO_WORKS +
# VCC_CC +
# HAVE_EPOLL_CTL -
# HAVE_LIBUMEM -
# USE_PCRE_JIT -
# _FILE_OFFSET_BITS -
#
# #echo 'CF_CFLAGS="-Wall"'
ifdef HAVE_RST2HTML
SUBDIRS += sphinx
endif
TOPDIR = ..
include $(TOPDIR)/Makefile.inc.phk
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = =build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(CURDIR)
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
all: conf.py html
conf.py: conf.py.in
cp conf.py.in conf.py
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
.PHONY: depend install test
depend install test:
@true
clean:
-rm -rf $(BUILDDIR)/* conf.py
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Varnish.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Varnish.qhc"
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
"run these through (pdf)latex."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
EXTRA_DIST = \
conf.py \
index.rst \
glossary/index.rst \
installation/bugs.rst \
installation/help.rst \
installation/index.rst \
installation/install.rst \
installation/prerequisites.rst \
installation/platformnotes.rst \
phk/autocrap.rst \
phk/backends.rst \
phk/barriers.rst \
phk/gzip.rst \
phk/index.rst \
phk/ipv6suckage.rst \
phk/platforms.rst \
phk/sphinx.rst \
phk/ssl.rst \
phk/thoughts.rst \
phk/three-zero.rst \
phk/vcl_expr.rst \
phk/wanton_destruction.rst \
reference/index.rst \
reference/params.rst \
reference/varnishadm.rst \
reference/varnish-cli.rst \
reference/varnishd.rst \
reference/varnishhist.rst \
reference/varnishlog.rst \
reference/varnishncsa.rst \
reference/varnishreplay.rst \
reference/varnishsizes.rst \
reference/varnishstat.rst \
reference/varnishtest.rst \
reference/varnishtop.rst \
reference/vcl.rst \
reference/vmod.rst \
reference/vmod_std.rst \
reference/vsm.rst \
reference/vsl-query.rst \
reference/vsl.rst \
tutorial/index.rst \
tutorial/introduction.rst \
tutorial/starting_varnish.rst \
tutorial/putting_varnish_on_port_80.rst \
tutorial/backend_servers.rst \
tutorial/now_what.rst \
users-guide/command-line.rst \
users-guide/compression.rst \
users-guide/cookies.rst \
users-guide/devicedetection.rst \
users-guide/esi.rst \
users-guide/increasing-your-hitrate.rst \
users-guide/index.rst \
users-guide/intro.rst \
users-guide/operation-cli.rst \
users-guide/operation-logging.rst \
users-guide/operation.rst \
users-guide/operation-statistics.rst \
users-guide/params.rst \
users-guide/performance.rst \
users-guide/purging.rst \
users-guide/report.rst \
users-guide/running.rst \
users-guide/sizing-your-cache.rst \
users-guide/storage-backends.rst \
users-guide/troubleshooting.rst \
users-guide/vary.rst \
users-guide/vcl-actions.rst \
users-guide/vcl-backends.rst \
users-guide/vcl-examples.rst \
users-guide/vcl-hashing.rst \
users-guide/vcl-inline-c.rst \
users-guide/vcl.rst \
users-guide/vcl-saint-and-grace.rst \
users-guide/vcl-syntax.rst \
users-guide/vcl-variables.rst \
users-guide/websockets.rst
dist-hook:
$(MAKE) html
cp -r $(BUILDDIR) $(distdir)
distclean-local:
rm -rf $(BUILDDIR)
# XXX: doesn't work...
#reference/params.rst: $(top_builddir)/bin/varnishd/varnishd
# $(top_builddir)/bin/varnishd/varnishd -x dumprstparam > reference/params.rst
SUBDIRS = libvcc libvarnish libvarnishapi libvarnishtools libvcc
SUBDIRS += libvgz
SUBDIRS += libvmod_debug libvmod_directors libvmod_std
TOPDIR = $(CURDIR)/..
include $(TOPDIR)/Makefile.inc.phk
LIB_SRC += binary_heap.c
LIB_SRC += cli_auth.c
LIB_SRC += cli_common.c
LIB_SRC += cli_serve.c
LIB_SRC += flopen.c
LIB_SRC += vas.c
LIB_SRC += vav.c
LIB_SRC += vct.c
LIB_SRC += version.c
LIB_SRC += vev.c
LIB_SRC += vfil.c
LIB_SRC += vin.c
LIB_SRC += vlu.c
LIB_SRC += vmb.c
LIB_SRC += vnum.c
LIB_SRC += vpf.c
LIB_SRC += vre.c
LIB_SRC += vsa.c
LIB_SRC += vsb.c
LIB_SRC += vsha256.c
LIB_SRC += vss.c
LIB_SRC += vsub.c
LIB_SRC += vtcp.c
LIB_SRC += vtim.c
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
LIB_SRC += vsc.c
LIB_SRC += vsl.c
LIB_SRC += vsl2rst.c
LIB_SRC += vsl_arg.c
LIB_SRC += vsl_cursor.c
LIB_SRC += vsl_dispatch.c
LIB_SRC += vsl_query.c
LIB_SRC += vsm.c
LIB_SRC += vxp.c
LIB_SRC += vxp_fixed_token.c
LIB_SRC += vxp_lexer.c
LIB_SRC += vxp_parse.c
# We add more stuff to the SHLIB version to make it self-contained
SHLIB_SRC = $(LIB_SRC)
VPATH += ../libvarnish
SHLIB_SRC += vre.c
SHLIB_SRC += vsb.c
SHLIB_SRC += vas.c
SHLIB_SRC += vav.c
SHLIB_SRC += vin.c
SHLIB_SRC += vtim.c
#LIB_SRC += vsl_glob_test.c
#LIB_SRC += vxp_test.c
MADE_FILES += vxp_fixed_token.c vxp_tokens.h
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
$(MADE_FILES): generate.py
python generate.py
LIB_SRC += opt2rst.c
LIB_SRC += vut.c
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
LIB_SRC += vcc_acl.c
LIB_SRC += vcc_action.c
LIB_SRC += vcc_backend.c
LIB_SRC += vcc_backend_util.c
LIB_SRC += vcc_compile.c
LIB_SRC += vcc_expr.c
LIB_SRC += vcc_parse.c
LIB_SRC += vcc_storage.c
LIB_SRC += vcc_symb.c
LIB_SRC += vcc_token.c
LIB_SRC += vcc_utils.c
LIB_SRC += vcc_var.c
LIB_SRC += vcc_vmod.c
LIB_SRC += vcc_xref.c
MADE_FILES += vcc_fixed_token.c vcc_obj.c vcc_token_defs.h
CLEAN_FILES += $(MADE_FILES)
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
$(MADE_FILES): generate.py
$(PYTHON) generate.py
LIB_SRC += adler32.c
LIB_SRC += compress.c
LIB_SRC += crc32.c
LIB_SRC += deflate.c
LIB_SRC += infback.c
LIB_SRC += inffast.c
LIB_SRC += inflate.c
LIB_SRC += inftrees.c
LIB_SRC += trees.c
LIB_SRC += uncompr.c
LIB_SRC += zutil.c
CFLAGS += -DZLIB_CONST -D_LARGEFILE64_SOURCE=1
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
VMOD_SRC += vmod_debug.c
VMOD_SRC += vmod_debug_obj.c
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
VMOD_SRC += fall_back.c
VMOD_SRC += hash.c
VMOD_SRC += random.c
VMOD_SRC += round_robin.c
VMOD_SRC += vdir.c
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
VMOD_SRC += vmod_std.c
VMOD_SRC += vmod_std_conversions.c
VMOD_SRC += vmod_std_fileread.c
TOPDIR= $(CURDIR)/../..
include $(TOPDIR)/Makefile.inc.phk
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