# *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* 
# ** Copyright UCAR (c) 1992 - 2010 
# ** University Corporation for Atmospheric Research(UCAR) 
# ** National Center for Atmospheric Research(NCAR) 
# ** Research Applications Laboratory(RAL) 
# ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA 
# ** 2010/10/7 16:53:3 
# *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* 
##########################################################################
#
# Makefile targets for QT programs
#
# Mike Dixon
#
# EOL,NCAR,Boulder,Colorado,80307,USA
# 
###########################################################################

#
# Include the recursive targets for C, C++ and FORTRAN
#

all: opt

include $(LROSE_CORE_DIR)/build/make_include/lrose_make_cf_recursive_targets

#
# QT meta object compiler
#

QT_EXEC_PATH=$(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --variable=exec_prefix Qt6Core)
# QT_INCLUDES = $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --cflags Qt5Core Qt5Widgets Qt5Gui Qt5Qml)
QT_INCLUDE = $(subst -I,,$(QT_INCLUDES))
moc: $(MOC_SRCS)
	$(QT_EXEC_PATH)/bin/qmake -o Makefile.qmake "INCLUDEPATH=$(QT_INCLUDE)"
	make -f Makefile.qmake $(MOC_OUTPUT)

#
# make using qmake-derived makefile
#

from_qmake: moc
	make -f Makefile.qmake

#
# compile target
#

target: moc
	echo Making C++ program ... ; \
	$(MAKE) _CC="$(_CC)" _CPPC="$(_CPPC)" _FC="$(_FC)" DBUG_OPT_FLAGS="$(DBUG_OPT_FLAGS)" DEBUG_CFLAGS="$(DEBUG_CFLAGS)" DEBUG_LIBS="$(DEBUG_LIBS)" DEBUG_LDFLAGS="$(DEBUG_LDFLAGS)" SYS_LIBS="$(SYS_LIBS)" SYS_CFLAGS="$(SYS_CFLAGS)" $(TARGET_FILE);

#
# link target
#

$(TARGET_FILE): $(OBJS)
	echo Linking C++ program ...
	LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(LOC_LD_LIBRARY_PATH):$(SYS_LD_LIBRARY_PATH)
	$(RM) $(TARGET_FILE)
	$(_CPPC) $(DBUG_OPT_FLAGS) -o $(TARGET_FILE) \
	 	$(OBJS) $(DEBUG_LDFLAGS) $(LDFLAGS) $(LIBS)

#
# Include the bin targets for C, C++ and FORTRAN
#

include $(LROSE_CORE_DIR)/build/make_include/lrose_make_cf_bin_targets

#
# miscellaneous targets
#

include $(LROSE_CORE_DIR)/build/make_include/lrose_make_misc_targets

clean_moc:
	$(RM) moc_*.cc moc_*.cpp Makefile.qmake

clean_qmake:
	$(RM) Makefile.qmake .qmake.stash moc_predefs.h

clean_all: clean clean_bin clean_moc clean_qmake

#
# Include the suffixes
#

include $(LROSE_CORE_DIR)/build/make_include/lrose_make_suffixes

