Simplify Makefile; Write functions for store_device
and load_device
This commit is contained in:
parent
145424202b
commit
c8e73f8e13
2 changed files with 33 additions and 36 deletions
51
Makefile
51
Makefile
|
@ -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
|
|
||||||
|
|
18
src/haggis.c
18
src/haggis.c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue