home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / TEKST / GRECODE / MAKEFILE.IN < prev    next >
Text File  |  1993-12-22  |  8KB  |  269 lines

  1. # Makefile for GNU recode.
  2. # Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
  3. # Francois Pinard <pinard@iro.umontreal.ca>, 1988.
  4.  
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2, or (at your option)
  8. # any later version.
  9.  
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14.  
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program; if not, write to the Free Software
  17. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  
  19. SHELL = /bin/sh
  20.  
  21. srcdir = @srcdir@
  22. VPATH = @srcdir@
  23. U = @U@
  24.  
  25. CC = @CC@
  26. AR = ar
  27. RANLIB = @RANLIB@
  28. INSTALL = @INSTALL@
  29. INSTALL_DATA = @INSTALL_DATA@
  30. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  31. MAKEINFO = makeinfo
  32. TEXI2DVI = texi2dvi
  33.  
  34. # GNU awk (or nawk, or mawk) is required for remaking merged.c.
  35. AWK = @AWK@
  36. # Flex (2.3 or better) is required for remaking merged.c.
  37. LEX = @LEX@
  38.  
  39. # Special values for DEFS:
  40. # -DMSDOS        If you are using Messy-DOS; implies USE_FPUTC.
  41. # -DUSE_FPUTC        If merged.c overflows or thrashes the C compiler.
  42.  
  43. CFLAGS = -g
  44. DEFS = @DEFS@
  45. LDFLAGS = -g $(LDEFS)
  46. LDEFS = @LDEFS@
  47. LIBS = @LIBS@
  48.  
  49. prefix = /usr/local
  50. exec_prefix = $(prefix)
  51. bindir = $(exec_prefix)/bin
  52. infodir = $(prefix)/info
  53.  
  54. CPPFLAGS = -I. -I$(srcdir) $(DEFS)
  55.  
  56. .c.o:
  57.     $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
  58.  
  59. HEADERS = getopt.h pathmax.h recode.h charname.h charset.h
  60. SOURCES = recode.c charname.c $(C_STEPS) $(L_STEPS)
  61. OBJECTS = $Urecode.o $Ucharname.o $(STEPOBJS)
  62. LIBSRCS = alloca.c argmatch.c getopt.c getopt1.c error.c xmalloc.c \
  63. xstrdup.c flexlib.c
  64. LIBOBJS = @ALLOCA@ argmatch.o getopt.o getopt1.o error.o xmalloc.o \
  65. xstrdup.o @LIBOBJS@
  66. # Beware that when `@LIBOBJS@' is empty, the last `\' may be wrong.
  67.  
  68. C_STEPS = charset.c applemac.c atarist.c bangbang.c cdcnos.c \
  69. ebcdic.c flat.c ibmpc.c iconqnx.c lat1asci.c lat1ltex.c \
  70. lat1txte.c nextstep.c
  71.  
  72. L_STEPS = ascilat1.l ltexlat1.l txtelat1.l
  73.  
  74. STEPOBJS = $Ucharset.o $Uapplemac.o $Uatarist.o $Ubangbang.o $Ucdcnos.o \
  75. $Uebcdic.o $Uflat.o $Uibmpc.o $Uiconqnx.o $Ulat1asci.o $Ulat1ltex.o \
  76. $Ulat1txte.o $Unextstep.o $Umerged.o
  77.  
  78. DISTFILES = README HINTS NEWS TODO THANKS COPYING INSTALL ChangeLog \
  79. configure.in acconfig.h aclocal.m4 mkinstalldirs install.sh ansi2knr.c \
  80. Makefile.in mergelex.awk unhexify.l recode.texi texinfo.tex \
  81. $(HEADERS) $(SOURCES) $(LIBSRCS) c-boxes.el checkit \
  82. rfc1345.txt charname.sed charname.pl charset.sed charset.pl \
  83. .stamp-h.in config.h.in configure merged.c charset.texi recode.info
  84.  
  85. # Put aside for now: configdos.pl config.tcc.
  86.  
  87. CHECKTEST = @$(SHELL) $(srcdir)/checkit $(srcdir)/COPYING
  88.  
  89. all: recode
  90.  
  91. recode: .stamp-collect $(OBJECTS) librec.a
  92.     $(CC) $(LDFLAGS) -o recode $(OBJECTS) librec.a $(LIBS)
  93.  
  94. $(srcdir)/merged.c: mergelex.awk $(L_STEPS)
  95.     (cd $(srcdir); $(AWK) -f mergelex.awk $(L_STEPS)) \
  96.     | $(LEX) -t8 | grep -v '^# *line [0-9]' > merged.tmp
  97.     mv merged.tmp $(srcdir)/merged.c
  98.     @rm -f $(srcdir)/merged*.tmp
  99.  
  100. charname.h: charname.sed charname.pl rfc1345.txt
  101.     sed -n -f charname.sed rfc1345.txt | perl charname.pl
  102.  
  103. charset.h charset.texi: charset.sed charset.pl rfc1345.txt
  104.     sed -n -f charset.sed rfc1345.txt | perl charset.pl
  105.  
  106. ansi2knr: ansi2knr.c
  107.     $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o ansi2knr $(srcdir)/ansi2knr.c
  108. _recode.c: recode.c ansi2knr
  109.     ./ansi2knr $(srcdir)/recode.c > _recode.c
  110. _charname.c: charname.c ansi2knr
  111.     ./ansi2knr $(srcdir)/charname.c > _charname.c
  112. _charset.c: charset.c ansi2knr
  113.     ./ansi2knr $(srcdir)/charset.c > _charset.c
  114. _applemac.c: applemac.c ansi2knr
  115.     ./ansi2knr $(srcdir)/applemac.c > _applemac.c
  116. _atarist.c: atarist.c ansi2knr
  117.     ./ansi2knr $(srcdir)/atarist.c > _atarist.c
  118. _bangbang.c: bangbang.c ansi2knr
  119.     ./ansi2knr $(srcdir)/bangbang.c > _bangbang.c
  120. _cdcnos.c: cdcnos.c ansi2knr
  121.     ./ansi2knr $(srcdir)/cdcnos.c > _cdcnos.c
  122. _ebcdic.c: ebcdic.c ansi2knr
  123.     ./ansi2knr $(srcdir)/ebcdic.c > _ebcdic.c
  124. _flat.c: flat.c ansi2knr
  125.     ./ansi2knr $(srcdir)/flat.c > _flat.c
  126. _ibmpc.c: ibmpc.c ansi2knr
  127.     ./ansi2knr $(srcdir)/ibmpc.c > _ibmpc.c
  128. _iconqnx.c: iconqnx.c ansi2knr
  129.     ./ansi2knr $(srcdir)/iconqnx.c > _iconqnx.c
  130. _lat1asci.c: lat1asci.c ansi2knr
  131.     ./ansi2knr $(srcdir)/lat1asci.c > _lat1asci.c
  132. _lat1ltex.c: lat1ltex.c ansi2knr
  133.     ./ansi2knr $(srcdir)/lat1ltex.c > _lat1ltex.c
  134. _lat1txte.c: lat1txte.c ansi2knr
  135.     ./ansi2knr $(srcdir)/lat1txte.c > _lat1txte.c
  136. _nextstep.c: nextstep.c ansi2knr
  137.     ./ansi2knr $(srcdir)/nextstep.c > _nextstep.c
  138. _merged.c: merged.c ansi2knr
  139.     ./ansi2knr $(srcdir)/merged.c > _merged.c
  140.  
  141. $(OBJECTS): config.h
  142. $Urecode.o $Ucharname.o $Ucharset.o $(STEPOBJS): recode.h
  143. $Urecode.o: initstep.h
  144. $Ucharname.o: charname.h
  145. $Ucharset.o: charset.h
  146.  
  147. .stamp-collect: charset.h $(C_STEPS) merged.c
  148.     (cd $(srcdir); sed -n 's/^\(module_[^ ]*\).*/  \1 ();/p' \
  149.       charset.h $(C_STEPS) merged.c ) > initstep.tmp
  150.     if cmp -s initstep.h initstep.tmp; then rm initstep.tmp; \
  151.     else mv initstep.tmp initstep.h; fi
  152.     touch .stamp-collect
  153.  
  154. librec.a: $(LIBOBJS)
  155.     rm -f librec.a
  156.     $(AR) cru librec.a $(LIBOBJS)
  157.     $(RANLIB) librec.a
  158.  
  159. $(LIBOBJS): config.h
  160. getopt.o getopt1.o: getopt.h
  161.  
  162. check: recode
  163.     @./recode --version
  164.     $(CHECKTEST) texte texte
  165.     $(CHECKTEST) texte latin1
  166.     $(CHECKTEST) texte ibmpc
  167.     $(CHECKTEST) texte iconqnx
  168.     $(CHECKTEST) texte bangbang
  169.     $(CHECKTEST) ascii-bs ebcdic
  170.     @echo "All checks completed successfully."
  171.  
  172. autocheck:
  173.     @echo "The following test may take part of an hour.  Be patient."
  174.     @(./recode --auto-check | grep UNACH | grep -v '^flat') || exit 0
  175.  
  176. info: recode.info
  177.  
  178. recode.info: recode.texi charset.texi
  179.     $(MAKEINFO) -I$(srcdir) --no-split recode.texi
  180.  
  181. dvi: recode.dvi
  182.  
  183. recode.dvi: recode.texi
  184.     $(TEXI2DVI) $(srcdir)/recode.texi
  185.  
  186. install: recode recode.info installdirs
  187.     $(INSTALL_PROGRAM) recode $(bindir)/recode
  188.     $(INSTALL_DATA) $(srcdir)/recode.info $(infodir)/recode.info
  189.  
  190. # Make sure all installation directories, e.g. $(bindir) actually exist by
  191. # making them if necessary.
  192. installdirs:
  193.     $(SHELL) $(srcdir)/mkinstalldirs $(bindir) $(infodir)
  194.  
  195. uninstall: all
  196.     rm -f $(bindir)/recode $(infodir)/recode.info
  197.  
  198. tags: $(HEADERS) $(SOURCES)
  199.     ctags $(HEADERS) $(SOURCES)
  200.  
  201. TAGS: $(HEADERS) $(SOURCES)
  202.     etags -t $(HEADERS) $(SOURCES)
  203.  
  204. texclean:
  205.     rm -f *.aux *.cp *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr
  206.  
  207. mostlyclean: texclean
  208.     rm -f *~ *.tmp core
  209.  
  210. clean: mostlyclean
  211.     rm -f recode unhexify _*.c *.o *.a
  212.  
  213. distclean: clean
  214.     rm -f tags TAGS Makefile config.status config.h ansi2knr
  215.     rm -f initstep.h .stamp-collect
  216.  
  217. realclean: distclean
  218.     rm -f recode.info merged.c charname.h charset.h charset.texi
  219.  
  220. dist: $(DISTFILES)
  221.     @echo "Did you run \`make detecthex' recently?"
  222.     pwd | sed 's|.*/||' > .fname
  223.     rm -rf `cat .fname`
  224.     mkdir `cat .fname`
  225.     chmod 777 `cat .fname`
  226.     ln $(DISTFILES) `cat .fname`
  227.     chmod -R a+r `cat .fname`
  228.     tar chozf `cat .fname`.tar.gz `cat .fname`
  229.     rm -rf `cat .fname` .fname
  230.  
  231. dist.dos: $(DISTFILES)
  232.     rm -rf dist.dos
  233.     rm -f recode.zoo
  234.     mkdir dist.dos
  235.     cp $(DISTFILES) dist.dos
  236.     perl configdos.pl config.tcc > dist.dos/makefile
  237.     echo $(OBJECTS) | tr -s ' ' "\012" | \
  238.       sed 's/\.o$$/.obj/' > dist.dos/objects.lst
  239.     cd dist.dos; chmod +w *; ../recode :ibmpc *; zoo ahq ../recode *
  240.     rm -rf dist.dos
  241.  
  242. # Once in a while, find ramping octal or hexadecimal!
  243. detecthex: unhexify
  244.     PATH=`pwd`:$(PATH); cd $(srcdir); \
  245.     for file in $(HEADERS) $(SOURCES); do \
  246.       unhexify $$file | diff -u $$file -; \
  247.     done
  248.  
  249. unhexify: unhexify.l
  250.     $(LEX) $(srcdir)/unhexify.l
  251.     $(CC) $(LDFLAGS) -o unhexify lex.yy.c $(LIBS)
  252.     rm -f lex.yy.c
  253.  
  254. # The next rule also takes care of making config.h from config.h.in.
  255. # If remaking config.h does not change it, its timestamp is untouched.
  256. Makefile: Makefile.in config.status .stamp-h.in
  257.     $(SHELL) config.status
  258. config.status: configure
  259.     $(SHELL) config.status --recheck
  260. configure: configure.in aclocal.m4
  261.     cd $(srcdir); autoconf
  262. .stamp-h.in: configure.in aclocal.m4 acconfig.h
  263.     cd $(srcdir); autoheader
  264.     touch $(srcdir)/.stamp-h.in
  265.  
  266. # Tell versions [3.59,3.63) of GNU make not to export all variables.
  267. # Otherwise a system limit (for SysV at least) may be exceeded.
  268. .NOEXPORT:
  269.