parser/c_compiler/Makefile
author Markus Bröker <mbroeker@largo.dyndns.tv>
Tue, 09 Mar 2010 12:58:27 +0100
changeset 122 50ba3b0e271a
parent 66 2b4f786d9073
permissions -rw-r--r--
GNU Make and GNU Indent The Makefile depends on GNU tools and the user may choose the location committer: Markus Bröker <mbroeker@largo.homelinux.org>

      CC = gcc
      LD = ld
    YACC = bison -v
    FLEX = flex
  CFLAGS = -Wall -O2 -ansi -D_XOPEN_SOURCE=500
 LDFLAGS =
 INCLUDE = -Iinclude

OBJECTS  = main.o
OBJECTS += parser.o
OBJECTS += lexer.o

TARGET=mcc

.SUFFIXES: .c .y .l

.c.o:
	$(CC) -c $(CFLAGS) $(INCLUDE) $(CONFIG) $<

.y.c:
	$(YACC) -d $< -o $@

.l.c:
	$(FLEX) -o $@ $<

all: $(TARGET)


$(TARGET): $(OBJECTS)
	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -o $@

.PHONY: distclean clean indent

clean:
	rm -f *.[oae];
	rm -f *~;

distclean:
	make clean
	rm -f $(TARGET)
	rm -f parser.h
	rm -f parser.output

indent:
	indent *.c *.h
	eraser *.c *.h

install: $(TARGET)
	[[ -x ~/bin/ ]] && cp -f $(TARGET) ~/bin