GithubHelp home page GithubHelp logo

dalalsunil1986 / beelzebub Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vercas/beelzebub

0.0 0.0 0.0 4.34 MB

The Lord of Files - A hobby operating system

License: Other

C 17.50% C++ 74.20% Assembly 1.93% Makefile 1.73% Batchfile 0.01% Shell 0.11% Lua 4.47% SourcePawn 0.07%

beelzebub's Introduction

Beelzebub Build Status

Building

Currently, Beelzebub requires the following to be built:

  1. GNU Make or vMake
  2. genisoimage (aka mkisofs)
  3. GCC targetting Beelzebub
  4. GNU Binutils targetting Beelzebub
  5. gzip and tar utilities.

Make or vMake are required for the whole process.
genisoimage is required for constructing an ISO file. You can skip this if you really want, but should you?
GCC is the only compiler supported right now. This will likely change in the future.
GNU Binutils is required (used indirectly through GCC) for binary linkage, binary stripping, and by accompanying utilitary scripts.

Use the links above to acquire the cross-compiler required to build Beelzebub. Don't forget to place the tools where they need to be.
The compiler paths are partially hardcoded into the makefiles, for now. Sorry.
You may use the grab_xcs_linux-amd64.sh file for more specific instructions.

Also, your output file of interest is /build/beelzebub.amd64.x86.iso when using GNU Make, or .vmake\amd64.debug\beelzebub.amd64.debug.iso when using vMake.

vMake

I have written my own build system to tackle the complex task of assembling, compiling, linking, archiving, compressing, copying, and all the miscellaneous operations involved in building the OS, as well as configuring the build.

As of right now, the build system is stable and usable, supports all the features of GNU Make that Beelzebub's makefiles use, and provides the same options which the makefiles emulated through targets.

It requires Lua 5.1 or 5.2 installed, and can benefit greatly from having LFS (LuaFileSystem) available. In absence of LFS, it will simply use the find tool for every filesystem operation unavailable in ANSI C (and, thus, Lua).
Besides this, it only requires the tools that the makefiles use.

A simple way to build Beelzebub is to run ./vmakefile.lua. Providing the --help argument will show all the available options.
An example of a more complex invocation is ./vmakefile.lua -t all --mtune=corei7-avx -j 8, which includes all tests, tunes the output code for a specific CPU feature set and runs the build in parallel.

vMake is the preferred tool to build Beelzebub.

Makefiles

These are documented in MAKEFILES.md. These will be deprecated soon in favor of vMake.

Utility scripts

I have included some Bash scripts for grabbing the build tools, mainly for Travis.
For usage, check .travis.yml.

The cross-compiler and genisoimage are guarenteed to work on Ubuntu 12.04 and 14.04. It is very likely that it will work on all versions in-between, and other distros as well.

grab_xcs_linux-amd64.sh

This one obtains my pre-built cross-compilers for 64-bit Linux hosts. Feel free to use if you trust me and the security of my webserver.

grab_genisoimage.sh

This one grabs genisoimage. The binary comes from Ubuntu Server 14.04's package.

License

Mostly University of Illinois - NCSA Open Source License, text and exceptions explained in LICENSE.md.
TLDRLegal summary for those who seek legal advice on the internet.

beelzebub's People

Contributors

vercas avatar

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.