37
+ − 1
CC=gcc
+ − 2
LD=ld
+ − 3
YACC=bison -v
+ − 4
FLEX=flex
+ − 5
CFLAGS=-Wall -O2 -ansi -D_XOPEN_SOURCE=500
+ − 6
LDFLAGS=
+ − 7
INCLUDE=include
+ − 8
OBJECTS=main.o parser.o lexer.o
+ − 9
TARGET=mcc
+ − 10
+ − 11
.SUFFIXES: .c .y .l
+ − 12
+ − 13
.c.o:
+ − 14
$(CC) -c $(CFLAGS) -I$(INCLUDE) $(CONFIG) $<
+ − 15
+ − 16
.y.c:
+ − 17
$(YACC) -d $< -o $@
+ − 18
+ − 19
.l.c:
+ − 20
$(FLEX) -o $@ $<
+ − 21
+ − 22
all: $(TARGET)
+ − 23
+ − 24
+ − 25
$(TARGET): $(OBJECTS)
+ − 26
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -o $@
+ − 27
+ − 28
.PHONY: distclean clean indent
+ − 29
+ − 30
clean:
+ − 31
rm -f *.[oae];
+ − 32
rm -f *~;
+ − 33
+ − 34
distclean:
+ − 35
make clean
+ − 36
rm -f $(TARGET)
+ − 37
rm -f parser.h
+ − 38
rm -f parser.output
+ − 39
+ − 40
indent:
+ − 41
indent *.c *.h
+ − 42
eraser *.c *.h
+ − 43
+ − 44
install: $(TARGET)
+ − 45
[[ -x ~/bin/ ]] && cp -f $(TARGET) ~/bin
+ − 46