Makefile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #######################################################################
  2. #
  3. # Makefile to compile all examples and convert them to LaTeX
  4. #
  5. #######################################################################
  6. # Compiler
  7. ifndef FPC
  8. ifdef PP
  9. FPC=$(PP)
  10. endif
  11. endif
  12. ifndef FPC
  13. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  14. ifneq ($(FPCPROG),)
  15. FPCPROG:=$(firstword $(FPCPROG))
  16. FPC:=$(shell $(FPCPROG) -PB)
  17. ifneq ($(findstring Error,$(FPC)),)
  18. override FPC=ppc386
  19. endif
  20. else
  21. override FPC=ppc386
  22. endif
  23. endif
  24. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  25. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  26. EXEEXT=
  27. ifeq ($(OS_TARGET),go32v2)
  28. override EXEEXT:=.exe
  29. endif
  30. ifeq ($(OS_TARGET),win32)
  31. override EXEEXT:=.exe
  32. endif
  33. ifeq ($(OS_TARGET),os2)
  34. override EXEEXT:=.exe
  35. endif
  36. # Unit directory
  37. # UNITDIR=/usr/lib/ppc/0.99.0/linuxunits
  38. # Any options you wish to pass.
  39. PPOPTS=
  40. # Script to convert the programs to LaTeX examples which can be included.
  41. PP2TEX=../pp2tex
  42. # Script to collect all examples in 1 file.
  43. MAKETEX=make1tex
  44. #######################################################################
  45. # No need to edit after this line.
  46. #######################################################################
  47. ifdef UNITDIR
  48. PPOPTS:=$(PPOPTS) -Up$(UNITDIR);
  49. endif
  50. .SUFFIXES: .pp .tex .log .exe
  51. .PHONY: all tex clean execute
  52. OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 \
  53. # ex15 ex16
  54. TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
  55. LOGFILE=$(addsuffix .log, $(OBJECTS))
  56. execute: $(LOGFILE)
  57. all : $(OBJECTS)
  58. tex : $(TEXOBJECTS)
  59. onetex : tex
  60. $(MAKETEX) $(TEXOBJECTS)
  61. clean :
  62. rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
  63. rm -f *.ow *.sw *.exe *.dll *.log *.tmp
  64. $(OBJECTS): %: %.pp
  65. $(FPC) $(PPOPTS) $*
  66. $(LOGFILE): %.log: %$(EXEEXT)
  67. $* > $*.log
  68. $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
  69. $(PP2TEX) $*