62 lines
2.5 KiB
Makefile
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}
|