Skip to content

Commit 013d4a1

Browse files
committed
parameterize libpas makefile
1 parent 853e558 commit 013d4a1

File tree

1 file changed

+67
-36
lines changed

1 file changed

+67
-36
lines changed

libpas/Makefile

Lines changed: 67 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,52 @@
2222
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2323

2424
all: \
25-
../pizfix/lib/libpizlo.so ../pizfix/lib_test/libpizlo.so ../pizfix/lib_gcverify/libpizlo.so \
26-
../pizfix/lib_test_gcverify/libpizlo.so ../pizfix/lib/libpizlo.a \
27-
../pizfix/lib/filc_crt.o ../pizfix/lib/filc_mincrt.o
28-
29-
PASCC = clang -march=x86-64-v2 -fPIC -pthread -nostdinc -isystem ../pizfix/yolo-include \
30-
-isystem ../pizfix/os-include -isystem `./find_clang_include_dir.rb`
31-
PASASM = clang -march=x86-64-v2 -fPIC
32-
FILCC = ../build/bin/clang
33-
SHLD = clang -Wl,-dynamic-linker,$(PWD)/../pizfix/lib/ld-yolo-x86_64.so \
34-
-nostdlib -shared ../pizfix/lib/crti.o \
35-
`./find_system_library_file.rb crtbeginS.o` -L../pizfix/lib
36-
SHLDPOST = `./find_system_library_file.rb libgcc.a` -lyoloc -lyolom \
37-
`./find_system_library_file.rb crtendS.o` ../pizfix/lib/crtn.o
25+
$(FILC_LIB_DIR)/libpizlo.so $(FILC_LIB_TEST_DIR)/libpizlo.so \
26+
$(FILC_LIB_GCVERIFY_DIR)/libpizlo.so $(FILC_LIB_TEST_GCVERIFY_DIR)/libpizlo.so \
27+
$(FILC_LIB_DIR)/libpizlo.a \
28+
$(FILC_LIB_DIR)/filc_crt.o $(FILC_LIB_DIR)/filc_mincrt.o
29+
30+
FILC_OUTPUT_ROOT ?= $(abspath ../pizfix)
31+
32+
FILC_LIB_DIR ?= $(FILC_OUTPUT_ROOT)/lib
33+
FILC_LIB_TEST_DIR ?= $(FILC_OUTPUT_ROOT)/lib_test
34+
FILC_LIB_GCVERIFY_DIR ?= $(FILC_OUTPUT_ROOT)/lib_gcverify
35+
FILC_LIB_TEST_GCVERIFY_DIR ?= $(FILC_OUTPUT_ROOT)/lib_test_gcverify
36+
37+
FILC_YOLO_INCLUDE ?= $(FILC_OUTPUT_ROOT)/yolo-include
38+
FILC_OS_INCLUDE ?= $(FILC_OUTPUT_ROOT)/os-include
39+
FILC_STDFIL_INCLUDE ?= $(FILC_OUTPUT_ROOT)/stdfil-include
40+
FILC_INCLUDE_DIR ?= $(FILC_OUTPUT_ROOT)/include
41+
FILC_YOLO_LIB_DIR ?= $(FILC_LIB_DIR)
42+
FILC_DYNAMIC_LINKER ?= $(FILC_YOLO_LIB_DIR)/ld-yolo-x86_64.so
43+
FILC_RUNTIME_LIBS ?= -lyoloc -lyolom
44+
45+
HOST_CLANG ?= clang
46+
FILC_CLANG ?= ../build/bin/clang
47+
FILC_DRIVER_FLAGS ?=
48+
49+
PASCC = $(HOST_CLANG) -march=x86-64-v2 -fPIC -pthread -nostdinc \
50+
-isystem $(FILC_YOLO_INCLUDE) -isystem $(FILC_OS_INCLUDE) \
51+
-isystem $(FILC_STDFIL_INCLUDE) \
52+
-isystem `./find_clang_include_dir.rb`
53+
PASASM = $(HOST_CLANG) -march=x86-64-v2 -fPIC
54+
FILCC = $(FILC_CLANG) $(FILC_DRIVER_FLAGS)
55+
SHLD = $(HOST_CLANG) -Wl,-dynamic-linker,$(FILC_DYNAMIC_LINKER) \
56+
-nostdlib -shared $(FILC_YOLO_LIB_DIR)/crti.o \
57+
`./find_system_library_file.rb crtbeginS.o` -L$(FILC_YOLO_LIB_DIR)
58+
SHLDPOST = `./find_system_library_file.rb libgcc.a` $(FILC_RUNTIME_LIBS) \
59+
`./find_system_library_file.rb crtendS.o` $(FILC_YOLO_LIB_DIR)/crtn.o
60+
61+
DIRS_TO_CREATE = \
62+
$(FILC_LIB_DIR) \
63+
$(FILC_LIB_TEST_DIR) \
64+
$(FILC_LIB_GCVERIFY_DIR) \
65+
$(FILC_LIB_TEST_GCVERIFY_DIR)
66+
67+
.PHONY: all clean
68+
69+
$(DIRS_TO_CREATE):
70+
mkdir -p $@
3871

3972
include common.mk
4073

@@ -81,11 +114,11 @@ clean:
81114
rm -rf build
82115
rm -f src/libpas/filc_native_forwarders.c
83116
rm -f src/libpas/filc_native.h
84-
rm -f ../pizfix/lib/filc_crt.o
85-
rm -f ../pizfix/lib/filc_mincrt.o
86-
rm -f ../pizfix/lib/libpizlo.so
87-
rm -f ../pizfix/lib_test/libpizlo.so
88-
rm -f ../pizfix/lib/libpizlo.a
117+
rm -f $(FILC_LIB_DIR)/filc_crt.o
118+
rm -f $(FILC_LIB_DIR)/filc_mincrt.o
119+
rm -f $(FILC_LIB_DIR)/libpizlo.so
120+
rm -f $(FILC_LIB_TEST_DIR)/libpizlo.so
121+
rm -f $(FILC_LIB_DIR)/libpizlo.a
89122

90123
.filc-objs: $(FILPIZLOOBJS)
91124
.yoloc-dynamic-objs: $(PASPIZLODYNAMICOBJS)
@@ -94,31 +127,31 @@ clean:
94127
.yoloc-test-gcverify-objs: $(PASPIZLOTESTGCVERIFYOBJS)
95128
.yoloc-static-objs: $(PASPIZLOSTATICOBJS)
96129

97-
../pizfix/lib/libpizlo.so: $(PASPIZLODYNAMICOBJS) $(FILPIZLOOBJS)
98-
$(SHLD) -o ../pizfix/lib/libpizlo.so $(PASPIZLODYNAMICOBJS) $(FILPIZLOOBJS) $(SHLDPOST)
130+
$(FILC_LIB_DIR)/libpizlo.so: $(PASPIZLODYNAMICOBJS) $(FILPIZLOOBJS) | $(FILC_LIB_DIR)
131+
$(SHLD) -o $@ $(PASPIZLODYNAMICOBJS) $(FILPIZLOOBJS) $(SHLDPOST)
99132

100-
../pizfix/lib_gcverify/libpizlo.so: $(PASPIZLODYNAMICGCVERIFYOBJS) $(FILPIZLOOBJS)
101-
$(SHLD) -o ../pizfix/lib_gcverify/libpizlo.so $(PASPIZLODYNAMICGCVERIFYOBJS) $(FILPIZLOOBJS) \
133+
$(FILC_LIB_GCVERIFY_DIR)/libpizlo.so: $(PASPIZLODYNAMICGCVERIFYOBJS) $(FILPIZLOOBJS) | $(FILC_LIB_GCVERIFY_DIR)
134+
$(SHLD) -o $@ $(PASPIZLODYNAMICGCVERIFYOBJS) $(FILPIZLOOBJS) \
102135
$(SHLDPOST)
103136

104-
../pizfix/lib_test/libpizlo.so: $(PASPIZLOTESTOBJS) $(FILPIZLOOBJS)
105-
$(SHLD) -o ../pizfix/lib_test/libpizlo.so $(PASPIZLOTESTOBJS) $(FILPIZLOOBJS) $(SHLDPOST)
137+
$(FILC_LIB_TEST_DIR)/libpizlo.so: $(PASPIZLOTESTOBJS) $(FILPIZLOOBJS) | $(FILC_LIB_TEST_DIR)
138+
$(SHLD) -o $@ $(PASPIZLOTESTOBJS) $(FILPIZLOOBJS) $(SHLDPOST)
106139

107-
../pizfix/lib_test_gcverify/libpizlo.so: $(PASPIZLOTESTGCVERIFYOBJS) $(FILPIZLOOBJS)
108-
$(SHLD) -o ../pizfix/lib_test_gcverify/libpizlo.so $(PASPIZLOTESTGCVERIFYOBJS) \
140+
$(FILC_LIB_TEST_GCVERIFY_DIR)/libpizlo.so: $(PASPIZLOTESTGCVERIFYOBJS) $(FILPIZLOOBJS) | $(FILC_LIB_TEST_GCVERIFY_DIR)
141+
$(SHLD) -o $@ $(PASPIZLOTESTGCVERIFYOBJS) \
109142
$(FILPIZLOOBJS) $(SHLDPOST)
110143

111-
../pizfix/lib/libpizlo.a: $(PASPIZLOSTATICOBJS) $(FILPIZLOOBJS)
112-
rm -f ../pizfix/lib/libpizlo.a
113-
ar cr ../pizfix/lib/libpizlo.a $(PASPIZLOSTATICOBJS) $(FILPIZLOOBJS)
144+
$(FILC_LIB_DIR)/libpizlo.a: $(PASPIZLOSTATICOBJS) $(FILPIZLOOBJS) | $(FILC_LIB_DIR)
145+
rm -f $@
146+
ar cr $@ $(PASPIZLOSTATICOBJS) $(FILPIZLOOBJS)
114147

115148
build/pas-pizlo-release-%.o: src/libpas/%.c
116149
$(PASCC) $(PASCFLAGS) -c -o $@ $< -DPAS_FILC=1
117150

118151
build/pas-pizlo-test-%.o: src/libpas/%.c
119152
$(PASCC) $(PASCFLAGS) -c -o $@ $< -DPAS_FILC=1 -DENABLE_PAS_TESTING=1
120153

121-
build/fil-pizlo-%.o: ../filc/src/%.c ../build/bin/clang
154+
build/fil-pizlo-%.o: ../filc/src/%.c $(FILC_CLANG)
122155
$(FILCC) $(FILCFLAGS) -c -o $@ $<
123156

124157
build/pas-pizlo-release-%.o: src/libpas/%.s
@@ -131,15 +164,13 @@ build/pas-pizlo-release-filc_start_program.o: src/libpas/filc_native.h
131164
build/pas-pizlo-test-filc_start_program.o: src/libpas/filc_native.h
132165
build/pas-test-filc_start_program.o: src/libpas/filc_native.h
133166

134-
../pizfix/lib/filc_crt.o: $(MAINSRC)
135-
$(PASCC) -c -o ../pizfix/lib/filc_crt.o $(MAINSRC) $(MAINCFLAGS) -DUSE_LIBC=1
167+
$(FILC_LIB_DIR)/filc_crt.o: $(MAINSRC) | $(FILC_LIB_DIR)
168+
$(PASCC) -c -o $@ $(MAINSRC) $(MAINCFLAGS) -DUSE_LIBC=1
136169

137-
../pizfix/lib/filc_mincrt.o: $(MAINSRC)
138-
$(PASCC) -c -o ../pizfix/lib/filc_mincrt.o $(MAINSRC) $(MAINCFLAGS) -DUSE_LIBC=0
170+
$(FILC_LIB_DIR)/filc_mincrt.o: $(MAINSRC) | $(FILC_LIB_DIR)
171+
$(PASCC) -c -o $@ $(MAINSRC) $(MAINCFLAGS) -DUSE_LIBC=0
139172

140173
src/libpas/filc_native.h: src/libpas/generate_pizlonated_forwarders.rb
141174
ruby src/libpas/generate_pizlonated_forwarders.rb src/libpas/filc_native.h
142175
src/libpas/filc_native_forwarders.c: src/libpas/generate_pizlonated_forwarders.rb
143176
ruby src/libpas/generate_pizlonated_forwarders.rb src/libpas/filc_native_forwarders.c
144-
145-

0 commit comments

Comments
 (0)