Midnight-Commander
Remark from MarkusEkler:
If you want to compile the midnight commander without using buildroot, you will have to build ncurses first and then do
./configure --target=avr32-linux-uclibc --host=avr32-linux --prefix=ENTER_DIR_HERE --without-x --disable-nls --disable-largefile
make
make install
This will generate the binaries in your target directory.
Tested with Midnight Commader 4.6.2 and ncurses 5.7
Config.in
config BR2_PACKAGE_MC
bool "mc"
depends on BR2_PACKAGE_LIBGLIB2||LIBGLIB12
help
GNU Midnight Commander allows you to manage files while making most of
you screen and giving you a clear representation of the filesystem.
http://www.midnight-commander.org
mc.mk
#############################################################
#
# MC
#
#############################################################
# Current version, use the latest unless there are any known issues.
MC_VERSION=4.6.2
# The filename of the package to download.
MC_SOURCE=mc-$(MC_VERSION).tar.bz2
# The site and path to where the source packages are.
MC_SITE=http://www.midnight-commander.com/download/
# The directory which the source package is extracted to.
MC_DIR=$(BUILD_DIR)/mc-$(MC_VERSION)
# Which decompression to use, BZCAT or ZCAT.
MC_CAT:=$(BZCAT)
# Target binary for the package.
MC_BINARY:=mc
# Not really needed, but often handy define.
MC_TARGET_BINARY:=usr/bin/$(MC_BINARY)
# The download rule. Main purpose is to download the source package.
$(DL_DIR)/$(MC_SOURCE):
$(WGET) -P $(DL_DIR) $(MC_SITE)/$(MC_SOURCE)
# The unpacking rule. Main purpose is to extract the source package, apply any
# patches and update config.guess and config.sub.
$(MC_DIR)/.unpacked: $(DL_DIR)/$(MC_SOURCE)
$(MC_CAT) $(DL_DIR)/$(MC_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(MC_DIR) package/mc/ mc-$(MC_VERSION)-\*.patch\*
$(CONFIG_UPDATE) $(MC_DIR)
touch $@
# The configure rule. Main purpose is to get the package ready for compilation,
# usually by running the configure script with different kinds of options
# specified.
$(MC_DIR)/.configured: $(MC_DIR)/.unpacked
(cd $(MC_DIR); rm -rf config.cache; $(TARGET_CONFIGURE_OPTS) $(TARGET_CONFIGURE_ARGS) ./configure --target=$(GNU_TARGET_NAME) --host=$(GNU_TARGET_NAME) --build=$(GNU_HOST_NAME) --prefix=/usr --sysconfdir=/etc --without-x $(DISABLE_NLS) $(DISABLE_LARGEFILE) )
touch $@
$(MC_DIR)/$(MC_BINARY): $(MC_DIR)/.configured
$(MAKE) -C $(MC_DIR)
# The installing rule. Main purpose is to install the binary into the target
# root directory and make sure it is stripped from debug symbols to reduce the
# space requirements to a minimum.
#
# Only the files needed to run the application should be installed to the
# target root directory, to not waste valuable flash space.
$(TARGET_DIR)/$(MC_TARGET_BINARY): $(MC_DIR)/$(MC_BINARY)
cp -dpf $(MC_DIR)/src/mc $@
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
# Main rule which shows which other packages must be installed before the dummy
# package is installed. This to ensure that all depending libraries are
# installed.
mc: uclibc $(TARGET_DIR)/$(MC_TARGET_BINARY)
# Source download rule. Main purpose to download the source package. Since some
# people would like to work offline, it is mandotory to implement a rule which
# downloads everything this package needs.
mc-source: $(DL_DIR)/$(MC_SOURCE)
# Clean rule. Main purpose is to clean the build directory, thus forcing a new
# rebuild the next time Buildroot is made.
mc-clean:
-$(MAKE) -C $(MC_DIR) clean
# Directory clean rule. Main purpose is to remove the build directory, forcing
# a new extraction, patching and rebuild the next time Buildroot is made.
mc-dirclean:
rm -rf $(MC_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
# This is how the dummy package is added to the list of rules to build.
ifeq ($(BR2_PACKAGE_MC),y)
TARGETS+=mc
endif