11da177e4SLinus TorvaldsPROG= aicasm 21da177e4SLinus Torvalds 3*516b7db5SJakub KicinskiOUTDIR ?= ./ 4*516b7db5SJakub Kicinski 51da177e4SLinus Torvalds.SUFFIXES= .l .y .c .h 61da177e4SLinus Torvalds 71da177e4SLinus TorvaldsCSRCS= aicasm.c aicasm_symbol.c 81da177e4SLinus TorvaldsYSRCS= aicasm_gram.y aicasm_macro_gram.y 91da177e4SLinus TorvaldsLSRCS= aicasm_scan.l aicasm_macro_scan.l 101da177e4SLinus Torvalds 11*516b7db5SJakub KicinskiGENHDRS= $(addprefix ${OUTDIR}/,aicdb.h $(YSRCS:.y=.h)) 12*516b7db5SJakub KicinskiGENSRCS= $(addprefix ${OUTDIR}/,$(YSRCS:.y=.c) $(LSRCS:.l=.c)) 131da177e4SLinus Torvalds 141da177e4SLinus TorvaldsSRCS= ${CSRCS} ${GENSRCS} 151da177e4SLinus TorvaldsLIBS= -ldb 161da177e4SLinus Torvaldsclean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG) 171da177e4SLinus Torvalds# Override default kernel CFLAGS. This is a userland app. 18*516b7db5SJakub KicinskiAICASM_CFLAGS:= -I/usr/include -I. -I$(OUTDIR) 19dba654d1SSam RavnborgLEX= flex 20dba654d1SSam RavnborgYACC= bison 211da177e4SLinus TorvaldsYFLAGS= -d 221da177e4SLinus Torvalds 231da177e4SLinus TorvaldsNOMAN= noman 241da177e4SLinus Torvalds 251da177e4SLinus Torvaldsifneq ($(HOSTCC),) 261da177e4SLinus TorvaldsAICASM_CC= $(HOSTCC) 271da177e4SLinus Torvaldselse 281da177e4SLinus TorvaldsAICASM_CC= $(CC) 291da177e4SLinus Torvaldsendif 301da177e4SLinus Torvalds 311da177e4SLinus Torvaldsifdef DEBUG 321da177e4SLinus TorvaldsCFLAGS+= -DDEBUG -g 331da177e4SLinus TorvaldsYFLAGS+= -t -v 341da177e4SLinus TorvaldsLFLAGS= -d 351da177e4SLinus Torvaldsendif 361da177e4SLinus Torvalds 37*516b7db5SJakub Kicinski$(PROG): $(OUTDIR) ${GENHDRS} $(SRCS) 38*516b7db5SJakub Kicinski $(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(OUTDIR)/$(PROG) $(LIBS) 391da177e4SLinus Torvalds 40*516b7db5SJakub Kicinski$(OUTDIR): 41*516b7db5SJakub Kicinski mkdir -p $(OUTDIR) 42*516b7db5SJakub Kicinski 43*516b7db5SJakub Kicinski$(OUTDIR)/aicdb.h: 441da177e4SLinus Torvalds @if [ -e "/usr/include/db4/db_185.h" ]; then \ 45*516b7db5SJakub Kicinski echo "#include <db4/db_185.h>" > $@; \ 461da177e4SLinus Torvalds elif [ -e "/usr/include/db3/db_185.h" ]; then \ 47*516b7db5SJakub Kicinski echo "#include <db3/db_185.h>" > $@; \ 481da177e4SLinus Torvalds elif [ -e "/usr/include/db2/db_185.h" ]; then \ 49*516b7db5SJakub Kicinski echo "#include <db2/db_185.h>" > $@; \ 501da177e4SLinus Torvalds elif [ -e "/usr/include/db1/db_185.h" ]; then \ 51*516b7db5SJakub Kicinski echo "#include <db1/db_185.h>" > $@; \ 521da177e4SLinus Torvalds elif [ -e "/usr/include/db/db_185.h" ]; then \ 53*516b7db5SJakub Kicinski echo "#include <db/db_185.h>" > $@; \ 541da177e4SLinus Torvalds elif [ -e "/usr/include/db_185.h" ]; then \ 55*516b7db5SJakub Kicinski echo "#include <db_185.h>" > $@; \ 561da177e4SLinus Torvalds else \ 571da177e4SLinus Torvalds echo "*** Install db development libraries"; \ 581da177e4SLinus Torvalds fi 591da177e4SLinus Torvalds 601da177e4SLinus Torvaldsclean: 611da177e4SLinus Torvalds rm -f $(clean-files) 621da177e4SLinus Torvalds 631da177e4SLinus Torvalds# Create a dependency chain in generated files 641da177e4SLinus Torvalds# to avoid concurrent invocations of the single 651da177e4SLinus Torvalds# rule that builds them all. 66*516b7db5SJakub Kicinski$(OUTDIR)/aicasm_gram.c: $(OUTDIR)/aicasm_gram.h 67*516b7db5SJakub Kicinski$(OUTDIR)/aicasm_gram.c $(OUTDIR)/aicasm_gram.h: aicasm_gram.y 681da177e4SLinus Torvalds $(YACC) $(YFLAGS) -b $(<:.y=) $< 69*516b7db5SJakub Kicinski mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c) 70*516b7db5SJakub Kicinski mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h) 711da177e4SLinus Torvalds 721da177e4SLinus Torvalds# Create a dependency chain in generated files 731da177e4SLinus Torvalds# to avoid concurrent invocations of the single 741da177e4SLinus Torvalds# rule that builds them all. 75*516b7db5SJakub Kicinski$(OUTDIR)/aicasm_macro_gram.c: $(OUTDIR)/aicasm_macro_gram.h 76*516b7db5SJakub Kicinski$(OUTDIR)/aicasm_macro_gram.c $(OUTDIR)/aicasm_macro_gram.h: aicasm_macro_gram.y 771da177e4SLinus Torvalds $(YACC) $(YFLAGS) -b $(<:.y=) -p mm $< 78*516b7db5SJakub Kicinski mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c) 79*516b7db5SJakub Kicinski mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h) 801da177e4SLinus Torvalds 81*516b7db5SJakub Kicinski$(OUTDIR)/aicasm_scan.c: aicasm_scan.l 821da177e4SLinus Torvalds $(LEX) $(LFLAGS) -o $@ $< 831da177e4SLinus Torvalds 84*516b7db5SJakub Kicinski$(OUTDIR)/aicasm_macro_scan.c: aicasm_macro_scan.l 851da177e4SLinus Torvalds $(LEX) $(LFLAGS) -Pmm -o $@ $< 86