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)