2222# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2323
2424all : \
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
3972include 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
115148build/pas-pizlo-release-% .o : src/libpas/% .c
116149 $(PASCC ) $(PASCFLAGS ) -c -o $@ $< -DPAS_FILC=1
117150
118151build/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
124157build/pas-pizlo-release-% .o : src/libpas/% .s
@@ -131,15 +164,13 @@ build/pas-pizlo-release-filc_start_program.o: src/libpas/filc_native.h
131164build/pas-pizlo-test-filc_start_program.o : src/libpas/filc_native.h
132165build/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
140173src/libpas/filc_native.h : src/libpas/generate_pizlonated_forwarders.rb
141174 ruby src/libpas/generate_pizlonated_forwarders.rb src/libpas/filc_native.h
142175src/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