Simplify Makefile; Write functions for store_device and load_device

This commit is contained in:
Nathan Fisher 2023-07-21 09:07:24 -04:00
parent 145424202b
commit c8e73f8e13
2 changed files with 33 additions and 36 deletions

View file

@ -36,53 +36,36 @@ PREFIX ?= /usr/local
includedir = $(DESTDIR)$(PREFIX)/include includedir = $(DESTDIR)$(PREFIX)/include
libdir = $(DESTDIR)$(PREFIX)/lib libdir = $(DESTDIR)$(PREFIX)/lib
srcs += src/bytes.c
srcs += src/haggis.c
hdrs += include/haggis.h hdrs += include/haggis.h
cflags += -Wall -Werror srcs += src/bytes.c
cflags += -Iinclude srcs += src/haggis.c
objs = $(srcs:.c=.o)
CFLAGS += -Wall -Werror
CFLAGS += -Iinclude
CFLAGS += -fPIC
all: libhaggis.a libhaggis.so all: libhaggis.a libhaggis.so
static: libhaggis.a %.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
shared: libhaggis.so libhaggis.a: $(objs)
$(AR) rcs $@ $?
install: install-headers install-shared install-static libhaggis.so: $(objs)
$(CC) -shared -o $@ $?
install-includedir: install: libhaggis.a libhaggis.so haggis.h
[ -d $(includedir) ] || install -d $(includedir) [ -d $(includedir) ] || install -d $(includedir)
install-libdir:
[ -d $(libdir) ] || install -d $(libdir) [ -d $(libdir) ] || install -d $(libdir)
install-shared: libhaggis.so install-libdir
install -m755 libhaggis.so $(libdir)/ install -m755 libhaggis.so $(libdir)/
install-static: libhaggis.a install-libdir
install -m644 libhaggis.a $(libdir)/ install -m644 libhaggis.a $(libdir)/
install-headers: $(hdrs) install-includedir
install -m644 $(hdrs) $(includedir)/ install -m644 $(hdrs) $(includedir)/
haggis.o: $(srcs) $(hdrs)
$(CC) -c $(cflags) $(srcs)
libhaggis.a: haggis.o
$(AR) rcs $@ haggis.o
bytes_shared.o: src/bytes.c include/haggis.h
$(CC) -c $(cflags) -fpic -o $@ src/bytes.c
haggis_shared.o: src/haggis.c include/haggis.h
$(CC) -c $(cflags) -fpic -o $@ src/haggis.c
libhaggis.so: bytes_shared.o haggis_shared.o
$(CC) -shared -o $@ haggis_shared.o
clean: clean:
rm -rf *.a *.so *.o rm -rf *.a *.so src/*.o
.PHONY: all clean shared static install install-includedir install-libdir \ .PHONY: all clean install
install-headers install-shared install-static

View file

@ -53,12 +53,26 @@ int haggis_check_header(FILE *stream) {
} }
int haggis_store_device(FILE *stream, struct haggis_device *dev) { int haggis_store_device(FILE *stream, struct haggis_device *dev) {
// todo u8 major[4];
u8 minor[4];
u32_to_le_bytes(dev->major, major);
u32_to_le_bytes(dev->minor, minor);
if (fwrite(major, 1, 4, stream) != 4)
return 1;
if (fwrite(minor, 1, 4, stream) != 4)
return 1;
return 0; return 0;
} }
int haggis_load_device(FILE *stream, struct haggis_device *dev) { int haggis_load_device(FILE *stream, struct haggis_device *dev) {
// todo u8 major[4];
u8 minor[4];
if (fread(major, 1, 4, stream) != 4)
return 1;
if (fread(minor, 1, 4, stream) != 4)
return 1;
dev->major = le_bytes_to_u32(major);
dev->minor = le_bytes_to_u32(minor);
return 0; return 0;
} }