Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: OscarBraindeaD on April 01, 2009, 05:32:55 PM

Title: Compilando para MAC
Post by: OscarBraindeaD on April 01, 2009, 05:32:55 PM
Hola a todos.

Para no dar el tostón en exclusiva a AnimaNegra y Splinter (gracias por vuestra ayuda y paciencia), lo pongo por aquí a ver si alguien puede echarme una mano.
Estoy intentando compilar Bennu para Mac OsX. 
He instalado  y al parecer correctamente, ya que conseguí compilar el Fenix 0.92:
-LibSDl
-LibSDL_mixer
-LibPNG
-LibZ
-LibUngif

Aún así no me lo compila, al hacer ./configure me muestra:
[code language="bennu"]
checking for g77... no
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for xlf90... no
checking for f90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... no
checking for g95... no
checking for xlf95... no
checking for f95... no
checking for fort... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether  accepts -g... no
...
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking dependency style of g++... gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking for gzsetparams in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bgdrtm/Makefile
config.status: creating bgdrtm/src/Makefile
config.status: creating bgdc/Makefile
config.status: creating bgdc/src/Makefile
config.status: creating bgdi/Makefile
config.status: creating bgdi/src/Makefile
config.status: executing depfiles commands
[/code]

Sólo muestro lo que no dice "yes", etc... no sé si esta salida es correcta o se ve que está fallando algo.

El caso es que, al hacer make del invento, me muestra lo siguiente:
[code language="bennu"]
Making all in bgdrtm
Making all in src
/bin/sh ../../libtool --tag=CC   --mode=link gcc -O2 -finline-functions -fno-strict-aliasing -I/usr/local/include -Wall -DTARGET_MAC -I../../include -I../include -D__BGDRTM__ -DDEBUG -O2 -finline-functions -fno-strict-aliasing -I/usr/local/include -s -module -no-undefined -avoid-version -export-all-symbols  -o libbgdrtm.la -rpath /usr/local/lib libbgdrtm_la-dcbr.lo libbgdrtm_la-sysprocs.lo libbgdrtm_la-strings.lo libbgdrtm_la-dirs.lo libbgdrtm_la-copy.lo libbgdrtm_la-misc.lo libbgdrtm_la-instance.lo libbgdrtm_la-interpreter.lo libbgdrtm_la-debug.lo libbgdrtm_la-files.lo libbgdrtm_la-varspace_file.lo libbgdrtm_la-xctype.lo  -L/usr/local/lib
gcc  -o .libs/libbgdrtm.so -bundle  .libs/libbgdrtm_la-dcbr.o .libs/libbgdrtm_la-sysprocs.o .libs/libbgdrtm_la-strings.o .libs/libbgdrtm_la-dirs.o .libs/libbgdrtm_la-copy.o .libs/libbgdrtm_la-misc.o .libs/libbgdrtm_la-instance.o .libs/libbgdrtm_la-interpreter.o .libs/libbgdrtm_la-debug.o .libs/libbgdrtm_la-files.o .libs/libbgdrtm_la-varspace_file.o .libs/libbgdrtm_la-xctype.o  -L/usr/local/lib
Undefined symbols:
  "_gzclose", referenced from:
      _file_close in libbgdrtm_la-files.o
      _file_exists in libbgdrtm_la-files.o
  "_gzopen", referenced from:
      _file_open in libbgdrtm_la-files.o
      _file_open in libbgdrtm_la-files.o
      _file_open in libbgdrtm_la-files.o
  "_gzwrite", referenced from:
      _file_write in libbgdrtm_la-files.o
  "_gzread", referenced from:
      _file_read in libbgdrtm_la-files.o
  "_gzeof", referenced from:
      _file_eof in libbgdrtm_la-files.o
  "_gzseek", referenced from:
      _file_seek in libbgdrtm_la-files.o
  "_gzgets", referenced from:
      _file_qgets in libbgdrtm_la-files.o
      _file_gets in libbgdrtm_la-files.o
  "_gztell", referenced from:
      _file_pos in libbgdrtm_la-files.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [libbgdrtm.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
[/code]

He intentado meter en el path donde busca las librerías la dirección de la zlib por si fuese eso, pero tampoco da resultado por lo que se ve...

La cuestión es que soy tirando a nuevo en esto del make y del mac por lo que ando perdido.
Por cierto, esto ocurre compilando el core, con los módulos aún no me he puesto viendo el exitazo que tengo ;)

Muchas gracias y perdonad el tamaño del post!

Salud


Title: Re: Compilando para MAC
Post by: SplinterGU on April 01, 2009, 11:19:10 PM
falta el -lz
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 02, 2009, 03:37:41 AM
Ups!

Te refieres a este -lz: "COMMON_LDFLAGS="-L/usr/local/lib -lz -lshlwapi"?
Así es como está puesto para windows, para mac he de ponerlo igual?

Y, otra cosa, a la hora de hacer los modules, dice que hay que poner:
./configure --with-bennu-prefix=<path donde se encuentran los fuentes del core>

Cuál es el prefijo de Bennu que hay que poner?

Lo siento, sé que estas preguntas son de novato total...

Muchas gracias!
Salud
Title: Re: Compilando para MAC
Post by: SplinterGU on April 02, 2009, 12:31:33 PM
claro, para mac igual al de windows sin -lshlwapi

el configure para los modulos es

por ejemplo, si tenes todos los fuentes en:

/opt/bennugd/

y dentro 3 carpetas

core
modules
tools

el prefijo es /opt/bennugd/core

Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 02, 2009, 01:23:25 PM
Muchas gracias!!!
Soy torpe y nuevo... una combinación explosiva!!!!
Esta tarde cuando llegue a casa lo pruebo a ver qué pasa.
Luego os cuento.

Salud
Title: Re: Compilando para MAC
Post by: SplinterGU on April 02, 2009, 01:57:13 PM
de nada...
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 02, 2009, 04:30:22 PM
Maldición! sigue sin pasar el make... da el mismo error que antes...  ???
Adjunto como anexo la salida del ./configure y el make, a ver si se ve mejor así...



Title: Re: Compilando para MAC
Post by: SplinterGU on April 02, 2009, 08:33:14 PM
modificaste el configure.in e hiciste el autoconf y automake?
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 03, 2009, 03:33:09 AM
Quote from: SplinterGU on April 02, 2009, 08:33:14 PM
modificaste el configure.in e hiciste el autoconf y automake?

parece que funciona!
Olvidé hacer autoconf!
El automake me da este error:
configure.in:55: version mismatch.  This is Automake 1.10,
configure.in:55: but the definition used by this AM_INIT_AUTOMAKE
configure.in:55: comes from Automake 1.10.1.  You should recreate
configure.in:55: aclocal.m4 with aclocal and run automake again.

Pero luego, haciendo ./configure y make, parece que sí crea los binarios!!!
Luego los probaré y haré los modules!
Muchas gracias!
Salud
Title: Re: Compilando para MAC
Post by: SplinterGU on April 03, 2009, 04:10:43 AM
de nada... ;)
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 03, 2009, 03:44:22 PM
Hola de nuevo, siento ser tan cansino!

Bueno, no podía ser tan sencillo... ahora fallan los módulos.
>Modifico el configure.in incluyendo  COMMON_LIBS="$LIBS -lz" 
>ejecuto autoconf
>ejecuto automake (da el mismo error que antes)
>ejecuto ./configure --with-bennu-prefix=/Users/oscar/bennu/build38/core
>ejecuto make y muestra el error que hay en el documento adjunto...

Args, esto es un sin vivir  ;D

Gracias de nuevo



Title: Re: Compilando para MAC
Post by: josebita on April 03, 2009, 03:54:18 PM
Fíjate splinter, que en las opciones de compilación no se incluye por ningún lado el "-lz". ¿Puede ser esto por lo que te acabo de pasar por PM?
Title: Re: Compilando para MAC
Post by: SplinterGU on April 03, 2009, 11:18:19 PM
1 imagen vale mas que mil palabras


csplinter@splinter:~$ cd bennugd/
splinter@splinter:~/bennugd$ grep  COMMON_LIBS */*
modules/config.log:COMMON_LIBS=' -lc -lz -ldl'
modules/config.status:s,@COMMON_LIBS@,|#_!!_#| -lc -lz -ldl,g
modules/configure:COMMON_LIBS
modules/configure:        COMMON_LIBS="$COMMON_LIBS -lc -lz -ldl"
modules/configure:     COMMON_LIBS="$LIBS -lz -lshlwapi"
modules/configure:COMMON_LIBS!$COMMON_LIBS$ac_delim
modules/configure.in:        COMMON_LIBS="$COMMON_LIBS -lc -lz -ldl"
modules/configure.in:     COMMON_LIBS="$LIBS -lz -lshlwapi"
modules/configure.in:AC_SUBST(COMMON_LIBS)
modules/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
splinter@splinter:~/bennugd$ grep  COMMON_LIBS */*/*
modules/autom4te.cache/output.0:COMMON_LIBS
modules/autom4te.cache/output.0:        COMMON_LIBS="$COMMON_LIBS -lc -lz -ldl"
modules/autom4te.cache/output.0:     COMMON_LIBS="$LIBS -lz -lshlwapi"
modules/autom4te.cache/output.0:COMMON_LIBS!$COMMON_LIBS$ac_delim
modules/autom4te.cache/output.1:COMMON_LIBS
modules/autom4te.cache/output.1:        COMMON_LIBS="$COMMON_LIBS -lc -lz -ldl"
modules/autom4te.cache/output.1:     COMMON_LIBS="$LIBS -lz -lshlwapi"
modules/autom4te.cache/output.1:COMMON_LIBS!$COMMON_LIBS$ac_delim
modules/autom4te.cache/traces.0:m4trace:configure.in:76: -1- m4_pattern_allow([^COMMON_LIBS$])
modules/autom4te.cache/traces.1:m4trace:configure.in:74: -1- AC_SUBST([COMMON_LIBS])
modules/autom4te.cache/traces.1:m4trace:configure.in:74: -1- AC_SUBST_TRACE([COMMON_LIBS])
modules/autom4te.cache/traces.1:m4trace:configure.in:74: -1- m4_pattern_allow([^COMMON_LIBS$])
modules/libblit/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libblit/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libdraw/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libdraw/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libfont/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libfont/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libgrbase/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libgrbase/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libjoy/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libjoy/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libkey/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libkey/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libmouse/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libmouse/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/librender/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/librender/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libscroll/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libscroll/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libsdlhandler/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libsdlhandler/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libtext/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libtext/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libvideo/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libvideo/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/libwm/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/libwm/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_blendop/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_blendop/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_cd/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_cd/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_debug/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_debug/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_dir/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_dir/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_draw/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_draw/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_effects/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_effects/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_ffi/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_ffi/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_file/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_file/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_flic/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_flic/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_grproc/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_grproc/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_joy/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_joy/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_key/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_key/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_m7/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_m7/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_map/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_map/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_math/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_math/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_mem/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_mem/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_mouse/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_mouse/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_path/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_path/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_proc/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_proc/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_rand/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_rand/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_regex/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_regex/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_say/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_say/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_screen/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_screen/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_scroll/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_scroll/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_sort/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_sort/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_sound/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_sound/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_string/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_string/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_sys/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_sys/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_text/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_text/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_time/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_time/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_timers/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_timers/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_video/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_video/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
modules/mod_wm/Makefile:COMMON_LIBS =  -lc -lz -ldl
modules/mod_wm/Makefile.in:COMMON_LIBS = @COMMON_LIBS@
tools/moddesc/Makefile:moddesc_LDADD = $(COMMON_LIBS)
tools/moddesc/Makefile.am:moddesc_LDADD = $(COMMON_LIBS)
tools/moddesc/Makefile.in:moddesc_LDADD = $(COMMON_LIBS)
splinter@splinter:~/bennugd$
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 04, 2009, 08:33:45 AM
Holas!
Muchas gracias, lo he intentado de estas dos formas:

    darwin*)
        INCLUDES="-I/usr/local/include"
        COMMON_CFLAGS="-Wall -DTARGET_MAC"
   COMMON_LIBS="-L/usr/local/lib -lc -lz -ldl"
       ;;

y

    darwin*)
        INCLUDES="-I/usr/local/include"
        COMMON_CFLAGS="-Wall -DTARGET_MAC"
        COMMON_LIBS="-L/usr/local/lib"
   COMMON_LIBS="$COMMON_LIBS -lc -lz -ldl"
       ;;

y tampoco me ha funcionado... sigue error... ¡¡¡¡¡esto ya es algo personal!!!!!   ;D

[code language="bennu"]
Undefined symbols:
  "_c_lower", referenced from:
      _c_lower$non_lazy_ptr in libbgdrtm.a(libbgdrtm_la-strings.o)
  "_gzclose", referenced from:
      _file_close in libbgdrtm.a(libbgdrtm_la-files.o)
      _file_exists in libbgdrtm.a(libbgdrtm_la-files.o)
  "_c_type", referenced from:
      _c_type$non_lazy_ptr in libbgdrtm.a(libbgdrtm_la-sysprocs.o)
  "_gzopen", referenced from:
      _file_open in libbgdrtm.a(libbgdrtm_la-files.o)
      _file_open in libbgdrtm.a(libbgdrtm_la-files.o)
      _file_open in libbgdrtm.a(libbgdrtm_la-files.o)
  "_gzwrite", referenced from:
      _file_write in libbgdrtm.a(libbgdrtm_la-files.o)
  "_gzread", referenced from:
      _file_read in libbgdrtm.a(libbgdrtm_la-files.o)
  "_c_upper", referenced from:
      _c_upper$non_lazy_ptr in libbgdrtm.a(libbgdrtm_la-strings.o)
      _c_upper$non_lazy_ptr in libbgdrtm.a(libbgdrtm_la-sysprocs.o)
  "_gzeof", referenced from:
      _file_eof in libbgdrtm.a(libbgdrtm_la-files.o)
  "_gzseek", referenced from:
      _file_seek in libbgdrtm.a(libbgdrtm_la-files.o)
  "_gzgets", referenced from:
      _file_qgets in libbgdrtm.a(libbgdrtm_la-files.o)
      _file_gets in libbgdrtm.a(libbgdrtm_la-files.o)
  "_gztell", referenced from:
      _file_pos in libbgdrtm.a(libbgdrtm_la-files.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [libvideo.la] Error 1
make: *** [all-recursive] Error 1
[/code]
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 12:18:17 PM
1) adjunta toda la salida de la compilacion, incluido el configure (make > log 2>> log)
2) hace un ldd de la libz
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 04, 2009, 12:38:10 PM
Quote from: SplinterGU on April 04, 2009, 12:18:17 PM
2) hace un ldd de la libz

Lo siento, no sé qué es un ldd...
La compilación la adjunto en un fichero.

Muchas gracias!
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 01:07:59 PM
ldd es una utilidad que te dice que dependencias de una libreria.
y me falto decirte que uses tambien nm, que es una utilidad que te dice que funciones se exportan en una libreria.

para descartar todo.
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 01:15:53 PM
con que version estas? no es COMMON_LIBS es COMMON_LDFLAGS


perdon, en core es COMMON_LDFLAGS, en modules es COMMON_LIBS
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 01:23:38 PM
proba copiando los settings de linux y cambia solo el define de TARGET
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 04, 2009, 03:36:28 PM
He probado con las settings de linux, y el resultado es el mismo.  ???
Ahora probaré a hacer el ldd y el nm de la zlib y pongo por aquí los resultados.
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 03:43:40 PM
hiciste la siguiente secuencia de autotools?

aclocal
automake
autoconf

si tira algun error, repetir los pasos.

luego siempre hacer configure y make

No puede no funcionar, algo te falta, porque no estan los -lz.
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 04, 2009, 04:06:09 PM
Hmmm... esto es cada vez más raro.
He ejecutado el nm sobre la libz.a, pongo el fichero con la salida.
Con la configuración de libux copiada, con el target MAC, da otro problema con el AM_PATH_SDL... en el otro fichero, subo la secuencia con lo errores de autoconf y configure que da...
Esto es de locos!!!!  :D
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 04:20:10 PM
te falta el archivo .m4 de la SDL (o no esta bien instalada)
y necesitas la libz dinamica, la .a es la estatica.
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 04, 2009, 04:45:30 PM
Ups, perdón; el nm de la libz.1.2.3.dylib:

[code language="bennu"]
Mac:lib oscar$ nm libz.1.2.3.dylib

libz.1.2.3.dylib(single module):
         U ___error
0000d400 s __dist_code
000082ec t __dyld_func_lookup
0000d300 s __length_code
00000000 t __mh_dylib_header
000094d2 t __tr_align
00006303 t __tr_flush_block
00004e93 t __tr_init
0000984d t __tr_stored_block
00009792 t __tr_tally
00003aab T _adler32
000082fa T _adler32_combine
0000db20 s _base_dist
0000dc20 s _base_length
00009457 t _bi_flush
0000db00 s _bl_order
0000698e t _build_tree
000013ab t _check_header
         U _clearerr
00008461 T _compress
000083aa T _compress2
00008491 T _compressBound
0000770a t _compress_block
0000f060 s _configuration_table
00000c29 T _crc32
000084b9 T _crc32_combine
0000b2e0 s _crc_table
0000ef40 s _dbase.3300
00004f7b T _deflate
00008e8e T _deflateBound
00008ecf T _deflateCopy
00007c2d T _deflateEnd
00004a2c T _deflateInit2_
000049e4 T _deflateInit_
0000934f T _deflateParams
00008e16 T _deflatePrime
00004d03 T _deflateReset
00008cbf T _deflateSetDictionary
00008dee T _deflateSetHeader
00008e51 T _deflateTune
0000b050 s _deflate_copyright
00007ec1 t _deflate_fast
00005b22 t _deflate_slow
000091d9 t _deflate_stored
0000191a t _destroy
0000ef00 s _dext.3301
0000e640 s _distfix.3372
0000dd80 s _distfix.3416
000081e7 t _do_flush
0000dd20 s _extra_blbits
0000dba0 s _extra_dbits
0000dca0 s _extra_lbits
         U _fclose
         U _fdopen
         U _ferror
         U _fflush
00005f34 t _fill_window
00005abf t _flush_pending
         U _fopen
         U _fprintf
         U _fputc
         U _fread
         U _free
         U _fseek
         U _ftell
         U _fwrite$UNIX2003
00007d9e t _getLong
00007d15 t _get_byte
000084a8 T _get_crc_table
0000d2e0 s _gz_magic
000008e0 t _gz_open
00008c93 T _gzclearerr
00001876 T _gzclose
00008b6b T _gzdirect
00008731 T _gzdopen
00008b40 T _gzeof
00008b84 T _gzerror
00008932 T _gzflush
0000877f T _gzgetc
00008804 T _gzgets
000008cc T _gzopen
0000886a T _gzprintf
000088d1 T _gzputc
00008907 T _gzputs
00001514 T _gzread
000017de T _gzrewind
0000896d T _gzseek
000086a9 T _gzsetparams
00008b1d T _gztell
000087af T _gzungetc
00007de1 T _gzwrite
00001a6e T _inflate
0000a038 T _inflateBack
0000afee T _inflateBackEnd
00009f34 T _inflateBackInit_
00009b6c T _inflateCopy
000019df T _inflateEnd
00009b0e T _inflateGetHeader
0000115e T _inflateInit2_
00001a45 T _inflateInit_
000099bf T _inflatePrime
00001314 T _inflateReset
00009a1a T _inflateSetDictionary
00009d42 T _inflateSync
00009b3d T _inflateSyncPoint
0000b2b0 s _inflate_copyright
000043c1 t _inflate_fast
00003e5a t _inflate_table
0000efc0 s _lbase.3298
0000e6c0 s _lenfix.3371
0000de00 s _lenfix.3415
0000ef80 s _lext.3299
000060ee t _longest_match
000090fc t _longest_match_fast
         U _malloc
         U _memcpy
         U _memset
0000b085 s _my_version.3417
0000eec0 s _order.3393
0000e600 s _order.3467
00006e6f t _pqdownheap
00006f54 t _scan_tree
0000706f t _send_tree
         U _sprintf
0000f004 d _static_bl_desc
0000f018 d _static_d_desc
0000d600 s _static_dtree
0000f02c d _static_l_desc
0000d680 s _static_ltree
         U _strcat
         U _strcpy
         U _strerror$UNIX2003
         U _strlen
0000492c T _uncompress
00003d1d t _updatewindow
         U _vsnprintf
000099a5 T _zError
0000f0e0 s _z_errmsg
00001301 t _zcalloc
00001a36 t _zcfree
0000999b T _zlibCompileFlags
0000998a T _zlibVersion
0000f000 d dyld__mach_header
000082d8 t dyld_stub_binding_helper
[/code]

Respecto al .m4 de las SDL... sabrías decirme en qué path debería estar?
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 05:04:59 PM
la verdad que no se donde estan en mac
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 04, 2009, 05:35:02 PM
Yo las .dylib las tengo en usr/local/lib -creo que, por defecto lo instala ahí- pero ahí no hay ningún .m4
Los ficheros .m4 (sdl.m4 y acinclude.m4) están donde descomprimí las SDL, pero éstos no se copiaron a ningún lado cuando las instalé...
He probado copiándolos a mano a usr/local/lib pero tampoco los localiza ahí...
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 05:40:21 PM
no van donde estan las libs... hay un directorio especial para aclocal...

cuando hiciste make install deberia haber instalado... sino busca donde hay algun .m4 y copialo ahi.
Title: Re: Compilando para MAC
Post by: josebita on April 04, 2009, 06:33:32 PM
Quote from: SplinterGU on April 03, 2009, 11:18:19 PM
1 imagen vale mas que mil palabras


csplinter@splinter:~$ cd bennugd/
splinter@splinter:~/bennugd$ grep  COMMON_LIBS */*
modules/config.log:COMMON_LIBS=' -lc -lz -ldl'
modules/config.status:s,@COMMON_LIBS@,|#_!!_#| -lc -lz -ldl,g
modules/configure:COMMON_LIBS
[...]
modules/Makefile:COMMON_LIBS =  -lc -lz -ldl
[...]
tools/moddesc/Makefile:moddesc_LDADD = $(COMMON_LIBS)
tools/moddesc/Makefile.am:moddesc_LDADD = $(COMMON_LIBS)
tools/moddesc/Makefile.in:moddesc_LDADD = $(COMMON_LIBS)
splinter@splinter:~/bennugd$

Efectivamente, fíjate que la variable COMMON_LIBS la define, pero no la usa a la hora de compilar. Una línea de compilado de una librería en linux es, por ejemplo:
[code language="bash"]gcc -shared  .libs/libvideo_la-g_video.o .libs/libvideo_la-g_regions.o  -Wl,--rpath
-Wl,/home/joseba/cvs/bennugd_testing/modules/libgrbase/.libs -Wl,--rpath -Wl,/home/joseba/Publico//lib
/usr/lib/libSDL.so -L/home/joseba/cvs/bennugd_testing/modules/../core/bgdrtm/src/.libs -lbgdrtm
/home/joseba/cvs/bennugd_testing/modules/libgrbase/.libs/libgrbase.so -lX11  -Wl,-soname -Wl,libvideo.so
-o .libs/libvideo.so[/code]
Cuando debería ser:
[code language="bash"]gcc -shared  .libs/libvideo_la-g_video.o .libs/libvideo_la-g_regions.o  -Wl,--rpath
-Wl,/home/joseba/cvs/bennugd_testing/modules/libgrbase/.libs -Wl,--rpath -Wl,/home/joseba/Publico/lib
/usr/lib/libSDL.so -L/home/joseba/cvs/bennugd_testing/modules/../core/bgdrtm/src/.libs -lbgdrtm
/home/joseba/cvs/bennugd_testing/modules/libgrbase/.libs/libgrbase.so -lX11 -lc -lz -ldl
-Wl,-soname -Wl,libvideo.so -o .libs/libvideo.so[/code]
Fíjate que en la primera no salen las librerías. En los Makefile aparece lo de COMMON_LIBS porque efectivamente se están definiendo, pero luego no se usan a la hora de compilar.
Fíjate en el fichero libblit/Makefile.am, dice:
[code language="bash"libblit_la_SOURCES = libblit.c g_blit.c g_pixel.c
libblit_la_CFLAGS = $(COMMON_CFLAGS) $(SDL_CFLAGS) -I$(BGD_PATH)/include -I$(BGD_PATH)/bgdrtm/include -I. -I../libgrbase/
libblit_la_LDFLAGS = -s -module -no-undefined -avoid-version
libblit_la_LIBADD = $(LIBADD_DL) -lSDL -L$(BGD_PATH)/bgdrtm/src/.libs -lbgdrtm -L../libgrbase/.libs -lgrbase][/code]
Cuando debería decir:
[code language="bash"]libblit_la_SOURCES = libblit.c g_blit.c g_pixel.c
libblit_la_CFLAGS = $(COMMON_CFLAGS) $(SDL_CFLAGS) -I$(BGD_PATH)/include -I$(BGD_PATH)/bgdrtm/include -I. -I../libgrbase/
libblit_la_LDFLAGS = -s -module -no-undefined -avoid-version
libblit_la_LIBADD = $(COMMON_LIBS) $(LIBADD_DL) -lSDL -L$(BGD_PATH)/bgdrtm/src/.libs -lbgdrtm -L../libgrbase/.libs -lgrbase
[/code]Porque si no, a pesar de que la variable se está definiendo (y por eso sale al hacer "grep") no se está usando, y por eso en la primera línea de compilación no aparecen las librerías. Sin embargo, sí que se añaden las "$(COMMON_CFLAGS)" a las opciones de compilación.

[Edito] Ya lo siento, no me deja subrayar dentro de bloques de código; en el segundo bloque he añadido el "$(COMMON_LIBS)".
Title: Re: Compilando para MAC
Post by: SplinterGU on April 04, 2009, 09:15:39 PM
asi esta bien, es que en realidad, los modules, no necesitan la libz... el unico que debe linkear contra la libz es la bgdrtm... o sea, que el problema esta en el core... creo que ya lo dije...
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 05, 2009, 06:38:55 AM
Quote from: SplinterGU on April 04, 2009, 09:15:39 PM
asi esta bien, es que en realidad, los modules, no necesitan la libz... el unico que debe linkear contra la libz es la bgdrtm... o sea, que el problema esta en el core... creo que ya lo dije...

Pero, si el problema estuviese en el core, no habría podido crear el binario bgdc, bgdi y la libbgdrtm.la, no?
Y, sin embargo, las ha creado sin problema...
Title: Re: Compilando para MAC
Post by: SplinterGU on April 05, 2009, 03:13:21 PM
el bgdc no usa la libbgdrtm...
y el bgdi incluye la lib por medio de la variable COMMON_LDFLAGS.

bgdi_LDADD = $(COMMON_LDFLAGS) -L../../bgdrtm/src/.libs -lbgdrtm

pregunta tonta, pero todas estas veces que hiciste pruebas, hiciste make clean?

de todas formas, si solo queres generar los binarios, pone el -lz a mano en el makefile y listo
Title: Re: Compilando para MAC
Post by: SplinterGU on April 05, 2009, 03:14:11 PM
sino dame un acceso ssh y lo compilo yo... creo que sera lo mas rapido.
Title: Re: Compilando para MAC
Post by: OscarBraindeaD on April 05, 2009, 03:48:38 PM
El -lz está puesto en el MAKEFILE, en:
COMMON_LIBS = -L/usr/local/lib -lz
pero ni aún así...
Sí, hago MAKE CLEAN...

Title: Re: Compilando para MAC
Post by: josebita on April 05, 2009, 03:52:49 PM
Entiendo lo que dices, sí.
No quisiera ser pesado, pero una cosa más: me pregunto entonces por qué se define la variable COMMON_LIBS si no se usa, porque además, en el configure.in (http://bennugd.svn.sourceforge.net/viewvc/bennugd/modules/configure.in?revision=36&view=markup) se define la variable por plataformas.
Veo, eso sí, que no se define para BSD ni MAC... ¿se usa para algo más o es símplemente que esas líneas están ahí porque no las has quitado de un código más antiguo?
Title: Re: Compilando para MAC
Post by: SplinterGU on April 05, 2009, 07:55:33 PM
se define por si en algun modulo se llega a utilizar a futuro...
no, no estan porque quedo, sino porque se pueden llegar a usar...
Title: Re: Compilando para MAC
Post by: josebita on April 05, 2009, 07:57:25 PM
Ya veo, duda más que resuelta, gracias :)
Title: Re: Compilando para MAC
Post by: SplinterGU on April 05, 2009, 08:03:32 PM
me refiero que lo pongas a mano en la variable ???_LDADD
Title: Re: Compilando para MAC
Post by: Neodreamer on May 07, 2010, 05:30:59 PM
Alguna novedad de este port para mac os x?
Yo tengo varios mac y me gustaria poder intentar varias cosillas.
He pedido varias veces port de psp, mac os x y/o Dingoo, pero nadie ha publicado nada aun aunq sea versiones beta...
Por favor, aunq sea esta version de mac, a ver si alguien la saca...
Animo y suerte a ver si sale pronto
Title: Re: Compilando para MAC
Post by: FreeYourMind on May 07, 2010, 05:40:19 PM
No seras el Neodreamer de Gp32spain ?  ;D
A ver si me pillo un MAC para probar esta version.
Title: Re: Compilando para MAC
Post by: Neodreamer on May 07, 2010, 05:45:25 PM
Jijijiji...q rapido me habeis piyado no?
Quien eres? Sigo teniendo ilusiones... Se lo pedi a puck, misato, splinter... pero naide puede x falta de tiempo o cuestiones personales y yo soy un paletillo del tema.
Estoy deseando hacer algo. Nos hemos juntado varios colegas para diseño de escenarios, personajes, programacion, banda sonora y fx... el proyecto esta algo avanzado...pero nos falta el tema de programacion xq en el curro(donde paso el mayor tiempo), tengo solo mac y paso de meterle maquinas virtuales q me comen mucho espacio...
Un saludo....
(me come la curiosidad de saber quien eres...)
Title: Re: Compilando para MAC
Post by: FreeYourMind on May 07, 2010, 05:54:16 PM
Te digo ya, pero no te va gustar  ;D
GameMaster
Vamos, solo hay que mirar la firma o el logo...
Title: Re: Compilando para MAC
Post by: josebita on May 07, 2010, 06:08:04 PM
Quote from: Neodreamer on May 07, 2010, 05:30:59 PM
Alguna novedad de este port para mac os x?
Yo tengo varios mac y me gustaria poder intentar varias cosillas.
He pedido varias veces port de psp, mac os x y/o Dingoo, pero nadie ha publicado nada aun aunq sea versiones beta...
Por favor, aunq sea esta version de mac, a ver si alguien la saca...
Animo y suerte a ver si sale pronto
Mira esto:
http://forum.bennugd.org/index.php?topic=1129.msg22000#msg22000
Es una versión que tiene un bug con la inicialización de SDL y según qué módulos cargues, al finalizar el programa, el intérprete se colgará, pero aún así es mejor que nada.
La versión para PSP parece que pronto tendrá una beta:
http://forum.bennugd.org/index.php?topic=715.msg22254#msg22254