Hi all, I am unsatisfied with the "Makefile.am" I have built, due to the fact that whenever I change my bison file to add a %token, I have to run make TWICE to get a correct build. This is because the header file with token declarations which is generated when yacc is run, also affects the lexical scanner -- therfore it needs to be rebuilt as well. However, this is only detected after the fist "make" command.
Now, I was reading in the automake manual (section 9.7 Yacc and Lex support): "You should never explicitly mention the intermediate (`C' or `C++') file in any `SOURCES' variable; only list the source file." So I created a Makefile.am such as: === CUT HERE === INCLUDES = $(all_includes) bin_PROGRAMS = mysh mysh_SOURCES = mysh.h mysh.c parser.y scanner.l YFLAGS = -d === CUT HERE === when I change "%token" declarations in "parser.y" and run "make", the generated file "parser.h" is altered. But ONLY parser.c is rebuilt. I have to run "make" one more time in order for scanner.c to be rebuilt. I am looking for a set of Makefile.am declarations which would generate some kind of Makefile such as: all: wfssh wfssh: wfssh.c parser.o scanner.o gcc wfssh.c parser.o scanner.o -o wfssh -lfl parser.h: parser.y bison -d parser.y mv parser.tab.h parser.h mv parser.tab.c parser.c parser.o: parser.h parser.c gcc parser.c -o parser.o scanner.o: scanner.l parser.h flex scanner.l gcc scanner.c -o scanner.o -- Alexandros Karypidis University of Thessaly Computer & Communications Engineering dept.