How to instal blitzmax properly

BlitzMax Forums/BlitzMax Programming/How to instal blitzmax properly

ImaginaryHuman(Posted 2014) [#1]
Isn't there some page somewhere on these forums/website where it explains clearly and correctly without ambiguities or issues, how to properly install Max on Mac and Windows and have it working correctly with the latest version? Seems like the instructions are scattered all over the place in 100 different threads.

e.g. I have OSX Mavericks. Xcode 5, and am finding that various modules don't work when built in multithreaded mode, yet they used to work on older versions. No idea what's up with it, plus I get different errors on Windows whereas it seems like it used to work fine in older versions.


Derron(Posted 2014) [#2]
Do you talk about user modules or the BlitzMax-included ones?

For the latter you should ask the BlitzMax-support for help, maybe they are able to build up a documentation.


If that are BlitzMax-bugs you will have to be patient, seems Mark is on heavy duty currently, no reply since last weeks monday.


bye
Ron


ImaginaryHuman(Posted 2014) [#3]
Just the basic blitz installation from BRL... there's been numerous updates over the years and scattered instructions on how to make it work.. there really should be one concrete set of sure-fire steps for the latest version.


GfK(Posted 2014) [#4]
For the PC version, just run the installer. It installs to C:\Blitzmax.

For the Mac, just dump the contents of the folder some place.

As for MinGW - welcome to hell.


Derron(Posted 2014) [#5]
@GfK

If you have read the post above yours: ImaginaryHuman has problems with a vanilla install. That is why he asked if something else is needed on more current OSes.

bye
Ron


ImaginaryHuman(Posted 2014) [#6]
What I'm trying to do is to get something to build on OSX in multithreaded mode, release and/or debug, without any errors. Right now things are okay without multithreaded builds but the multithreaded failes... e.g. testing with lzma module, freeimage, graphics magick, etc.. and then when I look to try to find anything about how to make it work properly on this site, I find scattered forums and nothing really that says "you must use only version xyz of xcode" or "only works with xyz" etc.


Brucey(Posted 2014) [#7]
On OS X, you just need to unzip your BlitzMax zip folder somewhere, and start building with it - usually.

Multithreaded apps are working here, as my bmk is a multithread build and it's running great. It currently reports :
$ ./bmk -v
bmk 2.16 mt-macos-x86 / clang 500.2.79 (cpu x4)

(the mt- part means it's a multithread build)

I had to update my bmk a bit to take into account some changes to the way gcc works on Mavericks - well, the fact that there is *no* gcc now in XCode, and it is building with clang/llvm exposed as gcc/g++.
Changes included the location of the SDK and so forth, but the main change was getting the version number from gcc, which it now reports itself (rightly) as clang instead of gcc.


ImaginaryHuman(Posted 2014) [#8]
What the hell are you talking about? This is what I mean... how is anyone supposed to figure this out? I mean, obviously you've figured it out but what about the rest of us?

Is BlitzMax now in such a state that it simply does not work properly anymore without third-party interventions?


Derron(Posted 2014) [#9]
Did you try Bruceys "bmk_ng" ? Maybe this already includes Bruceys improvements.

@BlitzMax state
There are some threads about it. Search for them and awake them to live again.


bye
Ron


ImaginaryHuman(Posted 2014) [#10]
e.g. importing otus.lzma and building multithreaded I get this: "C:/Users/admin/Documents/Docs/Other/BlitzMax1.48/mod/otus.mod/lzma.mod/lzma.release.mt.win32.x86.a(LzmaEnc.c.release.mt.win32.x86.o):LzmaEnc.c:(.text+0x3d): undefined reference to `LzmaEncProps_Init'
C:/Users/admin/Documents/Docs/Other/BlitzMax1.48/mod/otus.mod/lzma.mod/lzma.release.mt.win32.x86.a(LzmaEnc.c.release.mt.win32.x86.o):LzmaEnc.c:(.text+0x19c): undefined reference to `LzmaEncode'"

and that's on windows, and that's just one module. To my knowledge this module worked totally fine in the past.


Brucey(Posted 2014) [#11]
If it was up to me, I'd have a pre-packaged, known-to-work BlitzMax distro for each platform.
Perhaps on Windows it would be shipped with the latest compatible MinGW or something.

What the hell are you talking about?

Well, I don't use the pre-packaged bmk (that's the thing that sorts out what needs compiled), because I need *much* more flexibility : I want to run post-build scripts so that my App Bundles (on OS X) have all the things they need packaged into them automatically. I want to be able to do multi-process builds of the modules - my bmk compiles the C/C++ files in parallel, so I don't have to wait all day for my mods to build.

I'm lazy, so I make tools to help me to be lazy. Then I give them away so everyone else can be lazy too.

As for your Windows build problem, I don't know this module, so I can't help.


Derron(Posted 2014) [#12]
@ "Pre-Package".

Why not provide "Pre-Packaged-Patches"?

So people do "unpack/install/..." the vanilla BlitzMax-setupfile and afterwards "unpack" the patch.

If you want I could even write something like an installer.bat or installer.sh which does install and unpack.
In the case of MinGW one should take care of setup paths.

Maybe this is also of interest for dawlane (because he is the author of the linux "adjustment"-script to get rid of the bugs the current linux BlitzMax version has).

Somehow this sounds a bit like building some adhesive tapes for the elder patient BlitzMax.



bye
Ron


dawlane(Posted 2014) [#13]
@Derron: I did write a multi-install script to cater for a number of distributions. It selected the right packages to install and in the case of ArchLinux build those missing packages. It then went on to patch and install BlitzMax to the /opt directory and set up a few system links so the you could access the modules directory from your home directory.
I haven't updated it in about 8 months. I may update it and dump it onto github if there is any big interest, but until there is I shan't as I have other priorities. As trying to do it as a post was impossible due to the amount of text you can post. The forum goes weird if you post something that is very big text wise.

Somehow this sounds a bit like building some adhesive tapes for the elder patient BlitzMax.
I am beginning to come to the conclusion that the patient is a terminal case. And no matter how many band aids and ointments you use. It will still need major cardiac surgery to extend it's life.


Derron(Posted 2014) [#14]
Thanks for your reply.

We will see if it is needed to have that script ... for less than a handful people interested in it.


bye
Ron


ImaginaryHuman(Posted 2014) [#15]
One of the links you gave above does not work. This is part of the nightmare ;) I went hunting for possible installation tweaks and did a full reinstall of MinGW using that new gcc you linked to etc and set up paths and copied libraries and all that and am now back to the same basic result as before. I still cannot build multithreaded stuff without problems.

I think it's really a pity. I've been using BlitzMax for almost 10 years, and Blitz Basic before it, and it seems it's just being `let go`. It should really as said above have a simple installer, you just run it and boom, it's ready to go, proper versions of gcc or mingw or whatever already set up, no need to piss around with files and paths and copying stuff and hacking it to make it work. Otherwise I think it's really basically asking for its own demise. What new user could possibly understand at this point how to get this working when it takes advanced experienced programmers to figure it out? I'm really losing faith in BlitzMax as a viable future platform at this point and not just through some kind of frustrated tantrum, but because it's making it really difficult to put trust in it that it's going to work and keep working for years to come.


ImaginaryHuman(Posted 2014) [#16]
Check it out - bah.freeimage:




ImaginaryHuman(Posted 2014) [#17]
This is where BRL is supposed to swoop in, support their product, tell me exactly what to download and how to install it, and hey presto, all fixed. Right?


xlsior(Posted 2014) [#18]
codebox is your friend.


ImaginaryHuman(Posted 2014) [#19]
codebox did not work ;)

.. i had to go back and chop out some lines in order for it to accept it.


ImaginaryHuman(Posted 2014) [#20]
I did manage to get rid of all errors on OSX without having to reinstall anything... some of the modules were conflicting. But on Windows it's still a total mess. Might try this again tomorrow somehow, or not.


Derron(Posted 2014) [#21]
You surely missed something.

Be sure to have this file installed: tdm-gcc-4.7.1-2.exe

If you downloaded a "similar" file this might be one with DW2-exception handling.

After this, copy the lib files from MinGW to BlitzMax, same for ld.exe and ar.exe (like the script does).

hmm maybe you just did not recompile all modules afterwards.

C:\your\path\to\BlitzMax\bin\bmk.exe makemods -a


After all, your "threaded" problems might not go away with this "update".

bye
Ron


ImaginaryHuman(Posted 2014) [#22]
I followed your exact instructions and did a full fresh reinstall and full rebuild. I also made the modification to magick.bmx suggested by Brucey and also identified the conflicts of libjpeg and libpng with magick/freeimage etc... so those are fine now. However, still otus.lzma module is not compiling without errors. It works fine on OSX.

I get
C:/Users/admin/Documents/Docs/Other/BlitzMax1.48/mod/otus.mod/lzma.mod/lzma.release.win32.x86.a(LzmaEnc.c.release.win32.x86.o):LzmaEnc.c:(.text+0x47): undefined reference to `LzmaEncProps_Init'
C:/Users/admin/Documents/Docs/Other/BlitzMax1.48/mod/otus.mod/lzma.mod/lzma.release.win32.x86.a(LzmaEnc.c.release.win32.x86.o):LzmaEnc.c:(.text+0x175): undefined reference to `LzmaEncode'



Derron(Posted 2014) [#23]
See your other thread in Brucey's subforum.

I answered there too - and now I want to avoid cross posting :D


bye
Ron


Grisu(Posted 2014) [#24]
"Pre-packages" would be highly welcome.

Once you have have been in MinGW-Hell for some weeks without any hope, this is heaven!