``make xconfig`` toplevel target will invoke ``make qconf`` inside ./scripts/config directory, which results a ``qconf`` executable. This commit removes leftover ``qconf`` executable during ``make config-clean``. Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
		
			
				
	
	
		
			110 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# ===========================================================================
 | 
						|
# OpenWrt configuration targets
 | 
						|
# These targets are used from top-level makefile
 | 
						|
 | 
						|
# ===========================================================================
 | 
						|
# Shared Makefile for the various kconfig executables:
 | 
						|
# conf:	  Used for defconfig, oldconfig and related targets
 | 
						|
# mconf:  Used for the mconfig target.
 | 
						|
#         Utilizes the lxdialog package
 | 
						|
# qconf:  Used for the xconfig target
 | 
						|
#         Based on Qt which needs to be installed to compile it
 | 
						|
# object files used by all kconfig flavours
 | 
						|
 | 
						|
 | 
						|
# Platform specific fixes
 | 
						|
#
 | 
						|
# FreeBSD
 | 
						|
 | 
						|
check_lxdialog = $(shell $(SHELL) $(CURDIR)/lxdialog/check-lxdialog.sh -$(1))
 | 
						|
export CFLAGS += -DKBUILD_NO_NLS -I. $(call check_lxdialog,ccflags)
 | 
						|
export CXXFLAGS += -DKBUILD_NO_NLS
 | 
						|
 | 
						|
DISTRO-PKG-CONFIG := $(shell which -a pkg-config | grep -E '\/usr' | head -n 1)
 | 
						|
 | 
						|
conf-objs	:= conf.o zconf.tab.o
 | 
						|
mconf-objs	:= mconf.o zconf.tab.o
 | 
						|
qconf-cxxobjs	:= qconf.o
 | 
						|
qconf-objs	:= zconf.tab.o
 | 
						|
 | 
						|
lxdialog-objs := \
 | 
						|
	lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o \
 | 
						|
	lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
 | 
						|
 | 
						|
clean-files	:= zconf.tab.c lex.zconf.c zconf.hash.c
 | 
						|
# Remove qconf junk files
 | 
						|
clean-files	+= $(qconf-cxxobjs) qconf.moc .tmp_qtcheck qconf
 | 
						|
 | 
						|
all: conf mconf
 | 
						|
 | 
						|
conf: $(conf-objs)
 | 
						|
mconf: $(mconf-objs) $(lxdialog-objs)
 | 
						|
	$(CC) -o $@ $^ $(call check_lxdialog,ldflags $(CC))
 | 
						|
qconf: $(qconf-cxxobjs) $(qconf-objs)
 | 
						|
ifneq ($(DISTRO-PKG-CONFIG),)
 | 
						|
	$(CXX) $(HOSTLOADLIBES_qconf) -o $@ $^
 | 
						|
else
 | 
						|
	echo "You don't have 'pkg-config' installed. Cannot continue"
 | 
						|
	echo "For now, you may use 'make menuconfig' instead of 'make xconfig'"
 | 
						|
endif
 | 
						|
 | 
						|
clean:
 | 
						|
	rm -f *.o lxdialog/*.o $(clean-files) conf mconf
 | 
						|
 | 
						|
zconf.tab.o: zconf.lex.c zconf.hash.c confdata.c
 | 
						|
 | 
						|
kconfig_load.o: lkc_defs.h
 | 
						|
 | 
						|
zconf.tab.c: zconf.y
 | 
						|
zconf.lex.c: zconf.l
 | 
						|
zconf.hash.c: zconf.gperf
 | 
						|
 | 
						|
%.tab.c: %.y
 | 
						|
	cp $@_shipped $@ || bison -l -b $* -p $(notdir $*) $<
 | 
						|
 | 
						|
%.lex.c: %.l
 | 
						|
	cp $@_shipped $@ || flex -L -P$(notdir $*) -o$@ $<
 | 
						|
 | 
						|
%.hash.c: %.gperf
 | 
						|
	cp $@_shipped $@ || gperf < $< > $@
 | 
						|
 | 
						|
ifeq ($(MAKECMDGOALS),qconf)
 | 
						|
qconf.o: .tmp_qtcheck
 | 
						|
.tmp_qtcheck: Makefile
 | 
						|
-include .tmp_qtcheck
 | 
						|
 | 
						|
# Qt needs some extra effort...
 | 
						|
.tmp_qtcheck:
 | 
						|
	@set -e; echo "  CHECK   qt"; \
 | 
						|
	if $(DISTRO-PKG-CONFIG) --exists Qt5Core; then \
 | 
						|
	    cflags="-std=c++11 -fPIC `$(DISTRO-PKG-CONFIG) --cflags Qt5Core Qt5Gui Qt5Widgets`"; \
 | 
						|
	    libs=`$(DISTRO-PKG-CONFIG) --libs Qt5Core Qt5Gui Qt5Widgets`; \
 | 
						|
	    moc=`$(DISTRO-PKG-CONFIG) --variable=host_bins Qt5Core`/moc; \
 | 
						|
	elif $(DISTRO-PKG-CONFIG) --exists QtCore; then \
 | 
						|
	    cflags=`$(DISTRO-PKG-CONFIG) --cflags QtCore QtGui`; \
 | 
						|
	    libs=`$(DISTRO-PKG-CONFIG) --libs QtCore QtGui`; \
 | 
						|
	    moc=`$(DISTRO-PKG-CONFIG) --variable=moc_location QtCore`; \
 | 
						|
	else \
 | 
						|
	    echo >&2 "*"; \
 | 
						|
	    echo >&2 "* Could not find Qt via $(DISTRO-PKG-CONFIG)."; \
 | 
						|
	    echo >&2 "* Please install either Qt 4.8 or 5.x. and make sure it's in PKG_CONFIG_PATH"; \
 | 
						|
	    echo >&2 "*"; \
 | 
						|
	    exit 1; \
 | 
						|
	fi; \
 | 
						|
	echo "KC_QT_CFLAGS=$$cflags" > $@; \
 | 
						|
	echo "KC_QT_LIBS=$$libs" >> $@; \
 | 
						|
	echo "KC_QT_MOC=$$moc" >> $@
 | 
						|
endif
 | 
						|
 | 
						|
#Define compiler flags to build qconf
 | 
						|
HOSTLOADLIBES_qconf	= $(KC_QT_LIBS)
 | 
						|
HOSTCXXFLAGS_qconf.o	= $(KC_QT_CFLAGS)
 | 
						|
 | 
						|
qconf.o: qconf.moc
 | 
						|
qconf.o: CXXFLAGS+=$(HOSTCXXFLAGS_qconf.o)
 | 
						|
 | 
						|
moc = $(KC_QT_MOC) -i $< -o $@
 | 
						|
 | 
						|
%.moc: %.h .tmp_qtcheck
 | 
						|
	$(call moc)
 |