25.01.2015 Views

Instrucciones en PDF - Elisa Schaeffer

Instrucciones en PDF - Elisa Schaeffer

Instrucciones en PDF - Elisa Schaeffer

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

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

CAPÍTULO 8. EJECUCIÓN AUTOMATIZADA 167<br />

DOC = taller<br />

all: $(DOC).pdf<br />

$(DOC).dvi: $(DOC).tex $(DOC).bib<br />

latex $<<br />

bibtex $(DOC)<br />

latex $<<br />

latex $<<br />

$(DOC).ps: $(DOC).dvi<br />

dvips -Pcmz -o $@ $^<br />

$(DOC).pdf: $(DOC).ps<br />

ps2pdf $^ $@<br />

scp $@ elisa@yalma.fime.uanl.mx:\<br />

/home/elisa/public_html/teaching/taller/$@<br />

clean:<br />

rm -f $(DOC).aux $(DOC).dvi $(DOC).log \<br />

$(DOC).bbl $(DOC).blg<br />

También se puede g<strong>en</strong>erar marcos basados <strong>en</strong> otros macros, que resulta útil <strong>en</strong> muchos casos<br />

de programación. Si por ejemplo queremos utilizar el marco FUENTES que ya conti<strong>en</strong>e la lista<br />

de los archivos de código fu<strong>en</strong>te <strong>en</strong> el l<strong>en</strong>guaje C para obt<strong>en</strong>er una lista de los archivos objetos<br />

.o g<strong>en</strong>erados por la compiladora, definimos OBJECTOS = $(FUENTES,.c=.o) que<br />

resulta que la parte antes de la igualdad = será reemplazado <strong>en</strong> cada ocurr<strong>en</strong>cia <strong>en</strong> la significancia<br />

de $(FUENTES) por la parte después: es decir, cada .c <strong>en</strong> $(FUENTES) será un .o <strong>en</strong><br />

$OBJECTOS, pero nada más cambia.<br />

make cu<strong>en</strong>ta con varias definiciones más para ayudar a crear archivos Makefile más g<strong>en</strong>erales<br />

y dinámicas. Para más información, se recomi<strong>en</strong>da el manual oficial de GNU Make [14].<br />

8.2. Ejecución trasfondo<br />

8.2.1. &, Control-z y fg<br />

En UNIX, se puede ejecutar un programa trasfondo, es decir, sin “bloquear” el terminal por lo<br />

cual se lanza la instrucción. Por ejemplo, para abrir emacs, si el terminal está gráfico, abre una<br />

v<strong>en</strong>tana nueva para emacs, pero el terminal ya no acepta más instrucciones. Al añadir “&” al fin<br />

de la instrucción, el programa inicia trasfondo:<br />

> emacs &<br />

[1] 7286<br />

><br />

La v<strong>en</strong>tana donde está emacs funciona, y además la v<strong>en</strong>tana terminal queda disponible para<br />

acceso. Nota que <strong>en</strong> cualquier caso no se puede cerrar la v<strong>en</strong>tana terminal sin afectar a los programas<br />

iniciados desde ella.

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

Saved successfully!

Ooh no, something went wrong!