openbsd-ports/devel/qmake/qmake.port.mk
zhuk 3b286ff983 Switch to a separate qmake.port.mk. Simplifies logic a lot.
This removes support of separate qmake versions in one port: as we
discovered, there are no ports actually needing this; strangers like
print/poppler don't use qmake in build.

This should be transparent to current ports. But expect more tweaks there:
for now, qt?.port.mk forces qmake.port.mk inclusion, but that will be
reworked to a more common scheme.

Same idea from (at least) espie@ and me; also, espie@ agrees on the plan.
2016-03-10 17:45:11 +00:00

89 lines
2.5 KiB
Makefile

# $OpenBSD: qmake.port.mk,v 1.1 2016/03/10 17:45:11 zhuk Exp $
.if ${CONFIGURE_STYLE:Mqmake}
. if ${MODULES:Mx11/qt?} == ${MODULES}
ERRORS += qmake port module requires one of the x11/qt* modules
. endif
MAKE_FLAGS += CC="${CC}" CXX="${CXX}"
MAKE_FLAGS += PREFIX=${PREFIX}
. for _l _v in ${SHARED_LIBS}
MAKE_FLAGS += LIB${_l}_VERSION=${_v}
. endfor
MODQMAKE_PROJECTS ?= .
MODQMAKE_ARGS += -recursive \
PREFIX=${PREFIX} \
QMAKE_CFLAGS="${CFLAGS}" \
QMAKE_CFLAGS_RELEASE="${CFLAGS}" \
QMAKE_CXX="${CXX}" \
QMAKE_CXXFLAGS="${CXXFLAGS}" \
QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}"
MODQMAKE_INSTALL_ROOT ?= ${WRKINST}
_MODQMAKE_FAKE_FLAGS = INSTALL_ROOT=${MODQMAKE_INSTALL_ROOT}
MODQMAKE_configure =
MODQMAKE_build =
MODQMAKE_install =
. for _qp in ${MODQMAKE_PROJECTS}
_MODQMAKE_CD_${_qp:/=_} = \
cd ${WRKBUILD}; \
if [ -d ${WRKSRC}/${_qp} ]; then \
dir=${_qp}; \
else \
dir=$$(dirname ${_qp}); \
fi; \
mkdir -p $$dir; \
cd -- $$dir
MODQMAKE_configure += \
cd ${WRKSRC}; \
if [ -d ${_qp} ]; then \
pro=$$(echo ${_qp}/*.pro); \
else \
pro=${_qp}; \
fi; \
${_MODQMAKE_CD_${_qp:/=_}}; \
echo >&2 ${MODQT_QMAKE} ${MODQMAKE_ARGS} ${WRKSRC}/$$pro; \
${MODQT_QMAKE} ${MODQMAKE_ARGS} ${WRKSRC}/$$pro;
MODQMAKE_build += \
${_MODQMAKE_CD_${_qp:/=_}}; \
${_MODQMAKE_build_SYSTRACE_CMD} ${SETENV} ${MAKE_ENV} \
${MAKE_PROGRAM} ${MAKE_FLAGS} -f Makefile ${ALL_TARGET};
MODQMAKE_install += \
${_MODQMAKE_CD_${_qp:/=_}}; \
umask 022; \
${_FAKESUDO} ${_MODQMAKE_install_SYSTRACE_CMD} \
${SETENV} ${MAKE_ENV} ${FAKE_SETUP} \
${MAKE_PROGRAM} ${ALL_FAKE_FLAGS} ${_MODQMAKE_FAKE_FLAGS} \
-f Makefile ${FAKE_TARGET};
. endfor
SEPARATE_BUILD ?= Yes
. if ${SEPARATE_BUILD:L} != "no"
. if ${SEPARATE_BUILD:L} != "yes"
ERRORS += "Fatal: qmake supports only simple SEPARATE_BUILD builds."
. endif
# "Shadow builds" of qmake can only work in subdirectory
WRKBUILD ?= ${WRKSRC}/build-${MACHINE_ARCH}
. endif
# Could not add ${_SYSTRACE_CMD} unconditionally since in case of
# do-build bsd.port.mk adds ${_SYSTRACE_CMD} itself.
. if !target(do-build) && "${CONFIGURE_STYLE:Nqmake}" == ""
do-build:
@${MODQMAKE_build}
. else
_MODQMAKE_build_SYSTRACE_CMD = ${_SYSTRACE_CMD}
. endif
# Could not add ${_SYSTRACE_CMD} unconditionally since in case of
# do-install bsd.port.mk adds ${_SYSTRACE_CMD} itself.
. if !target(do-install) && "${CONFIGURE_STYLE:Nqmake}" == ""
do-install:
@${MODQMAKE_install}
. else
_MODQMAKE_install_SYSTRACE_CMD = ${_SYSTRACE_CMD}
. endif
.endif # CONFIGURE_STYLE:Mqmake