xref: /OK3568_Linux_fs/kernel/drivers/scsi/aic7xxx/aicasm/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593SmuzhiyunPROG=	aicasm
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunOUTDIR ?= ./
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun.SUFFIXES= .l .y .c .h
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunCSRCS=	aicasm.c aicasm_symbol.c
9*4882a593SmuzhiyunYSRCS=	aicasm_gram.y aicasm_macro_gram.y
10*4882a593SmuzhiyunLSRCS=	aicasm_scan.l aicasm_macro_scan.l
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunGENHDRS=	$(addprefix ${OUTDIR}/,aicdb.h $(YSRCS:.y=.h))
13*4882a593SmuzhiyunGENSRCS=	$(addprefix ${OUTDIR}/,$(YSRCS:.y=.c) $(LSRCS:.l=.c))
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunSRCS=	${CSRCS} ${GENSRCS}
16*4882a593SmuzhiyunLIBS=	-ldb
17*4882a593Smuzhiyunclean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG)
18*4882a593Smuzhiyun# Override default kernel CFLAGS.  This is a userland app.
19*4882a593SmuzhiyunAICASM_CFLAGS:= -I/usr/include -I. -I$(OUTDIR)
20*4882a593SmuzhiyunLEX= flex
21*4882a593SmuzhiyunYACC= bison
22*4882a593SmuzhiyunYFLAGS= -d
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunNOMAN=	noman
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunifneq ($(HOSTCC),)
27*4882a593SmuzhiyunAICASM_CC= $(HOSTCC)
28*4882a593Smuzhiyunelse
29*4882a593SmuzhiyunAICASM_CC= $(CC)
30*4882a593Smuzhiyunendif
31*4882a593Smuzhiyun
32*4882a593Smuzhiyunifdef DEBUG
33*4882a593SmuzhiyunCFLAGS+= -DDEBUG -g
34*4882a593SmuzhiyunYFLAGS+= -t -v
35*4882a593SmuzhiyunLFLAGS= -d
36*4882a593Smuzhiyunendif
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun$(PROG):  $(OUTDIR) ${GENHDRS} $(SRCS)
39*4882a593Smuzhiyun	$(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(OUTDIR)/$(PROG) $(LIBS)
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun$(OUTDIR):
42*4882a593Smuzhiyun	mkdir -p $(OUTDIR)
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun$(OUTDIR)/aicdb.h:
45*4882a593Smuzhiyun	@if [ -e "/usr/include/db4/db_185.h" ]; then		\
46*4882a593Smuzhiyun		echo "#include <db4/db_185.h>" > $@;	\
47*4882a593Smuzhiyun	 elif [ -e "/usr/include/db3/db_185.h" ]; then		\
48*4882a593Smuzhiyun		echo "#include <db3/db_185.h>" > $@;	\
49*4882a593Smuzhiyun	 elif [ -e "/usr/include/db2/db_185.h" ]; then		\
50*4882a593Smuzhiyun		echo "#include <db2/db_185.h>" > $@;	\
51*4882a593Smuzhiyun	 elif [ -e "/usr/include/db1/db_185.h" ]; then		\
52*4882a593Smuzhiyun		echo "#include <db1/db_185.h>" > $@;	\
53*4882a593Smuzhiyun	 elif [ -e "/usr/include/db/db_185.h" ]; then		\
54*4882a593Smuzhiyun		echo "#include <db/db_185.h>" > $@;	\
55*4882a593Smuzhiyun	 elif [ -e "/usr/include/db_185.h" ]; then		\
56*4882a593Smuzhiyun		echo "#include <db_185.h>" > $@;		\
57*4882a593Smuzhiyun	 else							\
58*4882a593Smuzhiyun		echo "*** Install db development libraries";	\
59*4882a593Smuzhiyun	 fi
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunclean:
62*4882a593Smuzhiyun	rm -f $(clean-files)
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun# Create a dependency chain in generated files
65*4882a593Smuzhiyun# to avoid concurrent invocations of the single
66*4882a593Smuzhiyun# rule that builds them all.
67*4882a593Smuzhiyun$(OUTDIR)/aicasm_gram.c: $(OUTDIR)/aicasm_gram.h
68*4882a593Smuzhiyun$(OUTDIR)/aicasm_gram.c $(OUTDIR)/aicasm_gram.h: aicasm_gram.y
69*4882a593Smuzhiyun	$(YACC) $(YFLAGS) -b $(<:.y=) $<
70*4882a593Smuzhiyun	mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c)
71*4882a593Smuzhiyun	mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h)
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun# Create a dependency chain in generated files
74*4882a593Smuzhiyun# to avoid concurrent invocations of the single
75*4882a593Smuzhiyun# rule that builds them all.
76*4882a593Smuzhiyun$(OUTDIR)/aicasm_macro_gram.c: $(OUTDIR)/aicasm_macro_gram.h
77*4882a593Smuzhiyun$(OUTDIR)/aicasm_macro_gram.c $(OUTDIR)/aicasm_macro_gram.h: aicasm_macro_gram.y
78*4882a593Smuzhiyun	$(YACC) $(YFLAGS) -b $(<:.y=) -p mm $<
79*4882a593Smuzhiyun	mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c)
80*4882a593Smuzhiyun	mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h)
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun$(OUTDIR)/aicasm_scan.c: aicasm_scan.l
83*4882a593Smuzhiyun	$(LEX) $(LFLAGS) -o $@ $<
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun$(OUTDIR)/aicasm_macro_scan.c: aicasm_macro_scan.l
86*4882a593Smuzhiyun	$(LEX) $(LFLAGS) -Pmm -o $@ $<
87