diff --git a/recipes/dev/gnu-make/make.patch b/recipes/dev/gnu-make/make.patch
deleted file mode 100644
index ca146c8b321754e9a8fef15dc32a04b176e6749e..0000000000000000000000000000000000000000
--- a/recipes/dev/gnu-make/make.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-diff -ru make-4.2/config/config.sub make-4.2-new/config/config.sub
---- make-4.2/config/config.sub	2018-11-16 21:11:15.392794814 -0700
-+++ make-4.2-new/config/config.sub	2018-11-16 21:11:37.922637742 -0700
-@@ -1376,7 +1376,7 @@
- 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
--	      | -sym* | -kopensolaris* | -plan9* \
-+	      | -sym* | -kopensolaris* | -plan9* | -redox* \
- 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- 	      | -aos* | -aros* | -cloudabi* | -sortix* \
- 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-diff -ru make-4.2/getopt1.c make-4.2-new/getopt1.c
---- make-4.2/getopt1.c	2018-11-16 21:11:15.408796156 -0700
-+++ make-4.2-new/getopt1.c	2018-11-16 21:11:37.922637742 -0700
-@@ -48,6 +48,8 @@
- #endif
- #endif
- 
-+#define ELIDE_CODE
-+
- #ifndef ELIDE_CODE
- 
- 
-diff -ru make-4.2/getopt.c make-4.2-new/getopt.c
---- make-4.2/getopt.c	2018-11-16 21:11:15.384794143 -0700
-+++ make-4.2-new/getopt.c	2018-11-16 21:11:37.922637742 -0700
-@@ -56,6 +56,8 @@
- # endif
- #endif
- 
-+#define ELIDE_CODE
-+
- #ifndef ELIDE_CODE
- 
- 
-diff -ru make-4.2/glob/fnmatch.c make-4.2-new/glob/fnmatch.c
---- make-4.2/glob/fnmatch.c	2018-11-16 21:11:15.384794143 -0700
-+++ make-4.2-new/glob/fnmatch.c	2018-11-16 21:11:53.311846128 -0700
-@@ -477,6 +477,7 @@
- }
- 
- 
-+/*
- int
- fnmatch (pattern, string, flags)
-      const char *pattern;
-@@ -485,5 +486,6 @@
- {
-   return internal_fnmatch (pattern, string, flags & FNM_PERIOD, flags);
- }
-+*/
- 
- #endif	/* _LIBC or not __GNU_LIBRARY__.  */
-diff -ru make-4.2/glob/glob.c make-4.2-new/glob/glob.c
---- make-4.2/glob/glob.c	2018-11-16 21:11:15.384794143 -0700
-+++ make-4.2-new/glob/glob.c	2018-11-16 21:11:37.926638062 -0700
-@@ -625,9 +625,9 @@
- #else
-           const char *home_dir = getenv ("HOME");
- #endif
--# ifdef _AMIGA
-+# if 1
- 	  if (home_dir == NULL || home_dir[0] == '\0')
--	    home_dir = "SYS:";
-+	    home_dir = "/home/user";
- # else
- #  ifdef WINDOWS32
- 	  if (home_dir == NULL || home_dir[0] == '\0')
-@@ -717,7 +717,7 @@
- 	      dirname = newp;
- 	    }
- 	}
--# if !defined _AMIGA && !defined WINDOWS32 && !defined VMS
-+# if 0
-       else
- 	{
- 	  char *end_name = strchr (dirname, '/');
-diff -ru make-4.2/job.c make-4.2-new/job.c
---- make-4.2/job.c	2018-11-16 21:11:15.380793809 -0700
-+++ make-4.2-new/job.c	2018-11-16 21:11:37.926638062 -0700
-@@ -1038,7 +1038,7 @@
- void
- block_sigs (void)
- {
--#ifdef POSIX
-+#if 0
-   (void) sigprocmask (SIG_BLOCK, &fatal_signal_set, (sigset_t *) 0);
- #else
- # ifdef HAVE_SIGSETMASK
-@@ -1051,9 +1051,11 @@
- void
- unblock_sigs (void)
- {
-+/*
-   sigset_t empty;
-   sigemptyset (&empty);
-   sigprocmask (SIG_SETMASK, &empty, (sigset_t *) 0);
-+*/
- }
- #endif
- 
-diff -ru make-4.2/read.c make-4.2-new/read.c
---- make-4.2/read.c	2018-11-16 21:11:15.384794143 -0700
-+++ make-4.2-new/read.c	2018-11-16 21:11:37.926638062 -0700
-@@ -2937,7 +2937,7 @@
-           free (home_dir);
-           home_dir = getenv ("HOME");
-         }
--# if !defined(_AMIGA) && !defined(WINDOWS32)
-+# if 0
-       if (home_dir == 0 || home_dir[0] == '\0')
-         {
-           char *logname = getlogin ();
-@@ -2958,7 +2958,7 @@
-           return new;
-         }
-     }
--# if !defined(_AMIGA) && !defined(WINDOWS32)
-+# if 0
-   else
-     {
-       struct passwd *pwent;
diff --git a/recipes/dev/gnu-make/recipe.sh b/recipes/dev/gnu-make/recipe.sh
deleted file mode 100644
index e884b055a747f82ec5c53797a981c8c51519cfb8..0000000000000000000000000000000000000000
--- a/recipes/dev/gnu-make/recipe.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-VERSION=4.2.1
-TAR=https://ftp.gnu.org/gnu/make/make-$VERSION.tar.gz
-
-function recipe_version {
-    echo "$VERSION"
-    skip=1
-}
-
-function recipe_build {
-    export CFLAGS="-DPOSIX -DNO_ARCHIVES -DNO_OUTPUT_SYNC"
-    export LDFLAGS="-static"
-    ./configure \
-        --build=${BUILD} \
-        --host=${HOST} \
-        --prefix=/ \
-        --without-guile
-    "$REDOX_MAKE" -j"$($NPROC)"
-    skip=1
-}
-
-function recipe_clean {
-    "$REDOX_MAKE" clean
-    skip=1
-}
-
-function recipe_stage {
-    dest="$(realpath $1)"
-    "$REDOX_MAKE" DESTDIR="$dest" install
-    skip=1
-}
diff --git a/recipes/dev/gnu-make/recipe.toml b/recipes/dev/gnu-make/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..0698ffd275cd7b1edb08b9d4b0ab929e1d2e3505
--- /dev/null
+++ b/recipes/dev/gnu-make/recipe.toml
@@ -0,0 +1,10 @@
+#TODO very basic makefiles are tested to work but needs more testing
+[source]
+tar = "http://ftp.gnu.org/gnu/make/make-4.4.tar.gz"
+patches = [
+    "redox.patch"
+]
+
+[build]
+template = "configure"
+
diff --git a/recipes/dev/gnu-make/redox.patch b/recipes/dev/gnu-make/redox.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1dba02da6293c7c8d3a0565964afd316eb92c8e7
--- /dev/null
+++ b/recipes/dev/gnu-make/redox.patch
@@ -0,0 +1,12 @@
+diff -ruwN make-4.4/src/arscan.c source/src/arscan.c
+--- make-4.4/src/arscan.c	2022-10-23 16:52:32.000000000 +0200
++++ source/src/arscan.c	2024-08-23 18:28:49.206084084 +0200
+@@ -331,7 +331,7 @@
+ #endif
+ 
+ #ifndef WINDOWS32
+-# if !defined (__ANDROID__) && !defined (__BEOS__)
++# if 0
+ #  include <ar.h>
+ # else
+    /* These platforms don't have <ar.h> but have archives in the same format