xref: /linux/drivers/scsi/aic7xxx/aicasm/Makefile (revision 516b7db593f3a541e2e98867575c3c697f41a247)
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