gwerz / theunarchiver

Automatically exported from code.google.com/p/theunarchiver
Other
0 stars 0 forks source link

Compile on FreeBSD #806

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Hi,

first of all, thanks a lot for this tool. It would be beautiful, if I can 
compile it under FreeBSD, do you think you can make Makefile for it ?

Thanks a lot.

Original issue reported on code.google.com by gege...@gmail.com on 16 Jan 2015 at 12:59

GoogleCodeExporter commented 9 years ago
Does the Linux Makefile not work?

Original comment by paracel...@gmail.com on 16 Jan 2015 at 7:13

GoogleCodeExporter commented 9 years ago
Well, it doesnt work. I am far from FreeBSD guru, so my friend wrote: 
"I don't know much about GNUStep, but it appears that it doesn't like the way 
that port was configured.  After getting the path stuff worked out, "Your 
gnustep-base was configured for the objc-nonfragile-abi but you are not using 
it now.""

Original comment by gege...@gmail.com on 18 Jan 2015 at 9:13

GoogleCodeExporter commented 9 years ago
Don't really know much about GNUStep on FreeBSD either, so I can't help much. 
You need to figure out what options gcc wants to build GNUStep programs on 
FreeBSD, and then make a copy of Makefile.linux and edit the lines at the start 
that specify which arguments to use, I think.

Original comment by paracel...@gmail.com on 18 Jan 2015 at 11:15

GoogleCodeExporter commented 9 years ago
I saw this here, so I decided to give it a try myself.

The error you're getting is because the default compiler for FreeBSD these days 
is clang, so the GNUstep you installed was compiled with it. Apparently there 
are features of GNUstep that won't work with gcc 
(http://wiki.gnustep.org/index.php/ObjC2_FAQ#Which_Bits_of_Objective-C_2_Work.3F
), and the header files for GNUstep prevent you from mixing in things compiled 
with the old ABI (which you'll get when compiling Obj-C with gcc) with the new 
one. Therefore you'll have to compile unar/lsar with clang as well.

I was unable to get these Makefiles working with FreeBSD's make, so I'm using 
gmake here. Libraries and headers are also in a different place, but that is 
easy to figure out.

Here's the diff for XADMaster and UniversalDetector's Makefiles.

Original comment by miguelpontes on 19 Jan 2015 at 12:06

Attachments:

GoogleCodeExporter commented 9 years ago
By the way, the GNUstep wiki says that one should be able to mix ABIs in 
GNUstep, but that clearly seems to be prevented at compile time here. I'm 
guessing they either changed their mind and the wiki is outdated or the FreeBSD 
port makes things behave differently.

Original comment by miguelpontes on 19 Jan 2015 at 12:13