69
69
fPIC ?= -fPIC
70
70
endif
71
71
72
+ # List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
73
+ INCLUDE ?=
74
+
75
+ # List of source files:
76
+ SOURCE_FILES ?=
77
+
78
+ # List of libraries (e.g., `-lopenblas -lpthread`):
79
+ LIBRARIES ?=
80
+
81
+ # List of library paths (e.g., `-L /foo/bar -L /beep/boop`):
82
+ LIBPATH ?=
83
+
72
84
# List of C targets:
73
85
c_targets := benchmark.out
74
86
75
87
76
88
# RULES #
77
89
78
90
# /
79
- # Compiles C source files.
91
+ # Compiles source files.
80
92
#
81
93
# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
82
94
# @param {string} [CFLAGS] - C compiler options
83
- # @param {(string|void)} [fPIC] - compiler flag indicating whether to generate position independent code (e.g., `-fPIC`)
95
+ # @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
96
+ # @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`)
97
+ # @param {string} [SOURCE_FILES] - list of source files
98
+ # @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`)
99
+ # @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`)
84
100
#
85
101
# @example
86
102
# make
@@ -96,12 +112,16 @@ all: $(c_targets)
96
112
# Compiles C source files.
97
113
#
98
114
# @private
99
- # @param {string} CC - C compiler
100
- # @param {string} CFLAGS - C compiler flags
101
- # @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code
115
+ # @param {string} CC - C compiler (e.g., `gcc`)
116
+ # @param {string} CFLAGS - C compiler options
117
+ # @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`)
118
+ # @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`)
119
+ # @param {string} SOURCE_FILES - list of source files
120
+ # @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`)
121
+ # @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`)
102
122
# /
103
123
$(c_targets ) : % .out: % .c
104
- $(QUIET ) $(CC ) $(CFLAGS ) $(fPIC ) -o $@ $< -lm
124
+ $(QUIET ) $(CC ) $(CFLAGS ) $(fPIC ) $( INCLUDE ) -o $@ $( SOURCE_FILES ) $< $( LIBPATH ) -lm $( LIBRARIES )
105
125
106
126
# /
107
127
# Runs compiled benchmarks.
0 commit comments