fmake

make any project just by typing `fmake`

commit a5f165ab5487ad54dea4503bf7fa48a6d646f6f1
parent db492bfec828f9b85c733b1319d6945001f9e01a
Author: Bharatvaj Hemanth <bharatvaj@yahoo.com>
Date: Wed, 18 Sep 2024 02:01:28 +0530

Update README, create entry for config.h section
1 file changed, 27 insertions(+), 5 deletions(-)
M
README
|
32
+++++++++++++++++++++++++++-----
diff --git a/README b/README
@@ -33,16 +33,15 @@ fmake automatically understands the following(and many more) sequences,
 and tries to run it one after the other
 
     $ cmake -Bout .
-    $ cd out
-    $ make
+    $ cmake --build out
 
     ----------(vs)----------
 
     $ fmake # You only have to type fmake!
     ++ cmake -Bout
-        ...
+    ...
     ++ cmake --build out
-        ...
+    ...
 
 fmake can be forced to re-run the generator using `fmake -2`
 

@@ -64,12 +63,35 @@ MSVC,
 Additionally 'type=release' can be passed to build as release.
 Default is debug.
 
+config.h
+--------
+config.h is a simple C header file, that contains a X macro which maps out the
+file to look for and the build command that understands the matched file.
+
+All entries have a level, which fmake utilizes to select a build methodology to
+use when multiple types are found in the same folder.
+
+An example would be GNU autotools,
+
+   file            level
+   configure.ac      3
+   configure         2
+   Makefile          1
+
+    $ ls
+    configure configure.ac src.c Makefile
+    $ fmake
+
+Here since the Makefile has the lowest level of 1, `make` is invoked.
+If you decide to delete the Makefile, `sh configure` is invoked, as `configure`
+is the next lowest level of value 2.
+
 FAQ
 ---
 > Why?
 "People disagree on priorities and therefore, you can't create
 the One & Only build system to end all other build systems."
-                                                - jasode (HN User)
+                                                - jasode (a HN user)
 
 fmake was born out of frustration with having to remember specific build
 commands for different software projects.