1# $NHDT-Date: 1524689255 2018/04/25 20:47:35 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.12 $
2# Copyright (c) 2018 by Michael Allison
3# NetHack may be freely redistributed.  See license for details.
4
5# Set all of these or none of them.
6#
7# bison and flex are the ones found in GnuWin32, which
8# is probably the easiest set of these tools to find
9# on Windows.
10#
11#YACC    = bison.exe -y
12#LEX     = flex.exe
13#YTABC   = y.tab.c
14#YTABH   = y.tab.h
15#LEXYYC  = lex.yy.c
16
17
18default: all
19
20all: tools ..\util\lev_yacc.c ..\util\lev_lex.c
21
22rebuild: clean all
23
24clean:
25	-del ..\util\lev_lex.c
26	-del ..\util\lev_yacc.c
27	-del ..\include\lev_comp.h
28
29tools:
30!IFDEF YACC
31	@echo Yacc-alike set to $(YACC)
32	@echo YTABC set to $(YTABC)
33	@echo YTABH set to $(YTABH)
34!ENDIF
35
36!IFDEF LEX
37	@echo Lex-alike set to $(LEX)
38	@echo LEXYYC set to $(LEXYYC)
39!ENDIF
40
41#==========================================
42# Level Compiler Stuff
43#==========================================
44
45..\include\lev_comp.h: ..\util\lev_comp.y
46!IFNDEF YACC
47	   @echo Using pre-built lev_comp.h
48	   chdir ..\include
49	   copy /y ..\sys\share\lev_comp.h
50	   copy /b lev_comp.h+,,
51	   chdir ..\src
52!ELSE
53	   @echo Generating lev_yacc.c and lev_comp.h
54	   chdir ..\util
55	   $(YACC) -d lev_comp.y
56	   copy $(YTABC) $@
57	   copy $(YTABH) ..\include\lev_comp.h
58	   @del $(YTABC)
59	   @del $(YTABH)
60	   chdir ..\src
61!ENDIF
62
63..\util\lev_yacc.c: ..\util\lev_comp.y
64!IFNDEF YACC
65	   @echo Using pre-built lev_yacc.c
66	   chdir ..\util
67	   copy /y ..\sys\share\lev_yacc.c
68	   copy /b lev_yacc.c+,,
69	   chdir ..\src
70!ELSE
71	   @echo Generating lev_yacc.c and lev_comp.h
72	   chdir ..\util
73	   $(YACC) -d lev_comp.y
74	   copy $(YTABC) $@
75	   copy $(YTABH) ..\include\lev_comp.h
76	   @del $(YTABC)
77	   @del $(YTABH)
78	   chdir ..\src
79!ENDIF
80
81..\util\lev_lex.c: ..\util\lev_comp.l
82!IFNDEF LEX
83	   @echo Using pre-built lev_lex.c
84	   chdir ..\util
85	   copy /y ..\sys\share\lev_lex.c
86	   copy /b lev_lex.c+,,
87           chdir ..\src
88!ELSE
89	   @echo Generating lev_lex.c
90	   chdir ..\util
91	   $(LEX) lev_comp.l
92	   copy $(LEXYYC) $@
93	   @del $(LEXYYC)
94	   chdir ..\src
95!ENDIF
96
97