fmake

make any project just by typing `fmake`
git clone git@getsh.org:fmake.git
Log | Files | Refs | README | LICENSE

README (1988B)


      1 fmake
      2 =====
      3  ______________________________ 
      4 | > C:\AndroidApp\        - o x|
      5 |------------------------------|
      6 | $ fmake                      |
      7 | ++ gradle buildDebug         |
      8 !______________________________!
      9 
     10 fmake is a tool that brings `make`s interface to almost any build system.
     11 
     12 fmake offers a functionality similar to vim's makeprg, but does so in a
     13 way that it can be used in various other programs and applications.
     14 
     15 fmake "intelligently" knows what targets to build and can be
     16 configured in the config.h file.
     17 
     18 Usage
     19 -----
     20 
     21 fmake [options] [target] ...
     22 Options:
     23   -?            Prints fmake usage
     24   -1|2|3        Force fmake to start from the level specified
     25   -C path       Change to directory before calling the programs
     26   -D            Print various types of debugging information.
     27   -N            Don't actually run any build commands; just print them.
     28   -V            Print the version number of make and exit.
     29 
     30 Build Chains
     31 ------------
     32 fmake automatically understands the following(and many more) sequences,
     33 and tries to run it one after the other
     34 
     35 	$ cmake -Bout .
     36 	$ cd out
     37 	$ make
     38 
     39 --------(vs)----------
     40 
     41     $ fmake    ------------------=> [ You only have to type fmake! ]
     42     ++ cmake -Bout
     43         ...
     44     ++ cmake --build out
     45 
     46 fmake can be forced to re-run the generator using `fmake -2`
     47 
     48 
     49 Supported build files
     50 ---------------------
     51 fmake queries filenames from `maker_config_t makers[]` defined in config.h.
     52 
     53 Building fmake
     54 --------------
     55 *NIX,
     56         $ make
     57         $ make install
     58 
     59 MSVC,
     60         * Open Developer Command Prompt *
     61         C:\fmake> nmake
     62 
     63 Additionally 'type=release' can be passed to build as release.
     64 Default is debug.
     65 
     66 FAQ
     67 ----
     68 > Why ?
     69 fmake was born out of my frustration with having to remember specific
     70 commands for every project I worked on.
     71 
     72 > Why default to 'out/' ?
     73 'out/' is preferred, as more and more projects are using the 'build'
     74 directory for other purposes like setting up CI/CD.
     75 
     76 See Also
     77 --------
     78 * errorformat by reviewdog