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