luajitos

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

Makefile (4643B)


      1 CC = gcc
      2 CFLAGS = -O3 -march=native -msha -msse4.2 -Wall -Wextra
      3 STANDALONE_CFLAGS = $(CFLAGS)
      4 LIB_CFLAGS = $(CFLAGS) -DLIB_MODE
      5 
      6 # Targets
      7 TARGET_SHA256 = sha256_test
      8 TARGET_SHA512 = sha512_test
      9 TARGET_SHA1 = sha1_test
     10 TARGET_MD5 = md5_test
     11 TARGET_CRC32 = crc32_test
     12 TARGET_UNIFIED = hash_demo
     13 TARGET_EASY = easyhashing_demo
     14 
     15 # All targets
     16 all: $(TARGET_SHA256) $(TARGET_SHA512) $(TARGET_SHA1) $(TARGET_MD5) $(TARGET_CRC32) $(TARGET_UNIFIED) $(TARGET_EASY)
     17 
     18 # Standalone hash tests
     19 $(TARGET_SHA256): SHA256.c
     20 	$(CC) $(STANDALONE_CFLAGS) -o $(TARGET_SHA256) SHA256.c
     21 
     22 $(TARGET_SHA512): SHA512.c
     23 	$(CC) $(STANDALONE_CFLAGS) -o $(TARGET_SHA512) SHA512.c
     24 
     25 $(TARGET_SHA1): SHA1.c
     26 	$(CC) $(STANDALONE_CFLAGS) -o $(TARGET_SHA1) SHA1.c
     27 
     28 $(TARGET_MD5): MD5.c
     29 	$(CC) $(STANDALONE_CFLAGS) -o $(TARGET_MD5) MD5.c
     30 
     31 $(TARGET_CRC32): CRC32.c
     32 	$(CC) $(STANDALONE_CFLAGS) -o $(TARGET_CRC32) CRC32.c
     33 
     34 # Library object files
     35 SHA256_lib.o: SHA256.c
     36 	$(CC) $(LIB_CFLAGS) -c -o SHA256_lib.o SHA256.c
     37 
     38 SHA512_lib.o: SHA512.c
     39 	$(CC) $(LIB_CFLAGS) -c -o SHA512_lib.o SHA512.c
     40 
     41 SHA1_lib.o: SHA1.c
     42 	$(CC) $(LIB_CFLAGS) -c -o SHA1_lib.o SHA1.c
     43 
     44 MD5_lib.o: MD5.c
     45 	$(CC) $(LIB_CFLAGS) -c -o MD5_lib.o MD5.c
     46 
     47 CRC32_lib.o: CRC32.c
     48 	$(CC) $(LIB_CFLAGS) -c -o CRC32_lib.o CRC32.c
     49 
     50 hash.o: hash.c hash.h
     51 	$(CC) $(CFLAGS) -c -o hash.o hash.c
     52 
     53 # Unified hash demo (links all algorithms)
     54 $(TARGET_UNIFIED): example_hash.c hash.o SHA256_lib.o SHA512_lib.o SHA1_lib.o MD5_lib.o CRC32_lib.o
     55 	$(CC) $(CFLAGS) -o $(TARGET_UNIFIED) example_hash.c hash.o SHA256_lib.o SHA512_lib.o SHA1_lib.o MD5_lib.o CRC32_lib.o
     56 
     57 # EasyHashing demo (simple API)
     58 $(TARGET_EASY): example_easyhashing.c EasyHashing.h SHA256_lib.o SHA512_lib.o SHA1_lib.o MD5_lib.o CRC32_lib.o
     59 	$(CC) $(CFLAGS) -o $(TARGET_EASY) example_easyhashing.c SHA256_lib.o SHA512_lib.o SHA1_lib.o MD5_lib.o CRC32_lib.o
     60 
     61 # Clean
     62 clean:
     63 	rm -f $(TARGET_SHA256) $(TARGET_SHA512) $(TARGET_SHA1) $(TARGET_MD5) $(TARGET_CRC32) $(TARGET_UNIFIED) $(TARGET_EASY) *.o
     64 
     65 # Run individual tests
     66 run-sha256: $(TARGET_SHA256)
     67 	./$(TARGET_SHA256)
     68 
     69 run-sha512: $(TARGET_SHA512)
     70 	./$(TARGET_SHA512)
     71 
     72 run-sha1: $(TARGET_SHA1)
     73 	./$(TARGET_SHA1)
     74 
     75 run-md5: $(TARGET_MD5)
     76 	./$(TARGET_MD5)
     77 
     78 run-crc32: $(TARGET_CRC32)
     79 	./$(TARGET_CRC32)
     80 
     81 run-unified: $(TARGET_UNIFIED)
     82 	./$(TARGET_UNIFIED)
     83 
     84 run-easy: $(TARGET_EASY)
     85 	./$(TARGET_EASY)
     86 
     87 # Run all tests
     88 run: all
     89 	@echo "═══════════════════════════════════════"
     90 	@echo "  Running SHA-256 Test"
     91 	@echo "═══════════════════════════════════════"
     92 	@./$(TARGET_SHA256)
     93 	@echo ""
     94 	@echo "═══════════════════════════════════════"
     95 	@echo "  Running SHA-512 Test"
     96 	@echo "═══════════════════════════════════════"
     97 	@./$(TARGET_SHA512)
     98 	@echo ""
     99 	@echo "═══════════════════════════════════════"
    100 	@echo "  Running SHA-1 Test"
    101 	@echo "═══════════════════════════════════════"
    102 	@./$(TARGET_SHA1)
    103 	@echo ""
    104 	@echo "═══════════════════════════════════════"
    105 	@echo "  Running MD5 Test"
    106 	@echo "═══════════════════════════════════════"
    107 	@./$(TARGET_MD5)
    108 	@echo ""
    109 	@echo "═══════════════════════════════════════"
    110 	@echo "  Running CRC32 Test"
    111 	@echo "═══════════════════════════════════════"
    112 	@./$(TARGET_CRC32)
    113 	@echo ""
    114 	@echo "═══════════════════════════════════════"
    115 	@echo "  Running Unified Hash Demo"
    116 	@echo "═══════════════════════════════════════"
    117 	@./$(TARGET_UNIFIED)
    118 	@echo ""
    119 	@echo "═══════════════════════════════════════"
    120 	@echo "  Running EasyHashing Demo"
    121 	@echo "═══════════════════════════════════════"
    122 	@./$(TARGET_EASY)
    123 
    124 .PHONY: all clean run run-sha256 run-sha512 run-sha1 run-md5 run-crc32 run-unified run-easy