Staredit Network > Forums > Modding Discussion > Topic: Compile SFmpq for Mac
Compile SFmpq for Mac
Aug 26 2010, 1:00 am
By: poiuy_qwert  

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

PyMS and ProTRG developer

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)!




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



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.



None.

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

>be faceless void >mfw I have no face

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.

"In short, their absurdities are so extreme that it is painful even to quote them."

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

>be faceless void >mfw I have no face

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.

"In short, their absurdities are so extreme that it is painful even to quote them."

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



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.

Post has been edited 1 time(s), last time on Sep 3 2010, 4:42 am by ShadowFlare.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[06:51 pm]
Vrael -- It is, and I could definitely use a company with a commitment to flexibility, quality, and customer satisfaction to provide effective solutions to dampness and humidity in my urban environment.
[06:50 pm]
NudeRaider -- Vrael
Vrael shouted: Idk, I was looking more for a dehumidifer company which maybe stands out as a beacon of relief amidst damp and unpredictable climates of bustling metropolises. Not sure Amazon qualifies
sounds like moisture control is often a pressing concern in your city
[06:50 pm]
Vrael -- Maybe here on the StarEdit Network I could look through the Forums for some Introductions to people who care about the Topics of Dehumidifiers and Carpet Cleaning?
[06:49 pm]
Vrael -- Perhaps even here I on the StarEdit Network I could look for some Introductions.
[06:48 pm]
Vrael -- On this Topic, I could definitely use some Introductions.
[06:48 pm]
Vrael -- Perhaps that utilizes cutting-edge technology and eco-friendly cleaning products?
[06:47 pm]
Vrael -- Do you know anyone with a deep understanding of the unique characteristics of your carpets, ensuring they receive the specialized care they deserve?
[06:45 pm]
NudeRaider -- Vrael
Vrael shouted: I've also recently becoming interested in Carpet Cleaning, but I'd like to find someone with a reputation for unparalleled quality and attention to detail.
beats me, but I'd make sure to pick the epitome of excellence and nothing less.
[06:41 pm]
Vrael -- It seems like I may need Introductions to multiple companies for the Topics that I care deeply about, even as early as Today, 6:03 am.
[06:38 pm]
Vrael -- I need a go-to solution and someone who understands that Carpets are more than just decorative elements in my home.
Please log in to shout.


Members Online: Roy