la herramienta make
DESCRIPTION
La herramienta make. Cómo leer y modificar un Makefile. > make . busca por “makefile”. busca por “Makefile”. > make make: *** No makefile found. Stop. > make make: *** No makefile found. Stop. > make –f mimakefile.mak . objetivo : dependencias. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/1.jpg)
Área de Instrumentación
INSTITUTO DE ASTROFÍSICA DE
CANARIAS
INSTITUTO DE ASTROFÍSICA DE
CANARIAS
Esperanza PáezInstituto de Astrofísica de Canarias
La herramienta makeLa herramienta make
Cómo leer y modificar un Makefile
Cómo leer y modificar un Makefile
![Page 2: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/2.jpg)
2 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
> make > make > make > make
busca por “makefile”busca por “makefile”busca por “Makefile”busca por “Makefile”
![Page 3: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/3.jpg)
3 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.
![Page 4: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/4.jpg)
4 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
objetivo : dependenciasobjetivo : dependencias
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak
![Page 5: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/5.jpg)
5 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.fmain : main.f
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak
dependeciasdependecias
objetivoobjetivo
![Page 6: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/6.jpg)
6 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.fmain : main.f
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak f77 main.f –o mainf77 main.f –o main
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak f77 main.f –o mainf77 main.f –o main
.f extensión reconocida.f extensión reconocida
sólo si no existe o si antiguosólo si no existe o si antiguo
![Page 7: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/7.jpg)
7 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.fmain : main.f
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak make: ‘main’ is up date.make: ‘main’ is up date.
> make > make make: *** No makefile found. make: *** No makefile found. Stop.Stop.> make –f mimakefile.mak > make –f mimakefile.mak make: ‘main’ is up date.make: ‘main’ is up date.
![Page 8: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/8.jpg)
8 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.f fn1.f fn2.fmain : main.f fn1.f fn2.f
> make > make > make > make
objetivoobjetivo
dependeciasdependecias
![Page 9: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/9.jpg)
9 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.f fn1.f fn2.f
main2 : main2.f fn3.f fn4.f
main : main.f fn1.f fn2.f
main2 : main2.f fn3.f fn4.f
> make > make > make > make
objetivo1objetivo1
objetivo2objetivo2
![Page 10: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/10.jpg)
10 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
> make > make objetivoobjetivo> make main2 > make main2 > make > make objetivoobjetivo> make main2 > make main2
main : main.f fn1.f fn2.f
main2 : main2.f fn3.f fn4.f
main : main.f fn1.f fn2.f
main2 : main2.f fn3.f fn4.f
objetivo1objetivo1
objetivo2objetivo2
![Page 11: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/11.jpg)
11 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o
main.o : main.f
fn1.o : fn1.f
fn2.o : fn2.f
main : main.o fn1.o fn2.o
main.o : main.f
fn1.o : fn1.f
fn2.o : fn2.f
> make > make [objetivo][objetivo] > make > make [objetivo][objetivo]
jerarquía
jerarquía
![Page 12: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/12.jpg)
12 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f
fn1.o : fn1.f
fn2.o : fn2.f
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f
fn1.o : fn1.f
fn2.o : fn2.f
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
línea de comandolínea de comando
![Page 13: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/13.jpg)
13 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f
fn2.o : fn2.f
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f
fn2.o : fn2.f
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
línea de comandolínea de comando
![Page 14: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/14.jpg)
14 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
línea de comandolínea de comando
![Page 15: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/15.jpg)
15 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
línea de comandolínea de comando
ojo con los tabuladoresojo con los tabuladores
![Page 16: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/16.jpg)
16 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
orden shell: sh
división líneas: ‘\’
un comando: ‘;’
una línea: ojo
sin eco: @
orden shell: sh
división líneas: ‘\’
un comando: ‘;’
una línea: ojo
sin eco: @
![Page 17: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/17.jpg)
17 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o[TAB] @ echo “Muevo el ejecutable.”[TAB] @ mv main .. ; ls [TAB] @ cd .. ; \ [RETURN] chmod a+x main
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o[TAB] @ echo “Muevo el ejecutable.”[TAB] @ mv main .. ; ls [TAB] @ cd .. ; \ [RETURN] chmod a+x main
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
orden shell: sh
división líneas: ‘\’
un comando: ‘;’
una línea: ojo
sin eco: @
orden shell: sh
división líneas: ‘\’
un comando: ‘;’
una línea: ojo
sin eco: @
![Page 18: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/18.jpg)
18 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
fn1.o : include.inc
fn2.o : include.inc
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
fn1.o : include.inc
fn2.o : include.inc
> make [objetivo] > make [objetivo] > make [objetivo] > make [objetivo]
repetición de objetivosrepetición de objetivos
![Page 19: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/19.jpg)
19 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
fn1.o fn2.o : include.inc
limpia : [TAB] rm *%
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
fn1.o fn2.o : include.inc
limpia : [TAB] rm *%
> make limpia > make limpia > make limpia > make limpia
podemos agruparpodemos agrupar
objetivo etiquetaobjetivo etiqueta
![Page 20: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/20.jpg)
20 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
todo : libreria.a main limpia
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
fn1.o fn2.o : include.inc
libreria.a : libfn.o[TAB] ar r libreria.a libfn.o
libfn.o : libfn.f[TAB] f77 –O –c libfn.f
limpia :[TAB] rm *%
todo : libreria.a main limpia
main : main.o fn1.o fn2.o[TAB] f77 –O –o main main.o fn1.o fn2.o
main.o : main.f[TAB] f77 –O –c main.f
fn1.o : fn1.f[TAB] f77 –O –c fn1.f
fn2.o : fn2.f[TAB] f77 –O –c fn2.f
fn1.o fn2.o : include.inc
libreria.a : libfn.o[TAB] ar r libreria.a libfn.o
libfn.o : libfn.f[TAB] f77 –O –c libfn.f
limpia :[TAB] rm *%
> make [todo] > make [todo] > make > make libreria.alibreria.a > make > make limpialimpia >>
> make [todo] > make [todo] > make > make libreria.alibreria.a > make > make limpialimpia >>
![Page 21: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/21.jpg)
21 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
nombre = valornombre = valor
> make > make > make > make
macro = se referencia como $(nombre) o ${nombre}
macro = se referencia como $(nombre) o ${nombre}
![Page 22: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/22.jpg)
22 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainOBJS = main.o fn1.o fn2.oINCS = include.inc
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] f77 ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} /home/usuario/bin
main.o : main.f[TAB] f77 ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] f77 ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] f77 ${FFLAGS} –c fn2.f
fn1.o fn2.o : ${INCS}
EXE = mainOBJS = main.o fn1.o fn2.oINCS = include.inc
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] f77 ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} /home/usuario/bin
main.o : main.f[TAB] f77 ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] f77 ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] f77 ${FFLAGS} –c fn2.f
fn1.o fn2.o : ${INCS}
> make > make
> make > make
macros del usuario
macros internas
variables de entorno
línea de ejecución
indefinidas = vacías
macros del usuario
macros internas
variables de entorno
línea de ejecución
indefinidas = vacías
Orden de prioridad:
1) macros internas
2) variables entorno
3) en Makefile
4) línea de ejecución
Orden de prioridad:
1) macros internas
2) variables entorno
3) en Makefile
4) línea de ejecución
![Page 23: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/23.jpg)
23 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainOBJS = main.o fn1.o fn2.oDIR = ${HOME}/bin
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${DIR}
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainOBJS = main.o fn1.o fn2.oDIR = ${HOME}/bin
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${DIR}
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
FFLAGS ignorada
FC = f77 (interna)
podemos FC = f90
make –p
no usar ‘~’ en rutas
FFLAGS ignorada
FC = f77 (interna)
podemos FC = f90
make –p
no usar ‘~’ en rutas
![Page 24: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/24.jpg)
24 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = main.f fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = main.f fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
OBJS = SRCS perosustituyendo ‘.f’ por ‘.o’
OBJS = SRCS perosustituyendo ‘.f’ por ‘.o’
![Page 25: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/25.jpg)
25 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = main.f fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = main.f fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
$? = lista de dependencias
$@ = objetivo en comandos
$$@ = objetivo (sólo Unix)
en dependencias
$? = lista de dependencias
$@ = objetivo en comandos
$$@ = objetivo (sólo Unix)
en dependencias
![Page 26: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/26.jpg)
26 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o ${EXE} ${OBJS}[TAB] cp ${EXE} ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
[email protected] = [email protected] = main.o
omitimos main.fomitimos main.f
![Page 27: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/27.jpg)
27 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ ${OBJS}[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ ${OBJS}[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
[email protected] = [email protected] = main.o
omitimos main.fomitimos main.f
$@ = main$@ = main
![Page 28: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/28.jpg)
28 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c main.f
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
[email protected] = [email protected] = main.o
omitimos main.fomitimos main.f
$@ = main$@ = main
$? = main.o fn1.o fn2.o$? = main.o fn1.o fn2.o
![Page 29: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/29.jpg)
29 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c fn1.f
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
[email protected] = [email protected] = main.o
omitimos main.fomitimos main.f
$@ = main$@ = main
$? = main.o fn1.o fn2.o$? = main.o fn1.o fn2.o
$? = main.f$? = main.f
![Page 30: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/30.jpg)
30 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c fn2.f
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
[email protected] = [email protected] = main.o
omitimos main.fomitimos main.f
$@ = main$@ = main
$? = main.o fn1.o fn2.o$? = main.o fn1.o fn2.o
$? = main.f$? = main.f
$? = fn1.f$? = fn1.f
![Page 31: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/31.jpg)
31 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o fn2.o : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o fn2.o : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
[email protected] = [email protected] = main.o
omitimos main.fomitimos main.f
$@ = main$@ = main
$? = main.o fn1.o fn2.o$? = main.o fn1.o fn2.o
$? = main.f$? = main.f
$? = fn1.f$? = fn1.f
$? = fn2.f$? = fn2.f
![Page 32: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/32.jpg)
32 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c $?
${OBJS} : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c $?
${OBJS} : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
OBJS = fn1.o fn2.oOBJS = fn1.o fn2.o
se desdoblase desdobla
![Page 33: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/33.jpg)
33 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c $?
${OBJS} : include.inc
EXE = mainSRCS = fn1.f fn2.fOBJS = ${SRCS:.f=.o}
FFLAGS = –OLDFLAGS = ${FFLAGS}
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${HOME}/bin
main.o : main.f[TAB] ${FC} ${FFLAGS} –c $?
fn1.o : fn1.f[TAB] ${FC} ${FFLAGS} –c $?
fn2.o : fn2.f[TAB] ${FC} ${FFLAGS} –c $?
${OBJS} : include.inc
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
![Page 34: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/34.jpg)
34 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.f fn2.fINCS = include.incOBJS = ${SRCS:.f=.o}
DIR = ${HOME}/bin
FFLAGS = –OLDFLAGS = ${FFLAGS}
.f.o :[TAB] ${FC} ${FFLAGS} –c $<
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${DIR}
${OBJS} : ${INCS}
EXE = mainSRCS = fn1.f fn2.fINCS = include.incOBJS = ${SRCS:.f=.o}
DIR = ${HOME}/bin
FFLAGS = –OLDFLAGS = ${FFLAGS}
.f.o :[TAB] ${FC} ${FFLAGS} –c $<
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${DIR}
${OBJS} : ${INCS}
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
regla para construir los .o a partir de los .f
regla para construir los .o a partir de los .f
$< = .f más nuevos$< = .f más nuevos
![Page 35: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/35.jpg)
35 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
EXE = mainSRCS = fn1.F fn2.FINCS = include.incOBJS = ${SRCS:.f=.o}
DIR = ${HOME}/bin
FFLAGS = –OLDFLAGS = ${FFLAGS}
.SUFFIXES : .F
.F.o :[TAB] ${FC} ${FFLAGS} –c $<
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${DIR}
${OBJS} : ${INCS}
EXE = mainSRCS = fn1.F fn2.FINCS = include.incOBJS = ${SRCS:.f=.o}
DIR = ${HOME}/bin
FFLAGS = –OLDFLAGS = ${FFLAGS}
.SUFFIXES : .F
.F.o :[TAB] ${FC} ${FFLAGS} –c $<
${EXE} : [email protected] ${OBJS}[TAB] ${FC} ${LDFLAGS} –o $@ $?[TAB] cp $@ ${DIR}
${OBJS} : ${INCS}
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
> touch fn2.f > touch fn2.f > make “FFLAGS = –v –O” > make “FFLAGS = –v –O” f77 –v –O –c fn2.f f77 –v –O –c fn2.f f77 –v –O –o main main.o fn1.o f77 –v –O –o main main.o fn1.o fn2.ofn2.o
añade sufijos a lista de make
añade sufijos a lista de make
![Page 36: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/36.jpg)
36 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
# Name:# makefile## Purpose:# Build and install the IRAFSTAR package.## Type of Module:# Description file for the make utility.## Description:# This description file is used by the make utility to# build the IRAFSTAR package from the distributed # source files, to install the resulting system for use,# and to perform other housekeeping tasks.######################################################### Pathname of the root directory beneath which# other Starlink software is currently installed.STARLINK = /star
# Name:# makefile## Purpose:# Build and install the IRAFSTAR package.## Type of Module:# Description file for the make utility.## Description:# This description file is used by the make utility to# build the IRAFSTAR package from the distributed # source files, to install the resulting system for use,# and to perform other housekeeping tasks.######################################################### Pathname of the root directory beneath which# other Starlink software is currently installed.STARLINK = /star
Makefile de IRAFMakefile de IRAFMakefile de IRAFMakefile de IRAF
![Page 37: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/37.jpg)
37 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
# Pathnames of Starlink sub-directories that may # be referenced when building this package.STAR_BIN = $(STARLINK)/binSTAR_DATES = $(STARLINK)/datesSTAR_DOCS = $(STARLINK)/docsSTAR_ETC = $(STARLINK)/etcSTAR_HELP = $(STARLINK)/helpSTAR_INC = $(STARLINK)/includeSTAR_LIB = $(STARLINK)/libSTAR_SHARE = $(STARLINK)/share
# Pathname of the root directory beneath which the # built files for this package should be installed for# use. This defaults to the user's home directory.INSTALL = $(HOME)
# Pathname of root directory beneath which TCLADAM# is installed. and the version number of TCLTCL_VERS = 8.2TCL_INC_DIR = $(STAR_INC)TCL_LIB_DIR = $(STAR_LIB)
# Pathnames of Starlink sub-directories that may # be referenced when building this package.STAR_BIN = $(STARLINK)/binSTAR_DATES = $(STARLINK)/datesSTAR_DOCS = $(STARLINK)/docsSTAR_ETC = $(STARLINK)/etcSTAR_HELP = $(STARLINK)/helpSTAR_INC = $(STARLINK)/includeSTAR_LIB = $(STARLINK)/libSTAR_SHARE = $(STARLINK)/share
# Pathname of the root directory beneath which the # built files for this package should be installed for# use. This defaults to the user's home directory.INSTALL = $(HOME)
# Pathname of root directory beneath which TCLADAM# is installed. and the version number of TCLTCL_VERS = 8.2TCL_INC_DIR = $(STAR_INC)TCL_LIB_DIR = $(STAR_LIB)
Makefile de IRAFMakefile de IRAFMakefile de IRAFMakefile de IRAF
![Page 38: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/38.jpg)
38 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
# Default macros for compiling C and Fortran source code.CC = c89CFLAGS = -O -I$(TCL_INC_DIR) -I$(STAR_INC)FC = fort77FFLAGS = -O
# Commands for adding to and extracting from an # archive file (.tar).TAR_IN = tar cvhfTAR_OUT = tar xf
#-------------------------------------------------------------------------------# DEFINE PACKAGE SOURCE FILES.## This section defines the set of source files for# the package.
# Name of the package as specified in documentation# The value is used in messages from make to the user.PACK_NAME = IRAFSTAR
# Default macros for compiling C and Fortran source code.CC = c89CFLAGS = -O -I$(TCL_INC_DIR) -I$(STAR_INC)FC = fort77FFLAGS = -O
# Commands for adding to and extracting from an # archive file (.tar).TAR_IN = tar cvhfTAR_OUT = tar xf
#-------------------------------------------------------------------------------# DEFINE PACKAGE SOURCE FILES.## This section defines the set of source files for# the package.
# Name of the package as specified in documentation# The value is used in messages from make to the user.PACK_NAME = IRAFSTAR
Makefile de IRAFMakefile de IRAFMakefile de IRAFMakefile de IRAF
![Page 39: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/39.jpg)
39 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
# C routines required for building the package. This is# just a list of all the C source files.C_ROUTINES = tclAppInit.c tclIrafio.c zfiopr.c
#-------------------------------------------------------------------------------# DEFINE FILES REQUIRED FOR BUILDING# THE PACKAGE.## This section defines the set of files produced from# the source files when the package is built and installed.
# List of object files produced by compiling the source# code and rules for performing the compilations.OBJECT_FILES = $(C_ROUTINES:.c=.o) # Use .o, .c, .f, .ifc, .ifl, .shl and .hlp suffix rules..SUFFIXES: .o .c .f .ifc .ifl .shl .hlp
# Implicit rule..c.o:
$(CC) $(CFLAGS) -c $<
# C routines required for building the package. This is# just a list of all the C source files.C_ROUTINES = tclAppInit.c tclIrafio.c zfiopr.c
#-------------------------------------------------------------------------------# DEFINE FILES REQUIRED FOR BUILDING# THE PACKAGE.## This section defines the set of files produced from# the source files when the package is built and installed.
# List of object files produced by compiling the source# code and rules for performing the compilations.OBJECT_FILES = $(C_ROUTINES:.c=.o) # Use .o, .c, .f, .ifc, .ifl, .shl and .hlp suffix rules..SUFFIXES: .o .c .f .ifc .ifl .shl .hlp
# Implicit rule..c.o:
$(CC) $(CFLAGS) -c $<
Makefile de IRAFMakefile de IRAFMakefile de IRAFMakefile de IRAF
![Page 40: La herramienta make](https://reader036.vdocuments.pub/reader036/viewer/2022062305/56815223550346895dc0682f/html5/thumbnails/40.jpg)
40 Área de InstrumentaciónEsperanza PáezInstituto de Astrofísica de Canarias
######################################################### PRIMARY TARGETS.#
# Rules for extracting source files from the source archive.$(C_ROUTINES) :[TAB] $(TAR_OUT) $(PKG_NAME)_source.tar $@[TAB] @ if test -r $@ ; then ; \ else echo $@ is not in the tar file ; exit 1 ; fi # Rule and dependencies for building the # executable image.aitclsh : $(OBJECT_FILES)[TAB] $(FC) $(FFLAGS) -o $@ \ tclAppInit.o $(STAR_LIB)/tclAdam.o \ tclIrafio.o zfiopr.o \ $(LDFLAGS) -L$(TCL_LIB_DIR) \ -L$(STAR_LIB) \ -ltcl$(TCL_VERS)
######################################################### PRIMARY TARGETS.#
# Rules for extracting source files from the source archive.$(C_ROUTINES) :[TAB] $(TAR_OUT) $(PKG_NAME)_source.tar $@[TAB] @ if test -r $@ ; then ; \ else echo $@ is not in the tar file ; exit 1 ; fi # Rule and dependencies for building the # executable image.aitclsh : $(OBJECT_FILES)[TAB] $(FC) $(FFLAGS) -o $@ \ tclAppInit.o $(STAR_LIB)/tclAdam.o \ tclIrafio.o zfiopr.o \ $(LDFLAGS) -L$(TCL_LIB_DIR) \ -L$(STAR_LIB) \ -ltcl$(TCL_VERS)
Makefile de IRAFMakefile de IRAFMakefile de IRAFMakefile de IRAF