162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ciPROG= aicasm 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciOUTDIR ?= ./ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci.SUFFIXES= .l .y .c .h 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciCSRCS= aicasm.c aicasm_symbol.c 962306a36Sopenharmony_ciYSRCS= aicasm_gram.y aicasm_macro_gram.y 1062306a36Sopenharmony_ciLSRCS= aicasm_scan.l aicasm_macro_scan.l 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciGENHDRS= $(addprefix ${OUTDIR}/,aicdb.h $(YSRCS:.y=.h)) 1362306a36Sopenharmony_ciGENSRCS= $(addprefix ${OUTDIR}/,$(YSRCS:.y=.c) $(LSRCS:.l=.c)) 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciSRCS= ${CSRCS} ${GENSRCS} 1662306a36Sopenharmony_ciLIBS= -ldb 1762306a36Sopenharmony_ciclean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG) 1862306a36Sopenharmony_ci# Override default kernel CFLAGS. This is a userland app. 1962306a36Sopenharmony_ciAICASM_CFLAGS:= -I/usr/include -I. -I$(OUTDIR) 2062306a36Sopenharmony_ciLEX= flex 2162306a36Sopenharmony_ciYACC= bison 2262306a36Sopenharmony_ciYFLAGS= -d 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciNOMAN= noman 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciifneq ($(HOSTCC),) 2762306a36Sopenharmony_ciAICASM_CC= $(HOSTCC) 2862306a36Sopenharmony_cielse 2962306a36Sopenharmony_ciAICASM_CC= $(CC) 3062306a36Sopenharmony_ciendif 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciifdef DEBUG 3362306a36Sopenharmony_ciCFLAGS+= -DDEBUG -g 3462306a36Sopenharmony_ciYFLAGS+= -t -v 3562306a36Sopenharmony_ciLFLAGS= -d 3662306a36Sopenharmony_ciendif 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci$(PROG): $(OUTDIR) ${GENHDRS} $(SRCS) 3962306a36Sopenharmony_ci $(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(OUTDIR)/$(PROG) $(LIBS) 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci$(OUTDIR): 4262306a36Sopenharmony_ci mkdir -p $(OUTDIR) 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci$(OUTDIR)/aicdb.h: 4562306a36Sopenharmony_ci @if [ -e "/usr/include/db4/db_185.h" ]; then \ 4662306a36Sopenharmony_ci echo "#include <db4/db_185.h>" > $@; \ 4762306a36Sopenharmony_ci elif [ -e "/usr/include/db3/db_185.h" ]; then \ 4862306a36Sopenharmony_ci echo "#include <db3/db_185.h>" > $@; \ 4962306a36Sopenharmony_ci elif [ -e "/usr/include/db2/db_185.h" ]; then \ 5062306a36Sopenharmony_ci echo "#include <db2/db_185.h>" > $@; \ 5162306a36Sopenharmony_ci elif [ -e "/usr/include/db1/db_185.h" ]; then \ 5262306a36Sopenharmony_ci echo "#include <db1/db_185.h>" > $@; \ 5362306a36Sopenharmony_ci elif [ -e "/usr/include/db/db_185.h" ]; then \ 5462306a36Sopenharmony_ci echo "#include <db/db_185.h>" > $@; \ 5562306a36Sopenharmony_ci elif [ -e "/usr/include/db_185.h" ]; then \ 5662306a36Sopenharmony_ci echo "#include <db_185.h>" > $@; \ 5762306a36Sopenharmony_ci else \ 5862306a36Sopenharmony_ci echo "*** Install db development libraries"; \ 5962306a36Sopenharmony_ci fi 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciclean: 6262306a36Sopenharmony_ci rm -f $(clean-files) 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci$(OUTDIR)/aicasm_gram.c $(OUTDIR)/aicasm_gram.h: aicasm_gram.y 6562306a36Sopenharmony_ci $(YACC) $(YFLAGS) -b $(<:.y=) $< -o $(OUTDIR)/$(<:.y=.c) 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci$(OUTDIR)/aicasm_macro_gram.c $(OUTDIR)/aicasm_macro_gram.h: aicasm_macro_gram.y 6862306a36Sopenharmony_ci $(YACC) $(YFLAGS) -b $(<:.y=) -p mm $< -o $(OUTDIR)/$(<:.y=.c) 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci$(OUTDIR)/aicasm_scan.c: aicasm_scan.l 7162306a36Sopenharmony_ci $(LEX) $(LFLAGS) -o $@ $< 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci$(OUTDIR)/aicasm_macro_scan.c: aicasm_macro_scan.l 7462306a36Sopenharmony_ci $(LEX) $(LFLAGS) -Pmm -o $@ $< 75