Need help with easymake?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

roxma
125 Stars 17 Forks 17 Commits 2 Opened issues

Description

A handy makefile for simple C/C++ applications

Services available

!
?

Need anything else?

Contributors list

# 68,094
PureScr...
deoplet...
Neovim
viml
17 commits

Easymake

Introduction

Easymake is a handy makefile for C/C++ applications on Linux system. For simple applications, you don’t even need to write a single line of makefile code to build your target with easymake.

Features description:

  • Finds and compiles all C/C++ source files in the directory recursively (optional). Places the object files and target files in a separate directory.
  • Only re-compiles the changed and affected source files. That is, if you modify your header
    foo.h
    , all your source files with
    #include "foo.h"
    will be re-compiled.
  • Supports Simple unit testing.
  • Handles more than one entry point in the project.
  • Support both static library(libfoo.a) and shared library(libfoo.so) building.
  • Simple third party dependencis management.

NOTICE: Easymake is designed to be easy to use on simple applications, not as a highly flexible or extensible template. If you want more customization, you might need to look for a small and simple example for start.

Getting Started

Basics

git clone https://github.com/roxma/easymake
cd easymake/samples/basics
cp ../../easymake.mk Makefile
make
./bin/add  # if you rename add.cpp to myprogram.cpp, then you get ./bin/myprogram.cpp

basics

Unit Testing

Files with

*_test.cpp
or
*_test.c
pattern will be used for testing (inspired by golang).

unit_test

Multi Entries

multi_entries

Options

Easymake is trying to follow the Makefile Conventions (1) (2). The following options are supported.

  • CFLAGS
    Extra flags to give to the C compiler.
  • CXXFLAGS
    Extra flags to give to the C++ compiler.
  • LDFLAGS
    Extra flags to give to compilers when they are supposed to invoke the linker
  • LDLIBS
    Library flags or names given to compilers when they are supposed to invoke the linker
  • ARFLAGS
    Flags to give the archive-maintaining program; default
    cr

Recommended Style

In the GIFs, I simply copy

easymake.mk
into my souce code directory as a makefile. However, for code simplicity, I recommend the following style:
CXXFLAGS=-O2

other options

...

include /path/to/easymake.mk

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.