516b7db593
Building firmware with O=path was apparently broken in aic7 for ever. Message of the previous commit to the Makefile (from 2008) mentions this unfortunate state of affairs already. Fix this, mostly to make randconfig builds more reliable. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
86 lines
2.3 KiB
Makefile
86 lines
2.3 KiB
Makefile
PROG= aicasm
|
|
|
|
OUTDIR ?= ./
|
|
|
|
.SUFFIXES= .l .y .c .h
|
|
|
|
CSRCS= aicasm.c aicasm_symbol.c
|
|
YSRCS= aicasm_gram.y aicasm_macro_gram.y
|
|
LSRCS= aicasm_scan.l aicasm_macro_scan.l
|
|
|
|
GENHDRS= $(addprefix ${OUTDIR}/,aicdb.h $(YSRCS:.y=.h))
|
|
GENSRCS= $(addprefix ${OUTDIR}/,$(YSRCS:.y=.c) $(LSRCS:.l=.c))
|
|
|
|
SRCS= ${CSRCS} ${GENSRCS}
|
|
LIBS= -ldb
|
|
clean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG)
|
|
# Override default kernel CFLAGS. This is a userland app.
|
|
AICASM_CFLAGS:= -I/usr/include -I. -I$(OUTDIR)
|
|
LEX= flex
|
|
YACC= bison
|
|
YFLAGS= -d
|
|
|
|
NOMAN= noman
|
|
|
|
ifneq ($(HOSTCC),)
|
|
AICASM_CC= $(HOSTCC)
|
|
else
|
|
AICASM_CC= $(CC)
|
|
endif
|
|
|
|
ifdef DEBUG
|
|
CFLAGS+= -DDEBUG -g
|
|
YFLAGS+= -t -v
|
|
LFLAGS= -d
|
|
endif
|
|
|
|
$(PROG): $(OUTDIR) ${GENHDRS} $(SRCS)
|
|
$(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(OUTDIR)/$(PROG) $(LIBS)
|
|
|
|
$(OUTDIR):
|
|
mkdir -p $(OUTDIR)
|
|
|
|
$(OUTDIR)/aicdb.h:
|
|
@if [ -e "/usr/include/db4/db_185.h" ]; then \
|
|
echo "#include <db4/db_185.h>" > $@; \
|
|
elif [ -e "/usr/include/db3/db_185.h" ]; then \
|
|
echo "#include <db3/db_185.h>" > $@; \
|
|
elif [ -e "/usr/include/db2/db_185.h" ]; then \
|
|
echo "#include <db2/db_185.h>" > $@; \
|
|
elif [ -e "/usr/include/db1/db_185.h" ]; then \
|
|
echo "#include <db1/db_185.h>" > $@; \
|
|
elif [ -e "/usr/include/db/db_185.h" ]; then \
|
|
echo "#include <db/db_185.h>" > $@; \
|
|
elif [ -e "/usr/include/db_185.h" ]; then \
|
|
echo "#include <db_185.h>" > $@; \
|
|
else \
|
|
echo "*** Install db development libraries"; \
|
|
fi
|
|
|
|
clean:
|
|
rm -f $(clean-files)
|
|
|
|
# Create a dependency chain in generated files
|
|
# to avoid concurrent invocations of the single
|
|
# rule that builds them all.
|
|
$(OUTDIR)/aicasm_gram.c: $(OUTDIR)/aicasm_gram.h
|
|
$(OUTDIR)/aicasm_gram.c $(OUTDIR)/aicasm_gram.h: aicasm_gram.y
|
|
$(YACC) $(YFLAGS) -b $(<:.y=) $<
|
|
mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c)
|
|
mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h)
|
|
|
|
# Create a dependency chain in generated files
|
|
# to avoid concurrent invocations of the single
|
|
# rule that builds them all.
|
|
$(OUTDIR)/aicasm_macro_gram.c: $(OUTDIR)/aicasm_macro_gram.h
|
|
$(OUTDIR)/aicasm_macro_gram.c $(OUTDIR)/aicasm_macro_gram.h: aicasm_macro_gram.y
|
|
$(YACC) $(YFLAGS) -b $(<:.y=) -p mm $<
|
|
mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c)
|
|
mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h)
|
|
|
|
$(OUTDIR)/aicasm_scan.c: aicasm_scan.l
|
|
$(LEX) $(LFLAGS) -o $@ $<
|
|
|
|
$(OUTDIR)/aicasm_macro_scan.c: aicasm_macro_scan.l
|
|
$(LEX) $(LFLAGS) -Pmm -o $@ $<
|