SHELL := bash
NAME := ag
CFLAGS := -ansi -pedantic -D_GNU_SOURCE
-OBJS := scanner.o parser.o symbol_table.o
-TARGETS := parser.y scanner.lex
+OBJS := scanner.o parser.o symtable.o
all: $(NAME)
$(NAME): $(OBJS)
- @echo " LINK $<"
+ @echo " LINK $@"
@gcc -o $@ $(OBJS) -lfl
scanner.c: oxout.l
@echo " FLEX $<"
@flex -o$@ $<
-%.o: %.c parser.h symbol_table.h
+%.o: %.c parser.h symtable.h
@echo " CC $<"
@gcc -c $(CFLAGS) $< #-Wall
parser.h: parser.c
-oxout.y oxout.l: $(TARGETS)
- @echo " OX $(TARGETS)"
- @ox parser.y scanner.lex
+oxout.y oxout.l: parser.y scanner.lex
+ @echo " OX $^"
+ @ox $^
.PHONY: clean
clean:
- rm -f $(NAME) $(OBJS) scanner.c parser.{h,c,output} oxout.{y,l}
+ rm -f $(NAME) $(OBJS) scanner.c parser.{h,c,output} oxout.{y,l,h} cscope.out tags
1test: 2test