Page 1 of 1

Preguntas Simples

Posted: Mon Jul 26, 2010 2:44 pm
by ramirezosvaldo2
Estimados ....

1.- Como puedo compilar varios prg's y dese luego encadenarlos ?

2.- Al algun ejemplo de crear lib's para que sean enlazadas a los proyectos ?

3.- El echo de trabajar con 10.5 y 10.6 es necesario solicitar por aparte las lib de fivemac ?

4.- Nuestro estimado Martin pone algunos ejemplos, y los archivos independientes, es decir .m ( creo que seria como tipo .c )
como compilar estos o bien si build.sh podria hacer el trabajo de incluirlos.

5.- Recomendacion es de un editor de textos o bien usar el Xcode editor ?

6.- He estado viendo el diseno de pantallas via Xcode-interface builder, pero no he visto, ( seria question de verlo ) como poder incrustar un browse. y redefinirlo en el prg ?


Un saludo y gracias.
Osvaldo Ramirez

Re: Preguntas Simples

Posted: Mon Jul 26, 2010 3:34 pm
by mastintin
2.- Una buena pregunta que seguro Antonio nos puede contestar ... :D

6.- El browse en mac se llama NSTableview , tienes que buscarlo en el inspector de objetos ( usa el filtro ) y lo arrastras a la ventana principal , en sus propiedades le cambias el tag por el que tu quieras usar y ya estaría , pero de momento creo que no está soportado "desde recursos ".

3.- El programa una vez generado no necesita ninguna libreria para funcionar

5.- Estoy usando el editor de xcode .Seguro que no es el mejor , pero si elque mas a mano tengo . tiene un autocompletar que evita teclear demas y una busqueda bastante buena .

1. y 4.- - Te comento como lo estoy haciendo yo ( que seguro hay mejores maneras ) :D

Para crear un proyecto nuevo creo una carpeta en el raiz de fivemac . Me explico : /User/fivemac/Miproyecto .
en ella voy colocando todos los archivos que necesito para el proyecto.
Copio el build.sh de samples y lo coloco en la carpeta . Lo edito y cambio lineas ....
1.- voy a la linea de abajo de echo compiling .
copio esa linea completa y la duplico una vez por cada prg a enlazar con sus nombres respectivos, menos el prg principal .
Esto hace que se ejecute harbour en cada uno de los prg y se generen sus archivos .c
tienes que añadir estos archivos al compilador y al linkador de c en la linea debajo de :
compilin y linking.
Los archivos .m son archivos objective -c equivalentes a los archivos .c .solo tienes que añadirlos en el mismo sitio que los anteriores y listo .

Te pongo un build.sh generico que te ilustrará mas que esta explicación .
luego en terminal : ./build.sh myprog.prg y revisa si todo compila correcto .

Code: Select all

# ./build.sh - (c) FiveTech Software 2007-2010

clear

if [ $# = 0 ]; then
   echo syntax: ./build.sh file [options...]
   exit
fi

echo compiling...
./../../harbour/bin/harbour 1$ -n -I./../include:./../../harbour/include $2
./../../harbour/bin/harbour prg2.prg -n -I./../include:./../../harbour/include $2
./../../harbour/bin/harbour prg3.prg -n -I./../include:./../../harbour/include $2
if [ 1$ = 1 ]; then
   exit
fi   

echo compiling C module...

#  add -arch ppc -arch i386 for universal binaries
gcc $1.c pr2.c prg3.c  archivo1.m archivo2.m  -c -I./../include -I./../../harbour/include

if [ ! -d $1.app ]; then
   mkdir $1.app
fi   
if [ ! -d $1.app/Contents ]; then
   mkdir $1.app/Contents
   echo '<?xml version="1.0" encoding="UTF-8"?>' > $1.app/Contents/Info.plist
   echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> $1.app/Contents/Info.plist
   echo '<plist version="1.0">' >> $1.app/Contents/Info.plist
   echo '<dict>' >> $1.app/Contents/Info.plist
   echo '   <key>CFBundleExecutable</key>' >> $1.app/Contents/Info.plist
   echo '   <string>'$1'</string>' >> $1.app/Contents/Info.plist
   echo '   <key>CFBundleName</key>' >> $1.app/Contents/Info.plist
   echo '   <string>'$1'</string>' >> $1.app/Contents/Info.plist
   echo '   <key>CFBundleIdentifier</key>' >> $1.app/Contents/Info.plist
   echo '   <string>com.fivetech.'$1'</string>' >> $1.app/Contents/Info.plist
   echo '   <key>CFBundlePackageType</key>' >> $1.app/Contents/Info.plist
   echo '   <string>APPL</string>' >> $1.app/Contents/Info.plist
   echo '   <key>CFBundleInfoDictionaryVersion</key>' >> $1.app/Contents/Info.plist
   echo '   <string>6.0</string>' >> $1.app/Contents/Info.plist
   echo '   <key>CFBundleIconFile</key>' >> $1.app/Contents/Info.plist
   echo '   <string>fivetech.icns</string>' >> $1.app/Contents/Info.plist
   echo '</dict>' >> $1.app/Contents/Info.plist
   echo '</plist>' >> $1.app/Contents/Info.plist
fi   
if [ ! -d $1.app/Contents/MacOS ]; then
   mkdir $1.app/Contents/MacOS
fi  
if [ ! -d $1.app/Contents/Resources ]; then
   mkdir $1.app/Contents/Resources
   cp ./../icons/fivetech.icns $1.app/Contents/Resources/
fi 

echo linking...
#  add -arch ppc -arch i386 for universal binaries
gcc $1.o prg2.o prg3.o archivo1.o archivo2.o -o ./$1.app/Contents/MacOS/$1 -L./../lib -lfive -lfivec -L./../../harbour/lib -lhbdebug -lhbvm -lhbrtl -lhblang -lhbrdd -lhbrtl -lgttrm -lhbvm -lhbmacro -lhbpp -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbcommon -framework Cocoa

rm $1.c
rm $1.o

echo done!
./$1.app/Contents/MacOS/$1

# reset

 

Re: Preguntas Simples

Posted: Tue Jul 27, 2010 2:44 am
by ramirezosvaldo2
Estimado

Agradesco mucho tus comentarios...

y claro tambieng gracias por los build.sh

Saludos
Osvaldo Ramirez

Re: Preguntas Simples

Posted: Tue Jul 27, 2010 6:14 am
by Antonio Linares
Osvaldo, Manuel,

Para construir una libreria, solo hay que llamar a:

ar rc mylibrary.a modulo.o

Y creará la libreria mylibrary.a añadiéndole el módulo con extensión .o generado con gcc :-)

Re: Preguntas Simples

Posted: Tue Jul 27, 2010 6:17 am
by Antonio Linares
Para poder trabajar con Leopard 10.5 (32 bits) y Snow Leopard 10.6 (64 bits) lo mejor será que en el próximo build de FiveMac incluyamos el fichero make que nosotros usamos para que asi podais construir vosotros mismos las librerias para la versión que necesiteis :-)

En cuanto al editor de código fuente, yo sigo usando el UEStudio de Windows gracias a "WinBottler". Lo mismo para el Total Commander que para mi es totalmente necesario. En este tema cada programador tiene sus preferencias :-)

http://winebottler.kronenberg.org/

Re: Preguntas Simples

Posted: Tue Jul 27, 2010 7:53 pm
by ramirezosvaldo2
Estimado ...
Muchas gracias por la informacion y esperando q tambien a otros les sirva.

Saludos
Osaldo Ramirez