-# Source languages handled by this build system. These languages are capable of
-# being compiled to an intermediary format for binary output by one of the
-# provided compilersfor each language
-LANGS := c cpp go
-# Source-to-source languages handled by this build system
-SLANGS := y rl
-# Language-specific compilers and flags passed in from environment
-c_C := $(strip $(notdir $(CC)))
-c_FLAGS := $(strip $(CFLAGS)) -I$(SRC_DIR)
-c_SRCL := y
-cpp_C := $(strip $(notdir $(CXX)))
-cpp_FLAGS := $(strip $(CXXFLAGS)) $(c_FLAGS)
-go_C := gccgo
-go_FLAGS := $(c_FLAGS)
-# Source to source languages
-# Bison
-y_C := bison
-y_FLAGS := -d
-y_STEM := tab
-y_TRG := c h
-# Ragel
-rl_C := ragel
-rl_FLAGS := -C
-rl_TRG := c
-# Compiler-specific associations. Each compiler has a binary object suffix
-# (OBJ), an archiver (AR), and an archiver object suffix (AROBJ). Each compiler
-# may optionally have defined a linker (LD), and a binary output suffix (OUT).
-cc_OBJ := o
-cc_LD := $(LD)
-cc_AR := $(AR)
-cc_AROBJ := a
-cc_DBG := gdb
-$(cpp_C)_LD := $(cc_LD)
-gcc_OBJ := $(cc_OBJ)
-gcc_LD := $(cc_LD)
-ngcc_AR := $(cc_AR)
-gcc_AROBJ := $(cc_AROBJ)
-gcc_DBG := $(cc_DBG)
-emcc_OBJ := bc
-emcc_AR := emar
-emcc_AROBJ := $(emcc_OBJ) #emar is just a python script that reparses shit for emcc
-emcc_OUT := .js
-g++_OBJ := $(cc_OBJ)
-em++_OBJ := $(emcc_OBJ)
-em++_AR := $(emcc_AR)
-em++_AROBJ := $(emcc_AROBJ)
-em++_OUT := $(emcc_OUT)
-gccgo_OBJ := o
-gccgo_LD := $(cc_LD)
-gccgo_AR := $(cc_AR)
-gccgo_AROBJ := $(cc_AROBJ)
-# Shell functions to determine what libraries can be linked by the compiler
-cc_LDLIBS := $(shell ldconfig -p | sed -e 's@\-*[0-9\.]*\.so.*$$@@g' -e 's@\tlib@@g' -e '/[\t ]/d')
-gcc_LDLIBS := $(cc_LDLIBS)
-emcc_LDLIBS :=
-g++_LDLIBS := $(cc_LDLIBS)
-em++_LDLIBS :=
-go_LDLIBS := $(cc_LDLIBS)
-# location to build cross-compilation libraries in, not intended to be installed
-# in the host system
-LIB_DIR := $(ROOT_DIR)/lib$(shell uname -m)/$($(c_C)_OBJ)
-LIBDL_DIR := $(LIB_DIR)/.cache
-LIBINC_DIR := $(ROOT_DIR)/include
-# The makefile MUST be capable of generating these directories and all of their
-# contents. These directories are removed during the 'scrub' rule
-MAKE_DIRS := $(LIB_DIR) $(LIBDL_DIR)
-# Set up lib inclusions, and scan for built libs
-c_FLAGS += -I$(LIBINC_DIR)
-c_OBJ := $($(c_C)_OBJ)
-# Modules are any directories other than 'DRIVER_MODULE' in 'SRC_DIR' and
-# produce a single archive in 'SRC_DIR' containing all of the module's symbols
-MODULES := $(patsubst $(SRC_DIR)/%/,%,$(filter-out $(DRIVER_DIR)/%,$(shell ls -d $(SRC_DIR)/*/)))
-