Git Product home page Git Product logo

ekaviel's Introduction

OVERVIEW
========

  'ekaviel' is a music player capable of playing SoundTracker and
OctaMED format music files. Supplementary tools include 'ekdump', which
reports on file structure and can extract samples from files, and
'eksfplay', which can play the individual samples dumped from files.


LICENSE
=======

   Open Source software - copyright and GPLv2 apply. Briefly:
	- No warranty/guarantee of fitness, use is at own risk
	- No restrictions on strictly-private use/copying/modification
	- No re-licensing this work under more restrictive terms
	- Redistributing? Include/offer to deliver original source
   Philosophy/full details at http://www.gnu.org/copyleft/gpl.html


ABOUT THE BUILD
===============

  The 'ekaviel', 'ekdump', and 'eksfplay' programs can be built
individually by name or together with `make all`. By default, binaries
are created in the directory 'build-temp'.

  Feature support provided by defines in the code is ultimately
controlled by variables specified in the top-level file 'config.mh'.
For example, the line containing "HAVE_FILEIO:=y" causes the build
system to favour an audio wrapper that writes to file over one that
uses hardware. For this particular case, the script 'mkwav' has been
provided for conversion of the resulting raw audio dump into other
(self-describing) audio formats (via the 'sox' utility, which needs
to be installed separately).


DESIGN NOTES
============

General:
- source shall not exist in the top level directory
- builds shall not take place in the source tree (treat it read-only)
- builds shall not create their final targets in the top level

The top level makefile:
- shall define at least the virtual targets 'help', 'default', and 'all'
- shall define the virtual target 'default' first, with a sensible result
- shall define rules to make temporary directories
- shall 'include' new build rules via 'include' files in source tree
- making 'clean' shall remove temporary files, leaving "installable" ones
- making 'realclean' shall remove the build tree (not source/top level)

Include files for final executables/libraries:
- shall have a virtual target as an entry point
- shall have rules for only real-file targets otherwise
- shall have local variables for defines/includes/link flags
- shall make other 'includes' for associated library targets/define settings
- shall auto-generate a dependency file if complexity warrants

Executables/libraries with auto-generated dependency files:
- dependency generation shall use all relevant local define/include variables
- the "entry point" build rule shall directly prompt build of dependencies
- shall directly include the dependency file, after an existence test
- shall use ${MAKE} in virtual target to build 'include'd real-file targets

Executables/libraries without dependencies:
- the "entry point" rule shall prompt compilation of the final output file

ekaviel's People

Contributors

williamtowle 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.