diff options
Diffstat (limited to 'mk/pkg-bottom.mk')
| -rw-r--r-- | mk/pkg-bottom.mk | 87 |
1 files changed, 48 insertions, 39 deletions
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk index 1112f0cc3..e3bae5255 100644 --- a/mk/pkg-bottom.mk +++ b/mk/pkg-bottom.mk @@ -13,9 +13,13 @@ PKG_LIBNAME?= $(PKG_NAME) -ifeq ($(ADK_TARGET_USE_STATIC_LIBS),y) +ifeq ($(ADK_TARGET_USE_SHARED_LIBS_ONLY),y) +CONFIGURE_LIB:=--disable-static --enable-shared +endif +ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y) CONFIGURE_LIB:=--enable-static --disable-shared -else +endif +ifeq ($(ADK_TARGET_USE_SHARED_AND_STATIC_LIBS)$(ADK_TARGET_USE_STATIC_AND_SHARED_LIBS),y) CONFIGURE_LIB:=--enable-static --enable-shared endif @@ -24,66 +28,65 @@ do-configure: post-configure: ${_CONFIGURE_COOKIE}: ${_PATCH_COOKIE} ifneq (,$(filter bootstrap,${AUTOTOOL_STYLE})) - @$(CMD_TRACE) "autotool configuring... " - @cd ${WRKSRC}; env ${AUTOTOOL_ENV} $(BASH) bootstrap.sh $(MAKE_TRACE) + @$(CMD_TRACE) "autotooling.. " + @cd ${WRKSRC}; env ${AUTOTOOL_ENV} $(BASH) bootstrap* $(MAKE_TRACE) endif ifneq (,$(filter autogen,${AUTOTOOL_STYLE})) - @$(CMD_TRACE) "autotool configuring... " + @$(CMD_TRACE) "autotooling.. " @cd ${WRKSRC}; env ${AUTOTOOL_ENV} $(BASH) autogen.sh $(MAKE_TRACE) endif ifneq (,$(filter autoconf,${AUTOTOOL_STYLE})) - @$(CMD_TRACE) "autotool configuring... " + @$(CMD_TRACE) "autotooling.. " @cd ${WRKSRC}; env ${AUTOTOOL_ENV} autoconf $(MAKE_TRACE) endif ifneq (,$(filter autoreconf,${AUTOTOOL_STYLE})) - @$(CMD_TRACE) "autotool configuring... " + @$(CMD_TRACE) "autotooling.. " @cd ${WRKSRC}; env ${AUTOTOOL_ENV} autoreconf -vif $(MAKE_TRACE) @rm -rf ${WRKSRC}/autom4te.cache @touch ${WRKDIR}/.autoreconf_done endif mkdir -p ${WRKBUILD} @${MAKE} pre-configure $(MAKE_TRACE) - @cd ${WRKSRC}; \ - for i in $$(find . -name config.sub);do \ - if [ -f $$i ]; then \ - ${CP} ${SCRIPT_DIR}/config.sub $$i; \ - fi; \ - done; \ - for i in $$(find . -name config.guess);do \ - if [ -f $$i ]; then \ - ${CP} ${SCRIPT_DIR}/config.guess $$i; \ - fi; \ - done; ifneq ($(filter manual,${CONFIG_STYLE}),) env ${CONFIGURE_ENV} ${MAKE} do-configure $(MAKE_TRACE) +else ifneq ($(filter meson,${CONFIG_STYLE}),) + @$(CMD_TRACE) "configuring meson.. " + (cd ${WRKSRC} && $(MESON_ENV) \ + meson setup --prefix /usr --libdir lib \ + --cross-file $(STAGING_HOST_DIR)/etc/meson/cross-compilation.conf \ + --build.pkg-config-path $(STAGING_HOST_DIR)/usr/lib/pkgconfig \ + --buildtype release $(MESON_FLAGS) \ + $(WRKSRC) $(WRKBUILD)) $(MAKE_TRACE) else ifneq ($(filter cmake,${CONFIG_STYLE}),) - @$(CMD_TRACE) "configuring cmake... " - sed -e "s#@@TARGET_CC@@#$(TARGET_CC)#" \ - -e "s#@@TARGET_CXX@@#$(TARGET_CXX)#" \ + @$(CMD_TRACE) "configuring cmake.. " + sed -e "s#@@TARGET_CC@@#$(TARGET_CC_NO_CCACHE)#" \ + -e "s#@@TARGET_CXX@@#$(TARGET_CXX_NO_CCACHE)#" \ -e "s#@@TARGET_CFLAGS@@#$(TARGET_CFLAGS)#" \ -e "s#@@TARGET_CXXFLAGS@@#$(TARGET_CXXFLAGS)#" \ - -e "s#@@STAGING_TARGET_DIR@@#$(STAGING_TARGET_DIR)#" \ + -e "s#@@TARGET_ARCH@@#$(ADK_TARGET_ARCH)#" \ + -e "s#@@STAGING_TARGET_DIR@@#$(STAGING_TARGET_DIR)#g" \ -e "s#@@STAGING_HOST_DIR@@#$(STAGING_HOST_DIR)#g" \ $(SCRIPT_DIR)/toolchain.cmake.in > $(SCRIPT_DIR)/toolchain.cmake (cd ${WRKBUILD} && PATH='${HOST_PATH}' \ - cmake VERBOSE=1 -Wno-dev -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + cmake -Wno-dev -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DCMAKE_TOOLCHAIN_FILE="$(SCRIPT_DIR)/toolchain.cmake" \ - ${CMAKE_FLAGS} ${WRKSRC}) + ${CMAKE_FLAGS} ${WRKSRC}) $(MAKE_TRACE) else ifneq ($(filter minimal,${CONFIG_STYLE}),) - @$(CMD_TRACE) "configuring... " + @$(CMD_TRACE) "configuring.. " cd ${WRKBUILD}; rm -f config.{cache,status}; \ env ${CONFIGURE_ENV} \ ${BASH} ${WRKSRC}/${CONFIGURE_PROG} \ ${CONFIGURE_ARGS} $(MAKE_TRACE) else ifneq ($(filter basic,${CONFIG_STYLE}),) - @$(CMD_TRACE) "configuring... " + @$(CMD_TRACE) "configuring.. " cd ${WRKBUILD}; rm -f config.{cache,status}; \ env ${CONFIGURE_ENV} \ ${BASH} ${WRKSRC}/${CONFIGURE_PROG} ${CONFIGURE_TRIPLE} \ ${CONFIGURE_ARGS} $(MAKE_TRACE) else ifneq ($(filter perl,${CONFIG_STYLE}),) - @$(CMD_TRACE) "configuring perl module... " + @$(CMD_TRACE) "configuring perl module.. " if [ -f ${WRKBUILD}/Makefile.PL ]; then \ cd ${WRKBUILD}; \ PATH='${HOST_PATH}' \ @@ -98,7 +101,7 @@ else ifneq ($(filter perl,${CONFIG_STYLE}),) perl-host Build.PL; \ fi else ifeq ($(strip ${CONFIG_STYLE}),) - @$(CMD_TRACE) "configuring... " + @$(CMD_TRACE) "configuring.. " cd ${WRKBUILD}; rm -f config.{cache,status}; \ env ${CONFIGURE_ENV} \ ${BASH} ${WRKSRC}/${CONFIGURE_PROG} ${CONFIGURE_TRIPLE} \ @@ -114,6 +117,7 @@ else ifeq ($(strip ${CONFIG_STYLE}),) --disable-dependency-tracking \ --disable-libtool-lock \ --disable-nls \ + --disable-silent-rules \ ${CONFIGURE_LIB} \ ${CONFIGURE_ARGS} $(MAKE_TRACE) else @@ -135,11 +139,13 @@ do-build: post-build: ${_BUILD_COOKIE}: ${_CONFIGURE_COOKIE} @env ${MAKE_ENV} ${MAKE} pre-build $(MAKE_TRACE) - @$(CMD_TRACE) "compiling... " -ifneq ($(filter manual,${BUILD_STYLE}),) - env ${MAKE_ENV} ${MAKE} do-build $(MAKE_TRACE) + @$(CMD_TRACE) "compiling.. " +ifneq ($(filter meson,${BUILD_STYLE}),) + PATH='$(HOST_PATH)' LD_LIBRARY_PATH='$(STAGING_HOST_DIR)/usr/lib' ninja -v -C $(WRKBUILD) $(MAKE_TRACE) +else ifneq ($(filter manual,${BUILD_STYLE}),) + env ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} do-build $(MAKE_TRACE) else ifeq ($(strip ${BUILD_STYLE}),) - cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \ + cd ${WRKBUILD} && env ${MAKE_ENV} LD_LIBRARY_PATH='$(STAGING_HOST_DIR)/usr/lib' ${MAKE} -f ${MAKE_FILE} \ ${MAKE_FLAGS} ${ALL_TARGET} $(MAKE_TRACE) else @echo "Invalid BUILD_STYLE '${BUILD_STYLE}'" >&2 @@ -155,12 +161,15 @@ spkg-install: ${ALL_POSTINST} ${_FAKE_COOKIE}: ${_BUILD_COOKIE} @-rm -f ${_ALL_CONTROLS} @mkdir -p '${STAGING_PKG_DIR}/stamps' ${WRKINST} '${STAGING_TARGET_DIR}/scripts' - @${MAKE} ${_ALL_CONTROLS} $(MAKE_TRACE) + @${MAKE} -j${ADK_MAKE_JOBS} ${_ALL_CONTROLS} $(MAKE_TRACE) @env ${MAKE_ENV} ${MAKE} pre-install $(MAKE_TRACE) -ifneq ($(filter manual,${INSTALL_STYLE}),) +ifneq ($(filter meson,${INSTALL_STYLE}),) + DESTDIR='$(WRKINST)' PATH='$(HOST_PATH)' \ + ninja -C $(WRKBUILD) install $(MAKE_TRACE) +else ifneq ($(filter manual,${INSTALL_STYLE}),) env ${MAKE_ENV} ${MAKE} do-install $(MAKE_TRACE) else ifeq ($(strip ${INSTALL_STYLE}),) - cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \ + cd ${WRKBUILD} && env ${MAKE_ENV} LD_LIBRARY_PATH='$(STAGING_HOST_DIR)/usr/lib' ${MAKE} -f ${MAKE_FILE} \ DESTDIR='${WRKINST}' ${FAKE_FLAGS} ${INSTALL_TARGET} $(MAKE_TRACE) env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE) else @@ -191,11 +200,11 @@ ifneq (,$(filter dev,${PKG_OPTS})) @mkdir -p $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/include @test -d ${WRKINST}/usr/include && cd ${WRKINST}/usr/include; \ find . -name \*.h | \ - $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/include + $(CPIO) -padlmu --quiet $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/include @mkdir -p $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/lib/pkgconfig @test -d ${WRKINST}/usr/lib/pkgconfig && cd ${WRKINST}/usr/lib/pkgconfig; \ find . -name \*.pc | \ - $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/lib/pkgconfig + $(CPIO) -padlmu --quiet $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/lib/pkgconfig @for a in ${WRKINST}/usr/bin/*-config*; do \ [[ -e $$a ]] || continue; \ mkdir -p $(WRKDIR)/fake-${ADK_TARGET_CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/bin; \ @@ -206,11 +215,11 @@ endif ifeq (,$(filter nostaging,${PKG_OPTS})) @-cd ${WRKINST}; \ find usr ! -type d 2>/dev/null | \ - grep -E -v -e '^usr/share' -e '^usr/src' -e '^usr/doc' -e '^usr/local' -e '^usr/man' -e '^usr/info' \ + grep -E -v -e '^usr/src' -e '^usr/doc' -e '^usr/local' -e '^usr/man' -e '^usr/info' \ -e '^usr/lib/libc.so' -e '^usr/bin/[a-z0-9-]+-config*' -e '^usr/lib/.*\.la$$' \ -e '^/usr/lib/libpthread_nonshared.a' | \ tee '${STAGING_PKG_DIR}/${PKG_NAME}' | \ - $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu '${STAGING_TARGET_DIR}' + $(CPIO) -padlmu --quiet '${STAGING_TARGET_DIR}' endif ifeq (,$(filter noscripts,${PKG_OPTS})) @cd '${STAGING_TARGET_DIR}'; grep 'usr/s*bin/' \ |
