[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Compilación parcial



2008/6/3 José Pablo Fonfría <jpablo.fonfria@gmail.com>:
> Hola Víctor,
>
>> Si tienes el programa en modulos, claro que si, puedes usar GNUmakefile
>>
>> Te paso un codigo que tengo de un colega, como ejemplo, tendrias que
>> cambiarle las banderas de compilador y del linker, tambien el nombre
>> del programa. En este caso el compilador que uso es gcc, el linker es
>> mpicc y el formato de tus archivos, en este caso como uso C, pues son
>> .c pero en fortran supongo usas .f95 o .f
>>
>> lo copias a tu path (PRIMERO PRUEBALO EN OTRO LADO NO SEA QUE VAYAS A
>> MODIFICAR LOS WILDCARDS y borres todo) y lo usas como:
>>
>> make (este comando te compila solo los modulos que haz modificado!!!)
>> make clean (limpia todos los objetos, asi que si le daz primero make
>> clean y despues make te compilara TODO tu codigo)
>> make install (te instala el codigo en /usr/bin, lo tienes que ejecutar
>> como root)
>>
>> Esto te ahorrara muchisimo tiempo al compilar solo lo que modificas.
>> Ahora si tienes tu codigo en un solo bloque, pues creo que sera medio
>> complicado.
>>
>
> Antes de nada, gracias por responder; me quedo con el código. Pero te
> comento que el código está estructurado en subrutinas y funciones y separado
> en diferentes archivos. Compilo con make utilizando un Makefile del tipo:
>
> ejecutable: archivo1.f90 ... archivon.f90
> gfortran -Wall -O3 -g archivo1.f90 ... archivon.f90 -o ejecutable
>
> y me tarda bastante. De hecho parece que incluso cuando abro uno de los
> archivos, añado simplemente un comentario y compilo con make, me tarda tanto
> como si hubiera modificado el código en sí mismo. Y me parece raro... ¿Acaso
> me falta algún tipo de opción para make?
>
> Gracias de nuevo y un saludo.
>
> Pablo.
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
>
>

Lo mas probable es que tu make este compilando todo el codigo.
Utiliza el script que te envie y modificale las opciones para tu caso.
Supongo que cada vez que haces un nuevo modulo de tu software tienes
que entrar al make
e incluirlo en el path de compilación. Sin embargo, en el script que te envie es
el propio codigo el que busca los archivos que tu haz modificado y arma
la sentencia de compilacion

$(PROGRAM): $(OBJS)
       $(LINKER) $(LDFLAGS) $(OBJS) -o $(PROGRAM)

No necesitas estar metiendote al make cada vez que creas un nuevo modulo.
Algunos makes, por ejemplo el que usa glade, tiene esa gran desventaja.
Espero te sirva de ayuda.

-- 
Atte

ItZtLi

¤º°°º¤ø,¸¸,ø¤º°°º¤ø,¸¸,ø¤º°`°º¤ø,¸
 Nahui Tonalli Icniuhtli.
¤º°°º¤ø,¸¸,ø¤º°°º¤ø,¸¸,ø¤º°`°º¤ø,¸


Reply to: