#---------------------------------------------------------------------
# Fichero:  makefile
# Objetivo: Dirigir la creacin de los PDF finales
# Autor:    Pedro Reina <pedro@pedroreina.org>
# Fecha:    M.30.7.2002
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Definicin de variables
#---------------------------------------------------------------------

# Los programas que crean los archivos
Une = ./creaPDFdePS.sh
Comprime = zip -q -9 -u

# Los ficheros PDF finales que hay que generar
Objetivo = introduccion.pdf fundamentos.pdf tipografia.pdf gnulinux.pdf \
  windows.pdf internet.pdf staroffice.pdf draw.pdf image.pdf writer.pdf \
  calc.pdf base.pdf multimedia.pdf creacionweb.pdf programacion.pdf

# Los archivos ZIP para la web
Web = introduccion.zip fundamentos.zip tipografia.zip gnulinux.zip      \
  windows.zip internet.zip staroffice.zip draw.zip image.zip writer.zip \
  calc.zip base.zip multimedia.zip creacionweb.zip programacion.zip

# El directorio donde copiar los archivos PDF finales
Destino = ../final

# El directorio donde copiar los archivos ZIP finales
DestinoWeb = ../web

# Pginas de cada parte
introduccion = Portada-Introduccion.ps Blanca.ps \
  Presentacion.ps \
  GNUFreeDocumentationLicense.ps \
  IndiceHojas1.ps \
  IndiceHojas2.ps ItinerariosSugeridos.ps \
  CaratulaCDROM.ps CaratulaCDROMRev.ps
fundamentos = Portada-Fundamentos.ps Blanca.ps \
  ComponentesOrdenadorPersonal.ps \
  RedesOrdenadores.ps \
  MedidasInformatica.ps \
  Hardware.ps \
  SeguridadInformatica.ps \
  VirusInformaticos.ps \
  LicenciasSoftware.ps \
  SistemasOperativos1.ps \
  SistemasOperativos2.ps \
  Teclado.ps \
  ProcesoArranque.ps BlancaFundamentos.ps \
  InstalacionSistemasOperativos.ps
tipografia = Portada-Tipografia.ps Blanca.ps \
  VocabularioBasico.ps \
  TipografiaDigital.ps \
  TablaANSI.ps \
  Fabricantes.ps \
  TiposMicrosoft.ps \
  ApostrophicLaboratories.ps \
  TiposSeleccionados1.ps \
  TiposSeleccionados2.ps \
  TiposSeleccionados3.ps \
  TiposSeleccionados4.ps \
  TiposSeleccionados5.ps \
  TiposSeleccionados6.ps TipoDistroBats.ps \
  TipoStarBats.ps TipoStarMath.ps
gnulinux = Portada-GNULinux.ps Blanca.ps \
  EntornosTrabajo.ps \
  Usuarios.ps \
  Sesiones.ps \
  PrimerosPasosGNOME.ps ManejoRatonGNU.ps \
  GestoresVentanas.ps \
  ArranqueProgramasGNU.ps \
  ManejoProgramasGNU.ps \
  CuadrosDialogoGNU.ps \
  SistemaArchivosGNU.ps \
  OrganizacionSistemaArchivos.ps \
  ManejoDocumentoGNU.ps \
  IntroduccionTextoAbiWord.ps CreacionDibujosGIMP.ps \
  ManejoTiposGNU.ps \
  SistemasAyudaGNU.ps \
  GestionArchivosGNU1.ps \
  GestionArchivosGNU2.ps \
  ArchivosTexto.ps \
  TrabajoConsola.ps \
  ControlProcesos.ps \
  PersonalizacionGNOME.ps
windows = Portada-Windows.ps Blanca.ps \
  EntradaSalida-Windows.ps \
  ManejoRatonWin.ps PartesVentana.ps \
  ArranqueProgramasWin.ps \
  ManejoProgramasWin.ps \
  CuadrosDialogoWin.ps \
  SistemaArchivosWin.ps \
  GestionArchivosWin.ps PapeleraReciclaje.ps \
  OrganizacionDiscoDuro.ps \
  ManejoDocumentoWin.ps \
  AccesoRapidoDocumentos.ps \
  IntroduccionTextoWordPad.ps CreacionDibujosPaint.ps \
  ManejoTiposWin.ps \
  Portapapeles.ps \
  SistemaAyudaWin.ps \
  Explorador.ps \
  RecursosCompartidosRed.ps \
  MantenimientoDiscoDuro.ps \
  MicrosoftBackup.ps \
  PanelControl.ps \
  PersonalizacionInterfaz.ps
internet = Portada-Internet.ps Blanca.ps \
  Historia.ps \
  FundamentosTecnicos1.ps \
  FundamentosTecnicos2.ps \
  ConexionGNULinux.ps ConexionWindows.ps \
  ProgramasNavegadores.ps \
  NetscapeNavigator.ps \
  NavegacionWeb.ps \
  Buscadores.ps \
  CompresionDatos.ps \
  CompresoresWindows.ps \
  CompresoresGNULinux.ps \
  TransferenciaFicheros.ps  \
  GestoresDescargas.ps \
  CorreoElectronico1.ps \
  CorreoElectronico2.ps \
  Telnet.ps
staroffice = Portada-StarOffice.ps Blanca.ps \
  PuestaMarcha.ps \
  InstalacionWindows.ps \
  InstalacionGNULinux.ps \
  AspectoGeneral.ps \
  Modulos.ps \
  ManejoDocumento1-StarOffice.ps \
  ManejoDocumento2-StarOffice.ps \
  SistemaAyuda-StarOffice.ps
draw = Portada-Draw.ps Blanca.ps \
  EstudioGraficos.ps \
  VentanaDraw.ps \
  CreacionObjetos.ps \
  CurvasBezier.ps \
  Texto.ps \
  ModificacionObjetos.ps \
  LineasRellenos.ps \
  Transformaciones.ps RelacionObjetos.ps \
  Efectos.ps \
  ImprimirExportar.ps
image = Portada-Image.ps Blanca.ps \
  Crear.ps \
  Dibujar.ps Modificar.ps
writer = Portada-Writer.ps Blanca.ps \
  VentanaWriter.ps DeterminacionPapel.ps \
  IntroduccionTexto-Writer.ps \
  FormatoParrafos.ps \
  ModosVisualizacion.ps TiposLetra.ps \
  UsoBloques1.ps \
  UsoBloques2.ps BlancaWriter.ps \
  Practica.ps Gamusinos.ps \
  Impresion.ps \
  BuscarReemplazar.ps \
  Tabuladores.ps \
  ListasEnumeracionesEsquemas.ps \
  HerramientasGramaticales.ps \
  Columnas.ps \
  Estilos.ps \
  Plantillas.ps \
  GestionDocumentosLargos.ps \
  Tablas1-Writer.ps \
  Tablas2-Writer.ps \
  Marcos.ps \
  Imagenes.ps \
  Formulas.ps \
  ElementosOrnamentales.ps \
  ConsejosEdicion.ps
calc = Portada-Calc.ps Blanca.ps \
  CreacionHojaCalculo.ps \
  EdicionHojaCalculo.ps \
  ManejoFormulas.ps \
  Funciones-Calc.ps \
  Formatos.ps \
  Diagramas.ps \
  EjemploDosDados.ps
base = Portada-Base.ps Blanca.ps \
  BasesDatos.ps BlancaBase.ps \
  Creacion-Base.ps \
  UsoTablas.ps \
  Formularios.ps \
  Consultas.ps Informes.ps \
  CartasSerie.ps \
  ExportarWriter.ps BlancaBase.ps \
  UsoTablasAccess.ps
multimedia = Portada-Multimedia.ps Blanca.ps \
  DigitalizacionImagenes.ps \
  Audio.ps \
  Presentaciones1.ps \
  Presentaciones2.ps Video.ps
creacionweb = Portada-CreacionWeb.ps Blanca.ps \
  FundamentosHTML.ps \
  CreacionPaginasWeb.ps \
  ElementosHTML1.ps \
  ElementosHTML2.ps \
  Tablas-CreacionWeb.ps \
  GIMPWeb.ps
programacion = Portada-Programacion.ps Blanca.ps \
  ConceptosGenerales.ps \
  LenguajeC.ps \
  CGNULinux.ps \
  PrimerosProgramas.ps \
  ElementosFundamentales.ps \
  EntradaSalida-Programacion.ps \
  SentenciasControl1.ps \
  SentenciasControl2.ps \
  Arrays.ps Cadenas.ps \
  Funciones-Programacion.ps \
  EstiloProgramacion.ps \
  CicloVida.ps \
  EjemploCompleto1.ps \
  EjemploCompleto2.ps

#---------------------------------------------------------------------
# Dependencia principal
# Sirve para crear tres objetivos distintos: curso, libro y ejemplo
# La orden es: make
#---------------------------------------------------------------------

all: curso libro ejemplo

#---------------------------------------------------------------------
# Objetivo: curso
# Sirve para crear todas las partes del libro en archivos individuales
# La orden es: make curso
#---------------------------------------------------------------------

curso: $(Objetivo) $(Web)
	cp -p $(Objetivo) $(Destino)
	cp -p $(Web) $(DestinoWeb)

#---------------------------------------------------------------------
# Dependencias de cada parte
#---------------------------------------------------------------------

introduccion.pdf: $(introduccion)
	$(Une) $@ $+

fundamentos.pdf: $(fundamentos)
	$(Une) $@ $+

tipografia.pdf: $(tipografia)
	$(Une) $@ $+

gnulinux.pdf: $(gnulinux)
	$(Une) $@ $+

windows.pdf: $(windows)
	$(Une) $@ $+

internet.pdf: $(internet)
	$(Une) $@ $+

staroffice.pdf: $(staroffice)
	$(Une) $@ $+

draw.pdf: $(draw)
	$(Une) $@ $+

image.pdf: $(image)
	$(Une) $@ $+

writer.pdf: $(writer)
	$(Une) $@ $+

calc.pdf: $(calc)
	$(Une) $@ $+

base.pdf: $(base)
	$(Une) $@ $+

multimedia.pdf: $(multimedia)
	$(Une) $@ $+

creacionweb.pdf: $(creacionweb)
	$(Une) $@ $+

programacion.pdf: $(programacion)
	$(Une) $@ $+

#---------------------------------------------------------------------
# Creacin de los archivos zip
#---------------------------------------------------------------------

$(Web): %.zip: %.pdf
	$(Comprime) $@ $^

#---------------------------------------------------------------------
# Objetivo: libro
# Crear un PDF con el libro entero
# La orden es: make libro
#---------------------------------------------------------------------

libro: libro.zip

libro.pdf: $(introduccion) $(fundamentos) $(tipografia) $(gnulinux) \
           $(windows) $(internet) $(staroffice) $(draw) $(image)    \
           $(writer) $(calc) $(base) $(multimedia) $(creacionweb)   \
           $(programacion)
	$(Une) $@ $+

libro.zip: libro.pdf
	$(Comprime) $@ $+
	cp -p libro.pdf $(Destino)
	cp -p libro.zip $(DestinoWeb)

#---------------------------------------------------------------------
# Objetivo: ejemplo
# Crear un PDF con una hoja de ejemplo
# La orden es: make ejemplo
#---------------------------------------------------------------------

ejemplo: licencias.zip

licencias.pdf: LicenciasSoftware.ps
	$(Une) $@ $+

licencias.zip: licencias.pdf
	$(Comprime) $@ $+
	cp -p licencias.pdf $(Destino)
	cp -p licencias.zip $(DestinoWeb)

#---------------------------------------------------------------------
# Limpieza del resultado de la compilacin
#---------------------------------------------------------------------

limpia:
	rm -f *.pdf *.zip
