summaryrefslogtreecommitdiff
path: root/C/HF/chap8/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'C/HF/chap8/Makefile')
-rw-r--r--C/HF/chap8/Makefile24
1 files changed, 24 insertions, 0 deletions
diff --git a/C/HF/chap8/Makefile b/C/HF/chap8/Makefile
index df3283e..8377c1b 100644
--- a/C/HF/chap8/Makefile
+++ b/C/HF/chap8/Makefile
@@ -13,3 +13,27 @@ bin/libs/xor.o: $(INCLUDE_DIR)/libs/xor.h src/libs/xor.c
bin/libs/encrypt.o: $(INCLUDE_DIR)/libs/encrypt.h src/libs/encrypt.c
cc -I $(INCLUDE_DIR) -c src/libs/encrypt.c -o bin/libs/encrypt.o
+
+# Create DSO and PIC versions
+#
+ecatS: bin/libs/libencrypt.a
+ cc -I $(INCLUDE_DIR) -L bin/libs -o bin/ecats src/ecat.c -lencrypts
+
+bin/libs/libencrypts.so: bin/libs/xor-pic.o bin/libs/encrypt-pic.o
+ cc -I $(INCLUDE_DIR) -shared -o bin/libs/libencrypts.so bin/libs/xor-pic.o bin/libs/encrypt-pic.o
+
+# This creates the same lib with a broken encrypt_arr call.
+# We can run the same program passing the different lib at runtime
+# and change the behavior of encrypt_arr at runtime
+bin/broken_libs/libencrypts.so: bin/libs/xor-pic.o bin/libs/encrypt2-pic.o
+ cc -I $(INCLUDE_DIR) -shared -o bin/broken_libs/libencrypts.so bin/libs/xor-pic.o bin/libs/encrypt2-pic.o
+
+
+bin/libs/xor-pic.o: $(INCLUDE_DIR)/libs/xor.h src/libs/xor.c
+ cc -fPIC -I $(INCLUDE_DIR) -c src/libs/xor.c -o bin/libs/xor-pic.o
+
+bin/libs/encrypt-pic.o: $(INCLUDE_DIR)/libs/encrypt.h src/libs/encrypt.c
+ cc -fPIC -I $(INCLUDE_DIR) -c src/libs/encrypt.c -o bin/libs/encrypt-pic.o
+
+bin/libs/encrypt2-pic.o: $(INCLUDE_DIR)/libs/encrypt.h src/libs/encrypt2.c
+ cc -fPIC -I $(INCLUDE_DIR) -c src/libs/encrypt2.c -o bin/libs/encrypt2-pic.o