LisaList2

Advanced search  

News:

2019.06.07 fixed NChat for the "Curve" theme, will eventually move it to its own page and add it to the default theme as well. Other plugins are next. see post in the Meta board for details

Pages: [1]   Go Down

Author Topic: LisaEm repo moved, new bashbuild build system added  (Read 269 times)

rayarachelian

  • Administrator
  • Sr. Member
  • *****
  • Karma: +7/-0
  • Offline Offline
  • Posts: 159
  • "But what's puzzling you is the nature of my game"
    • LisaEm
LisaEm repo moved, new bashbuild build system added
« on: December 15, 2019, 01:11:06 pm »

I've moved the git repo to here: https://github.com/rayarachelian/lisaem

It's effectively the same code base as the last release, except that the build scripts have been replaced with an much more updated form of the build system from LisaEm 1.3.0.
Bashbuild is intended as a general replacement to autotools for my various projects and not intended to be LisaEm only. Over time I'll add more features to it and spin it off in its own repo and give it more support.

This is a more modular build script set, which allows for parallel compiling and better source code organization. The source code tree is organized similar to the very first source code for LisaEm that I threw away, that is the folder structure matches the physical hardware of an actual Lisa (i.e. you can find the Zilog SCC, VIA, and floppy code underneath the src/lisa/io_board directory, the MMU code under the cpu_board directory and so on).
The README.md for bashbuild can be found here: https://github.com/rayarachelian/lisaem/tree/master/bashbuild and describes how it works if you're curious. This build system uses good old bash (Bourne Again Shell), soft links, etc. to create a holographic or fractal, build environment. (By holographic, I mean that if you're sitting in a directory somewhere, say the bin directory, you can issue build commands that will still work because there's a link to an interim build script that goes up a directory and passes your parameters to the build script one directory higher. Also the you can contain sub builds inside your package, such as libraries or tools: see libdc42, libGenerator, and the tools directories. At each level there is a set of src, lib. obj, bin, and src/include bashbuild directories or links as appropriate, much like how holograms that are cut in half still retain the properties of the whole, or how zooming in to a fractal shows you self-similar things.)

I've also started adding builds for Windows via Cygwin, but these don't yet work - the executable is produced, but it's not statically linked, and fails to startup, so needs some debugging. If you're familiar with mingw and writing code on Windows, I'd very much welcome a bit of debugging help there.There are scripts inside the scripts directory to help install Cygwin packages including the mingw compiler, and once Cygwin is installed a download script inside the scripts folder can be used to download pre-compiled wxmsw headers and libraries which can be used to build under Cygwin.

There is a provision to allow targeting LisaEm for Cygwin itself, though this hasn't been fleshed out, so if for some reason you'd want to run LisaEm as a Cygwin application, rather than as a native Windows application, this will be eventually provided for.

In terms of macos or linux, the source code itself is effectively the same as that of the previous alpha released in the old github repo, except perhaps it gets rid of some warnings, and other such minor fixes.

There may be some future issues with macos, it seems Apple might get rid of bash, but I'm relying on the fact that homebrew will be used to install bash and anything else missing, including the XCode command line tools. (If Apple manages to kill off homebrew, I expect that either something else will replace homebrew or macos itself will be abandoned by developers and DevOps folks such as myself.) I don't know whether zsh is compatible enough with bash to allow bashbuild to work, I suppose this can be tested out in the future, but there are some very heavy bashisms that I rely on, including that doing source script.sh foo bar baz quux will provide $1="foo" .. $4="quux" to script.sh for example.
-- Cheers.
Logged
Fate whispers to the warrior, 'You can not withstand the storm.'  The warrior whispers back, 'I am the storm.'

rayarachelian

  • Administrator
  • Sr. Member
  • *****
  • Karma: +7/-0
  • Offline Offline
  • Posts: 159
  • "But what's puzzling you is the nature of my game"
    • LisaEm
Re: LisaEm repo moved, new bashbuild build system added
« Reply #1 on: December 16, 2019, 09:30:45 pm »

I've managed to produce a somewhat working lisaem.exe, it doesn't seem to find the skins, but likely just needs to be installed.
Looks like I can't use the pre-build wxmsw libs, have to compile them under Cygwin the same way as under Linux, but with target type msw.

Had to also add -mconsole for the tools and -mwindows for LisaEm itself and a bunch of other stuff.
Logged
Fate whispers to the warrior, 'You can not withstand the storm.'  The warrior whispers back, 'I am the storm.'

rayarachelian

  • Administrator
  • Sr. Member
  • *****
  • Karma: +7/-0
  • Offline Offline
  • Posts: 159
  • "But what's puzzling you is the nature of my game"
    • LisaEm
Re: LisaEm repo moved, new bashbuild build system added
« Reply #2 on: December 25, 2019, 01:02:59 pm »

I just pushed some fixes to https://github.com/rayarachelian/lisaem/

Cleaned up a bunch of stuff and fixed builds on both Windows and macos X. Both now install properly. There are still some bugs. Windows crashes on the hq3x renderer, and quits (I think on sound), but can now find its resources. Also cleaned up the old upper case function names in bashbuild that were a holdover from the 1.3.0 days.

So getting a bit closer to BETA now. Will try to debug windows some more and then return to fixing the missing features/bugs until all 1.2.7 desired features are done, then will close this. Want to add pty/tty/serial port support and fix the skinless modes too before turning this to beta.
« Last Edit: December 25, 2019, 01:08:13 pm by rayarachelian »
Logged
Fate whispers to the warrior, 'You can not withstand the storm.'  The warrior whispers back, 'I am the storm.'
Pages: [1]   Go Up