kconfig/Makefile
changeset 2835 0a2fa748727e
parent 2650 4d299836e994
child 2836 1c4f3be68a6d
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/kconfig/Makefile	Sat Jan 14 18:22:06 2012 +0100
     1.3 @@ -0,0 +1,99 @@
     1.4 +#-----------------------------------------------------------
     1.5 +# Hmmm! Cheesy build!
     1.6 +# Or: where I can unveil my make-fu... :-]
     1.7 +
     1.8 +all: conf mconf nconf
     1.9 +	@true   # Just be silent, you fscking son of a fscking beach...
    1.10 +
    1.11 +# Build flags
    1.12 +CFLAGS = -DCONFIG_=\"CT_\" -DPACKAGE="\"crosstool-NG $(VERSION)\""
    1.13 +LDFLAGS =
    1.14 +
    1.15 +# Compiler flags to use gettext
    1.16 +ifeq ($(gettext),)
    1.17 +INTL_CFLAGS = -DKBUILD_NO_NLS
    1.18 +endif
    1.19 +
    1.20 +# Compiler and linker flags to use ncurses
    1.21 +NCURSES_CFLAGS = -DCURSES_LOC="\"$(curses_hdr)\""
    1.22 +NCURSES_LDFLAGS = $(LIBS)
    1.23 +
    1.24 +# Common source files
    1.25 +COMMON_SRC = zconf.tab.c
    1.26 +COMMON_OBJ = $(patsubst %.c,%.o,$(COMMON_SRC))
    1.27 +COMMON_DEP = $(patsubst %.o,%.dep,$(COMMON_OBJ))
    1.28 +$(COMMON_OBJ) $(COMMON_DEP): CFLAGS += $(INTL_CFLAGS)
    1.29 +
    1.30 +# lxdialog source files
    1.31 +LX_SRC = $(wildcard lxdialog/*.c)
    1.32 +LX_OBJ = $(patsubst %.c,%.o,$(LX_SRC))
    1.33 +LX_DEP = $(patsubst %.o,%.dep,$(LX_OBJ))
    1.34 +$(LX_OBJ) $(LX_DEP): CFLAGS += $(NCURSES_CFLAGS) $(INTL_CFLAGS)
    1.35 +
    1.36 +# What's needed to build 'conf'
    1.37 +conf_SRC = conf.c
    1.38 +conf_OBJ = $(patsubst %.c,%.o,$(conf_SRC))
    1.39 +conf_DEP = $(patsubst %.o,%.dep,$(conf_OBJ))
    1.40 +$(conf_OBJ) $(conf_DEP): CFLAGS += $(INTL_CFLAGS)
    1.41 +
    1.42 +# What's needed to build 'mconf'
    1.43 +mconf_SRC = mconf.c
    1.44 +mconf_OBJ = $(patsubst %.c,%.o,$(mconf_SRC))
    1.45 +mconf_DEP = $(patsubst %.c,%.dep,$(mconf_SRC))
    1.46 +$(mconf_OBJ) $(mconf_DEP): CFLAGS += $(NCURSES_CFLAGS) $(INTL_CFLAGS)
    1.47 +mconf: LDFLAGS += $(NCURSES_LDFLAGS)
    1.48 +
    1.49 +# What's needed to build 'nconf'
    1.50 +nconf_SRC = nconf.c nconf.gui.c
    1.51 +nconf_OBJ = $(patsubst %.c,%.o,$(nconf_SRC))
    1.52 +nconf_DEP = $(patsubst %.c,%.dep,$(nconf_SRC))
    1.53 +$(nconf_OBJ) $(nconf_DEP): CFLAGS += $(INTL_CFLAGS)
    1.54 +nconf: LDFLAGS += -lmenu -lpanel -lncurses
    1.55 +
    1.56 +# Under Cygwin, we need to auto-import some libs (which ones, exactly?)
    1.57 +# for mconf and nconf to lin properly.
    1.58 +ifeq ($(shell uname -o 2>/dev/null || echo unknown),Cygwin)
    1.59 +mconf: LDFLAGS += -Wl,--enable-auto-import
    1.60 +nconf: LDFLAGS += -Wl,--enable-auto-import
    1.61 +endif
    1.62 +
    1.63 +# These are generated files:
    1.64 +ALL_OBJS = $(sort $(COMMON_OBJ) $(LX_OBJ) $(conf_OBJ) $(mconf_OBJ) $(nconf_OBJ))
    1.65 +ALL_DEPS = $(sort $(COMMON_DEP) $(LX_DEP) $(conf_DEP) $(mconf_DEP) $(nconf_DEP))
    1.66 +
    1.67 +# Cheesy auto-dependencies
    1.68 +DEPS = $(COMMON_DEP)
    1.69 +DEPS += $(conf_DEP)
    1.70 +DEPS += $(mconf_DEP) $(LX_DEP)
    1.71 +DEPS += $(nconf_DEP)
    1.72 +-include $(DEPS)
    1.73 +
    1.74 +# Build the dependency for C files
    1.75 +%.dep: %.c
    1.76 +	@echo "  DEP    '$@'"
    1.77 +	@$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -MM $< |$(sed) -r -e 's|([^:]+.o)( *:+)|$(<:.c=.o) $@\2|;' >$@
    1.78 +
    1.79 +# Build C files
    1.80 +%.o: %.c
    1.81 +	@echo "  CC     '$@'"
    1.82 +	@$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
    1.83 +
    1.84 +# Actual link
    1.85 +mconf: $(COMMON_OBJ) $(LX_OBJ) $(mconf_OBJ)
    1.86 +	@echo "  LD     '$@'"
    1.87 +	@$(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS)
    1.88 +
    1.89 +nconf: $(COMMON_OBJ) $(nconf_OBJ)
    1.90 +	@echo "  LD     '$@'"
    1.91 +	@$(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS)
    1.92 +
    1.93 +conf: $(COMMON_OBJ) $(conf_OBJ)
    1.94 +	@echo "  LD     '$@'"
    1.95 +	@$(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS)
    1.96 +
    1.97 +#-----------------------------------------------------------
    1.98 +# Cleaning up the mess...
    1.99 +
   1.100 +clean:
   1.101 +	@echo "  RM     'kconfig'"
   1.102 +	@rm -f conf mconf nconf $(ALL_OBJS) $(ALL_DEPS)