Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » test fest

This thread is locked; no one can reply to it. rss feed Print
 1   2 
test fest
Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Nevermind. Ctrl ^C works from the console after you switch back to it.

Edit
The links to the snapshots on the strangesoft download page are coming up with 404 Not Found errors. I'll try again later.

Edit2
All better now, downloading 4.3.11r11485 to test tomorrow.

Edit3
The downloads for both the .7z and .zip archives of 4.3.11r11485 keep failing midway through without any error messages. SeaMonkey seems to be keeping a cache of what it downloaded of it, so when I go to download it again it starts back up where it left off, but somethings funny.

Thomas Fjellstrom
Member #476
June 2000
avatar

Sorry about the 404's I was messing with the index script today. Felt like making it a little fancier, and I was having issues with mod_rewrite.

Quote:

The downloads for both the .7z and .zip archives of 4.3.11r11485 keep failing midway through without any error messages

All I can say is I've downloaded the zip just fine, and it was fairly fast too. like 600KB/s or more.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

All the versions of Allegro 4.3.11 Rev. 11485 compiled fine again, with one warning from the profiling static version (only) :

c:\mingw\allegro-4.3.11plusSVN_11485>mingw32-make STATICLINK=1 all
.....
tests/test.c:4637: warning: zero-length printf format string

All 4 versions of AGL compiled fine again, as well as Logg.

Still some trouble with JpgAlleg though :
In jpgalleg's makefile.all file, there is a line (149-151) that tests for DEBUGMODE being defined, in which case it defines DEBUG=1, but that is after several tests that check for DEBUG being defined, and after the $(MAKEFILE_INC) file is included (which also relies on DEBUG being defined), so it would miss both of them.

I'm also having problems building the non-static versions of the jpgalleg addon. I attached a text file of the build log (I'm using the DEBUG=1 option until DEBUGMODE is sorted out).

Errors (from allegro/addons/jpgalleg/ dir) :

//
gcc -s  -L../../lib/mingw32 obj/mingw32/ex1.o -o examples/ex1.exe lib/mingw32/libjpgad.a -lalleg
Info: resolving _screen by linking to __imp__screen (auto-import)
Info: resolving _allegro_error by linking to __imp__allegro_error (auto-import)
fu000001.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballeg_a_iname'
fu000002.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballeg_a_iname'
fu000004.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballeg_a_iname'
nmth000000.o:(.idata$4+0x0): undefined reference to `_nm__screen'
nmth000003.o:(.idata$4+0x0): undefined reference to `_nm__allegro_error'
mingw32-make: *** [examples/ex1.exe] Error 1
//

Also, the -g flag is not being passed to the command line during compilation, and it is not added in any of the makefile references to CFLAGS, so none of jpgalleg actually has debugging symbols anyway.

It also looks like the debug version uses -fomit-frame-pointer, doesn't that ruin the stack for debugging purposes?

LoadPng compiled fine, except for the deprecated function warnings for browse.c again. I made a unified diff of the minimum amount of changes necessary to preserve exact functionality and to remove the deprecated function calls. If you use it, you might want to run dtou on it, as it has CRLF line endings. I didn't know which kind of line endings you might want for a diff file.

Milan Mimica
Member #3,877
September 2003
avatar

I've fixed the debug build issues with JPGAlleg.

Quote:

I'm also having problems building the non-static versions of the jpgalleg addon.

You can't compile a non-static version of JPGAlleg and link it against static Allegro. That would complicate things and it's useless in general.

I've also made an attempt to fix the issues with building addons on MacOSX. Script allegro-config should be generated in the build dir now, but it's completely untested and I would appreciate if someone could give it a try. Just remember to remove allegro-config from the build dir first (if it is there by any chance).

edit: Oh, and I've applied your patch Edgar. Thanks for all.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Quote:

You can't compile a non-static version of JPGAlleg and link it against static Allegro. That would complicate things and it's useless in general.

So should dynamic library builds always link against other dynamic libraries then? Because to build the dynamic libvorbis libraries I had to hack the build process so that they were linked against the static libogg libraries. I take it this was not correct then? Conversely, if I forced them to link to the dynamic libogg libraries to build the static libvorbis libraries, that would be incorrect also? Perhaps my 'fix' isn't really a sound fix then. :-/

Re: Newest strangesoft snapshot of 4.3.11-r11520 - The .7z file is only 1.0MB, and can't be opened by 7-zip as an archive. The zip file worked fine for me though.

Testing revision 11520 :
Allegro and AllegroGL both compiled fine for all available targets. Logg and LoadPNG built fine as well.

The dynamic versions of JpgAlleg still won't build though. (The makefiles look much cleaner with your latest update BTW).

Quote:

You can't compile a non-static version of JPGAlleg and link it against static Allegro.

I'm not sure I know what you're getting at here. So why not link the dynamic JPGAlleg library to dynamic Allegro then? <Doing some research...> Okay, I think I get it. The 'ar' utility doesn't actually create an export library, does it. So wouldn't 'dllwrap' or 'dlltool' be more appropriate to use then?

I guess my main concern is that not all of the addon's build systems mesh perfectly with Allegro's. That is, I think that they should all support the same 6 build options that Allegro does -

make [ "" (Optimized) | DEBUGMODE=1  | PROFILEMODE=1 ] [ "" (Dynamic) | STATICLINK=1 ]

with

make all [ "" (Dynamic) | STATICLINK=1 ]

building all 3 versions of the dynamic or static library, and having the WITH_* defines pass those same options to the individual add on packages.

- even if it is only to say that
"The build of the $(BUILD_TYPE_STRING) $(LIB_NAME_STRING) library is not supported at this time."

Milan Mimica
Member #3,877
September 2003
avatar

Quote:

So should dynamic library builds always link against other dynamic libraries then?

Yes, unless you want something else. Then you should change the makefile, which is acceptable.
Just look at what we have here: your_app, allegro, logg, vorbis. Each of the four can be linked as static or dynamic. That makes <math>2^3=8</math> combinations! Not to mention different build types and there is 4 addons, and some of them have more than one dependency. I don't want that in allegro makefiles. STATICLINK=1 means link all static if possible, if not specified link dynamically, if possible. It is very likely you will have to tune addon's makefile to find the right lib, it's not a big deal. If you don't like it use the binary distro.

Quote:

So why not link the dynamic JPGAlleg library to dynamic Allegro then?

Where did it say not to? That works for me. According to that log file you've sent, it works for you too.

Quote:

That is, I think that they should all support the same 6 build options that Allegro does

Would be nice, but they just don't.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Quote:

Each of the four can be linked as static or dynamic. That makes 2^3=8 combinations! Not to mention different build types and there is 4 addons, and some of them have more than one dependency. I don't want that in allegro makefiles.

That's fine with me. I never said I wanted to cross breed static and dynamic builds.

Quote:

Where did it say not to? That works for me. According to that log file you've sent, it works for you too.

But the dynamic build of JpgAlleg isn't working though. The examples don't build in the dynamic version due to undefined references. Here's my latest build log of the four different versions of JpgAlleg (static/dynamic , debugging/optimized) for Revision 11520 :

1//
2c:\mingw\allegro-4.3.11plus_Rev_11520\addons\jpgalleg>fix.bat mingw32
3Configuring JPGalleg for Windows/Mingw32...
4 
5c:\mingw\allegro-4.3.11plus_Rev_11520\addons\jpgalleg>mingw32-make STATICLINK=1 DEBUGMODE=1
6Compiling JPGalleg for MinGW32
7Testing for MMX assembler support...
8 1 file(s) moved.
9gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE src/jpgalleg.c -o obj/mingw32/jpgallsd/jpgalleg.o
10gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE src/io.c -o obj/mingw32/jpgallsd/io.o
11gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE src/encode.c -o obj/mingw32/jpgallsd/encode.o
12gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE src/decode.c -o obj/mingw32/jpgallsd/decode.o
13gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE src/init.c -o obj/mingw32/jpgallsd/init.o
14gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE src/error.c -o obj/mingw32/jpgallsd/error.o
15gcc -x assembler-with-cpp -I./include -c src/i386/color.s -o obj/mingw32/jpgallsd/color.o
16gcc -x assembler-with-cpp -I./include -c src/i386/dct.s -o obj/mingw32/jpgallsd/dct.o
17ar rs lib/mingw32/libjpgad_s.a obj/mingw32/jpgallsd/jpgalleg.o obj/mingw32/jpgallsd/io.o obj/mingw32/jpgallsd/encode.o obj/mingw32/jpgallsd/decode.o obj/mingw32/jpgallsd/init.o obj/mingw32/jpgallsd/error.o obj/mingw32/jpgallsd/color.o obj/mingw32/jpgallsd/dct.o
18ar: creating lib/mingw32/libjpgad_s.a
19gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE examples/ex1.c -o obj/mingw32/ex1.o
20gcc -s -L../../lib/mingw32 obj/mingw32/ex1.o -o examples/ex1.exe lib/mingw32/libjpgad_s.a -lalld_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
21gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE examples/ex2.c -o obj/mingw32/ex2.o
22gcc -s -L../../lib/mingw32 obj/mingw32/ex2.o -o examples/ex2.exe lib/mingw32/libjpgad_s.a -lalld_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
23gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE examples/ex3.c -o obj/mingw32/ex3.o
24gcc -s -L../../lib/mingw32 obj/mingw32/ex3.o -o examples/ex3.exe lib/mingw32/libjpgad_s.a -lalld_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
25gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE examples/ex4.c -o obj/mingw32/ex4.o
26gcc -s -L../../lib/mingw32 obj/mingw32/ex4.o -o examples/ex4.exe lib/mingw32/libjpgad_s.a -lalld_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
27gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE examples/ex5.c -o obj/mingw32/ex5.o
28gcc -s -L../../lib/mingw32 obj/mingw32/ex5.o -o examples/ex5.exe lib/mingw32/libjpgad_s.a -lalld_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
29Done.
30Now run `make install' to complete the install process.
31
32c:\mingw\allegro-4.3.11plus_Rev_11520\addons\jpgalleg>mingw32-make STATICLINK=1
33Compiling JPGalleg for MinGW32
34gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W -DALLEGRO_STATICLINK src/jpgalleg.c -o obj/mingw32/jpgalls/jpgalleg.o
35gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W -DALLEGRO_STATICLINK src/io.c -o obj/mingw32/jpgalls/io.o
36gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W -DALLEGRO_STATICLINK src/encode.c -o obj/mingw32/jpgalls/encode.o
37gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W -DALLEGRO_STATICLINK src/decode.c -o obj/mingw32/jpgalls/decode.o
38gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W -DALLEGRO_STATICLINK src/init.c -o obj/mingw32/jpgalls/init.o
39gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W -DALLEGRO_STATICLINK src/error.c -o obj/mingw32/jpgalls/error.o
40gcc -x assembler-with-cpp -I./include -c src/i386/color.s -o obj/mingw32/jpgalls/color.o
41gcc -x assembler-with-cpp -I./include -c src/i386/dct.s -o obj/mingw32/jpgalls/dct.o
42ar rs lib/mingw32/libjpgal_s.a obj/mingw32/jpgalls/jpgalleg.o obj/mingw32/jpgalls/io.o obj/mingw32/jpgalls/encode.o obj/mingw32/jpgalls/decode.o obj/mingw32/jpgalls/init.o obj/mingw32/jpgalls/error.o obj/mingw32/jpgalls/color.o obj/mingw32/jpgalls/dct.o
43ar: creating lib/mingw32/libjpgal_s.a
44gcc -s -L../../lib/mingw32 obj/mingw32/ex1.o -o examples/ex1.exe lib/mingw32/libjpgal_s.a -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
45gcc -s -L../../lib/mingw32 obj/mingw32/ex2.o -o examples/ex2.exe lib/mingw32/libjpgal_s.a -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
46gcc -s -L../../lib/mingw32 obj/mingw32/ex3.o -o examples/ex3.exe lib/mingw32/libjpgal_s.a -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
47gcc -s -L../../lib/mingw32 obj/mingw32/ex4.o -o examples/ex4.exe lib/mingw32/libjpgal_s.a -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
48gcc -s -L../../lib/mingw32 obj/mingw32/ex5.o -o examples/ex5.exe lib/mingw32/libjpgal_s.a -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
49Done.
50Now run `make install' to complete the install process.
51 
52c:\mingw\allegro-4.3.11plus_Rev_11520\addons\jpgalleg>mingw32-make DEBUGMODE=1
53Compiling JPGalleg for MinGW32
54gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DDEBUG -DDEBUGMODE src/jpgalleg.c -o obj/mingw32/jpgalld/jpgalleg.o
55gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DDEBUG -DDEBUGMODE src/io.c -o obj/mingw32/jpgalld/io.o
56gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DDEBUG -DDEBUGMODE src/encode.c -o obj/mingw32/jpgalld/encode.o
57gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DDEBUG -DDEBUGMODE src/decode.c -o obj/mingw32/jpgalld/decode.o
58gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DDEBUG -DDEBUGMODE src/init.c -o obj/mingw32/jpgalld/init.o
59gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W -DDEBUG -DDEBUGMODE src/error.c -o obj/mingw32/jpgalld/error.o
60gcc -x assembler-with-cpp -I./include -c src/i386/color.s -o obj/mingw32/jpgalld/color.o
61gcc -x assembler-with-cpp -I./include -c src/i386/dct.s -o obj/mingw32/jpgalld/dct.o
62ar rs lib/mingw32/libjpgad.a obj/mingw32/jpgalld/jpgalleg.o obj/mingw32/jpgalld/io.o obj/mingw32/jpgalld/encode.o obj/mingw32/jpgalld/decode.o obj/mingw32/jpgalld/init.o obj/mingw32/jpgalld/error.o obj/mingw32/jpgalld/color.o obj/mingw32/jpgalld/dct.o
63ar: creating lib/mingw32/libjpgad.a
64gcc -s -L../../lib/mingw32 obj/mingw32/ex1.o -o examples/ex1.exe lib/mingw32/libjpgad.a -lalld
65Info: resolving _allegro_error by linking to __imp__allegro_error (auto-import)
66Info: resolving _screen by linking to __imp__screen (auto-import)
67fu000001.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballd_a_iname'
68fu000003.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballd_a_iname'
69fu000004.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballd_a_iname'
70nmth000000.o:(.idata$4+0x0): undefined reference to `_nm__allegro_error'
71nmth000002.o:(.idata$4+0x0): undefined reference to `_nm__screen'
72mingw32-make: *** [examples/ex1.exe] Error 1
73
74c:\mingw\allegro-4.3.11plus_Rev_11520\addons\jpgalleg>mingw32-make
75Compiling JPGalleg for MinGW32
76gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W src/jpgalleg.c -o obj/mingw32/jpgall/jpgalleg.o
77gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W src/io.c -o obj/mingw32/jpgall/io.o
78gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W src/encode.c -o obj/mingw32/jpgall/encode.o
79gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W src/decode.c -o obj/mingw32/jpgall/decode.o
80gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W src/init.c -o obj/mingw32/jpgall/init.o
81gcc -c -s -I./include -I../../include -march=pentium -O2 -ffast-math -fomit-frame-pointer -Wall -W src/error.c -o obj/mingw32/jpgall/error.o
82gcc -x assembler-with-cpp -I./include -c src/i386/color.s -o obj/mingw32/jpgall/color.o
83gcc -x assembler-with-cpp -I./include -c src/i386/dct.s -o obj/mingw32/jpgall/dct.o
84ar rs lib/mingw32/libjpgal.a obj/mingw32/jpgall/jpgalleg.o obj/mingw32/jpgall/io.o obj/mingw32/jpgall/encode.o obj/mingw32/jpgall/decode.o obj/mingw32/jpgall/init.o obj/mingw32/jpgall/error.o obj/mingw32/jpgall/color.o obj/mingw32/jpgall/dct.o
85ar: creating lib/mingw32/libjpgal.a
86gcc -s -L../../lib/mingw32 obj/mingw32/ex1.o -o examples/ex1.exe lib/mingw32/libjpgal.a -lalleg
87Info: resolving _allegro_error by linking to __imp__allegro_error (auto-import)
88Info: resolving _screen by linking to __imp__screen (auto-import)
89fu000001.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballeg_a_iname'
90fu000003.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballeg_a_iname'
91fu000004.o:(.idata$2+0xc): undefined reference to `lib_mingw32_liballeg_a_iname'
92nmth000000.o:(.idata$4+0x0): undefined reference to `_nm__allegro_error'
93nmth000002.o:(.idata$4+0x0): undefined reference to `_nm__screen'
94mingw32-make: *** [examples/ex1.exe] Error 1
95 
96c:\mingw\allegro-4.3.11plus_Rev_11520\addons\jpgalleg>
97//

So the static optimized version, and the static debug version both build fine along with the examples, but then the dynamic optimized and the dynamic debug versions fail to compile the example programs.

All four versions of the library call the 'ar' utility in the same way (pseudocode) :

ar rs LIB_NAME $(OBJ_LIST)

I don't have any dll's in the jpgalleg\lib\mingw32 folder, and I don't think the 'ar' utility creates an export library, so you're really confusing me here.

Edit
I see what's going wrong now. The object files for the example programs are only built for the very first version of the JpgAlleg library that you create. Each time after that, it just links the ex#.o files into the ex#.exe executables without recompiling them first. I had to really scrutinize it to see that. Also, the object files are not being put into the proper folder for their library versions :

//
gcc -c -s -I./include -I../../include -march=pentium -O0 -g2 -Wall -W  -DALLEGRO_STATICLINK -DDEBUG -DDEBUGMODE examples/ex1.c -o obj/mingw32/ex1.o
gcc -s  -L../../lib/mingw32 obj/mingw32/ex1.o -o examples/ex1.exe lib/mingw32/libjpgad_s.a -lalld_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
//

See how the statically linked version of the ex1 object file gets placed into the obj/mingw32 folder instead of the obj/mingw32/jpgalls folder?

That still doesn't solve the missing dynamic libraries though.

Milan Mimica
Member #3,877
September 2003
avatar

Apparently, JPGAlleg can't be built as a shared lib either. But you can make it link to a shared allegro. The problem here is that make was reusing .obj files from the previous build (where .objs were built with the ALLEGRO_STATICLINK=1 flag). A "make clean" in between would work around it. I've fixed it in SVN now.

Um, actually, none of the addons can be built as a DLL. I like that ;D

EDIT: Yes, it took me an hour to write this post.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

You found the necessary changes much faster than I did. I had only gotten through $(EXAMPLE_OBJECTS) and $(EXAMPLES) by the time you had it fixed in SVN. :D

OT : Now that I've gotten a local working copy of 4.3.11 from SVN, it's so much nicer to just use TortoiseSVN to 'Update' than download it all each time. :)

Quote:

Apparently, JPGAlleg can't be built as a shared lib either. But you can make it link to a shared allegro.

Okay, so does that mean that when I want to link my program to allegro dynamically that I link against libjpgad.a and libjpgal.a, and when I want to link my program to allegro statically that I link to libjpgad_s.a and libjpgal_s.a? (Only linking to the appropriate debugging or optimized one of course)

Quote:

Yes, it took me an hour to write this post.

Me too! I'm slow. :(

Trent Gamblin
Member #261
April 2000
avatar

Milan, I can test it on osx in a few days when I get a macbook and after I figure out how to use it.

Evert
Member #794
November 2000
avatar

Quote:

Milan, I can test it on osx in a few days when I get a macbook and after I figure out how to use it.

I could do it today or tomorrow if I have time between shopping, skype, work and Allegro 5.

Milan Mimica
Member #3,877
September 2003
avatar

Quote:

Okay, so does that mean that when I want to link my program to allegro dynamically that I link against libjpgad.a and libjpgal.a, and when I want to link my program to allegro statically that I link to libjpgad_s.a and libjpgal_s.a?

Yes. I'm glad we settled this.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Quote:

Yes. I'm glad we settled this.

You have to admit though, that it sounds a little strange to have a "dynamic" version of a library that is actually static. Whatever though, I'll get used to it.

Okay, so, all 4 versions of JpgAlleg and the examples build fine for me now. Thank you, Milan.

A while back, I made a thread about adding a mouse_on_screen() function to Allegro here :
Simple Mouse API feature request

I was wondering if it would be alright to have this function added to Allegro. All it does is return a copy of allegro's _mouse_on variable that indicates whether the mouse is on the screen or not, but it's very useful to prevent having two mouse pointers on the screen at the same time when running in windowed mode and you're drawing the mouse pointer yourself. It would also allow other effects such as pausing the game when the mouse goes off the window, and only scrolling when near the edge of the window, but not while off of the window, etc...

Thanks again,
Edgar

Milan Mimica
Member #3,877
September 2003
avatar

The mouse_on_screen() looks good to me. You know what would be nice? If you made a ready-to-apply patch with docs and everything ;D That TortoiseSVN of yours must have a feature of creating diffs.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

No, I don't mind making a patch. Does SVN sort out DOS and UNIX line endings automatically?

Do I need to change the .def file? I think that will be taken care of when 'misc/fixdll.sh' is run before the distribution is put together, but I'm not certain.

What format is the documentation supposed to be in? Give me a little while to figure out the _tx stuff, and I'll get back to you.
(Ah, I found 'allegro/docs/src/makedoc/format.txt'. Reading it now.)

Edit

Quote:

That TortoiseSVN of yours must have a feature of creating diffs.

Right Click on local working copy of allegro folder -> TortoiseSVN -> Create Patch. That's handy. The Tortoise UDiff viewer even makes it look nice too. :)

The diff it made is a little odd though - there were two lines in allegro._tx that had degree symbols changed to an Angstrom and degree symbol. Must be some encoding problem. Since my default save encoding in Code Blocks is UTF-8, I think I changed allegro._tx from Windows-1252 into UTF-8, and so the degree symbol changed. Hold on, let me try again.

Alright, I resaved the files as Windows 1252, and now the patch looks right :
mouse_on_screen patch for
docs\src\allegro._tx
src\mouse.c
include\allegro\mouse.h

Please take a look and see if there's anything that I missed in there.

Milan Mimica
Member #3,877
September 2003
avatar

Quote:

Does SVN sort out DOS and UNIX line endings automatically?

We keep UNIX line endings in SVN, but it's only important that line endings in the patch are consistent. In yours they are not, but it's not a big deal.

Looks good, I've applied it.

lemranger
Member #10,003
July 2008
avatar

Milan, the OS X build worked fine. I did not remove any config files or do anything out of the ordinary - just the fix.sh, make, install and the lib and addons all compiled and ran without a hitch. Nice!

iMac intel, 10.5.6

Paul

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Quote:

We keep UNIX line endings in SVN, but it's only important that line endings in the patch are consistent. In yours they are not, but it's not a big deal.

Weird. Sorry about that. The nice thing about Code Blocks is that it displays LF and CRLF line endings the same way, but that's also the reason why I didn't notice it. In the future, I can enable the display of EOL chars in Code Blocks to check first before I submit a patch.

So it looks like the CRLF's were introduced when I created the patch with TortoiseSVN, because the old code context and the new code replacement in the diff were all LF line endings, and just the info about which files it was relating to used CRLF.

Quote:

Looks good, I've applied it.

Cool, glad to be of service.

I've got a couple other functions related to programmatically finding information on arbitrary graphics driver modes being fullscreen or windowed that I'd like to submit, but I need to go over them again, and create a thread and/or post to them [AD] first. Were you planning on making a release soon for Allegro 4.4 if the MacOS build system checks out?

Milan Mimica
Member #3,877
September 2003
avatar

Quote:

I've got a couple other functions related to programmatically finding information on arbitrary graphics driver modes being fullscreen or windowed that I'd like to submit, but I need to go over them again, and create a thread and/or post to them [AD] first.

[AD] would be the the best place to post such things

Quote:

Were you planning on making a release soon for Allegro 4.4 if the MacOS build system checks out?

I would have released it months ago but it's not up to me in the end. Just wanted to nail down this few known issues to make the 4.4 release the most stable ever. If it ever comes out that is. We're all too excited about A5.

It would be also fair to mention it in this thread: DOS is broken in 4.3.10plus and likely will stay so.

Peter Wang
Member #23
April 2000

I vote Milan for 4.4 branch Tsar.

GullRaDriel
Member #3,861
September 2003
avatar

Since the vote is started, I also vote for a 4.4 public release.

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

Elias
Member #358
May 2000

Was the vote about whether to have a 4.4 release, or whether to have Milan be the Tsar? I vote for both in any case :)

--
"Either help out or stop whining" - Evert

 1   2 


Go to: