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
+
72
75
# List of source files:
73
- c_src := ../../src/cswap.c
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 ?=
74
83
75
84
# List of C targets:
76
85
c_targets := benchmark.length.out
@@ -79,11 +88,15 @@ c_targets := benchmark.length.out
79
88
# RULES #
80
89
81
90
# /
82
- # Compiles C source files.
91
+ # Compiles source files.
83
92
#
84
93
# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`)
85
94
# @param {string} [CFLAGS] - C compiler options
86
- # @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`)
87
100
#
88
101
# @example
89
102
# make
@@ -99,12 +112,16 @@ all: $(c_targets)
99
112
# Compiles C source files.
100
113
#
101
114
# @private
102
- # @param {string} CC - C compiler
103
- # @param {string} CFLAGS - C compiler flags
104
- # @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`)
105
122
# /
106
123
$(c_targets ) : % .out: % .c
107
- $(QUIET ) $(CC ) $(CFLAGS ) $(fPIC ) -I ../../include -o $@ $(c_src ) $< -lm
124
+ $(QUIET ) $(CC ) $(CFLAGS ) $(fPIC ) $( INCLUDE ) -o $@ $(SOURCE_FILES ) $< $( LIBPATH ) -lm $( LIBRARIES )
108
125
109
126
# /
110
127
# Runs compiled benchmarks.
0 commit comments