[ z@re @ 08.02.2006. 03:22 ] @
dakle, ako vam slucajno ne uspjeva iskompajlirat xfe (file manager) iz ports tree-a na freebsd-u, evo kako sam ja zaobisao taj problem, pa ako nekoga muci ista muka da se zna snac.

xfe port je markiran kao broken, jer se ne moze iz nekog razloga kompajlirati sa FOXom (toolkit) iz ports stabla.

prvo, ako je u ports stablu verzija FOX-a 1.1 ili 1.2, nemojte je koristiti, radje sa ftp-a u packages direktoriju za i386/RELEASE-5.4 skinite 1.4 verziju FOX-a, i samo je kernite sa pkg_add. onda treba skinut xfe s njihove stranice, http://roland65.free.fr/xfe/ , ja sam koristio verziju 0.84.

onda, kad je FOX instaliran, standardna configure&&make&&make install procedura za xfe ne prolazi.configure scripta izbaci na provjeri FOX toolkita, kaze da ga ne moze naci, iako su linkeri i pathovi dobro postavljeni. izbaci to i za libPNG. no to nije veliki problem, jer se to moze lako srediti u configure scripti da ne izbacuje na tim provjerama. evo ovako otprilike :

ovo je dio configure originala

Code:

#define HAVE_LIBFOX_1_4 1
_ACEOF
  LIBS="-lFOX-1.4 $LIBS"
else
  { { echo "$as_me:$LINENO: error: \"libFOX-1.4 not found\"" >&5
echo "$as_me: error: \"libFOX-1.4 not found\"" >&2;}
   { (exit 1); exit 1; }; }
fi


sad treba izbacit ova dva exit-a da ne prekida skriptu.

Code:

#define HAVE_LIBFOX_1_4 1
_ACEOF
  LIBS="-lFOX-1.4 $LIBS"
else
  { { echo "$as_me:$LINENO: error: \"libFOX-1.4 not found\"" >&5
echo "$as_me: error: \"libFOX-1.4 not found\"" >&2;}
   { }; }
fi


i to je to. ako prijavi i gresku pri nalazenju libPNG, samo izgrepajte configure skriptu za libPNG, i potpuno je ista sekcija kao i gore, pa napravite istu stvar.

e sad, configure prodje i generira sve potrebno, idemo na make, make radi, i fino iskompajlira sve pripadne sourceove u .o fileove, ali kad ih treba pospojiti u glavni program onda ide belaj. zato sto jednostavno u makefileovima nisu dobro podeseni parametri za linkanje sa FOX toolkitom. kad make pocne izbacivati djumbus (da ne moze resolvati linking simbole za funkcije), jednostavno ga prekinite. meni je bilo lakse potpuno rucno pospojit .o fileove u jedan binary, pa evo kako to ide :

make pukne kad pocne iducu liniju izvsavat
Code:

g++ -O2 -g -O2    -o xfi  icons.o File.o CommandWindow.o  Preferences.o InputDialog.o  OverwriteBox.o FileDict.o FileList.o  DirBox.o FileDialog.o MessageBox.o  XFileImage.o /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib


i onda jednostavno ga prekinite sa ctrl-c, i udjite u direktorij src, i istipkajte sljedece
Code:

c++ icons.o help.o File.o FileDict.o FileList.o FileDialog.o DirList.o DirBox.o DirListBox.o DialogBox.o MessageBox.o Bookmarks.o HistInputDialog.o InputDialog.o OverwriteBox.o TextWindow.o CommandWindow.o Properties.o Preferences.o DirPanel.o FilePanel.o XFileExplorer.o main.o -o xfe -L/usr/local/lib -lintl -lFOX-1.4


i to je to. za par sekundi cete dobit xfe izvrsni file u istom direktoriju pa ga iskopirajte u /usr/X11R6/bin/ ili gdje god hocete.

nadam se da ce ovo nekom pomoc...

[Ovu poruku je menjao z@re dana 08.02.2006. u 04:23 GMT+1]