13.07.2015 Views

Aprenda Linux como en Primero - Poder Judicial de Santa Cruz

Aprenda Linux como en Primero - Poder Judicial de Santa Cruz

Aprenda Linux como en Primero - Poder Judicial de Santa Cruz

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 12: ANEJOS página 65Este comando se basa <strong>en</strong> un fichero ASCII (llamado por <strong>de</strong>fecto makefile) que conti<strong>en</strong>e unarelación <strong>de</strong> <strong>de</strong>p<strong>en</strong>d<strong>en</strong>cias <strong>en</strong>tre los distintos módulos, así <strong>como</strong> las acciones que hay que realizarpara poner a punto cada módulo, es <strong>de</strong>cir para pasar <strong>de</strong> un fu<strong>en</strong>te a un objeto, por ejemplo. Estecomando ti<strong>en</strong>e la sigui<strong>en</strong>te forma g<strong>en</strong>eral:make [–f makefil<strong>en</strong>ame] [–arg_opt] [exe_name]El fichero makefile (con éste o con otro nombre invocado por medio <strong>de</strong> la opción –f) conti<strong>en</strong>ecuatro tipos <strong>de</strong> líneas difer<strong>en</strong>tes:•=•=Líneas <strong>de</strong> com<strong>en</strong>tario, que comi<strong>en</strong>zan por el carácter (#). Si <strong>en</strong> una línea cualquiera aparece elcarácter (#), se ignora todo lo que aparece a continuación <strong>de</strong> dicho carácter <strong>en</strong> dicha línea.Líneas <strong>de</strong> <strong>de</strong>finición <strong>de</strong> macros. Ti<strong>en</strong><strong>en</strong> la forma g<strong>en</strong>eral,IDENTIFICADOR = cad<strong>en</strong>a_<strong>de</strong>_caracteresSi <strong>en</strong> alguna otra línea aparece (IDENTIFICADOR), dicha ocurr<strong>en</strong>cia se sustituye porcad<strong>en</strong>a_<strong>de</strong>_caracteres. No es necesario que el nombre <strong>de</strong>l id<strong>en</strong>tificador esté escrito conmayúsculas, pero es una costumbre bastante ext<strong>en</strong>dida el hacerlo así. Mediante el uso <strong>de</strong> macros sepued<strong>en</strong> repres<strong>en</strong>tar brevem<strong>en</strong>te pathnames o listas <strong>de</strong> nombres <strong>de</strong> ficheros largos. Si el id<strong>en</strong>tificadorti<strong>en</strong>e una sola letra, no hace falta poner los paréntesis. El comando make ti<strong>en</strong>e una serie <strong>de</strong> macros<strong>de</strong>finidas por <strong>de</strong>fecto que se pued<strong>en</strong> listar con el comando make –p.Líneas <strong>de</strong>scribi<strong>en</strong>do las relaciones <strong>de</strong> <strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia. Ti<strong>en</strong><strong>en</strong> la forma,file.o fila.o ... : file1.cpp file2.cpp ...La lista <strong>de</strong> ficheros que están a la izquierda <strong>de</strong>l carácter (:) <strong>de</strong>p<strong>en</strong>d<strong>en</strong> <strong>de</strong> los ficheros que están a la<strong>de</strong>recha. En estas líneas se realiza la sustitución habitual <strong>de</strong> los caracteres (?*[])Líneas <strong>de</strong> comandos shell, com<strong>en</strong>zando siempre por un tabulador. Estas líneas repres<strong>en</strong>tan lasacciones que hay que realizar para actualizar los ficheros <strong>de</strong>p<strong>en</strong>di<strong>en</strong>tes, según las relaciones <strong>de</strong><strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia <strong>de</strong>scritas <strong>en</strong> la línea anterior. En una misma línea <strong>de</strong> comandos pue<strong>de</strong> haber varioscomandos separados por un carácter (;), y <strong>de</strong> este modo se ejecutan <strong>en</strong> un mismo proceso; si hayvarias líneas <strong>de</strong> comandos, cada línea se ejecuta <strong>en</strong> un proceso difer<strong>en</strong>te. Estos comandos shell(compilaciones, etc.) se ejecutan o no según las fechas <strong>de</strong> los ficheros correspondi<strong>en</strong>tes. Haytambién una lista <strong>de</strong> <strong>de</strong>p<strong>en</strong>d<strong>en</strong>cias implícitas y <strong>de</strong> macro<strong>de</strong>finiciones standard que se pued<strong>en</strong> obt<strong>en</strong>ercon el comando make -p (la salida <strong>de</strong> este comando pue<strong>de</strong> t<strong>en</strong>er varios ci<strong>en</strong>tos <strong>de</strong> líneas). Acontinuación se pres<strong>en</strong>tan algunos ejemplos <strong>de</strong> ficheros makefile.A continuación se muestran una serie <strong>de</strong> ejemplos# Esto es un ejemplo <strong>de</strong> fichero makefile# Definiciones <strong>de</strong> macrosma = ma27ad.o ma27bd.o ma27cd.oTEST: test.o (ma)xlf –o TEST –O (ma)test.o: test.fxlf –c –O test.fma27ad.o: ma27ad.f

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!