Mail Archives: djgpp/1996/04/19/22:00:51
Rafael R. Sevilla wrote:
>
> Hi. I've been using Bison for some time to build a small language, and it
> appears to give me lots of problems in conjunction with make. In order to
> make my lang.c file for example, my makefile has the following lines
>
> lang.c lang_tab.h: lang.y $(HEADERS)
> bison -y -d lang.y
> update y_tab.c lang.c
> update y_tab.h lang_tab.h
>
> lang.o: lang.c
>
> ...
>
> Trouble is, make does a lot of redundant work: it runs bison twice and
> consequently recompiles lang.c twice too, for some reason that escapes me.
> Make was invented in order to avoid redundant compiles, but it appears to
> be adding to them here. What's going on? Is there something wrong with my
> makefile?
>
> -------------------------------------------------------------------------
> University of the Philippines Rafael R. Sevilla
> PABX/OVCA: Diliman Networking Project rsevilla AT sauron DOT upd DOT edu DOT ph
> -------------------------------------------------------------------------
I use bison and I have no problems. Your makefile may have a line like
HEADERS= ... lang_tab.h ...
this may be your problem. remove lang_tab.h from HEADERS.
here is my own makefile.
Denis.
-------
TARGET=o.exe
SRCS=s.c sql_tab.c lexyy.c
OBJS=$(SRCS:.c=.o)
CFLAGS=-Wall
all: $(TARGET)
echo End of compilation
$(TARGET): $(OBJS)
gcc -o $(TARGET) $(OBJS)
sql_tab.h sql_tab.c: sql.y
bison -d sql.y
lexyy.o: lexyy.c sql_tab.h
gcc $(CFLAGS) -c lexyy.c
lexyy.c: l.fle
flex l.fle
---------------------
- Raw text -