Giter VIP home page Giter VIP logo

allmake's Introduction

allmake V1.0.0

Description: The cross platform development toolkit - allmake
Author: John Deng ([email protected])
Updated 2015.12.12

allmake is a cross platform development toolkit for c/c++, it depends on make or automake, 
it easy to use. You can start without write any makefile, it generate the config file and 
source code for you, you just need to put your own source code under include and src folder.
allmake will compile it and generate binary or shared library depends on the command that 
your input.

allmake also is a convenient tool that cross compling third party source code for you, 
simply with three command lines.

Prerequisites:

Windows: 
	Make sure you have minsys / minsys2, or Cygwin installed

Linux: 
	Any linux distribution should work.

Mac OS X:
	Please install gcc first,
		brew install gcc	

Installation:

git clone https://github.com/allmake/allmake.git
cd allmake
sudo ./bin/allmake -i

If you wish to use your own compiler, just put it under the toolchain folder.

Getting started:

Afer installed allmake, reboot the computer.
Then allmake is ready to use, simply type below command to start you project,

*Generating c/c++ source code and Cross compiling a new project.

mkdir -p ~/workspace/demo
cd ~/workspace/demo
allmake add plat=x86_64-linux
allmake clean all release bin

./build/x86_64-linux-gnu/obj/demo

	You will see below message

	demo V1.0.0.151212


*Cross compiling third party source code for arm linux (arm-brcm-linux-gnueabi) using allmake 

	allmake add plat=the-keyword-of-compiler-folder-name-under-allmake-toolchain options='--enable-feature1 --with-libx'
	allmake configure
	allmake clean all install

1. add platform configurations (Do it only once)

zlib:
	allmake add plat=brcm exports='cc ar' cwd

openssl:
	allmake add plat=brcm exports='cc ar ld strip rainlib' options='shared no-asm -DL_ENDIAN linux-generic32' cwd

openssh:
	allmake add cross plat=brcm options='--with-libs --with-zlib=$prefix --with-ssl-dir=$prefix --disable-etc-default-login --prefix=/usr' exports='cc ar'

libffi:
	allmake add cross plat=brcm

glib:
	allmake add cross plat=brcm options='glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes ac_cv_lib_rt_clock_gettime=no glib_cv_monotoni c_clock=yes ZLIB_CFLAGS=-I$prefix/include ZLIB_LIBS="-L$prefix/lib -lz" LIBFFI_CFLAGS=-I$prefix/include LIBFFI_LIBS="-L$prefix/lib -lffi" '

libpng: (tip: install zlib to sysroot under toolchain first)
	allmake add cross plat=brcm

libjpeg:
	allmake add cross plat=brcm options='--enable-shared --disable-static'

2. configure
	allmake configure

3. make and install
	allmake clean all install

Usage:

The usage is as same as make but with more powerful features.

options:
	add     : add a new platform
	update  : update settings
	clean   : clean objects
	plat    : specify platform name under toolchian, you may just type the key word instead of whole name, without this option, allmake will make all platfroms.
	all     : make all source codes
	release : make release with O2 (optimization) option
	bin     : output binary, it will output shared library file (linux: .so, mac os x: .dylib, windows: .dll) without this option
	install : install target to ${ALLMAKE_HOME}/platfrom/
	plat    : specify platfrom, make single platform instead of all, e.g. allmake clean all plat=x86
	options : options for third party source code, e.g. allmake add plat=brcm options='--with-zlib --with-png '

Examples:      
	allmake add plat=x86
	allmake add winapi
	allmake update ver=1.0.1     
	allmake plat=x86 uiclean ui
	allmake plat=x86 clean
	allmake plat=x86 clean all
	allmake plat=x86 clean all install
	allmake plat=x86 install
	allmake plat=x86 clean all
	allmake plat=x86 clean all bin
	allmake plat=x86 clean all test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.