dump1090-fa/starch/templates/makefile.template

62 lines
2.5 KiB
Makefile

# -*- makefile -*-
### Copyright (c) 2020, FlightAware LLC.
### All rights reserved.
### See the LICENSE file for licensing terms.
# starch generated makefile fragment. do not edit.
#
# This makefile is designed to be included in a surrounding makefile. The including makefile
# should set $(STARCH_COMPILE) to a (partial) command line that provides suitable cflags etc
# and handles the following appended things:
# * a C source filename to compile to the corresponding .o file
# * a -o option to specify the output object file
# * additional command-line arguments to set compile flags as defined in each flavor
#
# Including the makefile fragment provides these variables/rules:
#
# $(STARCH_CFLAGS): additional cflags that may be used when compiling other code that uses starch.h
# (not required - if omitted, the only change is that flavor-specific prototypes are unavailable)
# $(STARCH_OBJS): a list of object files to link to the main binary
# $(STARCH_BENCHMARK_OBJ): object files providing a standalone benchmarking app (link all of $(STARCH_OBJS) too)
# explicit build rules for each object file listed in $(STARCH_OBJS)
MKDIR_P = mkdir -p
STARCH_CFLAGS := -D${mix.macro}
<%
import os
o_files = []
impl_c_files = ' '.join( map(lambda x, gen=gen: os.path.relpath(x.path, gen.runtime_dir), gen.impl_files) )
benchmark_c_files = ' '.join( map(lambda x, gen=gen: os.path.relpath(x.path, gen.runtime_dir), gen.benchmark_files) )
%>
% for flavor in mix.flavors:
<%
c_file = os.path.relpath(gen.generated_flavor_path(flavor), gen.runtime_dir)
o_file = os.path.splitext(c_file)[0] + '.o'
o_files.append(o_file)
%>
${o_file}: ${c_file} ${impl_c_files}
@$(MKDIR_P) $(dir $(STARCH_OBJ_PATH)${o_file})
$(STARCH_COMPILE) $(STARCH_CFLAGS) ${flavor.cflags} ${c_file} -o $(STARCH_OBJ_PATH)${o_file}
% endfor
<%
c_file = os.path.relpath(gen.generated_dispatcher_path, gen.runtime_dir)
o_file = os.path.splitext(c_file)[0] + '.o'
o_files.append(o_file)
%>
${o_file}: ${c_file} ${impl_c_files}
@$(MKDIR_P) $(dir $(STARCH_OBJ_PATH)${o_file})
$(STARCH_COMPILE) $(STARCH_CFLAGS) ${c_file} -o $(STARCH_OBJ_PATH)${o_file}
STARCH_OBJS := ${' '.join(o_files)}
<%
c_file = os.path.relpath(gen.generated_benchmark_path, gen.runtime_dir)
o_file = os.path.splitext(c_file)[0] + '.o'
%>
${o_file}: ${c_file} ${benchmark_c_files}
@$(MKDIR_P) $(dir $(STARCH_OBJ_PATH)${o_file})
$(STARCH_COMPILE) $(STARCH_CFLAGS) ${c_file} -o $(STARCH_OBJ_PATH)${o_file}
STARCH_BENCHMARK_OBJ := ${o_file}