From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- .../files/elinks-0.10.4.conf-syscharset.diff | 79 +++++++++ .../elinks/files/elinks-0.11.2-lua-5.1.patch | 16 ++ .../files/elinks-0.12_pre5-compilation-fix.patch | 12 ++ .../elinks/files/elinks-0.12_pre5-ruby-1.9.patch | 187 +++++++++++++++++++++ .../files/elinks-0.12_pre5-sm185-jsval-fixes.patch | 124 ++++++++++++++ .../elinks-0.12pre5-spidermonkey-callback.patch | 12 ++ .../elinks/files/elinks-9999-parallel-make.patch | 51 ++++++ 7 files changed, 481 insertions(+) create mode 100644 www-client/elinks/files/elinks-0.10.4.conf-syscharset.diff create mode 100644 www-client/elinks/files/elinks-0.11.2-lua-5.1.patch create mode 100644 www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch create mode 100644 www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch create mode 100644 www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch create mode 100644 www-client/elinks/files/elinks-0.12pre5-spidermonkey-callback.patch create mode 100644 www-client/elinks/files/elinks-9999-parallel-make.patch (limited to 'www-client/elinks/files') diff --git a/www-client/elinks/files/elinks-0.10.4.conf-syscharset.diff b/www-client/elinks/files/elinks-0.10.4.conf-syscharset.diff new file mode 100644 index 000000000000..dc64712b29a8 --- /dev/null +++ b/www-client/elinks/files/elinks-0.10.4.conf-syscharset.diff @@ -0,0 +1,79 @@ +--- elinks-0.10.4.conf 2005-04-08 15:29:49.000000000 -0700 ++++ elinks-0.10.4-syscharset.conf 2006-11-04 00:26:26.000000000 -0800 +@@ -12,8 +12,6 @@ + # obsolete config.saving_style. You shouldn't touch it. + set config.saving_style_w = 1 + +- ## terminal.linux.charset +- set terminal.linux.charset = "us-ascii" + ## terminal.linux.transparency [0|1] + set terminal.linux.transparency = 1 + ## terminal.linux.colors [0|1] +@@ -29,8 +27,6 @@ + ## terminal.linux.type + set terminal.linux.type = 2 + +- ## terminal.vt100.charset +- set terminal.vt100.charset = "us-ascii" + ## terminal.vt100.transparency [0|1] + set terminal.vt100.transparency = 1 + ## terminal.vt100.colors [0|1] +@@ -46,8 +42,6 @@ + ## terminal.vt100.type + set terminal.vt100.type = 1 + +- ## terminal.vt110.charset +- set terminal.vt110.charset = "us-ascii" + ## terminal.vt110.transparency [0|1] + set terminal.vt110.transparency = 1 + ## terminal.vt110.colors [0|1] +@@ -63,8 +57,6 @@ + ## terminal.vt110.type + set terminal.vt110.type = 1 + +- ## terminal.xterm.charset +- set terminal.xterm.charset = "us-ascii" + ## terminal.xterm.transparency [0|1] + set terminal.xterm.transparency = 1 + ## terminal.xterm.colors [0|1] +@@ -80,8 +72,6 @@ + ## terminal.xterm.type + set terminal.xterm.type = 1 + +- ## terminal.xterm-color.charset +- set terminal.xterm-color.charset = "us-ascii" + ## terminal.xterm-color.transparency [0|1] + set terminal.xterm-color.transparency = 1 + ## terminal.xterm-color.colors [0|1] +@@ -96,8 +86,7 @@ + set terminal.xterm-color.m11_hack = 0 + ## terminal.xterm-color.type + set terminal.xterm-color.type = 1 +- ## terminal.screen.charset +- set terminal.screen.charset = "us-ascii" ++ + ## terminal.screen.transparency [0|1] + set terminal.screen.transparency = 1 + ## terminal.screen.colors [0|1] +@@ -270,10 +259,6 @@ + + + +- ## document.codepage.assume +- # Default document codepage. +- set document.codepage.assume = "ISO-8859-1" +- + ## document.codepage.force_assumed [0|1] + # Ignore charset info sent by server. + set document.codepage.force_assumed = 0 +@@ -343,10 +328,6 @@ + + + +- ## document.dump.codepage +- # Codepage used in dump output. +- set document.dump.codepage = "us-ascii" +- + ## document.dump.width + # Width of screen in characters when dumping a HTML document. + set document.dump.width = 80 diff --git a/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch b/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch new file mode 100644 index 000000000000..20db8a484598 --- /dev/null +++ b/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch @@ -0,0 +1,16 @@ +diff -Naurp elinks-0.11.2/src/scripting/lua/core.c elinks-0.11.2-lua/src/scripting/lua/core.c +--- elinks-0.11.2/src/scripting/lua/core.c 2006-11-19 14:46:37.000000000 +0100 ++++ elinks-0.11.2-lua/src/scripting/lua/core.c 2007-03-10 15:34:47.000000000 +0100 +@@ -646,11 +646,7 @@ init_lua(struct module *module) + { + L = lua_open(); + +- luaopen_base(L); +- luaopen_table(L); +- luaopen_io(L); +- luaopen_string(L); +- luaopen_math(L); ++ luaL_openlibs(L); + + lua_register(L, LUA_ALERT, l_alert); + lua_register(L, "current_url", l_current_url); diff --git a/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch b/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch new file mode 100644 index 000000000000..dee09a67eb45 --- /dev/null +++ b/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch @@ -0,0 +1,12 @@ +diff -Naurp elinks-0.12pre5-orig//src/intl/charsets.c elinks-0.12pre5/src/intl/charsets.c +--- elinks-0.12pre5-orig//src/intl/charsets.c 2010-04-04 12:19:02.000000000 +0200 ++++ elinks-0.12pre5/src/intl/charsets.c 2010-04-04 12:19:20.000000000 +0200 +@@ -821,7 +821,7 @@ free_utf_table(void) + + /* Cast away const. */ + for (i = 128; i < 256; i++) +- mem_free((unsigned char *) utf_table[i].u.str); ++ mem_free(utf_table[i].u.str); + } + + static struct conv_table * diff --git a/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch b/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch new file mode 100644 index 000000000000..1e07bcde190a --- /dev/null +++ b/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch @@ -0,0 +1,187 @@ +diff -urp a/config/m4/ruby.m4 b/config/m4/ruby.m4 +--- a/config/m4/ruby.m4 2009-07-07 13:23:17.000000000 +0100 ++++ b/config/m4/ruby.m4 2012-09-10 18:23:09.000000000 +0100 +@@ -32,36 +32,40 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes" + if test "$CONFIG_SCRIPTING_RUBY" != "no"; then + + AC_MSG_CHECKING(Ruby version) +- if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION or RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then ++ if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION rescue RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then + ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'` + AC_MSG_RESULT($ruby_version) + + AC_MSG_CHECKING(for Ruby header files) +- rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null` ++ rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print RbConfig::CONFIG[["rubyhdrdir"]] || RbConfig::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null` + + if test "X$rubyhdrdir" != "X"; then + AC_MSG_RESULT($rubyhdrdir) + RUBY_CFLAGS="-I$rubyhdrdir" +- rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'` ++ rubyarch=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["arch"]]'` ++ if test -d "$rubyhdrdir/$rubyarch"; then ++ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch" ++ fi ++ rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LIBS"]]'` + + if test "X$rubylibs" != "X"; then + RUBY_LIBS="$rubylibs" + fi + +- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'` ++ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["LIBRUBYARG"]])'` + + if test -f "$rubyhdrdir/$librubyarg"; then + librubyarg="$rubyhdrdir/$librubyarg" + + else +- rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'` ++ rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["libdir"]])'` + if test -f "$rubylibdir/$librubyarg"; then + librubyarg="$rubylibdir/$librubyarg" + elif test "$librubyarg" = "libruby.a"; then + dnl required on Mac OS 10.3 where libruby.a doesn't exist + librubyarg="-lruby" + else +- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"` ++ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{RbConfig.expand(RbConfig::CONFIG[\"libdir\"])}')"` + fi + fi + +@@ -69,7 +73,7 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes" + RUBY_LIBS="$librubyarg $RUBY_LIBS" + fi + +- rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'` ++ rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LDFLAGS"]]'` + if test "X$rubyldflags" != "X"; then + LDFLAGS="$rubyldflags $LDFLAGS" + fi +@@ -86,6 +90,15 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes" + AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later) + fi + fi ++ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then ++ AC_MSG_CHECKING([for rb_errinfo]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[rb_errinfo();]])],have_rb_errinfo="yes",have_rb_errinfo="no") ++ AC_MSG_RESULT($have_rb_errinfo) ++ if test "$have_rb_errinfo" = "yes"; then ++ AC_DEFINE([HAVE_RB_ERRINFO], [1], ++ [Define to 1 if you have the `rb_errinfo' function.]) ++ fi ++ fi + fi + + EL_RESTORE_FLAGS +diff -urp a/src/scripting/ruby/core.c b/src/scripting/ruby/core.c +--- a/src/scripting/ruby/core.c 2009-07-07 13:23:17.000000000 +0100 ++++ b/src/scripting/ruby/core.c 2012-09-10 18:27:05.000000000 +0100 +@@ -76,10 +76,10 @@ erb_report_error(struct session *ses, in + break; + case TAG_RAISE: + case TAG_FATAL: +- eclass = CLASS_OF(ruby_errinfo); +- einfo = rb_obj_as_string(ruby_errinfo); ++ eclass = CLASS_OF(RB_ERRINFO); ++ einfo = rb_obj_as_string(RB_ERRINFO); + +- if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) { ++ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) { + msg = "unhandled exception"; + + } else { +@@ -88,7 +88,7 @@ erb_report_error(struct session *ses, in + + epath = rb_class_path(eclass); + snprintf(buff, MAX_STR_LEN, "%s: %s", +- RSTRING(epath)->ptr, RSTRING(einfo)->ptr); ++ RSTRING_PTR(epath), RSTRING_PTR(einfo)); + + p = strchr(buff, '\n'); + if (p) *p = '\0'; +@@ -115,7 +115,7 @@ erb_module_message(VALUE self, VALUE str + unsigned char *message, *line_end; + + str = rb_obj_as_string(str); +- message = memacpy(RSTRING(str)->ptr, RSTRING(str)->len); ++ message = memacpy(RSTRING_PTR(str), RSTRING_LEN(str)); + if (!message) return Qnil; + + line_end = strchr(message, '\n'); +@@ -162,8 +162,8 @@ erb_stdout_p(int argc, VALUE *argv, VALU + * the inspect() method, which adds quotes to the strings, so + * gently ignore them. */ + +- ptr = RSTRING(substr)->ptr; +- len = RSTRING(substr)->len; ++ ptr = RSTRING_PTR(substr); ++ len = RSTRING_LEN(substr); + + if (*ptr == '"') + ptr++, len--; +diff -urp a/src/scripting/ruby/core.h b/src/scripting/ruby/core.h +--- a/src/scripting/ruby/core.h 2009-07-07 13:23:17.000000000 +0100 ++++ b/src/scripting/ruby/core.h 2012-09-10 18:26:25.000000000 +0100 +@@ -7,6 +7,20 @@ struct session; + + #include /* for VALUE */ + ++#ifndef RSTRING_LEN ++#define RSTRING_LEN(string) (RSTRING(string)->len) ++#endif ++ ++#ifndef RSTRING_PTR ++#define RSTRING_PTR(string) (RSTRING(string)->ptr) ++#endif ++ ++#ifdef HAVE_RB_ERRINFO ++#define RB_ERRINFO (rb_errinfo()) ++#else ++#define RB_ERRINFO (ruby_errinfo) ++#endif ++ + VALUE erb_module; + + void alert_ruby_error(struct session *ses, unsigned char *msg); +diff -urp a/src/scripting/ruby/hooks.c b/src/scripting/ruby/hooks.c +--- a/src/scripting/ruby/hooks.c 2009-07-07 13:23:17.000000000 +0100 ++++ b/src/scripting/ruby/hooks.c 2012-09-10 17:53:48.000000000 +0100 +@@ -83,7 +83,7 @@ script_hook_goto_url(va_list ap, void *d + { + unsigned char *new_url; + +- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len); ++ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result)); + if (new_url) { + mem_free_set(url, new_url); + } +@@ -126,7 +126,7 @@ script_hook_follow_url(va_list ap, void + { + unsigned char *new_url; + +- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len); ++ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result)); + if (new_url) { + mem_free_set(url, new_url); + } +@@ -170,9 +170,9 @@ script_hook_pre_format_html(va_list ap, + switch (rb_type(result)) { + case T_STRING: + { +- int len = RSTRING(result)->len; ++ int len = RSTRING_LEN(result); + +- add_fragment(cached, 0, RSTRING(result)->ptr, len); ++ add_fragment(cached, 0, RSTRING_PTR(result), len); + normalize_cache_entry(cached, len); + + break; +@@ -216,7 +216,7 @@ script_hook_get_proxy(va_list ap, void * + { + unsigned char *proxy; + +- proxy = memacpy(RSTRING(result)->ptr, RSTRING(result)->len); ++ proxy = memacpy(RSTRING_PTR(result), RSTRING_LEN(result)); + if (proxy) { + mem_free_set(new_proxy_url, proxy); + } diff --git a/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch b/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch new file mode 100644 index 000000000000..ee2e5e8d633f --- /dev/null +++ b/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch @@ -0,0 +1,124 @@ +--- a/src/scripting/smjs/action_object.c 2012-06-28 11:46:58.000000000 -0400 ++++ b/src/scripting/smjs/action_object.c 2012-06-28 11:52:42.000000000 -0400 +@@ -50,7 +50,7 @@ + assert(smjs_ctx); + if_assert_failed return JS_FALSE; + +- value = JS_FALSE; ++ value = JSVAL_FALSE; + + if (JS_TRUE != JS_ValueToObject(ctx, argv[-2], &fn_obj)) { + JS_SET_RVAL(ctx, rval, value); +@@ -76,7 +76,7 @@ + + do_action(hop->ses, hop->action_id, 1); + +- value = JS_TRUE; ++ value = JSVAL_TRUE; + JS_SET_RVAL(ctx, rval, value); + + return JS_TRUE; +--- a/src/scripting/smjs/bookmarks.c 2012-06-28 11:57:40.000000000 -0400 ++++ b/src/scripting/smjs/bookmarks.c 2012-06-28 12:08:20.000000000 -0400 +@@ -250,11 +250,20 @@ + + /* @bookmark_folder_class.getProperty */ + static JSBool ++#if JS_VERSION >= 185 ++bookmark_folder_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp) ++#else + bookmark_folder_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) ++#endif + { + struct bookmark *bookmark; + struct bookmark *folder; + unsigned char *title = NULL; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + /* This can be called if @obj if not itself an instance of the + * appropriate class but has one in its prototype chain. Fail +--- a/src/scripting/smjs/elinks_object.c 2012-06-28 12:11:15.000000000 -0400 ++++ b/src/scripting/smjs/elinks_object.c 2012-06-28 12:14:50.000000000 -0400 +@@ -185,7 +185,7 @@ + method, rval)) + return JS_FALSE; + +- if (JSVAL_VOID == *rval) ++ if (JSVAL_IS_VOID(*rval)) + return JS_FALSE; + + return JS_CallFunctionValue(smjs_ctx, smjs_elinks_object, +--- a/src/scripting/smjs/globhist.c 2012-06-28 12:20:25.000000000 -0400 ++++ b/src/scripting/smjs/globhist.c 2012-06-28 12:20:15.000000000 -0400 +@@ -201,11 +201,20 @@ + + /* @smjs_globhist_class.getProperty */ + static JSBool +-smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) ++#if JS_VERSION >= 185 ++smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp) ++#else ++smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) ++#endif + { + JSObject *jsobj; + unsigned char *uri_string; + struct global_history_item *history_item; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + uri_string = JS_EncodeString(ctx, JS_ValueToString(ctx, id)); + if (!uri_string) goto ret_null; +--- a/src/scripting/smjs/keybinding.c 2012-06-28 12:21:39.000000000 -0400 ++++ b/src/scripting/smjs/keybinding.c.new 2012-06-28 12:48:00.000000000 -0400 +@@ -17,11 +17,20 @@ + + /* @keymap_class.getProperty */ + static JSBool +-keymap_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) ++#if JS_VERSION >= 185 ++keymap_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp) ++#else ++keymap_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) ++#endif + { + unsigned char *action_str; + const unsigned char *keystroke_str; + int *data; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + /* This can be called if @obj if not itself an instance of the + * appropriate class but has one in its prototype chain. Fail +@@ -70,11 +79,20 @@ + + /* @keymap_class.setProperty */ + static JSBool +-keymap_set_property(JSContext *ctx, JSObject *obj, jsid id, JSBool strict, jsval *vp) ++#if JS_VERSION >= 185 ++keymap_set_property(JSContext *ctx, JSObject *obj, jsid iid, JSBool strict, jsval *vp) ++#else ++keymap_set_property(JSContext *ctx, JSObject *obj, jsval id, JSBool strict, jsval *vp) ++#endif + { + int *data; + unsigned char *keymap_str; + const unsigned char *keystroke_str; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + /* This can be called if @obj if not itself an instance of the + * appropriate class but has one in its prototype chain. Fail diff --git a/www-client/elinks/files/elinks-0.12pre5-spidermonkey-callback.patch b/www-client/elinks/files/elinks-0.12pre5-spidermonkey-callback.patch new file mode 100644 index 000000000000..b48ddaeecc47 --- /dev/null +++ b/www-client/elinks/files/elinks-0.12pre5-spidermonkey-callback.patch @@ -0,0 +1,12 @@ +diff -Naurp elinks-0.12pre5-orig/src/ecmascript/spidermonkey.c elinks-0.12pre5/src/ecmascript/spidermonkey.c +--- elinks-0.12pre5-orig/src/ecmascript/spidermonkey.c 2011-06-12 01:03:02.427000686 +0200 ++++ elinks-0.12pre5/src/ecmascript/spidermonkey.c 2011-06-12 01:03:31.368000736 +0200 +@@ -130,7 +130,7 @@ setup_safeguard(struct ecmascript_interp + JSContext *ctx) + { + interpreter->exec_start = time(NULL); +- JS_SetBranchCallback(ctx, safeguard); ++ JS_SetOperationCallback(ctx, safeguard); + } + + diff --git a/www-client/elinks/files/elinks-9999-parallel-make.patch b/www-client/elinks/files/elinks-9999-parallel-make.patch new file mode 100644 index 000000000000..86aea5588a2f --- /dev/null +++ b/www-client/elinks/files/elinks-9999-parallel-make.patch @@ -0,0 +1,51 @@ +--- a/Makefile.lib 2014-05-30 13:45:11.756422117 -0400 ++++ b/Makefile.lib 2014-05-30 13:47:22.626423230 -0400 +@@ -117,7 +117,7 @@ + $(sort $(filter-out $(LIB_O_NAME),$(OBJS))) \ + $(foreach subdir,$(sort $(SUBDIRS)),$(wildcard $(subdir)/$(LIB_O_NAME))) + +-$(LIB_O_NAME): $(LIB_O_DEPS) ++$(LIB_O_NAME): all-recursive.built $(LIB_O_DEPS) + $(call cmd,ld_objs) + + DEP_FILES_1 = $(foreach src,$(OBJS),.deps/$(src)) +@@ -260,21 +260,36 @@ + # remaining subdirectories, but return an error at the end. + $(RULES_REC): + ifneq (,$(findstring k,$(MAKEFLAGS))) +- @suberr=0; \ ++ @+suberr=0; \ + $(foreach subdir,$(sort $(SUBDIRS)), \ + $(call ncmd,recmake,$(subdir),$(subst -recursive,,$@)) || suberr=1;) \ + exit $$suberr + else +- @$(foreach subdir,$(sort $(SUBDIRS)), \ ++ @+$(foreach subdir,$(sort $(SUBDIRS)), \ + $(call ncmd,recmake,$(subdir),$(subst -recursive,,$@)) || exit 1;) + endif + ++all-recursive.built: ++ifneq (,$(findstring k,$(MAKEFLAGS))) ++ @+suberr=0; \ ++ $(foreach subdir,$(sort $(SUBDIRS)), \ ++ $(call ncmd,recmake,$(subdir),$(subst -recursive.built,,$@)) || suberr=1;) \ ++ [ $$suberr == 0 ] && touch $@; \ ++ exit $$suberr ++else ++ @+$(foreach subdir,$(sort $(SUBDIRS)), \ ++ $(call ncmd,recmake,$(subdir),$(subst -recursive.built,,$@)) || exit 1;) \ ++ touch $@ ++endif ++ ++CLEAN += all-recursive.built ++ + # Dummy -local rules + $(RULES_LOCAL): + + # Default deps + rule_deps = $(1)-recursive $(1)-default $(1)-local +-all: $(call rule_deps,all) ++all: $(subst recursive,recursive.built,$(call rule_deps,all)) + install: $(call rule_deps,install) + clean: $(call rule_deps,clean) + cleanall: $(call rule_deps,cleanall) -- cgit v1.2.3