diff options
author | Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> | 2016-01-06 15:28:08 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-01-15 15:46:25 +1100 |
commit | b2649b822ab57ab06f0028d8343320ae6e11cc50 (patch) | |
tree | 2329074c3f9cc93e4f163e17567454251ce81b82 | |
parent | c20f2b4b92dcd9f49e7ee4f51081b3356136e0bf (diff) | |
download | skiboot-b2649b822ab57ab06f0028d8343320ae6e11cc50.zip skiboot-b2649b822ab57ab06f0028d8343320ae6e11cc50.tar.gz skiboot-b2649b822ab57ab06f0028d8343320ae6e11cc50.tar.bz2 |
external: Add Makefile targets to install libflash
This adds a Makefile under external/shared to build libflash as a
shared library and install it.
This allows programs outside of the skiboot tree to link against
libflash in order to access MTD devices (eg. Petitboot).
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | external/shared/Makefile | 57 | ||||
-rw-r--r-- | external/shared/config.h | 19 |
2 files changed, 76 insertions, 0 deletions
diff --git a/external/shared/Makefile b/external/shared/Makefile new file mode 100644 index 0000000..ffc049f --- /dev/null +++ b/external/shared/Makefile @@ -0,0 +1,57 @@ +.DEFAULT_GOAL := all +CC ?= $(CROSS_COMPILE)gcc +GET_ARCH = ../../external/common/get_arch.sh +include ../../external/common/rules.mk + +PREFIX ?= /usr/local/ +LIBDIR = $(PREFIX)/lib +INCDIR = $(PREFIX)/include/libflash + +VERSION = $(shell ../../make_version.sh) + +CFLAGS += -m64 -Werror -Wall -g2 -ggdb -I. -fPIC + +.PHONY: links +links: libflash ccan common + +libflash: + ln -sf ../../libflash . + +common: + ln -sf ../common . + +ccan: + ln -sf ../../ccan . + +LIBFLASH_OBJS = libflash-file.o libflash-libflash.o libflash-libffs.o libflash-ecc.o libflash-blocklevel.o +ARCHFLASH_OBJS = common-arch_flash.o +OBJS = $(LIBFLASH_OBJS) $(ARCHFLASH_OBJS) + +LIBFLASH_H = libflash/file.h libflash/libflash.h libflash/libffs.h libflash/ffs.h libflash/ecc.h libflash/blocklevel.h libflash/errors.h +ARCHFLASH_H = common/arch_flash.h + +$(LIBFLASH_OBJS) : libflash-%.o : libflash/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + +clean: + rm -f $(OBJS) common-*.o *.so* + +distclean: clean + rm -f ccan libflash common + +all: links arch_links $(OBJS) + $(CC) -shared -Wl,-soname,libflash.so -o libflash.so.$(VERSION) $(OBJS) + +install-lib: all + install -D -m 0755 libflash.so.$(VERSION) $(LIBDIR)/libflash.so.$(VERSION) + ln -sf libflash.so.$(VERSION) $(LIBDIR)/libflash.so + +install-dev: links arch_links + mkdir -p $(INCDIR) + install -m 0644 $(LIBFLASH_H) $(ARCHFLASH_H) $(INCDIR) + +install: install-lib install-dev + +uninstall: + rm -f $(LIBDIR)/libflash* + rm -rf $(INCDIR) diff --git a/external/shared/config.h b/external/shared/config.h new file mode 100644 index 0000000..a132a01 --- /dev/null +++ b/external/shared/config.h @@ -0,0 +1,19 @@ +/* For CCAN */ + +#include <endian.h> +#include <byteswap.h> + +#define HAVE_TYPEOF 1 +#define HAVE_BUILTIN_TYPES_COMPATIBLE_P 1 + + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HAVE_BIG_ENDIAN 0 +#define HAVE_LITTLE_ENDIAN 1 +#else +#define HAVE_BIG_ENDIAN 1 +#define HAVE_LITTLE_ENDIAN 0 +#endif + +#define HAVE_BYTESWAP_H 1 +#define HAVE_BSWAP_64 1 |