[skip all navigation]

Compile SFmpq for Mac, If anyone wanted to know

Creator: MC˛poiuy_qwert
Time: Aug 26 2010, 1:00 am

Post #1     MC˛poiuy_qwert Aug 26 2010, 1:00 am

[Avatar]
PyMS and ProTRG developer
offlinecontact
Rank: Regular
Not many people will probably care, but I though I might as well share the information I have just in case someone is looking for info. These are the steps I took to fix some small compatibility errors and compile SFmpq on OS X:

1) Download SFmpqapi, SComp, bzip, and zlib
2) Replace #include <malloc.h> with #include <stdlib.h> in windows.cpp/.h, SMem.cpp/.h, and SFmpqapi.cpp/.h
3) Replace #include <windows.h> with #include "windows.h" in SFmpqapi.cpp/.h
4) Compile files in this order:
windows
SErr
SMem
explode
implode (there was a cast from unsigned char* to char* "error" on line 452 for me, easy fixes though)
huffman
crc32
wave
SComp
SFmpqapi
bzip (a simple "make" works to compile it. i needed to compile it or else I would get missing symbol errors, but didn't need to do this for zlib)
5) Compile it all together. I used:
g++ -dynamiclib -o SFmpq.dylib -lz windows.o SFmpqapi.o crc32.o explode.o huffman.o implode.o SComp.o SErr.o SMem.o wave.o bzip2/blocksort.o bzip2/compress.o bzip2/decompress.o bzip2/randtable.o bzip2/bzip2.o bzip2/bzlib.o bzip2/crctable.o bzip2/huffman.o


Thank you to ShadowFlare for making such an awesome dll (or dylib ;P)!

Top

Post #2     ShadowFlare Sep 3 2010, 3:14 am

[Avatar]
offlinecontact
Rank: Veteran
I had fixed some occurrences of malloc.h already, but there was one remaining in the windows.h file, which I changed to stdlib.h just a few minutes ago.

Top

Post #3     Jack[RCDF Sep 3 2010, 3:15 am

[Avatar]
Understanding breeds empathy.
offlinecontact
Rank: Regular
I might give a go at compiling this for linux, as I mostly use linux nowadays and every now and then could do with a working MPQ tool.
I'll let ya'll know how it goes.

Red classic.

Left SEN, I may pop in sometimes but I have more useful things to do with my time. If you need anything, email me at zany DOT wun AT gmail DOT com. Maybe I'll come back some day and be regular again but right now it's not for me.
gg
olo im still here till the 2011 last stand contest and these SD topics are done with
Top

Post #4     Jack[RCDF Sep 3 2010, 3:56 am

[Avatar]
Understanding breeds empathy.
offlinecontact
Rank: Regular
Sorry for double post, but you might miss the edit:

In windows.h, you define __declspec twice.

Code

#define __declspec(dllimport)
#define __declspec(dllexport)

Why is this? It's throwing up an error when I try to compile windows.cpp.

And I also get this error:

Code

windows.cpp: In function ‘char* strdup(const char*)’:
windows.cpp:160: error: declaration of ‘char* strdup(const char*)’ throws different exceptions
windows.h:141: error: from previous declaration ‘char* strdup(const char*) throw ()’


I'm not very good at programming, so yeah :/

Red classic.

Left SEN, I may pop in sometimes but I have more useful things to do with my time. If you need anything, email me at zany DOT wun AT gmail DOT com. Maybe I'll come back some day and be regular again but right now it's not for me.
gg
olo im still here till the 2011 last stand contest and these SD topics are done with
Top

Post #5     ShadowFlare Sep 3 2010, 4:36 am

[Avatar]
offlinecontact
Rank: Veteran
At the time, I must not have realized that I didn't need a different one for each of those cases.

As for strdup, try removing it from windows.cpp/.h. Maybe I didn't used to have it including the header that defined it and now it is?

The last time I had tried compiling it in Linux was maybe when I had a computer with Red Hat Linux 7.something installed on another partition.
This post was edited 1 time, last edit by ShadowFlare: Sep 3 2010, 4:42 am.

Top
0 members in this topic (italic members are currently writing a reply): None
+ guest(s)


[03:28 pm]
Roy -- That "Still" was so powerful it capitalized the first letter of the proceeding word.
[03:13 pm]
SmE(Raitaki -- Wondering if I have gone to the correct period or not :/
[03:12 pm]
SmE(Raitaki -- I STILL Spend half of my school periods walking to class and wn
[02:29 pm]
Roy -- I've seen replays of Temple Siege with that guy in it.
[12:38 pm]
Azrael.Wrath -- Just throwing that out there.
[12:38 pm]
Azrael.Wrath -- Also, Herbalogist is about the biggest degenerate I've had the displeasure of encountering in a long time, online or otherwise.
[12:36 pm]
Azrael.Wrath -- Back to doing turns.
Please log in to shout.