Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 1 | # Makefile for BusyBox |
| 2 | # |
| 3 | # Copyright (C) 2002 Erik Andersen <andersen@codepoet.org> |
| 4 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 5 | top_srcdir=../.. |
| 6 | top_builddir=../.. |
| 7 | srcdir=$(top_srcdir)/scripts/config |
Rob Landley | e1d9633 | 2005-08-24 00:41:52 +0000 | [diff] [blame] | 8 | include $(top_srcdir)/Rules.mak |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 9 | |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 10 | all: ncurses conf mconf |
| 11 | |
Peter Kjellerstedt | bae38db | 2005-04-19 09:55:06 +0000 | [diff] [blame] | 12 | ifeq ($(shell uname),SunOS) |
| 13 | LIBS = -lcurses |
| 14 | else |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 15 | LIBS = -lncurses |
Peter Kjellerstedt | bae38db | 2005-04-19 09:55:06 +0000 | [diff] [blame] | 16 | endif |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 17 | ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 18 | HOSTNCURSES += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>" |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 19 | else |
| 20 | ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h)) |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 21 | HOSTNCURSES += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>" |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 22 | else |
Eric Andersen | 575c782 | 2003-01-11 18:07:38 +0000 | [diff] [blame] | 23 | ifeq (/usr/local/include/ncurses/ncurses.h, $(wildcard /usr/local/include/ncurses/ncurses.h)) |
| 24 | HOSTCFLAGS += -I/usr/local/include/ncurses -DCURSES_LOC="<ncurses.h>" |
| 25 | else |
| 26 | ifeq (/usr/local/include/ncurses/curses.h, $(wildcard /usr/local/include/ncurses/curses.h)) |
| 27 | HOSTCFLAGS += -I/usr/local/include/ncurses -DCURSES_LOC="<ncurses/curses.h>" |
| 28 | else |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 29 | ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h)) |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 30 | HOSTNCURSES += -DCURSES_LOC="<ncurses.h>" |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 31 | else |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 32 | HOSTNCURSES += -DCURSES_LOC="<curses.h>" |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 33 | endif |
| 34 | endif |
| 35 | endif |
Eric Andersen | 575c782 | 2003-01-11 18:07:38 +0000 | [diff] [blame] | 36 | endif |
| 37 | endif |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 38 | |
Peter Kjellerstedt | bae38db | 2005-04-19 09:55:06 +0000 | [diff] [blame] | 39 | CONF_SRC = conf.c |
| 40 | MCONF_SRC = mconf.c |
| 41 | LXD_SRC = lxdialog/checklist.c lxdialog/menubox.c lxdialog/textbox.c \ |
| 42 | lxdialog/yesno.c lxdialog/inputbox.c lxdialog/util.c \ |
| 43 | lxdialog/msgbox.c |
Rob Landley | e1d9633 | 2005-08-24 00:41:52 +0000 | [diff] [blame] | 44 | |
Peter Kjellerstedt | bae38db | 2005-04-19 09:55:06 +0000 | [diff] [blame] | 45 | SHARED_SRC = zconf.tab.c |
| 46 | SHARED_DEPS := $(srcdir)/lkc.h $(srcdir)/lkc_proto.h \ |
| 47 | lkc_defs.h $(srcdir)/expr.h zconf.tab.h |
| 48 | CONF_OBJS = $(patsubst %.c,%.o, $(CONF_SRC)) |
| 49 | MCONF_OBJS = $(patsubst %.c,%.o, $(MCONF_SRC) $(LXD_SRC)) |
| 50 | SHARED_OBJS = $(patsubst %.c,%.o, $(SHARED_SRC)) |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 51 | |
Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame] | 52 | conf: $(CONF_OBJS) $(SHARED_OBJS) |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 53 | $(SECHO) " "HOSTCC $@ ; true |
| 54 | $(Q)$(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 55 | |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 56 | mconf: $(MCONF_OBJS) $(SHARED_OBJS) |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 57 | $(SECHO) " "HOSTCC $@ ; true |
| 58 | $(Q)$(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS) |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 59 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 60 | $(CONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS) |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 61 | $(compile.h) -I. |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 62 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 63 | $(MCONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS) |
Rob Landley | e1d9633 | 2005-08-24 00:41:52 +0000 | [diff] [blame] | 64 | @[ -d $(@D) ] || mkdir -v $(@D) |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 65 | $(compile.h) $(HOSTNCURSES) -I. |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 66 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 67 | lkc_defs.h: $(srcdir)/lkc_proto.h |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 68 | @sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' |
| 69 | |
| 70 | ### |
| 71 | # The following requires flex/bison |
Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame] | 72 | # By default we use the _shipped versions, uncomment the |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 73 | # following line if you are modifying the flex/bison src. |
| 74 | #LKC_GENPARSER := 1 |
| 75 | |
| 76 | ifdef LKC_GENPARSER |
| 77 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 78 | %.tab.c %.tab.h: $(srcdir)/%.y |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 79 | bison -t -d -v -b $* -p $(notdir $*) $< |
| 80 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 81 | lex.%.c: $(srcdir)/%.l |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 82 | flex -P$(notdir $*) -o$@ $< |
| 83 | else |
| 84 | |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 85 | lex.zconf.o: lex.zconf.c $(SHARED_DEPS) |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 86 | $(compile.h) -I$(srcdir) |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 87 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 88 | lex.zconf.c: $(srcdir)/lex.zconf.c_shipped |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 89 | $(Q)cp $< $@ |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 90 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 91 | zconf.tab.c: $(srcdir)/zconf.tab.c_shipped |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 92 | $(Q)cp $< $@ |
Eric Andersen | 068b6b0 | 2002-12-13 22:53:28 +0000 | [diff] [blame] | 93 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 94 | zconf.tab.h: $(srcdir)/zconf.tab.h_shipped |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 95 | $(Q)cp $< $@ |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 96 | endif |
| 97 | |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 98 | zconf.tab.o: zconf.tab.c lex.zconf.c $(srcdir)/confdata.c $(srcdir)/expr.c \ |
| 99 | $(srcdir)/symbol.c $(srcdir)/menu.c $(SHARED_DEPS) |
Mike Frysinger | b38673f | 2006-02-02 01:41:53 +0000 | [diff] [blame] | 100 | $(compile.h) -I$(srcdir) -I. |
Eric Andersen | 7daa076 | 2004-10-08 07:46:08 +0000 | [diff] [blame] | 101 | |
Eric Andersen | c9f20d9 | 2002-12-05 08:41:41 +0000 | [diff] [blame] | 102 | .PHONY: ncurses |
| 103 | |
| 104 | ncurses: |
| 105 | @echo "main() {}" > lxtemp.c |
| 106 | @if $(HOSTCC) lxtemp.c $(LIBS) ; then \ |
| 107 | rm -f lxtemp.c a.out; \ |
| 108 | else \ |
| 109 | rm -f lxtemp.c; \ |
| 110 | echo -e "\007" ;\ |
| 111 | echo ">> Unable to find the Ncurses libraries." ;\ |
| 112 | echo ">>" ;\ |
| 113 | echo ">> You must have Ncurses installed in order" ;\ |
| 114 | echo ">> to use 'make menuconfig'" ;\ |
| 115 | echo ;\ |
| 116 | exit 1 ;\ |
| 117 | fi |
| 118 | |
| 119 | clean: |
| 120 | rm -f *.o *~ core $(TARGETS) $(MCONF_OBJS) $(CONF_OBJS) \ |
| 121 | conf mconf zconf.tab.c zconf.tab.h lex.zconf.c lkc_defs.h |
| 122 | |