bmk 3 - Chirpy Chipmunk

BlitzMax Forums/Brucey's Modules/bmk 3 - Chirpy Chipmunk

Brucey(Posted 2015) [#1]
I've created a update for bmk_ng on github for a somewhat re-engineered version of bmk.

You can find it here : https://github.com/bmx-ng/bmk

The main change is a rewritten dependency resolver, which now allows for several useful features :
* proper parallel build of source, from modules to app.
* no longer required to specifically build modules. They will be built as needed for your app.
* progress percentage indicator, as a whole for all required source.

It scales to the number of cores on your box, so the more the merrier.


Caveats :
* May not work as described above :-p
* May crash or not link your apps correctly. Feel free to file a bug report with relevant information.

Remember to always back up your stuff before playing with new toys!

:o)


Brucey(Posted 2015) [#2]
Updated Caveats above as it is now capable of building with legacy BlitzMax (i.e. the official one which generates asm).


xlsior(Posted 2015) [#3]
Sounds interesting...


Grisu(Posted 2015) [#4]
Can I get a compiled exe of that somewhere?

I don't want to break anything.


Brucey(Posted 2015) [#5]
Updated original post as testing on the branch indicates that generally it seems to be working as expected now across platforms. The branch code has now been pushed into master (gone live, if you will).

Can I get a compiled exe of that somewhere?

You can download the source to somewhere and build it with your standard version of BlitzMax.

Then copy over the bmk.exe, make.bmk and core.bmk into your bin folder.
I suggest backing up your original bmk.exe first though - and any make.bmk you may have there if you are already using my bmk

If it doesn't work, then you simply put the old stuff back, and rebuild.

To gain much out of this, you need to build bmk with threading enabled. That will create a bmk.mt binary, which you will need to rename before putting it in your bin folder.
The program scales with the number of available cores, so the more, the merrier.


Grisu(Posted 2015) [#6]
Thanks for your input.

Recompiling all stuff went well and is überfast compared to the normal bmk.exe. :)

But I get an error message when I want to compile my own code now:
C:/BlitzMax/bin/ld.exe: cannot find -lwinpthread

Could be because I'm using TDM-GCC 4.9.2.?


BlitzSupport(Posted 2015) [#7]
Just tried replacing my standard bmk.exe and rebuilding modules, and got:

Building Modules
[  0%] Compiling:glue.cpp
[  0%] Compiling:glue.cpp
[  0%] Compiling:freeimageglue.cpp
[  0%] Compiling:DeprecationMgr.cpp
[  0%] Compiling:BitmapAccess.cpp
[  0%] Compiling:CacheFile.cpp
[  0%] Compiling:ColorLookup.cpp
[  0%] Compiling:Conversion.cpp
I:/Development/DevTools/Blitz/BlitzMax/mod/bah.mod/freeimage.mod/src/FreeImage/Conversion.cpp: In function 'FIBITMAP* FreeImage_ColorQuantizeEx(FIBITMAP*, FREE_IMAGE_QUANTIZE, int, int, RGBQUAD*)':
I:/Development/DevTools/Blitz/BlitzMax/mod/bah.mod/freeimage.mod/src/FreeImage/Conversion.cpp:387:26: error: exception handling disabled, use -fexceptions to enable
Build Error: failed to compile I:/Development/DevTools/Blitz/BlitzMax/mod/bah.mod/freeimage.mod/src/FreeImage/Conversion.cpp
Process complete


I built bmk.bmx with standard BlitzMax build, then put bmk.exe into standard BlitzMax -> bin. Is that right?

Building as non-threaded, non-GUI, non-debug from MaxIDE...


Brucey(Posted 2015) [#8]
I built bmk.bmx with standard BlitzMax build, then put bmk.exe into standard BlitzMax -> bin. Is that right?

I'm just rubbish at explaining things, I think ;-)
Did you also copy core.bmk and make.bmk ? (these are lua files that implement some of bmk's functionality)


Brucey(Posted 2015) [#9]
cannot find -lwinpthread

There is a libwinpthread.a in x86_64-w64-mingw32\lib32 (or whatever is the 32-bit equivalent folder, if you are using the 32-bit version of 4.9.2). You probably need to copy that into your BlitzMax/lib folder.


Brucey(Posted 2015) [#10]
I seems I need to try building against more different configurations of BlitzMax...


Grisu(Posted 2015) [#11]
It works, but new issues with pixmaps on buttons and custom.o file:



Brucey(Posted 2015) [#12]
What's a custom.o file?


xlsior(Posted 2015) [#13]
By the way -- Chirpy Chipmunk?

What's next, Dorky Dolphin? Delirious Dingo?


BlitzSupport(Posted 2015) [#14]
Jeepers! Built it properly and the speed difference is amazing!

I had indeed missed out copying the two .bmk files (I had old ones in there), but on sorting that it Rebuilt All Modules... just as slowly as BMK-original.

Then I realised I needed to build as multi-threaded (I'd assumed single-threaded would spawn a bunch of processes), and that's when it really took off!

Pegged out my six cores at 98% and just flew through Rebuild All Modules -- brilliant job!


Brucey(Posted 2015) [#15]
What's next, Dorky Dolphin? Delirious Dingo?

*shrug*


Henri(Posted 2015) [#16]
Hi,

seems a nice addition. As I tried it out received an error trying to compile this:
SuperStrict

Import "C:\Blitzmax\Source\Functions\helper_functions.bmx"

Print "Hello world!"
Error was:
Building untitled1
[ 99%] Processing:untitled1.bmx
[ 99%] Compiling:untitled1.bmx.gui.debug.win32.x86.s
flat assembler version 1.69.14 (1048575 kilobytes memory)
3 passes, 2411 bytes.
[100%] Linking:untitled1.debug.exe
C:/BlitzMax/tmp/.bmx/untitled1.bmx.gui.debug.win32.x86.o:(code+0x36): undefined reference to `__bb_functions_helper_functions'
Build Error: Failed to link C:/BlitzMax/tmp/untitled1.debug.exe
Process complete


Can anyone confirm this or is it just me ?

-Henri


AdamStrange(Posted 2015) [#17]
I really want to give this a try but can't work out how to actually do it? :(

Can you give an incredibly simple step by step guide on how to compile and get everything working?

I'm on a mac and have blitzmax 1.5 here with the community IDE

I have no idea on where to start, what to download, what environment to run, how to compile, etc :(


Ole JR(Posted 2015) [#18]
Get the source from https://github.com/bmx-ng/bmk

Backup the original bmk (location: Blitzmax/bin)

Open the bmk.bmx in the IDE, build with threading enabled.

Copy the built bmk.mt to blitzmax/bin folder, rename to bmk.

Also copy core.bmk & make.bmk from the source folder to blitzmax/bin.

Rebuild modules..

Would also recomend getting Brucey's updated brl & pub modules
from https://github.com/maxmods

Also back up the original module folder(s) just in case.

Oh, if you don't have git, there's always the "Download ZIP" button
over to the right on each repo..


Ole JR


AdamStrange(Posted 2015) [#19]
ok, sorta got thing working now
So,this should generate 64bit code now?

I need to compile a lot of secondary files now ;/

ok, get a compile, with the [ xx%] processing:etc
This all goes well until one file (of mine) which then just sits there looking at me at 90%

I remember Brucey mentioning about not using byte pointers or something - this file uses byte pointers - what is the solution?


Ole JR(Posted 2015) [#20]
This alone isn't for 64bit, just faster x86 combiles..


AdamStrange(Posted 2015) [#21]
ok, no problem :) thanks


xlsior(Posted 2015) [#22]
*shrug*

-+ Brucey +-



Don't get me wrong, -- it's cute, just curious. ;-)


braxton(Posted 2015) [#23]
wow talk about fast!

no matter which MinGW I change it to (currently using TDM64 4.9.2-3) or even when I swapped it to 4.8.1-3 it always seems to fail when attempting to link pub.win32 for me.

I have the brl and pub modules from brucey's git repository and I have updated bcc also, any idea what I am doing wrong?

Also has anyone else noticed the slight text irregularity in digesteroids 64 bit builds that appears at the top after playing a game, the score hud at the top shrinks down in size a few times until it goes back to the menu and then it is all good again until you play another game then it happens all over again.

It is more noticeable in the tempest 64 bit build from samples also where it tries to display the vector font, the 32 bit builds however do not appear to have any problems, regardless it is wicked fast and damn impressive!

Brucey you are amazing mate!

Building Modules
[ 59%] Processing:appstub.bmx
[ 61%] Processing:map.bmx
[ 63%] Processing:opengl.bmx
[ 63%] Processing:commctrl.bmx
[ 63%] Processing:richedit.bmx
[ 64%] Linking:
c:\4.9.2-3/bin/ld.exe: cannot open output file -Lc:\4.9.2-3/lib/gcc/x86_64-w64-mingw32/4.9.2/32: Invalid argument
Build Error: Failed to link
Process complete


Brucey(Posted 2015) [#24]
-Lc:\4.9.2-3/lib/gcc/x86_64-w64-mingw32/4.9.2/32

I probably need to wrap all the paths in a call the RealPath()...

It is more noticeable in the tempest 64 bit build from samples also where it tries to display the vector font, the 32 bit builds however do not appear to have any problems

Could be a 64-bit porting issue - somewhere.


Brucey(Posted 2015) [#25]
It works, but new issues with pixmaps on buttons and custom.o file

It's now correctly handling .o imports, so the pixmaps and app icon are displayed now.

Thanks for letting me test your app !

Interestingly, I dropped the required modules into the mod dir and simply did an app build from the IDE. Since the new bmk is now resolving dependencies automagically, it built those new modules for me before compiling the app itself ;-)


Brucey(Posted 2015) [#26]
Can anyone confirm this or is it just me ?

The latest path resolving changes appear to fix your Import issue.


Brucey(Posted 2015) [#27]
@braxton
You should only see "Linking:" when building an application, and generally it is the *last* thing to happen in a build, so I'd expect it to be around the 100% mark in the process.

Your output appears to imply that it wants to link half-way through the modules build (as part of pub.win32), so there's something different with your configuration that it can't handle for some reason.

How are you specifying your MinGW ? In the MINGW environment variable?


braxton(Posted 2015) [#28]
Hi Brucey,

yes I am setting it via the MinGW environment variable, and I am doing it like so to test your absolutely smashing bmk!

@Echo Off
Set BlitzMax=c:\blitzmax_NG
Set MinGW=%blitzmax%\MinGW32
rem Set MinGW=c:\4.9.2-3
Set Path=%MinGW%\bin
Echo %BlitzMax%
Echo %MinGW%
MaxIDE-ng.exe

I found that if I did not set the MinGW environment variable then I could only rebuild all modules from a command prompt as it is greyed out in the menu. I have pasted 2 sample command prompt build all outputs below.

I have tried this with a threaded and non threaded bcc and it produces the same result, still floored that it is so wicked fast!

MaxIDE-ng:
[ 63%] Archiving:openal.debug.win32.x86.a
[ 63%] Processing:opengl.bmx
[ 63%] Archiving:opengles.debug.win32.x86.a
[ 63%] Archiving:stdc.debug.win32.x86.a
[ 63%] Processing:commctrl.bmx
[ 63%] Processing:richedit.bmx
[ 64%] Archiving:zlib.debug.win32.x86.a
[ 64%] Linking:
C:/BlitzMax_NG/MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/openal.mod/openal.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/opengles.mod/opengles.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/stdc.mod/stdc.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/zlib.mod/zlib.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ld.exe: cannot open output file -LC:/BlitzMax_NG/MinGW32/lib/gcc/x86_64-w64-mingw32/4.9.2/32: Invalid argument
Build Error: Failed to link
Process complete

Command Prompt:
[ 63%] Archiving:openal.debug.win32.x86.a
[ 63%] Processing:opengl.bmx
[ 63%] Archiving:opengles.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ar.exe: [ creating C:/BlitzMax_NG/mod/pub.mo6d/openal.mod/ope3nal.debug.win32.x%86.a]
ArchiviC:/BlitzMax_NG/MinnGW32g/bin/ar.e:xe: stcreating C:/BlidtzcMax_NG/mod/pub.mod/opengles.mod/opengles.debug.win32.x86.a.debug.win32.x86.a
[ 63%] Processing:commctrl.bmx
[ 63%] Processing:richedit.bmx
C:/BlitzMax_NG/MinGW32/bin/ar.exe: [ creating C:/BlitzMax_NG/mod/pub.mod/stdc.mod/stdc.debug.win32.x86.a64
%] Archiving:zlib.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/zlib.mod/zlib.debug.win32.x86.a
[ 64%] Linking:
C:/BlitzMax_NG/MinGW32/bin/ld.exe: cannot open output file -LC:/BlitzMax_NG/MinGW32/lib/gcc/x86_64-w64-mingw32/4.9.2/32: Invalid argument
Build Error: Failed to link

[ 63%] Archiving:opengles.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/[ar.exe: 6creating C:/BlitzMax_NG/mod/pub3.mod/openal.mod/oC:/BlitzMax_NG/MinGW32/bin/ar.expenal.debug.win32.x86.a%e:
]creating C:/BlitzMax_NG/mod/pub.mo d/opengles.mod/opeAngles.debug.rwin32.x86.ac
h
iving:stdc.debug.win32.x86.a
[ 63%] Processing:commctrl.bmx
[ 63%] Processing:richedit.bmx
:/BlitzMax_NG/ng:zlib.debug.win32.x86.aC
MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/stdc.mod/stdc.debug.win32.x86.a
C:/BlitzMax_NG/MinGW32/bin/ar.exe: creating C:/BlitzMax_NG/mod/pub.mod/zlib.mod/zlib.debug.win32.x86.a
[ 64%] Linking:
C:/BlitzMax_NG/MinGW32/bin/ld.exe: cannot open output file -LC:/BlitzMax_NG/MinGW32/lib/gcc/x86_64-w64-mingw32/4.9.2/32: Invalid argument
Build Error: Failed to link


xlsior(Posted 2015) [#29]
Brucey's BMK will by default look for minGW inside a MinGW32 folder in the root of your blitzmax folder.

(e.g. c:\programming\blitzmax\MinGW32 )


Brucey(Posted 2015) [#30]
That is true only if it detects the new bcc. Otherwise it defaults to whatever you've been using previously (i.e. the requirement for MinGW files in BlitzMax/lib and bin).

I could probably change it to work the same for all bcc's, then you could drop a MinGW install into MinGW32 and hopefully it would just ignore everything in lib and bin...

[ 64%] Linking:

I just noticed there's no filename after the colon there. That explains the specific error message.
I've committed a further file check during linking which may shed light on your apparently broken configuration ;-)

Some things which may help determine the exact problem...
* You can rebuild a specific module : bmk makemods -a pub.win32
* You can verbose build with -v flag : bmk makemods -a -v pub.win32


braxton(Posted 2015) [#31]
Hi Brucey,

Thank you so much, I just updated and I was able to track it down a little further to sdl.mod, after renaming the folder to exclude it all other modules rebuilt just fine and so fast :)

I am definitely in awe, the new core changes are totally awesome!

Build Error: Did not expect to link against C:/BlitzMax_NG/mod/sdl.mod/sdlmax2d.mod/sdlmax2d.bmx


Brucey(Posted 2015) [#32]
btw, you don't really need to build modules now - ever.
(unless perhaps you are working on modules, in which case you might want to build a specific one from time to time).

Simply build an app. It should build everything else that's required (if it thinks it needs compiled).

Build Error: Did not expect to link against C:/BlitzMax_NG/mod/sdl.mod/sdlmax2d.mod/sdlmax2d.bmx

Thanks. Looks like an error in that file.

Apologies for the problems.


braxton(Posted 2015) [#33]
Hi Brucey,

Thank you again and please don't apologise I love using BlitzMax and testing out your extreme cutting edge versions and enhancements you are amazing!

I did not realise that you no longer need to rebuild all modules that is very cool!


FabriceW(Posted 2015) [#34]
I am just getting this error when trying to recompile modules:
[string "function bmk_source_type(...)..."]:5: attempt to concatenate local 'arg0' (a userdata value)ERROR

I build `bmk.bmx` on OS X 10.10.3 Yosemite and placed it in `bin`


Brucey(Posted 2015) [#35]
You need to build it as non-GUI (console), and also copy make.bmk and core.bmk into the bin dir.

You will get the greatest benefit by compiling it with threading enabled.


Scaremonger(Posted 2015) [#36]
But I get an error message when I want to compile my own code now:
C:/BlitzMax/bin/ld.exe: cannot find -lwinpthread

If you have Monkey installed: This file is located in the MonkeyX77a\MinGW\lib folder.


Scaremonger(Posted 2015) [#37]
I've just tried a fresh install as follows and I get an error!

* Install GIT for Windows (Git-1.9.5-preview20150319.exe)
* Install a fresh copy of Blitzmax v1.50 into C:\BlitzMax-NG
* Install a fresh copy of MinGW-get into C:\MinGW using the Installer (mingw-get-setup.exe) without the GUI.
* Install the required MinGW packages from the command line:
mingw-get install mingw32-base
mingw-get install mingw32-gcc-g++
* Download, Compile and Install BMK-NG:
cd /d C:\Blitzmax-NG
git clone https://github.com/bmx-ng/bmk bmx-ng\src\bmk
bin\bmk makeapp -r -h bmx-ng\src\bmk\bmk.bmx
rename bin\bmk.exe bin\bmk_BRL.exe
copy bmx-ng\src\bmk\bmk.exe bin\
copy bmx-ng\src\bmk\core.bmk bin\
copy bmx-ng\src\bmk\make.bmk bin\
* Update Blitzmax-NG with MinGW Library files:
copy /Y c:\mingw\lib\*.* lib\
* Obtain missing libwinpthread.a from Monkey folder:
copy C:\MonkeyX77a\MinGW\lib\libwinpthread.a lib\

Unfortunately this give me the following error when Linking:
C:/BlitzMax-NG/lib/libmingw32.a(setargv.o):(.text+0x147): undefined reference to `__mingw_glob'
C:/BlitzMax-NG/lib/libmingw32.a(setargv.o):(.text+0x243): undefined reference to `__mingw_glob'

I've tried replacing the brl linker with the one from MinGW\bin but that doesn't make any difference and produces another error.

Any suggestions?
Si...

PS: I'm testing this on 64bit Windows 7.


Scaremonger(Posted 2015) [#38]
Ok I've fixed the above error. It seems that the new versions of crt2.o and libmingw32.a are causing the problem so I've ammended the procedure as follows:

* Install GIT for Windows (Git-1.9.5-preview20150319.exe)
* Install a fresh copy of Blitzmax v1.50 into C:\BlitzMax-NG
* Install a fresh copy of MinGW-get into C:\MinGW using the Installer (mingw-get-setup.exe) without the GUI.
* Install the required MinGW packages from the command line:
mingw-get install mingw32-base
mingw-get install mingw32-gcc-g++
* Download, Compile and Install BMK-NG:
cd /d C:\Blitzmax-NG
git clone https://github.com/bmx-ng/bmk bmx-ng\src\bmk
bin\bmk makeapp -r -h bmx-ng\src\bmk\bmk.bmx
copy /Y bin\bmk.exe bin\bmk_BRL.exe
copy /Y bmx-ng\src\bmk\bmk.exe bin\
copy bmx-ng\src\bmk\core.bmk bin\
copy bmx-ng\src\bmk\make.bmk bin\
* Backup two library files that cause "undefined reference to `__mingw_glob'" error
if not exist tmp\nul mkdir tmp
copy /Y lib\crt2.o tmp\
copy /Y lib\libmingw32.a tmp\
* Update Blitzmax-NG with MinGW Library files:
copy /Y c:\mingw\lib\*.* lib\
* Restore BRL versions of backed up files:
copy /Y tmp\crt2.o lib\
copy /Y tmp\libmingw32.a lib\
* Obtain missing libwinpthread.a from Monkey folder:
copy C:\MonkeyX77a\MinGW\lib\libwinpthread.a lib\


Si...


Brucey(Posted 2015) [#39]
You can also create a folder called MinGW32 in your BlitzMax folder, and drop a copy of TDM's MinGW into it : (perhaps tdm64-gcc-4.9.2-3.exe from http://tdm-gcc.tdragon.net/download)

Run the exe and extract it directly into that folder, so you end up with MinGW32/bin etc.

Everything else should *just work*, and you don't need anything in BlitzMax/lib or any MinGW files in BlitzMax/bin.


Scaremonger(Posted 2015) [#40]
Ooh, now that is a useful resource.

I've installed it into C:\BlitzMax-NG\MinGW32.
Deleted C:\BlitzMax-NG\lib folder
Deleted ar.exe and ld.exe from C:\BlitzMax-NG\bin.

and it fails to link...

@Brucey: Do I need your new BCC?


Brucey(Posted 2015) [#41]
Do I need your new BCC?

Ah, yes, apologies for that...

I've updated bmk (to 3.03) to enable support for a local MinGW32 directory with both versions of BCC.
My local setup here is working - BlitzMax/bin with official bcc.exe, my bmk.exe, core.bmk and make.bmk - and nothing else in bin or lib.
It should fallback to the MINGW environment variable if it doesn't find a local installation of it.

Please let me know if you have any issues with it. Specifically, different versions of MinGW. I've only been using/testing the TDM builds.


Scaremonger(Posted 2015) [#42]
@Brucey:

I re-installed and re-run the installation script above with various combinations:

Original BCC, BMK-NG and using C:\MinGW

MINGW= (Which worked before):
Cannot find a valid GCC compiler. Please check your paths and environment.

MINGW=C:\MinGW
It uses LD.EXE and lib\* from the C:\MinGW folder instead of the local ones in the Blitzmax-NG directory and gives this error:
C:/MinGW/lib/libmingw32.a(setargv.o):(.text+0x147): undefined reference to `__mingw_glob'
C:/MinGW/lib/libmingw32.a(setargv.o):(.text+0x243): undefined reference to `__mingw_glob'
C:\MinGW/bin/ld.exe: C:/MinGW/lib/libmingw32.a(setargv.o): bad reloc address 0x20 in section `.eh_frame'
Build Error: Failed to link 

This error is caused by libmingw32.a and crt2.o.

If you copy the original ones to c:\MINGW\LIB then is works again, but is not ideal.

Original BCC, BMK-NG and using C:\BlitzMax-NG\MINGW32
(I Deleted ar.exe and ld.exe from /bin and renamed lib\ folder)

It fails because it is unable to find content of LIB folder; The state of the environment variable MINGW makes no difference to the error.


I'll test BCC-NG next...
Si...


Scaremonger(Posted 2015) [#43]
Using BCC-NG gives me the following error in DEBUG mode:
[ 51%] Processing:winmm.bmx
Compile Error: Expression has no scope
[C:/BlitzMax-NG/mod/brl.mod/appstub.mod/debugger_mt.stdio.bmx;640;0]
Build Error: failed to compile (-1) C:/BlitzMax-NG/mod/brl.mod/appstub.mod/debugger_mt.stdio.bmx


In Release mode:


Hope this helps,
Si...


Brucey(Posted 2015) [#44]
I missed a couple of changes... it's working here now, building with the x64 version of TDM 4.9 and the official bcc, with BlitzMax/mingw32. (obviously, only building for x86).
Also tested with MINGW set, and 32-bit TDM 4.7.

Using BCC-NG...

You can't. It's not a drop-in replacement like bmk.


Scaremonger(Posted 2015) [#45]
Cheers Brucey; Getting there...

* Fresh Blitzmax 150 install, Fresh TDM MinGW. Fresh BMK 3.0.3 Download.
* Compiled BMK with BRL BMK, Multi-Threaded, Release. Copied it along with core.bmk, make.bmk, custom.bmk and resources\* to bin\.
* Deleted bin\ar.exe, bin\ld.exe and lib\*

Complied this basic code:
print "Hello World"
and I got the following errors:


It does the same in Debug and Release modes.

Am I going to need your updated PUB.MOD?


Brucey(Posted 2015) [#46]
libpng 1.2 is very old... but you could try uncommenting this line in libpng.bmx :
'Import "pngvcrd.c"

Your other option is to use an older version of MinGW :-)

If you go for the updated pub.mod, you'll need the updated brl.mod too. ( https://github.com/maxmods )
That has libpng 1.6.7.

It could probably do with a bump itself up to the latest (1.6.17) - they are always improving/patching it.


Scaremonger(Posted 2015) [#47]
If I use the new PUB.MOD and BRL.MOD: (original) BCC reports an exception and crashes. I get the following message:

Building untitled1
[ 48%] Processing:blitz.bmx
Build Error: failed to compile (-1073741819) C:/BlitzMax/mod/brl.mod/blitz.mod/blitz.bmx

I'll take another look tomorrow evening (Got to get up at 4 tomorrow for work!).

Cheers,
Si...


Brucey(Posted 2015) [#48]
I've just done a couple of "clean" tests using BlitzMax 1.50 installers. One on XP and one on Windows 7...
* Replace bmk with bmk ng (and core/make bmk files)
* Replace brl.mod and pub.mod with those from https://github.com/maxmods
* Install TDM MinGW 4.9 into BlitzMax/MinGW32
* Open MaxIDE and create a small example app :
SuperStrict

Framework BRL.StandardIO

Print "Hello World"

* Build and Run.

That appears to work well for me.

Note, you *will* need the latest sources from maxmods, as I patched an issue with MemExtend today - which caused a crash app startup using MinGW 4.9.