Skip to content

Commit c6a0aeb

Browse files
committed
build scripts per compiler
1 parent b58242d commit c6a0aeb

2 files changed

Lines changed: 292 additions & 0 deletions

File tree

build_all_clang.sh

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
#!/bin/bash
2+
# Author: Anton Gerdelan
3+
# Folders with deliberate errors have builds commented out so that this script can be used for CI checks.
4+
5+
# any error code causes script to exit with error code
6+
set -e
7+
# echo everything
8+
set -x
9+
10+
echo on
11+
12+
CC=clang
13+
CPP=clang++
14+
FLAGS="-Wall -Wextra -Werror -pedantic -fsanitize=address -fsanitize=undefined"
15+
16+
echo "cd ch00_00_c/"
17+
cd ch00_00_c/
18+
$CC $FLAGS main.c
19+
20+
echo "cd ../ch00_01_cpp_malloc/"
21+
cd ../ch00_01_cpp_malloc/
22+
$CPP $FLAGS main.cpp
23+
24+
echo "cd ../ch00_02_cpp_new_delete/"
25+
cd ../ch00_02_cpp_new_delete/
26+
$CPP $FLAGS main.cpp
27+
28+
echo "cd ../ch01_00_assertions/"
29+
cd ../ch01_00_assertions/
30+
$CC $FLAGS main.c
31+
32+
echo "cd ../ch01_01_unit_test/"
33+
cd ../ch01_01_unit_test/
34+
$CC $FLAGS main.c
35+
36+
echo "cd ../ch02_00_image_output/"
37+
cd ../ch02_00_image_output/
38+
$CC $FLAGS main.c
39+
40+
echo "cd ../ch02_01_image_pixel_functions/"
41+
cd ../ch02_01_image_pixel_functions/
42+
$CC $FLAGS main.c
43+
44+
echo "cd ../ch02_02_image_write_chart/"
45+
cd ../ch02_02_image_write_chart/
46+
$CC $FLAGS main.c image.c
47+
48+
echo "cd ../ch03_00_read_binary/"
49+
cd ../ch03_00_read_binary/
50+
$CC $FLAGS main.c
51+
52+
echo "cd ../ch03_01_read_write_ppm_binary/"
53+
cd ../ch03_01_read_write_ppm_binary/
54+
$CC $FLAGS main.c
55+
56+
echo "cd ../ch03_02_read_entire_file/"
57+
cd ../ch03_02_read_entire_file/
58+
$CC $FLAGS main.c
59+
60+
echo "cd ../ch03_03_struct_padding/"
61+
cd ../ch03_03_struct_padding/
62+
$CC $FLAGS main.c
63+
64+
echo "cd ../ch04_00_deliberate_crash/"
65+
cd ../ch04_00_deliberate_crash/
66+
$CC $FLAGS main.c
67+
68+
echo "cd ../ch05_00_gprof/"
69+
cd ../ch05_00_gprof/
70+
$CC $FLAGS main.c
71+
72+
echo "cd ../ch05_01_timers/"
73+
cd ../ch05_01_timers/
74+
$CC $FLAGS main.c
75+
76+
echo "cd ../ch06_00_multi_file/"
77+
cd ../ch06_00_multi_file/
78+
$CC $FLAGS main.c second.c
79+
80+
echo "cd ../ch06_01_static_lib/"
81+
cd ../ch06_01_static_lib/
82+
bash build.sh
83+
84+
echo "cd ../ch06_02_dynamic_lib/"
85+
cd ../ch06_02_dynamic_lib/
86+
# -fPIC to let us call printf() from the library with Clang
87+
$CC $FLAGS -fPIC -c second.c -o second.o
88+
$CC $FLAGS -shared second.o -o lib/libsecond.so
89+
# basic version
90+
$CC $FLAGS main.c -Llib/ -lsecond
91+
# flag rpath version
92+
$CC $FLAGS main.c -Llib/ -lsecond -Wl,-rpath,\$ORIGIN/lib/
93+
# export rpath version
94+
export LD_RUN_PATH=\$ORIGIN/lib/
95+
$CC $FLAGS main.c -lsecond -Llib/
96+
97+
echo "cd ../ch06_03_makefile/"
98+
cd ../ch06_03_makefile/
99+
make
100+
101+
echo "cd ../ch06_04_cmake/"
102+
cd ../ch06_04_cmake/
103+
rm -rf build/
104+
mkdir build/
105+
cd build/
106+
cmake ..
107+
cmake --build .
108+
cd ..
109+
110+
echo "cd ../ch07_00_clang_format/"
111+
cd ../ch07_00_clang_format/
112+
$CC $FLAGS main.c second.c
113+
114+
echo "cd ../ch08_00_scan_build/"
115+
#cd ../ch08_00_scan_build/
116+
#$CC $FLAGS main.c
117+
118+
echo "cd ../ch08_01_clang_tidy/"
119+
#cd ../ch08_01_clang_tidy/
120+
#$CC $FLAGS main.c
121+
122+
echo "cd ../ch09_00_fuzzing/"
123+
cd ../ch09_00_fuzzing/
124+
$CC $FLAGS main.c my_ppm_stuff.c
125+
126+
echo "cd ../ch10_00_asm/"
127+
cd ../ch10_00_asm/
128+
$CC $FLAGS -S my_file.c
129+
130+
echo "cd ../ch11_00_valgrind_asan/"
131+
cd ../ch11_00_valgrind_asan/
132+
$CC $FLAGS main.c
133+
134+
echo "cd ../ch11_01_ubsan/"
135+
#cd ../ch11_01_ubsan/
136+
#$CC $FLAGS main.c
137+
138+
echo "cd ../ch11_03_cachegrind/"
139+
cd ../ch11_03_cachegrind/
140+
$CC $FLAGS main.c
141+
142+
echo "cd ../ch13_00_streams/"
143+
cd ../ch13_00_streams/
144+
$CC $FLAGS main.c
145+
146+
cd ..

build_all_gcc.sh

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
#!/bin/bash
2+
# Author: Anton Gerdelan
3+
# Folders with deliberate errors have builds commented out so that this script can be used for CI checks.
4+
5+
# any error code causes script to exit with error code
6+
set -e
7+
# echo everything
8+
set -x
9+
10+
echo on
11+
12+
CC=gcc
13+
CPP=g++
14+
FLAGS="-Wall -Wextra -Werror -pedantic -fsanitize=address -fsanitize=undefined"
15+
16+
echo "cd ch00_00_c/"
17+
cd ch00_00_c/
18+
$CC $FLAGS main.c
19+
20+
echo "cd ../ch00_01_cpp_malloc/"
21+
cd ../ch00_01_cpp_malloc/
22+
$CPP $FLAGS main.cpp
23+
24+
echo "cd ../ch00_02_cpp_new_delete/"
25+
cd ../ch00_02_cpp_new_delete/
26+
$CPP $FLAGS main.cpp
27+
28+
echo "cd ../ch01_00_assertions/"
29+
cd ../ch01_00_assertions/
30+
$CC $FLAGS main.c
31+
32+
echo "cd ../ch01_01_unit_test/"
33+
cd ../ch01_01_unit_test/
34+
$CC $FLAGS main.c
35+
36+
echo "cd ../ch02_00_image_output/"
37+
cd ../ch02_00_image_output/
38+
$CC $FLAGS main.c
39+
40+
echo "cd ../ch02_01_image_pixel_functions/"
41+
cd ../ch02_01_image_pixel_functions/
42+
$CC $FLAGS main.c
43+
44+
echo "cd ../ch02_02_image_write_chart/"
45+
cd ../ch02_02_image_write_chart/
46+
$CC $FLAGS main.c image.c
47+
48+
echo "cd ../ch03_00_read_binary/"
49+
cd ../ch03_00_read_binary/
50+
$CC $FLAGS main.c
51+
52+
echo "cd ../ch03_01_read_write_ppm_binary/"
53+
cd ../ch03_01_read_write_ppm_binary/
54+
$CC $FLAGS main.c
55+
56+
echo "cd ../ch03_02_read_entire_file/"
57+
cd ../ch03_02_read_entire_file/
58+
$CC $FLAGS main.c
59+
60+
echo "cd ../ch03_03_struct_padding/"
61+
cd ../ch03_03_struct_padding/
62+
$CC $FLAGS main.c
63+
64+
echo "cd ../ch04_00_deliberate_crash/"
65+
cd ../ch04_00_deliberate_crash/
66+
$CC $FLAGS main.c
67+
68+
echo "cd ../ch05_00_gprof/"
69+
cd ../ch05_00_gprof/
70+
$CC $FLAGS main.c
71+
72+
echo "cd ../ch05_01_timers/"
73+
cd ../ch05_01_timers/
74+
$CC $FLAGS main.c
75+
76+
echo "cd ../ch06_00_multi_file/"
77+
cd ../ch06_00_multi_file/
78+
$CC $FLAGS main.c second.c
79+
80+
echo "cd ../ch06_01_static_lib/"
81+
cd ../ch06_01_static_lib/
82+
bash build.sh
83+
84+
echo "cd ../ch06_02_dynamic_lib/"
85+
cd ../ch06_02_dynamic_lib/
86+
# -fPIC to let us call printf() from the library with Clang
87+
$CC $FLAGS -fPIC -c second.c -o second.o
88+
$CC $FLAGS -shared second.o -o lib/libsecond.so
89+
# basic version
90+
$CC $FLAGS main.c -Llib/ -lsecond
91+
# flag rpath version
92+
$CC $FLAGS main.c -Llib/ -lsecond -Wl,-rpath,\$ORIGIN/lib/
93+
# export rpath version
94+
export LD_RUN_PATH=\$ORIGIN/lib/
95+
$CC $FLAGS main.c -lsecond -Llib/
96+
97+
echo "cd ../ch06_03_makefile/"
98+
cd ../ch06_03_makefile/
99+
make
100+
101+
echo "cd ../ch06_04_cmake/"
102+
cd ../ch06_04_cmake/
103+
rm -rf build/
104+
mkdir build/
105+
cd build/
106+
cmake ..
107+
cmake --build .
108+
cd ..
109+
110+
echo "cd ../ch07_00_clang_format/"
111+
cd ../ch07_00_clang_format/
112+
$CC $FLAGS main.c second.c
113+
114+
echo "cd ../ch08_00_scan_build/"
115+
#cd ../ch08_00_scan_build/
116+
#$CC $FLAGS main.c
117+
118+
echo "cd ../ch08_01_clang_tidy/"
119+
#cd ../ch08_01_clang_tidy/
120+
#$CC $FLAGS main.c
121+
122+
echo "cd ../ch09_00_fuzzing/"
123+
cd ../ch09_00_fuzzing/
124+
$CC $FLAGS main.c my_ppm_stuff.c
125+
126+
echo "cd ../ch10_00_asm/"
127+
cd ../ch10_00_asm/
128+
$CC $FLAGS -S my_file.c
129+
130+
echo "cd ../ch11_00_valgrind_asan/"
131+
cd ../ch11_00_valgrind_asan/
132+
$CC $FLAGS main.c
133+
134+
echo "cd ../ch11_01_ubsan/"
135+
#cd ../ch11_01_ubsan/
136+
#$CC $FLAGS main.c
137+
138+
echo "cd ../ch11_03_cachegrind/"
139+
cd ../ch11_03_cachegrind/
140+
$CC $FLAGS main.c
141+
142+
echo "cd ../ch13_00_streams/"
143+
cd ../ch13_00_streams/
144+
$CC $FLAGS main.c
145+
146+
cd ..

0 commit comments

Comments
 (0)