MakeMake is a simple script for the soul purpose of creating a Makefile for my projects
MakeMake configuration file is written in JSON
The following sections are supported at this time and are the only sections that will be parsed
globals
: Its purpose it to define variables that you might use in the config file, you can access them by following this syntax:$(<global-name>)
. Note global variables can also be defined in other sections and they will follow this syntax:$(<section-name>.<name>)
.settings
: Its purpose is to define certain settings that MakeMake usessrc-c-dir
The directory to your C source filessrc-cpp-dir
The directory to your C++ soruce filesout-type
The type of the output (currently onlyexecutable
is supported)libraries-dir
this section is required only when thedependencies
section is specified
executable
A section that is required only when theout-type
isexecutable
name
the name of the executable
archive
A section that is required only when theout-type
isarchive
name
the name of the archive
cxx
Its purpose is to define compiler related argumentsstandard
The C++ standardcompiler
The compilerbuild-dir
The directory where the object files will be storedflags
A array with the flags that the compiler will use
include-dirs
A list of the include directories for your projectlibrary-dirs
A list of the directories for the librarieslibraries
The libraries that the executable will be linked againstsource-files
A list for your source filesdirectories-to-create
A list of directories that make will need to create for this program to function properly. It is suggested to add at least thebuild-dir
directory.dependencies
this section specifies a list of dependencies that will be built with thearchive
out-type
. To use this functionality it is required to set thesettings.out-type
to archive in the local config file and specifysettings.libraries-dir
in your main config file.dependencies
section is an object that holds the path to the configuration file with an optional parameterglobals
that specifies global variables that you want the local config file to use warning these globals needs to have unique names otherwise theglobals
section in your local configuration file will override them