]> git.draconx.ca Git - gentoo-draconx.git/commitdiff
Add mosys ebuild.
authorNick Bowler <nbowler@draconx.ca>
Sat, 22 Apr 2017 05:02:56 +0000 (01:02 -0400)
committerNick Bowler <nbowler@draconx.ca>
Sat, 22 Apr 2017 05:02:56 +0000 (01:02 -0400)
Needed for crossystem tool on Chromebooks.

sys-apps/mosys/Manifest [new file with mode: 0644]
sys-apps/mosys/files/mosys-verbose-library-tests.patch [new file with mode: 0644]
sys-apps/mosys/mosys-20170221.ebuild [new file with mode: 0644]
sys-libs/flashmap/Manifest [new file with mode: 0644]
sys-libs/flashmap/files/flashmap-dont-set-make.patch [new file with mode: 0644]
sys-libs/flashmap/files/flashmap-no-static-libs.patch [new file with mode: 0644]
sys-libs/flashmap/files/flashmap-respect-AR.patch [new file with mode: 0644]
sys-libs/flashmap/files/flashmap-respect-CFLAGS-LDFLAGS.patch [new file with mode: 0644]
sys-libs/flashmap/files/flashmap-split-install.patch [new file with mode: 0644]
sys-libs/flashmap/flashmap-20160808.ebuild [new file with mode: 0644]

diff --git a/sys-apps/mosys/Manifest b/sys-apps/mosys/Manifest
new file mode 100644 (file)
index 0000000..505cb6d
--- /dev/null
@@ -0,0 +1,3 @@
+AUX mosys-verbose-library-tests.patch 1505 SHA256 eef82d47a004604a0d2f08de7588ff94a460363bb7d05257eae53eb65461b85d SHA512 45f203c905358ccd8e6f20b3180a9415058ad6fdf4aa769bc8310d8053850cb4c9eded75acf3f6814f2b56b4d38a2bb19671e54cf718fc5cfbb2a4ad4cc0d672 WHIRLPOOL 1453487152cf2823130deb860d9b1586014db785400517e3fbb177c19e8002845547c66fb5153b83a0cd813f2836bc6c7ad0f0ee725856f5d52667c6066c21d4
+DIST mosys-04b5510716baccee8a3e4a502d6aab38ea35a6a3.tar.gz 631305 SHA256 bc33f63344f1e2147702fb141deaf958d5fc666cd5b5755997637190d4fd3348 SHA512 b3e4389ae1193949aebe2333b7b85566029f39eee0578dccae741f27142db313e429e9afb5c5042c885828d0c811e0dcb939ca4078d870198b37d79461bc84cf WHIRLPOOL af615f1bb237a9293660516fd9f893ca0e9673e62037004235e8037b636294b4212873ddb587678e48433f414f7f505fa5e4febe09a4997cea7e0ccac8741f4c
+EBUILD mosys-20170221.ebuild 1071 SHA256 83cad7e2247d1685e31f074e2a5fb2f56fe935275ea0ed4ad20624002fea8283 SHA512 5a03b0f09c9b4e7c3459df29af3a9fc4820f8858c6d4706db2993f2786a63814d1ca2354219e1581a5811724bc0556d8b590b3dddde6d49328bc2d2530669ecb WHIRLPOOL d59a0412c0b2949e3327f28058260d433328511e765c4de78690905cf8d3f4f961239ec9008201cc4460dabc7d08637d47ef2a41da05bf5de7a6d78ddbc3df2f
diff --git a/sys-apps/mosys/files/mosys-verbose-library-tests.patch b/sys-apps/mosys/files/mosys-verbose-library-tests.patch
new file mode 100644 (file)
index 0000000..134a2cd
--- /dev/null
@@ -0,0 +1,43 @@
+From 19547bc72e2fb9a5d314d778b1cbf277c9dd882b Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 21 Apr 2017 22:01:48 -0400
+Subject: [PATCH] Make library tests verbose.
+
+Hard to tell WTF is going on when the commands are suppressed.  Get rid
+of the pass/fail messages too since we don't need suggestions in ebuild
+logs.
+---
+ Makefile | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 74cbec32d607..cedc40284c94 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1013,10 +1013,7 @@ export LIBUUID_TEST
+ test_libuuid:
+       @echo "Testing libuuid..."
+       @echo "$$LIBUUID_TEST" > .uuid_test.c
+-      @$(CC) $(CFLAGS) $(CC_LDFLAGS) -o .uuid_test .uuid_test.c -luuid >/dev/null 2>&1 && \
+-      echo "libuuid test passed." || \
+-      ( echo "libuuid test failed. Please install libuuid" ; exit 1)
+-      @rm -f .uuid_test.c .uuid_test
++      $(CC) $(CFLAGS) $(CC_LDFLAGS) -o .uuid_test .uuid_test.c -luuid
+ define LIBFMAP_TEST
+ #include <inttypes.h>
+@@ -1033,10 +1030,7 @@ export LIBFMAP_TEST
+ test_libfmap:
+       @echo "Testing libfmap..."
+       @echo "$$LIBFMAP_TEST" > .fmap_test.c
+-      @$(CC) $(CFLAGS) $(CC_LDFLAGS) -o .fmap_test .fmap_test.c $(FMAP_LINKOPT) >/dev/null 2>&1 && \
+-      echo "libfmap test passed." || \
+-      ( echo "libfmap test failed. Please install libfmap (http://flashmap.googlecode.com)"; exit 1 )
+-      @rm -f .fmap_test.c .fmap_test
++      $(CC) $(CFLAGS) $(CC_LDFLAGS) -o .fmap_test .fmap_test.c $(FMAP_LINKOPT)
+ libcheck: test_libuuid test_libfmap
+-- 
+2.10.2
+
diff --git a/sys-apps/mosys/mosys-20170221.ebuild b/sys-apps/mosys/mosys-20170221.ebuild
new file mode 100644 (file)
index 0000000..b34dbe8
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright © 2017 Nick Bowler
+# License GPLv3+: GNU General Public License version 3 or later.
+# There is NO WARRANTY, to the extent permitted by law.
+
+EAPI=6
+
+inherit toolchain-funcs
+
+# Github repo has no release tags, and chromium repo has no stable
+# download archives.  Fun times.
+SHA1=04b5510716baccee8a3e4a502d6aab38ea35a6a3
+MY_P=$PN-$SHA1
+
+DESCRIPTION="More Open System tool for ChromiumOS"
+HOMEPAGE="https://github.com/dhendrix/mosys"
+SRC_URI="https://github.com/dhendrix/$PN/archive/$SHA1.tar.gz -> $MY_P.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~arm"
+
+LIBDEPEND="sys-libs/flashmap
+       sys-apps/util-linux"
+DEPEND="$LIBDEPEND
+       sys-libs/ncurses:0
+       virtual/pkgconfig"
+RDEPEND=$LIBDEPEND
+
+PATCHES=(
+       "$FILESDIR/$PN-verbose-library-tests.patch"
+)
+
+S=$WORKDIR/$MY_P
+
+my_emake () {
+       emake V=1 CC_LDFLAGS="$LDFLAGS" EXTRA_CFLAGS="$CFLAGS" \
+               CC="$(tc-getCC)" LD="$(tc-getCC) -nostdlib" AR="$(tc-getAR)" \
+               HOSTCC="$(tc-getBUILD_CC)" "$@" || die
+}
+
+src_configure () {
+       my_emake defconfig
+}
+
+src_compile () {
+       my_emake
+}
+
+src_install () {
+       dosbin mosys
+       dodoc README
+}
diff --git a/sys-libs/flashmap/Manifest b/sys-libs/flashmap/Manifest
new file mode 100644 (file)
index 0000000..3936e74
--- /dev/null
@@ -0,0 +1,7 @@
+AUX flashmap-dont-set-make.patch 1560 SHA256 111e2401f83d59217c7421b38e8ce815fb9d50b5cfe94f96e41defea1a06df07 SHA512 97d105cb5593b22006a4107572a399a0b1474fefe3d8033b946b5ec1202b57d5d972d380ddbc2422865f00ea487f1794c867b94d3ace745b40a45391ce35a199 WHIRLPOOL 75c4b6c86011c1634f43ddc6f308b7d3afd88b58e9bf1a19b9b52776cb0c5e525d2cbb5d849399e5389cfffc798ab89d34b54029d9e0e5c4f93c84f498144446
+AUX flashmap-no-static-libs.patch 1560 SHA256 e4277357170b5a53ca38d64c7436cb1caaa281e6426579b63f3e352eb4701384 SHA512 97fd98a2611387b9d539ce4072014aeb059de5808848e621d95bacf47cba1e6844fd9947cc8c7f9d63642b02250d04bd7f185a7381852467e97e39ba78ea34c4 WHIRLPOOL f22fd3d9bad6cf2c41debd29f630519d4801159b96dd34f7658d91eab7a9ccd8677e0d08cf6f80408efbf841222d8fc6e93272a502ee69a433d1be8d12885b42
+AUX flashmap-respect-AR.patch 959 SHA256 1fff156f1141707f4aad7e8167cffe2bea795944a6711eeb5980b675f5e748ae SHA512 e3b902cf255930e2a0a6b97087f97ede514f411d993a18a89d5395fa28fd79d69b01710abf4e35e1c9616c87497376b5ec67530513326484fbf0cbf7a0367943 WHIRLPOOL c6171fce3aa80295d3828367386eda73385404c8c0a9ff15ede2b2eb670da839184d958316681e8453dea8bc4fcc7a135c28e97241dc9c8a5eebd00af1b2e0b0
+AUX flashmap-respect-CFLAGS-LDFLAGS.patch 3226 SHA256 358e798f5e82b8bf8f7a26e56c481543af54793dc93c705b19ad3cb32ee1a4e7 SHA512 2ac1f82b6fdc3c8d1288942f20774be003e195b875a893538d0819aa2b9265a72b8ffde2b40466c1fda618df06c0c8049fb72c8b5cf2b19a5e3179331b88d679 WHIRLPOOL d7888a3258f31811f9e30d3bda359c07b3078fa2cb2f882b69ad4b83a06985817346d966cd6a5201fd898c9bec49706870a0320cc2fb4276418f8a67d6ab3591
+AUX flashmap-split-install.patch 1107 SHA256 66b09e438b66adadd1cfa73e0c742bb4c74ddd98fee0aa3a7e655eebd885a6e7 SHA512 4b5268cd5dcdc8a4b36d2d7d64ed2881b026a3555a581de821fbc335774dfdf3c853865479a4dcf1d354fdd6c02fe4ddb529f2418acda1e13c1b2bb861277f1a WHIRLPOOL 6d5e82950780d8048293de1c4441a8fb2fb7273a4208b01e071c840f8a31e0e277d815bfa0137dfdb8b11cc704a26f5cedaaf51eb6df28ce5cd789d7aa8a9eeb
+DIST flashmap-976420e9ecae3c3933d5e59e67a4debad751d003.tar.gz 22965 SHA256 e0f461f8eb8a40b3dd976ca81b62542e51a8353897265175a5f360073f6800ba SHA512 ca8802f558a37ee6fd6ff5c713f4de4f213a41558aaabcad2845bdeca38705cb1a7e44da5651184fc1c4ea0952180d77b2763aaee5d19fab41e24d276ac0aff4 WHIRLPOOL 2539457e16e8ace39c6d775893a05c3a97a1766840fa977a637c6869f33128d9b0d4ad45e5ee1642f468fd9b56f9476a9bd6e948f6edd2fccbe0132f3f93b027
+EBUILD flashmap-20160808.ebuild 1208 SHA256 5b9cd912da4093ccbdd598558fd470433c8abb38aeb5413de3f1fe8adc137170 SHA512 349c67bb4077979e46b6c2ec2968252c9914b6c33f792fdbd7db4c2ef25fb18cf83c75ed32555dee5e7e82e66b3372af61f153f612a5797f2efec61563e80dfb WHIRLPOOL 43eed89733f6a2de26763248e91013e130d2bda143a20912c4ae8e5d997ae402bfe79b9e44a5e7916fafff62b637a93687b31bfc27952b8d39fad58050ed09b3
diff --git a/sys-libs/flashmap/files/flashmap-dont-set-make.patch b/sys-libs/flashmap/files/flashmap-dont-set-make.patch
new file mode 100644 (file)
index 0000000..fd22df4
--- /dev/null
@@ -0,0 +1,62 @@
+From 04ff0684fc44d8feaa081dd657a6b7d03fc15721 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 21 Apr 2017 16:00:33 -0400
+Subject: [PATCH 3/5] Don't set MAKE.
+
+This will override the actual make command used for recursive
+invocations, which is not what we want.
+---
+ Makefile     | 5 ++---
+ lib/Makefile | 4 ++--
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 9401cf0..0be39b6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -38,7 +38,6 @@ VERSION_MINOR        = 3
+ AR            ?= $(CROSS_COMPILE)ar
+ CC            ?= $(CROSS_COMPILE)gcc
+ LD            ?= $(CROSS_COMPILE)ld
+-MAKE          = make
+ RM            = rm -f
+ INSTALL               = install
+@@ -94,7 +93,7 @@ help:
+ $(SRC_LIBDIR)/libfmap.a:
+-      @$(MAKE) -C $(SRC_LIBDIR)
++      $(MAKE) -C $(SRC_LIBDIR)
+ $(SHARED_OBJ_FILE): $(SRC_LIBDIR)/libfmap.a
+       $(CC) $(CFLAGS) $(LINKOPTS) -shared -Wl,-soname,$(SHARED_OBJ_SONAME) -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive
+@@ -215,7 +214,7 @@ lcov-clean:
+ clean: lcov-clean
+       rm -f *.o *.a $(PROGRAMS) $(TEST_PROGRAM) $(LIBFMAP_EXAMPLE) $(SHARED_OBJ_FILE)
+-      @$(MAKE) -C $(SRC_LIBDIR) clean
++      $(MAKE) -C $(SRC_LIBDIR) clean
+ %.o: %.c
+       $(CC) $(ALL_CFLAGS) -c $^ -I. -o $@
+diff --git a/lib/Makefile b/lib/Makefile
+index 7d02dcb..5aef1b0 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -48,10 +48,10 @@ export MY_CFLAGS
+ .PHONY: clean
+ clean:
+       rm -f *.o *.a
+-      @$(MAKE) -C $(MINCRYPT) clean
++      $(MAKE) -C $(MINCRYPT) clean
+ $(MINCRYPT)/sha.o:
+-      @$(MAKE) -C $(MINCRYPT)
++      $(MAKE) -C $(MINCRYPT)
+ libfmap.a: $(OBJS) $(DEPS)
+       $(AR) rcs $@ $+
+-- 
+2.10.2
+
diff --git a/sys-libs/flashmap/files/flashmap-no-static-libs.patch b/sys-libs/flashmap/files/flashmap-no-static-libs.patch
new file mode 100644 (file)
index 0000000..abc4729
--- /dev/null
@@ -0,0 +1,42 @@
+From 9a71a15270ec2d3b839374f4d4ea0309bae1ae91 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 21 Apr 2017 16:46:38 -0400
+Subject: [PATCH 4/5] No static libs.
+
+---
+ Makefile | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 0be39b6..672d0b4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -65,7 +65,7 @@ ALL_CFLAGS   = $(MY_CFLAGS) $(CFLAGS)
+ CFLAGS_GCOV   := -fprofile-arcs -ftest-coverage -lgcov
+ LINKOPTS      = $(LDFLAGS)
+-PROGRAMS      = fmap_decode fmap_encode fmap_csum libfmap_example
++PROGRAMS      = fmap_decode fmap_encode fmap_csum
+ TEST_PROGRAM  = fmap_test
+ SRC_LIBDIR    = lib
+ GENHTML_OUTPUT        ?= html
+@@ -98,7 +98,7 @@ $(SRC_LIBDIR)/libfmap.a:
+ $(SHARED_OBJ_FILE): $(SRC_LIBDIR)/libfmap.a
+       $(CC) $(CFLAGS) $(LINKOPTS) -shared -Wl,-soname,$(SHARED_OBJ_SONAME) -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive
+-$(PROGRAMS): $(SRC_LIBDIR)/libfmap.a
++$(PROGRAMS): $(SHARED_OBJ_FILE)
+       $(CC) $(ALL_CFLAGS) $(LINKOPTS) -I. -o $@ $@.c $^
+ # Add shared object filename to gcc command in case it's not installed already
+@@ -176,7 +176,6 @@ install: all pkgconfig_install
+       $(INSTALL_PROGRAM) fmap_csum $(DESTDIR)$(sbindir)
+       $(INSTALL_DATA) lib/fmap.h $(DESTDIR)$(includedir)
+       $(INSTALL_DATA) lib/valstr.h $(DESTDIR)$(includedir)
+-      $(INSTALL_DATA) $(SRC_LIBDIR)/libfmap.a $(DESTDIR)$(libdir)
+       $(INSTALL_DATA) $(SHARED_OBJ_FILE) $(DESTDIR)$(libdir)
+       $(SYMLINK) $(SHARED_OBJ_FILE) $(DESTDIR)$(libdir)/$(SHARED_OBJ).so
+       $(SYMLINK) $(SHARED_OBJ_FILE) $(DESTDIR)$(libdir)/$(SHARED_OBJ).so.0
+-- 
+2.10.2
+
diff --git a/sys-libs/flashmap/files/flashmap-respect-AR.patch b/sys-libs/flashmap/files/flashmap-respect-AR.patch
new file mode 100644 (file)
index 0000000..31a39f2
--- /dev/null
@@ -0,0 +1,38 @@
+From 04223f5e24c807467d4ff0b254845843fd8f8a47 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 21 Apr 2017 16:03:47 -0400
+Subject: [PATCH 2/5] Respect AR.
+
+---
+ Makefile     | 1 -
+ lib/Makefile | 2 +-
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 45942c1..9401cf0 100644
+--- a/Makefile
++++ b/Makefile
+@@ -95,7 +95,6 @@ help:
+ $(SRC_LIBDIR)/libfmap.a:
+       @$(MAKE) -C $(SRC_LIBDIR)
+-      ar rcs $@ $(SRC_LIBDIR)/*.o
+ $(SHARED_OBJ_FILE): $(SRC_LIBDIR)/libfmap.a
+       $(CC) $(CFLAGS) $(LINKOPTS) -shared -Wl,-soname,$(SHARED_OBJ_SONAME) -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive
+diff --git a/lib/Makefile b/lib/Makefile
+index bb65449..7d02dcb 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -54,7 +54,7 @@ $(MINCRYPT)/sha.o:
+       @$(MAKE) -C $(MINCRYPT)
+ libfmap.a: $(OBJS) $(DEPS)
+-      ar rcs $@ $+
++      $(AR) rcs $@ $+
+ %.o: %.c
+       $(CC) $(ALL_CFLAGS) -c $^ -I. -I$(INCLUDES) -o $@
+-- 
+2.10.2
+
diff --git a/sys-libs/flashmap/files/flashmap-respect-CFLAGS-LDFLAGS.patch b/sys-libs/flashmap/files/flashmap-respect-CFLAGS-LDFLAGS.patch
new file mode 100644 (file)
index 0000000..9d1acd6
--- /dev/null
@@ -0,0 +1,103 @@
+From 8d90ed7744b23c9f7298f5422f45ea3b033cf91b Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 21 Apr 2017 15:45:17 -0400
+Subject: [PATCH 1/5] Respect CFLAGS/LDFLAGS.
+
+---
+ Makefile              | 19 ++++++++++---------
+ lib/Makefile          |  7 ++++---
+ lib/mincrypt/Makefile |  2 +-
+ 3 files changed, 15 insertions(+), 13 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 30253c3..45942c1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -61,9 +61,10 @@ pkgconfig_dir       = $(libdir)/pkgconfig
+ DEFS          = -DVERSION_MAJOR=$(VERSION_MAJOR)\
+                   -DVERSION_MINOR=$(VERSION_MINOR)
+-CFLAGS                += -O2 -Wall -Werror -Wno-unused-parameter -Ilib/ $(DEFS)
++MY_CFLAGS     = -Wall -Wno-unused-parameter -Ilib/ $(DEFS)
++ALL_CFLAGS    = $(MY_CFLAGS) $(CFLAGS)
+ CFLAGS_GCOV   := -fprofile-arcs -ftest-coverage -lgcov
+-LINKOPTS      =
++LINKOPTS      = $(LDFLAGS)
+ PROGRAMS      = fmap_decode fmap_encode fmap_csum libfmap_example
+ TEST_PROGRAM  = fmap_test
+@@ -78,7 +79,7 @@ SVNVERSION := $(shell LC_ALL=C svnversion -cn . 2>/dev/null | sed -e "s/.*://" -
+ RELEASENAME := $(PACKAGE_NAME)-$(VERSION_MAJOR).$(VERSION_MINOR)-r$(SVNVERSION)
+-export CFLAGS
++export MY_CFLAGS
+ all: $(PROGRAMS) $(SHARED_OBJ_FILE)
+@@ -97,19 +98,19 @@ $(SRC_LIBDIR)/libfmap.a:
+       ar rcs $@ $(SRC_LIBDIR)/*.o
+ $(SHARED_OBJ_FILE): $(SRC_LIBDIR)/libfmap.a
+-      $(CC) -fpic -shared -Wl,-soname,$(SHARED_OBJ_SONAME) -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive
++      $(CC) $(CFLAGS) $(LINKOPTS) -shared -Wl,-soname,$(SHARED_OBJ_SONAME) -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive
+ $(PROGRAMS): $(SRC_LIBDIR)/libfmap.a
+-      $(CC) $(CFLAGS) $(LINKOPTS) -I. -o $@ $@.c $^
++      $(CC) $(ALL_CFLAGS) $(LINKOPTS) -I. -o $@ $@.c $^
+ # Add shared object filename to gcc command in case it's not installed already
+ $(LIBFMAP_EXAMPLE): $(SHARED_OBJ_FILE)
+-      $(CC) $(CFLAGS) $(LINKOPTS) -o $@ $@.c $(SHARED_OBJ_FILE)
++      $(CC) $(ALL_CFLAGS) $(LINKOPTS) -o $@ $@.c $(SHARED_OBJ_FILE)
+ $(TEST_PROGRAM): $(SRC_LIBDIR)/libfmap.a
+-      $(CC) $(CFLAGS) $(LINKOPTS) -I. -o $@ $@.c $^
++      $(CC) $(ALL_CFLAGS) $(LINKOPTS) -I. -o $@ $@.c $^
+-test: CFLAGS += $(CFLAGS_GCOV)
++test: MY_CFLAGS += $(CFLAGS_GCOV)
+ test: $(TEST_PROGRAM)
+       lcov --directory . --zerocounters
+       @echo "Running $(TEST_PROGRAM)"
+@@ -218,4 +219,4 @@ clean: lcov-clean
+       @$(MAKE) -C $(SRC_LIBDIR) clean
+ %.o: %.c
+-      $(CC) $(CFLAGS) -c $^ -I. -o $@
++      $(CC) $(ALL_CFLAGS) -c $^ -I. -o $@
+diff --git a/lib/Makefile b/lib/Makefile
+index abd7ef8..bb65449 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -41,8 +41,9 @@ DEPS = $(MINCRYPT)/sha.o
+ INPUT_OBJS = input_interactive.o input_kv_pair.o
+ OBJS += $(INPUT_OBJS)
+-CFLAGS += -fpic
+-export CFLAGS
++MY_CFLAGS += -fpic
++ALL_CFLAGS = $(MY_CFLAGS) $(CFLAGS)
++export MY_CFLAGS
+ .PHONY: clean
+ clean:
+@@ -56,4 +57,4 @@ libfmap.a: $(OBJS) $(DEPS)
+       ar rcs $@ $+
+ %.o: %.c
+-      $(CC) $(CFLAGS) -c $^ -I. -I$(INCLUDES) -o $@
++      $(CC) $(ALL_CFLAGS) -c $^ -I. -I$(INCLUDES) -o $@
+diff --git a/lib/mincrypt/Makefile b/lib/mincrypt/Makefile
+index 6229ec0..6f54faf 100644
+--- a/lib/mincrypt/Makefile
++++ b/lib/mincrypt/Makefile
+@@ -38,4 +38,4 @@ clean:
+       rm -f *.o *.a
+ %.o: %.c
+-      $(CC) $(CFLAGS) -c $^ -I. -o $@
++      $(CC) $(MY_CFLAGS) $(CFLAGS) -c $^ -I. -o $@
+-- 
+2.10.2
+
diff --git a/sys-libs/flashmap/files/flashmap-split-install.patch b/sys-libs/flashmap/files/flashmap-split-install.patch
new file mode 100644 (file)
index 0000000..a803ed0
--- /dev/null
@@ -0,0 +1,36 @@
+From 689540df62a8e237f0b0733d09ad11e98a991e5b Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 21 Apr 2017 16:53:02 -0400
+Subject: [PATCH 5/5] Split install.
+
+Don't want to install binaries for non-native arches.
+---
+ Makefile | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 672d0b4..e501773 100644
+--- a/Makefile
++++ b/Makefile
+@@ -167,13 +167,15 @@ else
+ pkgconfig_install:
+ endif
+-install: all pkgconfig_install
++install: all install_lib
+       $(INSTALL_DIR) $(DESTDIR)$(sbindir)
+-      $(INSTALL_DIR) $(DESTDIR)$(libdir)
+-      $(INSTALL_DIR) $(DESTDIR)$(includedir)
+       $(INSTALL_PROGRAM) fmap_decode $(DESTDIR)$(sbindir)
+       $(INSTALL_PROGRAM) fmap_encode $(DESTDIR)$(sbindir)
+       $(INSTALL_PROGRAM) fmap_csum $(DESTDIR)$(sbindir)
++
++install_lib: $(SHARED_OBJ_FILE) pkgconfig_install
++      $(INSTALL_DIR) $(DESTDIR)$(libdir)
++      $(INSTALL_DIR) $(DESTDIR)$(includedir)
+       $(INSTALL_DATA) lib/fmap.h $(DESTDIR)$(includedir)
+       $(INSTALL_DATA) lib/valstr.h $(DESTDIR)$(includedir)
+       $(INSTALL_DATA) $(SHARED_OBJ_FILE) $(DESTDIR)$(libdir)
+-- 
+2.10.2
+
diff --git a/sys-libs/flashmap/flashmap-20160808.ebuild b/sys-libs/flashmap/flashmap-20160808.ebuild
new file mode 100644 (file)
index 0000000..875200a
--- /dev/null
@@ -0,0 +1,45 @@
+# Copyright © 2017 Nick Bowler
+# License GPLv3+: GNU General Public License version 3 or later.
+# There is NO WARRANTY, to the extent permitted by law.
+
+EAPI=6
+
+inherit toolchain-funcs multilib-minimal
+
+# Github repo has no release tags, and chromium repo has no stable
+# download archives.  Fun times.
+SHA1=976420e9ecae3c3933d5e59e67a4debad751d003
+MY_P=$PN-$SHA1
+
+DESCRIPTION="library for manipulating flashmap data structure used in ChromiumOS"
+HOMEPAGE="https://github.com/dhendrix/flashmap"
+SRC_URI="https://github.com/dhendrix/$PN/archive/$SHA1.tar.gz -> $MY_P.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT=0
+KEYWORDS="~amd64 ~arm"
+
+PATCHES=(
+       "$FILESDIR/$PN-respect-CFLAGS-LDFLAGS.patch"
+       "$FILESDIR/$PN-respect-AR.patch"
+       "$FILESDIR/$PN-dont-set-make.patch"
+       "$FILESDIR/$PN-no-static-libs.patch"
+       "$FILESDIR/$PN-split-install.patch"
+)
+
+S=$WORKDIR/$MY_P
+
+src_prepare () {
+       default_src_prepare
+       multilib_copy_sources
+}
+
+multilib_src_compile () {
+       local progs=$(multilib_is_native_abi || echo PROGRAMS=)
+       emake CC="$(tc-getCC)" AR="$(tc-getAR)" $progs || die
+}
+
+multilib_src_install () {
+       local target=$(multilib_is_native_abi || echo _lib)
+       emake DESTDIR="$D" LIBDIR="$(get_libdir)" install$target || die
+}