Compare commits

...

3 commits

Author SHA1 Message Date
Imbus
aca1107418 Use install instead of cp, support for DESTDIR env variable 2025-09-15 18:59:15 +02:00
Imbus
41cb395b0d Test target 2025-09-15 18:58:50 +02:00
Imbus
08a1c588c3 Some tests 2025-09-15 18:58:31 +02:00
2 changed files with 47 additions and 7 deletions

View file

@ -13,7 +13,12 @@ PREFIX ?= /usr/local
INCLUDEDIR = $(PREFIX)/include
LIBDIR = $(PREFIX)/lib
all: $(STATIC_LIB) $(SHARED_LIB)
TEST_SRC = test.c
TEST_BIN = test.elf
all: $(STATIC_LIB) $(SHARED_LIB) $(TEST_BIN)
test: $(TEST_BIN)
./$<
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
@ -24,11 +29,15 @@ $(STATIC_LIB): $(OBJS)
$(SHARED_LIB): $(OBJS)
$(CC) -shared -o $@ $^
$(TEST_BIN): $(TEST_SRC) $(STATIC_LIB)
$(CC) -Wall -Ihash -o $@ $(TEST_SRC) $(STATIC_LIB)
install: $(STATIC_LIB) $(SHARED_LIB)
mkdir -p $(DESTDIR)$(INCLUDEDIR)/hash
cp -r hash/*.h $(DESTDIR)$(INCLUDEDIR)/hash/
mkdir -p $(DESTDIR)$(LIBDIR)
cp $(STATIC_LIB) $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/
install -d $(DESTDIR)$(INCLUDEDIR)/hash
install -m 644 hash/*.h $(DESTDIR)$(INCLUDEDIR)/hash/
install -d $(DESTDIR)$(LIBDIR)
install -m 644 $(STATIC_LIB) $(DESTDIR)$(LIBDIR)/
install -m 755 $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/
@echo "Installed libraries to $(DESTDIR)$(LIBDIR) and headers to $(DESTDIR)$(INCLUDEDIR)/hash"
uninstall:
@ -37,6 +46,6 @@ uninstall:
@echo "Uninstalled libraries from $(DESTDIR)$(LIBDIR) and headers from $(DESTDIR)$(INCLUDEDIR)/hash"
clean:
rm -f $(OBJS) $(STATIC_LIB) $(SHARED_LIB)
rm -f $(OBJS) $(STATIC_LIB) $(SHARED_LIB) $(TEST_BIN)
.PHONY: all clean install uninstall
.PHONY: all clean install uninstall test

31
test.c Normal file
View file

@ -0,0 +1,31 @@
#include "hash/crc32.h"
#include "hash/djb2.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
assert(crc32("123456789", 9) == 0xCBF43926);
assert(crc32("", 0) == 0x00000000);
assert(crc32("a", 1) == 0xE8B7BE43);
assert(crc32("A", 1) == 0xD3D99E8B);
assert(crc32("hello", 5) == 0x3610A686);
assert(crc32("The quick brown fox jumps over the lazy dog", 43) == 0x414FA339);
assert(crc32("The quick brown fox jumps over the lazy dog.", 44) == 0x519025E9);
/* Keep in mind the update api requires initialization and finalization */
uint32_t crc = crc32_init();
crc = crc32_update_raw(crc, "a", 1);
crc = crc32_finalize(crc);
assert(crc == crc32("a", 1));
assert(crc == 0xE8B7BE43);
assert(djb2("Hello") == 0x000000310D4F2079);
assert(djb2("a") == 0x000000000002B606);
assert(djb2("A") == 0x000000000002B5E6);
assert(djb2("123456789") == 0x0377821035CDBB82);
printf("All good!\n");
exit(EXIT_SUCCESS);
}