I would like to call flex to build a .l file, then call gcc to build everything.
I tryed:
comp:
lex scanner.l \\
gcc -o a.out main.c hash.c -I.
Try this:
lex.yy.c: scanner.l
lex scanner.l
comp: main.c hash.c
gcc -o a.out main.c hash.c -I.
main.c: lex.yy.c
The first rule set tells make
that lex.yy.c needs to be rebuilt any time scanner.l changes and provides the command to recreate lex.yy.c. The second rule set tells make
that the fake target comp depends on main.c and hash.c. If either file changes, then invoking make comp
will cause a recompile. The last line is a stand-alone dependency that tells make
to consider main.c as dirty any time that lex.yy.c changes. It will also force an invocation of make comp
to create lex.yy.c if it does not exist.