Fix parser/lexer generation with parallel make
Fun fact: rules with multiple targets don't work properly with 'make
-j'. For example, a rule like
  a b: c
    touch a b
is equivalent to
  a: c
    touch a b
  b: c
    touch a b
so with 'make -j', the 'touch' command will be run twice. See
e.g. https://stackoverflow.com/questions/2973445/gnu-makefile-rule-generating-a-few-targets-from-a-single-source-file.
			
			
This commit is contained in:
		
							parent
							
								
									19265ed26c
								
							
						
					
					
						commit
						d277442df5
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
					@ -20,10 +20,14 @@ libexpr_LDFLAGS_PROPAGATED = $(BDW_GC_LIBS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
libexpr_ORDER_AFTER := $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
 | 
					libexpr_ORDER_AFTER := $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(d)/parser-tab.cc $(d)/parser-tab.hh: $(d)/parser.y
 | 
					$(d)/parser-tab.hh: $(d)/parser-tab.cc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(d)/parser-tab.cc: $(d)/parser.y
 | 
				
			||||||
	$(trace-gen) bison -v -o $(libexpr_DIR)/parser-tab.cc $< -d
 | 
						$(trace-gen) bison -v -o $(libexpr_DIR)/parser-tab.cc $< -d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(d)/lexer-tab.cc $(d)/lexer-tab.hh: $(d)/lexer.l
 | 
					$(d)/lexer-tab.hh: $(d)/lexer-tab.cc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(d)/lexer-tab.cc: $(d)/lexer.l
 | 
				
			||||||
	$(trace-gen) flex --outfile $(libexpr_DIR)/lexer-tab.cc --header-file=$(libexpr_DIR)/lexer-tab.hh $<
 | 
						$(trace-gen) flex --outfile $(libexpr_DIR)/lexer-tab.cc --header-file=$(libexpr_DIR)/lexer-tab.hh $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean-files += $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
 | 
					clean-files += $(d)/parser-tab.cc $(d)/parser-tab.hh $(d)/lexer-tab.cc $(d)/lexer-tab.hh
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue