home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / x2p / Makefile.SH < prev    next >
Makefile  |  1999-07-26  |  4KB  |  187 lines

  1. case $CONFIGDOTSH in
  2. '')
  3.     if test -f config.sh; then TOP=.;
  4.     elif test -f ../config.sh; then TOP=..;
  5.     elif test -f ../../config.sh; then TOP=../..;
  6.     elif test -f ../../../config.sh; then TOP=../../..;
  7.     elif test -f ../../../../config.sh; then TOP=../../../..;
  8.     else
  9.         echo "Can't find config.sh."; exit 1
  10.     fi
  11.     . $TOP/config.sh
  12.     ;;
  13. esac
  14. : This forces SH files to create target in same directory as SH file.
  15. : This is so that make depend always knows where to find SH derivatives.
  16. case "$0" in
  17. */Makefile.SH) cd `expr X$0 : 'X\(.*\)/'` ;;
  18. Makefile.SH) ;;
  19. *) case `pwd` in
  20.    */x2p) ;;
  21.    *) if test -d x2p; then cd x2p
  22.       else echo "Can't figure out where to write output."; exit 1
  23.       fi;;
  24.    esac;;
  25. esac
  26.  
  27. echo "Extracting x2p/Makefile (with variable substitutions)"
  28. rm -f Makefile
  29. cat >Makefile <<!GROK!THIS!
  30. # $RCSfile: Makefile.SH,v $$Revision: 4.1 $$Date: 92/08/07 18:29:07 $
  31. #
  32. # $Log:    Makefile.SH,v $
  33.  
  34. CC = $cc
  35. BYACC = $byacc
  36. LDFLAGS = $ldflags
  37. SMALL = $small
  38. LARGE = $large $split
  39. # XXX Perl malloc temporarily unusable (declaration collisions with
  40. # stdlib.h)
  41. #mallocsrc = $mallocsrc
  42. #mallocobj = $mallocobj
  43. shellflags = $shellflags
  44.  
  45. libs = $libs
  46.  
  47. $make_set_make
  48. # grrr
  49. SHELL = $sh
  50.  
  51. # These variables may need to be manually set for non-Unix systems.
  52. AR = $ar
  53. EXE_EXT = $_ext
  54. LIB_EXT = $_a
  55. OBJ_EXT = $_o
  56. PATH_SEP = $p_
  57.  
  58. FIRSTMAKEFILE = $firstmakefile
  59.  
  60. # how to tr(anslate) newlines
  61.  
  62. TRNL = '$trnl'
  63.  
  64. .SUFFIXES: .c \$(OBJ_EXT)
  65.  
  66. !GROK!THIS!
  67.  
  68. cat >>Makefile <<'!NO!SUBS!'
  69.  
  70. REALPERL = ../perl
  71. CCCMD = `sh $(shellflags) cflags $@`
  72.  
  73. public = a2p s2p find2perl
  74.  
  75. private = 
  76.  
  77. manpages = a2p.man s2p.man
  78.  
  79. util =
  80.  
  81. sh = Makefile.SH cflags.SH
  82. shextract = Makefile cflags
  83.  
  84. pl = find2perl.PL s2p.PL
  85. plextract = find2perl s2p
  86. plexe = find2perl.exe s2p.exe
  87. plc   = find2perl.c s2p.c
  88. plm   = a2p.loadmap
  89.  
  90. addedbyconf = $(shextract) $(plextract)
  91.  
  92. h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
  93.  
  94. c = hash.c $(mallocsrc) str.c util.c walk.c
  95.  
  96. obj = hash$(OBJ_EXT) $(mallocobj) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
  97.  
  98. lintflags = -phbvxac
  99.  
  100.  
  101. .c$(OBJ_EXT):
  102.     $(CCCMD) -DPERL_FOR_X2P $*.c
  103.  
  104. all: $(public) $(private) $(util)
  105.     @echo " "
  106.  
  107. compile: all
  108.     $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog;  
  109.  
  110. a2p: $(obj) a2p$(OBJ_EXT)
  111.     $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs)
  112.  
  113. # I now supply a2p.c with the kits, so the following section is
  114. # used only if you force byacc to run by saying
  115. # make  run_byacc
  116.  
  117. run_byacc:    FORCE
  118.     @ echo Expect many shift/reduce and reduce/reduce conflicts
  119.     $(BYACC) a2p.y
  120.     rm -f a2p.c
  121.     mv y.tab.c a2p.c
  122.  
  123. FORCE:
  124.  
  125. # We don't want to regenerate a2p.c, but it might appear out-of-date
  126. # after a patch is applied or a new distribution is made.
  127. a2p.c: a2p.y
  128.     -@sh -c true
  129.  
  130. a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h \
  131.         ../handy.h ../config.h str.h hash.h
  132.     $(CCCMD) $(LARGE) a2p.c
  133.  
  134. clean:
  135.     rm -f a2p *$(OBJ_EXT) $(plexe) $(plc) $(plm)
  136.  
  137. realclean: clean
  138.     rm -f *.orig core $(addedbyconf) all malloc.c
  139.     rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
  140.  
  141. # The following lint has practically everything turned on.  Unfortunately,
  142. # you have to wade through a lot of mumbo jumbo that can't be suppressed.
  143. # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
  144. # for that spot.
  145.  
  146. lint:
  147.     lint $(lintflags) $(defs) $(c) > a2p.fuzz
  148.  
  149. depend: $(mallocsrc) ../makedepend
  150.     sh ../makedepend MAKE=$(MAKE)
  151.  
  152. clist:
  153.     echo $(c) | tr ' ' $(TRNL) >.clist
  154.  
  155. hlist:
  156.     echo $(h) | tr ' ' $(TRNL) >.hlist
  157.  
  158. shlist:
  159.     echo $(sh) | tr ' ' $(TRNL) >.shlist
  160.  
  161. # These should be automatically generated
  162.  
  163. $(plextract):
  164.     ../miniperl -I../lib $@.PL
  165.  
  166. malloc.c: ../malloc.c
  167.     rm -f malloc.c
  168.     sed <../malloc.c >malloc.c \
  169.         -e 's/"EXTERN.h"/"..\/EXTERN.h"/' \
  170.         -e 's/"perl.h"/"..\/perl.h"/' \
  171.         -e 's/my_exit/exit/' \
  172.         -e 's/MUTEX_[A-Z_]*(&PL_malloc_mutex);//'
  173.  
  174. # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
  175. $(obj):
  176.     @ echo "You haven't done a "'"make depend" yet!'; exit 1
  177. makedepend: depend
  178. !NO!SUBS!
  179. $eunicefix Makefile
  180. case `pwd` in
  181. *SH)
  182.     $rm -f ../Makefile
  183.     $ln Makefile ../Makefile
  184.     ;;
  185. esac
  186. rm -f $firstmakefile
  187.