home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / flexpp.zip / FLEX / MAKEFILE < prev    next >
Text File  |  1995-11-08  |  7KB  |  280 lines

  1. # Generated automatically from Makefile.in by configure.
  2. #
  3. # on SUN under SunOS 4.1.3
  4. #
  5. ## and manually adapted to OS/2 & EMX0.8h by Gregor Buehler (6 Oct 94).
  6. ## Sorry, a lot of defs and rules were thrown out,
  7. ## because they were not useful in my environment.
  8. ## Use following targets with make <target>:
  9. ##    'all'         - default - does all within 'srcdir'
  10. ##    'install'     - installs within EMX dirs (if required alter below)
  11. ##      'uninstall'    - uninstalls off EMX dirs
  12. ##    'clean'        - cleans produced files afer install
  13. ## Rules for producing a standalone version were added.
  14. ## This can be run under DOS or OS/2 without having EMX.
  15. # make file for "flex" tool
  16. # Porting considerations:
  17. #
  18. #    For System V Unix machines, add -DUSG to CFLAGS (if it's not
  19. #         automatically defined)
  20. #    For Vax/VMS, add "-DVMS -DUSG" to CFLAGS.
  21. #    For MS-DOS, add "-DMS_DOS -DUSG" to CFLAGS.  Create \tmp if not present.
  22. #      See MSDOS.notes for more info.
  23. #    For Amiga, add "-DAMIGA -DUSG" to CFLAGS.
  24. #    For SCO Unix, add "-DSCO_UNIX" to CFLAGS.
  25. #
  26. #    For C compilers which don't know about "void", add -Dvoid=int to CFLAGS.
  27. #
  28. #    If your C compiler is ANSI standard but does not include the <stdlib.h>
  29. #    header file (some installations of gcc have this problem), then add
  30. #    -DDONT_HAVE_STDLIB_H to CFLAGS.
  31. #
  32. # By default, flex will be configured to generate 8-bit scanners only
  33. # if the -8 flag is given.  If you want it to always generate 8-bit
  34. # scanners, add "-DDEFAULT_CSIZE=256" to CFLAGS.  Note that doing
  35. # so will double the size of all uncompressed scanners.
  36. # If on your system you have trouble building flex due to 8-bit
  37. # character problems, remove the -8 from FLEX_FLAGS and the
  38. # "#define FLEX_8_BIT_CHARS" from the beginning of flexdef.h.
  39.  
  40.  
  41. # the first time around use "make first_flex"
  42.  
  43.  
  44.  
  45. # the path defs are mostly twofold
  46. # due to GNU/UNIX Style '/' and
  47. # OS/2 '\'
  48.  
  49. srcdir = \flex
  50. srcdir_gnu = /flex
  51.  
  52.  
  53. prefix=\emx
  54. prefix_gnu=/emx
  55.  
  56. # where the installed emx binary goes
  57. bindir = $(prefix)\bin
  58. bindir_gnu = $(prefix_gnu)/bin
  59.  
  60. # where the installed emx standalone binary goes
  61. bindir_sta = $(srcdir)\st_alone.bin
  62. bindir_sta_gnu = $(srcdir_gnu)/st_alone.bin
  63.  
  64. # where the parsers skeletons go
  65. libdir = $(prefix)\lib
  66. libdir_gnu = $(prefix_gnu)/lib
  67.  
  68. # where the headers go
  69. incdir = $(prefix)\include 
  70. incdir_gnu = $(prefix_gnu)/include
  71.  
  72. # where the info files go
  73. infodir = $(prefix)\info
  74.  
  75. # where manual pages go and what their extensions should be
  76. # someone should add a rule and program to compile the manual
  77. # to OS/2 INF format
  78. mandir = $(prefix)\book
  79.  
  80. #### End of system configuration section. ####
  81.  
  82.  
  83.  
  84. # files of binary OS/2 & EMX distribution
  85.  
  86. BINDISTFILES = $(srcdir_gnu)/flex.exe $(srcdir_gnu)/flexsta.exe $(srcdir_gnu)/flexskel.cc \
  87.                $(srcdir_gnu)/flexskel.h \
  88.                $(srcdir_gnu)/makefile $(srcdir_gnu)/flexppm.txt $(srcdir_gnu)/00readme.emx\
  89.      $(srcdir_gnu)/install.bat $(srcdir_gnu)/install.cmd $(srcdir_gnu)/patch.emx
  90.  
  91.  
  92.  
  93. SKELETON_FILE = $(libdir_gnu)/flexskel.cc
  94. HEADERSKELETON_FILE = $(incdir_gnu)/flexskel.h
  95. SKELFLAGS = -DDEFAULT_SKELETON_FILE=\"$(SKELETON_FILE)\" \
  96.             -DDEFAULT_SKELETONHEADER_FILE=\"$(HEADERSKELETON_FILE)\"
  97.  
  98.  
  99. # defs for standalone version of flex++
  100.  
  101. SKELETON_FILE_STA = $(srcdir_gnu)/flexskel.cc
  102. HEADERSKELETON_FILE_STA = $(srcdir_gnu)/flexskel.h
  103. SKELFLAGS_STA = -DDEFAULT_SKELETON_FILE=\"$(SKELETON_FILE_STA)\" \
  104.             -DDEFAULT_SKELETONHEADER_FILE=\"$(HEADERSKELETON_FILE_STA)\"
  105.  
  106.  
  107. CFLAGS = -O2  -DDEFAULT_CSIZE=256
  108. LDFLAGS = -O2 -s
  109.  
  110. FLEX_FLAGS = -ist8
  111.  
  112. # which "flex" to use to generate scan.c from scan.l
  113. FLEX = flex
  114.  
  115. YACC= bison -y
  116. CC = gcc
  117.  
  118. AR = ar
  119. RANLIB = ar -s
  120.  
  121. FLEXOBJS_COMMON = \
  122.     ccl.o \
  123.     dfa.o \
  124.     ecs.o \
  125.     gen.o \
  126.     misc.o \
  127.     nfa.o \
  128.     parse.o \
  129.     scan.o \
  130.     sym.o \
  131.     tblcmp.o \
  132.     yylex.o
  133.  
  134. FLEXOBJS = $(FLEXOBJS_COMMON) main.o
  135.  
  136. FLEXOBJS_STA = $(FLEXOBJS_COMMON) mainsta.o
  137.  
  138.  
  139. FLEX_C_SOURCES = \
  140.     ccl.c \
  141.     dfa.c \
  142.     ecs.c \
  143.     gen.c \
  144.     main.c \
  145.     misc.c \
  146.     nfa.c \
  147.     parse.c \
  148.     scan.c \
  149.     sym.c \
  150.     tblcmp.c \
  151.     yylex.c
  152.  
  153. FLEX_LIB_OBJS = \
  154.     libmain.o
  155.  
  156. FLEXLIB = flexlib.a
  157.  
  158.  
  159. all : flex.exe flexsta.exe $(FLEXLIB) flex.info flexpp.zip
  160.  
  161.  
  162. # EMX version of flex++
  163.  
  164. flex.exe : $(FLEXOBJS)
  165.     $(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(FLEXOBJS)
  166.  
  167.  
  168. # standalone version of flex++ for machines without EMX or RSX
  169.  
  170. flexsta.exe : $(FLEXOBJS_STA)
  171.     $(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(FLEXOBJS_STA)
  172.     emxbind -xq flexsta.exe a.out
  173.     emxbind $(EMXBIND_FLAGS) -q $(bindir)\emx.exe a.out flexsta.exe
  174.     del a.out
  175.  
  176.  
  177.  
  178. first_flex:
  179.     copy initscan.c scan.c
  180.     dmake flex.exe
  181.  
  182. parse.h parse.c : parse.y 
  183.     $(YACC) -d parse.y 
  184.     sed '/extern char.*malloc/d' <y.tab.c >parse.c 
  185.     del y.tab.c
  186.     rename y.tab.h parse.h
  187.  
  188. #scan.c : scan.l
  189. #    $(FLEX) $(FLEX_FLAGS) $(COMPRESSION) scan.l >scan.c
  190.  
  191. scan.o : scan.c parse.h flexdef.h
  192.  
  193.  
  194. # production of main for EMX with default EMX directories
  195.  
  196. main.o : main.c flexdef.h
  197.     $(CC) $(CFLAGS) -c $(SKELFLAGS) main.c
  198.  
  199. # production of main for standalone version
  200.  
  201. mainsta.o : main.c flexdef.h
  202.     $(CC) $(CFLAGS) -c $(SKELFLAGS_STA) -o $@ main.c
  203.  
  204.  
  205. ccl.o : ccl.c flexdef.h
  206. dfa.o : dfa.c flexdef.h
  207. ecs.o : ecs.c flexdef.h
  208. gen.o : gen.c flexdef.h
  209. misc.o : misc.c flexdef.h
  210. nfa.o : nfa.c flexdef.h
  211. parse.o : parse.c flexdef.h
  212. sym.o : sym.c flexdef.h
  213. tblcmp.o : tblcmp.c flexdef.h
  214. yylex.o : yylex.c flexdef.h
  215.  
  216.  
  217. $(FLEXLIB) : $(FLEX_LIB_OBJS)
  218.     $(AR) cru $(FLEXLIB) $(FLEX_LIB_OBJS)
  219.  
  220.     
  221. # make a distribution file of the binaries, skeletons, makefile, and manual
  222.  
  223. flexpp.zip: $(BINDISTFILES)
  224.     zip -k flexpp.zip $(BINDISTFILES)
  225.  
  226. clean:
  227.     del *.o flex.exe flexsta.exe flex.i*
  228.     del flexpp.zip
  229.  
  230. install: all $(BINDISTFILES)
  231.     xcopy $(srcdir)\flex.exe $(bindir) /O
  232.     xcopy $(srcdir)\flexskel.cc $(libdir) /O
  233.     xcopy $(srcdir)\flexskel.h $(incdir) /O
  234.     xcopy $(srcdir)\flexppm.txt $(mandir) /O
  235.     xcopy $(srcdir)\flex.info $(infodir) /O
  236.     xcopy $(srcdir)\flex.i* $(infodir) /O
  237.     xcopy $(srcdir)\$(FLEXLIB) $(libdir) /O
  238.     if exist $(libdir)\libfl.a del $(libdir)\libfl.a
  239.     rename $(libdir)\$(FLEXLIB) libfl.a
  240.     $(RANLIB) $(libdir_gnu)/libfl.a
  241.  
  242. uninstall:
  243.     del $(bindir)\flex.exe
  244.     del $(libdir)\$(SKELETON_FILE) $(libdir)\$(SKELETONHEADER_FILE)
  245.     del $(mandir)\flexppm.txt
  246.     del $(infodir)\flex.i*
  247.     del $(libdir)\libfl.a
  248.  
  249.  
  250. # make the info files for GNU info browser
  251.  
  252. flex.info: flex.texinfo
  253.     makeinfo flex.texinfo
  254.  
  255.  
  256. test : flex
  257.     echo "diff should only be on #line directive"
  258.     flex $(FLEX_FLAGS) -S./flexskel.cc -H./flexskel.h $(COMPRESSION) scan.l | diff scan.c -
  259. bigtest :
  260.     echo "diff should only be on #line directive"
  261.     del scan.c ; dmake COMPRESSION="-C" test
  262.     echo "diff should only be on #line directive"
  263.     del scan.c ; dmake COMPRESSION="-Ce" test
  264.     echo "diff should only be on #line directive"
  265.     del scan.c ; dmake COMPRESSION="-Cm" test
  266.     echo this should fail because there is trailing context in the grammar
  267.     del scan.c ; dmake COMPRESSION="-Cfe" test
  268.     echo this should fail because there is trailing context in the grammar
  269.     del scan.c ; dmake COMPRESSION="-CFe" test
  270.     echo this should fail because there is trailing context in the grammar
  271.     del scan.c ; dmake COMPRESSION="-Cf" test
  272.     echo this should fail because there is trailing context in the grammar
  273.     del scan.c ; dmake COMPRESSION="-CF" test
  274.     echo "diff should only be on #line directive"
  275.     del scan.c ; dmake
  276.  
  277.  
  278.  
  279.