View Ticket
2015-03-30
23:54 Closed ticket [a39f4ac2fa]: could not build zlib in mingw plus 4 other changes artifact: b3c19bddb1 user: mistachkin
2015-03-26
04:41 Review ticket [a39f4ac2fa]. artifact: 1512da93bb user: mistachkin
02:02 Ticket [a39f4ac2fa]: 6 changes artifact: 03552350c8 user: mistachkin
2015-01-30
05:44 New ticket [a39f4ac2fa]. artifact: 313ff0e68c user: anonymous

Ticket Hash: a39f4ac2fa55a646c1eee2a6667564eb8a9f9e05
Title: could not build zlib in mingw
Status: Closed Type: Build Problem
Severity: Critical Priority: Immediate
Subsystem: Tcl Resolution: Fixed
Last Modified: 2015-03-30 23:54:47
Version Found In: 0.9.2
Description:
configure script of zlib 1.2.8 fails and says "Please use win32/Makefile.gcc instead." when $(uname -s) matches with MINGW* or mingw* by case statement of /bin/sh.

And default Makefile which will be used in this case also says same warnng, but make does not return error. So kitcreator script guesses wrong.

For example,  I succeeded to build zlib by following.
(awk line resolves another problem. Because Makefile.gcc resets CC and RC by self.)

    case $(uname -s 2> /dev/null) in
        MINGW* | mingw*)
            # use win32/Makefile.gcc instead.
            echo "Running: awk '{if($1~/^[RC]C$/&&$2~/^=/)$2="?"$2;print}' win32/Makefile.gcc > Makefile"
            awk '{if($1~/^[RC]C$/&&$2~/^=/)$2="?"$2;print}' win32/Makefile.gcc > Makefile

            echo "Running: ${MAKE:-make}"
            ${MAKE:-make} || exit 1

            echo "Running: BINARY_PATH=${INSTDIR}/bin INCLUDE_PATH=${INSTDIR}/include LIBRARY_PATH=${INSTDIR}/lib ${MAKE:-make} install"
            BINARY_PATH=${INSTDIR}/bin INCLUDE_PATH=${INSTDIR}/include LIBRARY_PATH=${INSTDIR}/lib ${MAKE:-make} install
            ;;
        *)
            # If we are building for KitDLL, compile with '-fPIC'
            if [ "${KITTARGET}" = "kitdll" ]; then
                CFLAGS="${CFLAGS} -fPIC"
                export CFLAGS
            fi

            # We don't pass CONFIGUREEXTRA here, since this isn't a GNU autoconf
            # script and will puke
            echo "Running: ./configure --prefix=\"${INSTDIR}\" --libdir=\"${INSTDIR}/lib\" --static"
            ./configure --prefix="${INSTDIR}" --libdir="${INSTDIR}/lib" --static

            echo "Running: ${MAKE:-make}"
            ${MAKE:-make} || exit 1

            echo "Running: ${MAKE:-make} install"
            ${MAKE:-make} install
            ;;
    esac
User Comments:
mistachkin added on 2015-03-26 02:02:04:
There is an issue with building zlib using MinGW.  Using a modified version of
your patch, I am able to build zlib.  However, the "awk" line caused problems
for me here (i.e. complaints about being unable to locate the "cc" command).

mistachkin added on 2015-03-26 04:41:20:
This issue should now be fixed on the 'winZlib128' branch.

mistachkin added on 2015-03-30 23:54:47:
Fixed on trunk via check-in [9ad5a7514f35a5a2].