# @(#)Makefile 5.3 (Berkeley) 5/12/90 # $FreeBSD: src/usr.bin/yacc/Makefile,v 1.13 2002/02/08 23:07:36 markm Exp $ OBJDIR ?= obj PROG= yacc SRCS= closure.c error.c lalr.c lr0.c main.c mkpar.c output.c reader.c \ skeleton.c symtab.c verbose.c warshall.c SCRIPTS=yyfix.sh MAN= yacc.1 yyfix.1 LINKS= ${BINDIR}/yacc ${BINDIR}/byacc MLINKS= yacc.1 byacc.1 CC = gcc CFLAGS = -g -Zomf # for debug: LD = gcc LDFLAGS = -Zomf -Zmap -Zstack 384 -Zfork ifeq ($(BUILD_TYPE),debug) CFLAGS += -g -DDEBUG=2 -O0 LDFLAGS += -g else CFLAGS += -O2 -march=i586 -mcpu=i586 -fno-strength-reduce -fomit-frame-pointer endif all: $(OBJDIR)/yacc.exe ####### OBJS := define def_compile $(eval s := $(firstword $(wildcard ./$(src) ./funcs/$(src) ./bltin/$(src)) $(src))) $(eval o := $(OBJDIR)/$(patsubst %.c,%.o,$(src))) $(eval OBJS += $(o)) $(o): $(s) | $(GENHDRS) $(OBJDIR) $$(CC) -c $$(CFLAGS) -o $$@ $(s) endef $(foreach src,$(SRCS),$(eval $(def_compile))) $(OBJDIR): mkdir -p $@ $(OBJDIR)/yacc.exe: $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) clean: rm -f core *.o $(OBJS) $(OBJDIR)/yacc.exe