marcIhm / yabasic

Yabasic - A simple Basic interpreter for Unix and Windows
http://www.yabasic.de
MIT License
90 stars 17 forks source link

** Directory 'unix'

Here are most of the c-sources of yabasic as well as the input files for flex and bison, which describe yabasics grammer.

Also find the documentation, which is written in docbook-xml and transformed into html or man.

** Directory 'windows'

The build process uses the c-sources from the unix-directory, so here you will only find the sources for the windows-specific setup-program.

** Directory 'web'

The html-Files and erb-templates for www.yabasic.de.

Building a new version of the website (by typing 'rake') is tested under windows (wsl), but should be workable under unix too.

** Building under Unix

*** The simple and most common case: Building yabasic 'as is'

This builds from the tar-ball available at www.yabasic.de or from
https://github.com/marcIhm/yabasic

If you just want to build yabasic from the sources, but do *not* want to modify yabasic
(e.g. by adding new commands) the procedure is fairly simple: Just go to www.yabasic.de
and download the latest tar-file with sources, e.g. yabasic-2.90.2.tar.gz (as of this
writing) and follow the instructions given on the download-page (essentially it is the
usual configure and make).

As tools you will need make, a c-compiler, various libraries and header files
(e.g. curses and x11, libffi is optional). Let the configure-process be your guide; it
will barf on anything missing.

Please note, that you *not* need are the Autotools (autoconf, automake).

Finally note, that this building process does *not* involve cloning the github-repo (as
you might have already done, when reading this).

*** The complex case: Changing yabasic and building it

This builds from the repo available at https://github.com/marcIhm/yabasic

There are some reasons, for which you may want to *modify* yabasic: E.g. change the
grammar, add commands, build on exotic platforms, change the documentation; see
http://www.yabasic.de/changing.html for some more hints.

To build after such modifications, you will probably need more tools and experience than
in the simple case above (but still feel free to contact me for any Problems).

Additional tools needed are: autoconf, automake, bison, flex, ruby.

As you probably have different versions of the Autotools than the maintainer, you
probably need to do this:

- automake --add-missing ## may give errors, but never mind
- autoreconf

After that you may do the usual

- ./configure
- make

This will create a binary named "yabasic"

If want to build rpms and and deb-packages and run additional tests (which is scripted
in a ruby Rakefile), you will need to

- install ruby (if not already present on your system)
- rake

The invocation of rake also moves the artefacts into the folder
/work/yabasic/prodcts. If you have a machine with both linux and windows, this folder
can be shared between both operating systems.

** Building under Windows

Yabasic is be compiled with Visual Studio 2019, which can be installed free of charge.

All steps are automated with rake (ruby make); so typically you just need to invoke rake, which e.g. invokes the Visual Studio C-Compiler in turn.

** Notes for the maintainer of yabasic

To update the table of content for this file, invoke 'toc-org-insert-toc'.

To build yabasic both under Unix and Windows and to update the website www.yabasic.de, go through the steps below. The process is mostly automated, only asking for confirmation at certain key-points. Depending on your changes and desired products, you may be able to skip certain steps.

(Type "rake h" to read this text again from within any directory)

All steps are done from within wsl (windows subsystem for linux), only the directory changes.