# Variables.
HTML = .html # Cambie esto por .htm si es necesario
INFO = .info # Cambie esto por .inf si es necesario
TEXI = .texi # Cambie esto por .txi si es necesario
VPATH += src/makedoc
ifdef DJDIR
EXE =.exe
FLAGS = -s -O3 -ffast-math -fomit-frame-pointer
else
INFODIR = /usr/local/info/
endif
# Módulos a partir de los cuales se genera todo
MODULOS = ahack abi api allegro const changes faq gracias help thanks
SRC = $(addprefix src/,$(addsuffix ._tx,$(MODULOS)))
DIRTXT = ./txt
DESTTXT = $(addprefix $(DIRTXT)/,$(addsuffix .txt,allegro abi faq help ahack) \
AUTHORS CHANGES AUTORES GRACIAS THANKS)
DIRHTML = ./html
DESTHTML = $(addprefix $(DIRHTML)/,$(addsuffix $(HTML), $(MODULOS)))
DIRCHM = ./chm
DESTCHM = $(addprefix $(DIRCHM)/,$(addsuffix $(HTML), $(MODULOS)))
DIRRTF = ./rtf
DESTRTF = $(addprefix $(DIRRTF)/,$(addsuffix .rtf,allegro))
DIRINFO = ./info
DESTINFO = $(addprefix $(DIRINFO)/, allegroes$(INFO))
DIRTEXI = ./texi
DESTTEXI = $(addprefix $(DIRTEXI)/, allegro$(TEXI))
CLEANDEST = $(DESTTXT) $(DESTHTML) $(DESTRTF) $(DESTINFO) $(DESTTEXI) \
$(DESTCHM)
.PHONY : txt html rtf info texi todo _info chm
# Programa que genera los ficheros
MAKEDOC = obj/makedoc$(EXE)
_info:
@echo Para generar la documentación tiene varias opciones del make:
@echo txt, html, rtf, info, texi, chm, todo
@echo Por ejemplo, si sólo quiere la documentación html y rtf teclee:
@echo make html rtf
@echo Para limpiar dispone de las opciones clean y veryclean
@echo Para instalar la documentación, pruebe con install o uninstall
# Dependencias de cada opción del Makefile
txt: $(MAKEDOC) $(DESTTXT)
@echo Documentación en formato txt generada en $(DIRTXT)
html: $(MAKEDOC) $(DESTHTML)
@echo Documentación en formato html generada en $(DIRHTML)
ifdef DJDIR
chm: $(MAKEDOC) $(DIRCHM)/allegro.chm
@echo Documentación en formato chm generada en $(DIRCHM)
else
chm:
@echo La documentación chm sólo puede generarse bajo Windows.
endif
rtf: $(MAKEDOC) $(DESTRTF)
@echo Documentación en formato rtf generada en $(DIRRTF)
info: $(MAKEDOC) $(DESTINFO)
@echo Documentación en formato info generada en $(DIRINFO)
texi: $(MAKEDOC) $(DESTTEXI)
@echo Documentación en formato texi generada en $(DIRTEXI)
todo: html txt rtf texi info chm
@echo Documentación completa generada.
# Reglas para generar ficheros
$(DIRHTML)/%$(HTML): src/%._tx $(MAKEDOC)
@$(MAKEDOC) -html $@ $<
$(DIRCHM)/allegro.chm: src/*._tx $(DESTCHM) $(MAKEDOC)
$(MAKEDOC) -chm chm/allegro$(HTML) src/allegro._tx
-hhc chm/allegro.hhp
$(DIRCHM)/%$(HTML): src/%._tx $(MAKEDOC)
@$(MAKEDOC) -ochm -html $@ $<
$(DIRTXT)/%.txt: src/%._tx $(MAKEDOC)
@$(MAKEDOC) -ascii $@ $<
# @$(MAKEDOC) -warn -ascii $@ $<
$(DIRTXT)/AUTHORS: src/thanks._tx $(MAKEDOC)
@$(MAKEDOC) -part -ascii $@ $<
$(DIRTXT)/CHANGES: src/changes._tx $(MAKEDOC)
@$(MAKEDOC) -ascii $@ $<
$(DIRTXT)/AUTORES: src/gracias._tx $(MAKEDOC)
@$(MAKEDOC) -part -ascii $@ $<
$(DIRTXT)/GRACIAS: src/gracias._tx $(MAKEDOC)
@$(MAKEDOC) -part -ascii $@ $<
$(DIRTXT)/THANKS: src/thanks._tx $(MAKEDOC)
@$(MAKEDOC) -part -ascii $@ $<
$(DIRRTF)/%.rtf: src/%._tx $(MAKEDOC)
@$(MAKEDOC) -rtf $@ $<
$(DIRTEXI)/%$(TEXI): src/%._tx $(MAKEDOC)
@$(MAKEDOC) -txi $@ $<
$(DIRINFO)/%es$(INFO): $(DIRTEXI)/%$(TEXI) $(MAKEDOC)
makeinfo --no-split -o $@ $<
$(MAKEDOC): makedoc.c makechm.c makehtml.c makeman.c makemisc.c makertf.c maketexi.c maketxt.c
gcc $(FLAGS) -o $@ $^ -lm
# Regla para limpiar cosas
RM = rm -f
RMDIR = rmdir
clean:
$(RM) $(CLEANDEST)
$(RM) $(DIRHTML)/*$(HTML) $(DIRCHM)/*$(HTML) $(DIRCHM)/allegro.*
@echo Documentos borrados. Teclee make veryclean para limpiar el generador.
veryclean: clean
$(RM) $(MAKEDOC)
# $(RMDIR) $(DIRTXT) $(DIRHTML) parece que no hay forma estándar de hacer esto...
@echo Generador eliminado.
# Regla para instalar la documentación
install:
ifdef DJDIR
-cp $(DESTINFO) $(DJDIR)/info/allegsp$(INFO)
-install-info $(DJDIR)/info/allegsp$(INFO) $(DJDIR)/info/dir
else
install-info --section Development -- $(DESTINFO)
endif
# Regla para desinstalar la documentación
uninstall:
ifdef DJDIR
-install-info --delete $(DJDIR)/info/allegsp$(INFO) $(DJDIR)/info/dir
-rm $(DJDIR)/info/allegsp$(INFO)
else
install-info --remove $(DESTINFO)
endif