Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame^] | 1 | PROG= aicasm |
| 2 | |
| 3 | .SUFFIXES= .l .y .c .h |
| 4 | |
| 5 | CSRCS= aicasm.c aicasm_symbol.c |
| 6 | YSRCS= aicasm_gram.y aicasm_macro_gram.y |
| 7 | LSRCS= aicasm_scan.l aicasm_macro_scan.l |
| 8 | |
| 9 | GENHDRS= aicdb.h $(YSRCS:.y=.h) |
| 10 | GENSRCS= $(YSRCS:.y=.c) $(LSRCS:.l=.c) |
| 11 | |
| 12 | SRCS= ${CSRCS} ${GENSRCS} |
| 13 | LIBS= -ldb |
| 14 | clean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG) |
| 15 | # Override default kernel CFLAGS. This is a userland app. |
| 16 | AICASM_CFLAGS:= -I/usr/include -I. |
| 17 | YFLAGS= -d |
| 18 | |
| 19 | NOMAN= noman |
| 20 | |
| 21 | ifneq ($(HOSTCC),) |
| 22 | AICASM_CC= $(HOSTCC) |
| 23 | else |
| 24 | AICASM_CC= $(CC) |
| 25 | endif |
| 26 | |
| 27 | ifdef DEBUG |
| 28 | CFLAGS+= -DDEBUG -g |
| 29 | YFLAGS+= -t -v |
| 30 | LFLAGS= -d |
| 31 | endif |
| 32 | |
| 33 | $(PROG): ${GENHDRS} $(SRCS) |
| 34 | $(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(PROG) $(LIBS) |
| 35 | |
| 36 | aicdb.h: |
| 37 | @if [ -e "/usr/include/db4/db_185.h" ]; then \ |
| 38 | echo "#include <db4/db_185.h>" > aicdb.h; \ |
| 39 | elif [ -e "/usr/include/db3/db_185.h" ]; then \ |
| 40 | echo "#include <db3/db_185.h>" > aicdb.h; \ |
| 41 | elif [ -e "/usr/include/db2/db_185.h" ]; then \ |
| 42 | echo "#include <db2/db_185.h>" > aicdb.h; \ |
| 43 | elif [ -e "/usr/include/db1/db_185.h" ]; then \ |
| 44 | echo "#include <db1/db_185.h>" > aicdb.h; \ |
| 45 | elif [ -e "/usr/include/db/db_185.h" ]; then \ |
| 46 | echo "#include <db/db_185.h>" > aicdb.h; \ |
| 47 | elif [ -e "/usr/include/db_185.h" ]; then \ |
| 48 | echo "#include <db_185.h>" > aicdb.h; \ |
| 49 | else \ |
| 50 | echo "*** Install db development libraries"; \ |
| 51 | fi |
| 52 | |
| 53 | clean: |
| 54 | rm -f $(clean-files) |
| 55 | |
| 56 | # Create a dependency chain in generated files |
| 57 | # to avoid concurrent invocations of the single |
| 58 | # rule that builds them all. |
| 59 | aicasm_gram.c: aicasm_gram.h |
| 60 | aicasm_gram.c aicasm_gram.h: aicasm_gram.y |
| 61 | $(YACC) $(YFLAGS) -b $(<:.y=) $< |
| 62 | mv $(<:.y=).tab.c $(<:.y=.c) |
| 63 | mv $(<:.y=).tab.h $(<:.y=.h) |
| 64 | |
| 65 | # Create a dependency chain in generated files |
| 66 | # to avoid concurrent invocations of the single |
| 67 | # rule that builds them all. |
| 68 | aicasm_macro_gram.c: aicasm_macro_gram.h |
| 69 | aicasm_macro_gram.c aicasm_macro_gram.h: aicasm_macro_gram.y |
| 70 | $(YACC) $(YFLAGS) -b $(<:.y=) -p mm $< |
| 71 | mv $(<:.y=).tab.c $(<:.y=.c) |
| 72 | mv $(<:.y=).tab.h $(<:.y=.h) |
| 73 | |
| 74 | aicasm_scan.c: aicasm_scan.l |
| 75 | $(LEX) $(LFLAGS) -o$@ $< |
| 76 | |
| 77 | aicasm_macro_scan.c: aicasm_macro_scan.l |
| 78 | $(LEX) $(LFLAGS) -Pmm -o$@ $< |