openbsd-ports/devel/mingw/Makefile
jeremy 728ba90dfb Include the necessary header path and library path automatically, so
you don't need to specify -I/usr/local/mingw32/include
-L/usr/local/mingw32/lib manually to make things work.

OK pirofti@
2012-04-02 03:18:17 +00:00

118 lines
3.8 KiB
Makefile

# $OpenBSD: Makefile,v 1.4 2012/04/02 03:18:17 jeremy Exp $
COMMENT = development environment for native Windows applications
V = 1.0.1
REVISION = 2
BASENAME = x86-mingw32-build
DISTNAME = ${BASENAME}-${V}-sh
PKGNAME = mingw-${V}
WRKDIST = ${WRKDIR}/${BASENAME}-${V}
CATEGORIES = devel
HOMEPAGE = http://www.mingw.org/
MAINTAINER = Paul Irofti <pirofti@openbsd.org>
# Headers: public domain
# Compiler/toolchain: GPL
PERMIT_PACKAGE_CDROM = Yes
PERMIT_PACKAGE_FTP = Yes
PERMIT_DISTFILES_CDROM = Yes
PERMIT_DISTFILES_FTP = Yes
WANTLIB += c z
USE_GMAKE = Yes
NO_REGRESS = Yes
EXTRACT_SUFX = .tar.bz2
EXTRACT_ONLY = ${DISTNAME}${EXTRACT_SUFX}
DISTFILES = ${DISTNAME}${EXTRACT_SUFX} ${TOOLCHAIN}
# In binutils, ld/scripttempl/pe.sc requires bash to do string replacement.
BUILD_DEPENDS = shells/bash
SCRIPT_MASTER = files/Other/Cross-Hosted%20MinGW%20Build%20Tool/${BASENAME}-${V}
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=mingw/}${SCRIPT_MASTER}-rc1
TOOL_SUFX = .tar.gz
TOOL_MASTER = ${MASTER_SITE_SOURCEFORGE:=mingw/}files/MinGW/Base/
TOOL_GCC = gcc-core-3.4.5-20060117-2
MASTER_SITES0 = ${TOOL_MASTER}gcc/Version3/Previous%20Release_%20${TOOL_GCC}
TOOL_BINUTILS = binutils-2.20.1
MASTER_SITES1 = ${TOOL_MASTER}binutils/${TOOL_BINUTILS}
TOOL_WRT = mingwrt-3.18
MASTER_SITES2 = ${TOOL_MASTER}mingw-rt/${TOOL_WRT}
TOOL_W32API = w32api-3.14
MASTER_SITES3 = ${TOOL_MASTER}w32api/${TOOL_W32API}
TOOL_G++ = gcc-g++-3.4.5-20060117-2
MASTER_SITES4 = ${TOOL_MASTER}g++/Version3/Previous%20Release_%20${TOOL_G++}
TOOLCHAIN = ${TOOL_BINUTILS}-src${TOOL_SUFX}:0 \
${TOOL_GCC}-src${TOOL_SUFX}:1 \
${TOOL_WRT}-mingw32-src${TOOL_SUFX}:2 \
${TOOL_W32API}-mingw32-src${TOOL_SUFX}:3 \
${TOOL_G++}-src${TOOL_SUFX}:4
MINGW32_TMP = ${WRKBUILD}/tmp
MINGW32_OUT = ${WRKBUILD}/out
MINGW32_DIR = ${WRKINST}/${LOCALBASE}/mingw32
do-build:
env MINGW32_TMP=${MINGW32_TMP} FULLDISTDIR=${FULLDISTDIR} \
MINGW32_OUT=${MINGW32_OUT} MAKE=${MAKE_PROGRAM} \
CONFIG_SHELL=${LOCALBASE}/bin/bash \
/bin/sh ${WRKBUILD}/${BASENAME}.sh --no-pre-clean --no-post-clean \
--unattended
cd ${MINGW32_OUT}/lib/gcc/i386-mingw32/3.4.5/ && \
patch < ${FILESDIR}/specs.diff && \
${SUBST_CMD} specs
do-install:
# Fix the autoconf mess
${INSTALL_PROGRAM_DIR} ${MINGW32_DIR}/bin ${MINGW32_DIR}/libexec
${INSTALL_DATA_DIR} ${MINGW32_DIR}/lib/ldscripts \
${MINGW32_DIR}/include \
${MINGW32_DIR}/lib/gcc/i386-mingw32/3.4.5/include
${INSTALL_MAN_DIR} ${MINGW32_DIR}/man/man1 ${MINGW32_DIR}/man/man3 \
${MINGW32_DIR}/man/man7
# Binaries
${INSTALL_PROGRAM} ${MINGW32_OUT}/bin/* \
${MINGW32_OUT}/i386-mingw32/bin/* ${MINGW32_DIR}/bin
${INSTALL_DATA} ${MINGW32_OUT}/i386-mingw32/lib/ldscripts/* \
${MINGW32_DIR}/lib/ldscripts
cp -r ${MINGW32_OUT}/libexec/* ${MINGW32_DIR}/libexec
chown -R ${BINOWN}:${BINGRP} ${MINGW32_DIR}/libexec && \
chmod -R 755 ${MINGW32_DIR}/libexec
# Libraries
${INSTALL_DATA} ${MINGW32_OUT}/lib/crt*.o \
${MINGW32_DIR}/lib/gcc/i386-mingw32/3.4.5
${INSTALL_DATA} ${MINGW32_OUT}/lib/*.a \
${MINGW32_OUT}/i386-mingw32/lib/*.*a ${MINGW32_DIR}/lib
cp -r ${MINGW32_OUT}/lib/* ${MINGW32_DIR}/lib && \
chown -R ${SHAREOWN}:${SHAREGRP} ${MINGW32_DIR}/lib && \
chmod -R 644 ${MINGW32_DIR}/lib/* && \
find ${MINGW32_DIR}/lib -type d -exec chmod a+x {} \;
# Includes
cp -r ${MINGW32_OUT}/include/* ${MINGW32_DIR}/include && \
chown -R ${SHAREOWN}:${SHAREGRP} ${MINGW32_DIR}/include && \
chmod -R 644 ${MINGW32_DIR}/include/* && \
find ${MINGW32_DIR}/include -type d -exec chmod a+x {} \;
# Documentation
${INSTALL_MAN} ${MINGW32_OUT}/share/man/man1/* \
${MINGW32_OUT}/man/man1/* \
${MINGW32_DIR}/man/man1
${INSTALL_MAN} ${MINGW32_OUT}/share/man/man3/* ${MINGW32_DIR}/man/man3
${INSTALL_MAN} ${MINGW32_OUT}/man/man7/* ${MINGW32_DIR}/man/man7
.include <bsd.port.mk>