Skip to content

l4l/EasyMake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyMake

EasyMake is a simple compilation tool mainly for C-projects

Assume you have some project tree like this:

my-project
├── include
│   ├── other-api.h
│   └── srv-api.h
├── src
│   ├── cmd.c
│   ├── io
│   │   ├── buffer.c
│   │   └── cache.c
│   ├── main.c
│   └── net
│       ├── server.c
│       └── sys-dep.c
└── test
    ├── cmd-test.c
    ├── io
    │   ├── buffer-test.c
    │   └── cache-test.c
    └── net
        └── server-test.c

Pretty usual for c-like proj, huh? The reason of this tool is just one-python-file (and optionally some config files). It can handle this projects and produce (at unix) following build structure:

bin
├── libio.so
├── libnet.so
└── my-project
build
├── cmd.o
├── io
│   ├── buffer.o
│   └── cache.o
├── main.o
└── net
    ├── server.o
    └── sys-dep.o

Env variables

Default tools, flags, project dir, etc can be changed via environment variables. Most of them has prefix EM_ to the common name. Here is the list:

  • EM_CC - compiler
  • EM_EXT - extension (e.g '*.c')
  • EM_CFLAGS - flags for compilation
  • EM_LDFLAGS - flags for linking
  • EM_BUILD - building directory
  • EM_DIST - binary directory
  • EM_SRC - source file directory (e.g src/)
  • EM_PROJ - project root

About

Stop suffering from makefile-s

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages