Makefile question... please help...

VeeJay maanjee at gmail.com
Wed Dec 6 00:27:52 PST 2006


Thanks

Where can I make above mentioned required changes... can you please give me
a little hint... since I am novice to Unix....

Thanks...

VJ
On 12/6/06, VeeJay <maanjee at gmail.com> wrote:
>
> Hi there,
>
> Is it possible to make configuration changes in Makefile to install a port
> as per one's requirments?
>
> I want to accomplish two tasks....
>
> 1. I want to configure mysql port before installation with following
> parameters: Could someone tell me that where in the Makefile, I need to put
> these paramenters in order to get my required results? Makefile is at the
> end of my message.
> Required Configuration paramenters:
>
> --prefix=/usr/local/mysql
> --with-mysqld-user=mysql
> --with-unix-socket-path=/tmp/mysql.sock
> --with-mysqld-ldflags=-all-static
>
>
> 2. I want to install mysql at my given path, so I could be able to assign
> the path to mysql user and chroot it.... PLEASE HELP!!!
>
> Becuase, with default Makefile configuration, mysql installs all scripts
> under /usr/local/sbin folder which other deamons also access for example
> apache. so, if I alow the access only for mysql ... then other deamons will
> not have any access...
>
> chown -R root /usr/local/bin/mysql
> chown -R mysql /usr/local/mysql/var
> chgrp -R mysql /usr/local/mysql
>
>
>
>
> # New ports collection makefile for:    MySQL-server
> # Date created:                         Fri Apr 11 10:06:26 CET 2003
> # Whom:                                 Alex Dupre <sysadmin at alexdupre.com
> >
> #
> # $FreeBSD: ports/databases/mysql50-server/Makefile,v 1.188 2005/03/21
> 14:08:49 pav Exp $
> #
>
> PORTNAME?=      mysql
> PORTVERSION=    5.0.2
> PORTREVISION?=  0
> CATEGORIES=     databases
> MASTER_SITES=   ${MASTER_SITE_MYSQL}
> MASTER_SITE_SUBDIR=     MySQL-5.0
> PKGNAMESUFFIX?= -server
> DISTNAME=       ${PORTNAME}-${PORTVERSION}-alpha
>
> MAINTAINER=     ale at FreeBSD.org
> COMMENT?=       Multithreaded SQL database (server)
>
> WRKSRC=         ${WRKDIR}/${PORTNAME}-${PORTVERSION}-alpha
> SLAVEDIRS=      databases/mysql50-client
> PKGINSTALL?=    ${WRKDIR}/pkg-install
> DB_DIR?=        /var/db/mysql
> USE_LIBTOOL_VER=15
> USE_REINPLACE=  yes
> USE_RC_SUBR=    yes
>
> CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
> CONFIGURE_ARGS= --localstatedir=${DB_DIR} \
>                 --without-debug \
>                 --without-readline \
>                 --without-libedit \
>                 --without-bench \
>                 --without-extra-tools \
>                 --with-libwrap \
>                 --with-mysqlfs \
>                 --with-vio \
>                 --with-low-memory \
>                 --with-comment='FreeBSD port: ${PKGNAME}' \
>                 --enable-thread-safe-client
>
> .ifdef USE_MYSQL
> .error You have `USE_MYSQL' variable defined either in environment or in
> make(1) arguments. Please undefine and try again.
> .endif
>
> .if defined(WITH_CHARSET) && ${WITH_CHARSET} != ""
> CONFIGURE_ARGS+=--with-charset=${WITH_CHARSET}
> .endif
> .if defined(WITH_XCHARSET) && ${WITH_XCHARSET} != ""
> CONFIGURE_ARGS+=--with-extra-charsets=${WITH_XCHARSET}
> .endif
> .if defined(WITH_OPENSSL)
> USE_OPENSSL=    yes
> CONFIGURE_ARGS+=--with-openssl=${OPENSSLBASE}
> .endif
> .if defined(BUILD_STATIC)
> CONFIGURE_ARGS+=--with-mysqld-ldflags=-all-static
> .endif
> .if defined(WITHOUT_INNODB)
> CONFIGURE_ARGS+=--without-innodb
> .endif
> .if defined(WITH_NDB)
> CONFIGURE_ARGS+=--with-ndbcluster
> .endif
> .if defined(WITH_COLLATION) && ${WITH_COLLATION} != ""
> CONFIGURE_ARGS+=--with-collation=${WITH_COLLATION}
> .endif
>
> .include <bsd.port.pre.mk>
>
> .if ${ARCH} == "i386"
> CONFIGURE_ARGS+=--enable-assembler --with-berkeley-db
> .endif
> .if defined(WITH_LINUXTHREADS)
>
> CONFIGURE_ARGS+=--with-named-thread-libs='-DHAVE_GLIBC2_STYLE_GETHOSTBYNAME_R
> CONFIGURE_ARGS+=-D_THREAD_SAFE -I${LOCALBASE}/include/pthread/linuxthreads
> CFLAGS+=        -D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE
> CFLAGS+=        -I${LOCALBASE}/include/pthread/linuxthreads
> .if ${OSVERSION} > 500000
> LIB_DEPENDS+=   lthread.[35]:${PORTSDIR}/devel/linuxthreads
> CONFIGURE_ARGS+=-L${LOCALBASE}/lib -llthread -llgcc_r -llstdc++ -llsupc++'
>
> .else
> LIB_DEPENDS+=   lthread.[24]:${PORTSDIR}/devel/linuxthreads
> CONFIGURE_ARGS+=-L${LOCALBASE}/lib -llthread -llgcc_r'
> .endif
> .else
> CONFIGURE_ARGS+=--with-named-thread-libs=${PTHREAD_LIBS}
> CFLAGS+=        ${PTHREAD_CFLAGS}
> .endif
>
> .if ${OSVERSION} < 500000
> CXX=            ${CC}
> .endif
> .if defined(BUILD_OPTIMIZED)
> CFLAGS+=        -O3 -fno-omit-frame-pointer
> .if ${OSVERSION} > 500000 || (defined(USE_GCC) && (${USE_GCC} == 3.0 ||
> ${USE_GCC} == 3.1 || ${USE_GCC} == 3.2 || ${USE_GCC} == 3.3))
> CFLAGS+=        -fno-gcse
> .endif
> .endif
> CXXFLAGS+=      ${CFLAGS} -felide-constructors -fno-rtti
> .if ${OSVERSION} >= 400002
> CXXFLAGS+=      -fno-exceptions
> .endif
>
> # MySQL-Server part
> .if !defined(CLIENT_ONLY) && !defined(SCRIPTS_ONLY)
> USE_MYSQL=      yes
> WANT_MYSQL_VER= 50
>
> LATEST_LINK=    mysql50-server
>
> CONFLICTS=      mysql-server-3.* mysql-server-4.*
>
> PLIST_SUB=      DB_DIR=${DB_DIR} \
>                 VER=${PORTVERSION}-alpha
> .if defined(WITH_NDB)
> PLIST_SUB+=     NDB=""
> .else
> PLIST_SUB+=     NDB="@comment "
> .endif
>
> MAN1=           isamchk.1 isamlog.1 mysqld.1 \
>                 mysqld_safe.1 perror.1 replace.1
>
> .if !defined(NOPORTDOCS)
> PORTDOCS=       manual.html manual.txt manual_toc.html
> .endif
>
> INFO=           mysql
>
> pre-fetch:
>         @${ECHO} ""
>         @${ECHO} "You may use the following build options:"
>         @${ECHO} ""
>         @${ECHO} "      WITH_CHARSET=charset    Define the primary
> built-in charset (latin1)."
>         @${ECHO} "      WITH_XCHARSET=list      Define other built-in
> charsets (may be 'all')."
>         @${ECHO} "      WITH_COLLATION=collate  Define default collation
> (latin1_swedish_ci)."
>         @${ECHO} "      WITH_OPENSSL=yes        Enable secure
> connections."
>         @${ECHO} "      DB_DIR=directory        Set alternate directory
> for database files"
>         @${ECHO} "                              (default is
> /var/db/mysql)."
>         @${ECHO} "      WITH_LINUXTHREADS=yes   Use the linuxthreads
> pthread library."
>         @${ECHO} "      WITH_PROC_SCOPE_PTH=yes Use process scope threads"
>         @${ECHO} "                              (try it if you use
> libpthread)."
>         @${ECHO} "      OVERWRITE_DB=yes        Re-initialize default
> databases."
>         @${ECHO} "      BUILD_OPTIMIZED=yes     Enable compiler
> optimizations"
>         @${ECHO} "                              (use it if you need
> speed)."
>         @${ECHO} "      BUILD_STATIC=yes        Build a static version of
> mysqld."
>         @${ECHO} "                              (use it if you need even
> more speed)."
>         @${ECHO} "      WITHOUT_INNODB=yes      Disable support for InnoDB
> table handler."
>         @${ECHO} "      WITH_NDB=yes            Enable support for NDB
> Cluster."
>         @${ECHO} ""
>
> post-patch:
>         @${REINPLACE_CMD} -e "s|SUBDIRS =|SUBDIRS = include @docs_dirs@
> @sql_server_dirs@ scripts man support-files|g" ${WRKSRC}/Makefile.in
>         @${REINPLACE_CMD} -e "s|all: config.h|all: config.h all-local|g"
> ${WRKSRC}/Makefile.in
>         @${REINPLACE_CMD} -e "s|bin_SCRIPTS =|bin_SCRIPTS =
> @server_scripts@ mysql_create_system_tables|g" ${WRKSRC}/scripts/Makefile.in
>
>         @${REINPLACE_CMD} -e "s|dist_pkgdata_DATA =|dist_pkgdata_DATA =
> fill_help_tables.sql|g" ${WRKSRC}/scripts/Makefile.in
>         @${REINPLACE_CMD} -e "s|man_MANS =|man_MANS = ${MAN1}|g"
> ${WRKSRC}/man/Makefile.in
>         @${REINPLACE_CMD} -e "s|install-data-am:
> install-pkgincludeHEADERS|install-data-am:|g" ${WRKSRC}/include/Makefile.in
> .if defined(WITH_PROC_SCOPE_PTH)
>         @${REINPLACE_CMD} -e
> "s|PTHREAD_SCOPE_SYSTEM|PTHREAD_SCOPE_PROCESS|g" ${WRKSRC}/sql/mysqld.cc
> .endif
>
> post-build:
>         @${SED} "s|%%DB_DIR%%|${DB_DIR}|g" ${PKGDIR}/pkg-install >
> ${WRKDIR}/pkg-install
>
> post-install:
> .if !defined(PACKAGE_BUILDING)
> .if exists(${DB_DIR}) && defined(OVERWRITE_DB) && ${OVERWRITE_DB:L} !=
> "no"
>         @${RM} -r ${DB_DIR}/mysql ${DB_DIR}/test 2>/dev/null || true
> .endif
> .if !exists(${DB_DIR}) || (defined(OVERWRITE_DB) && ${OVERWRITE_DB:L} !=
> "no")
>         ${PREFIX}/bin/mysql_install_db --ldata=${DB_DIR}
> .endif
>         @${SETENV} DB_DIR=${DB_DIR} ${SH} ${PKGINSTALL} ${PKGNAME}
> POST-INSTALL
> .endif
>         @${SED}
> "s|%%RC_SUBR%%|${RC_SUBR}|g;s|%%PREFIX%%|${PREFIX}|g;s|%%DB_DIR%%|${DB_DIR}|g"
> < \
>                 ${FILESDIR}/mysql-server.sh > ${PREFIX}/etc/rc.d/mysql-
> server.sh
>         @${CHMOD} 750 ${PREFIX}/etc/rc.d/mysql-server.sh
> .if !defined(NOPORTDOCS)
>         @${MKDIR} ${DOCSDIR}
> .for doc in ${PORTDOCS}
>         @${INSTALL_DATA} ${WRKSRC}/Docs/${doc} ${DOCSDIR}
> .endfor
> .endif
>
> .else
> # MySQL-Client part
> .if defined(CLIENT_ONLY)
> LATEST_LINK=    mysql50-client
>
> CONFLICTS=      mysql-client-3.* mysql-client-4.*
>
> MAN1=           mysql.1 mysqladmin.1 mysqldump.1 mysqlshow.1
>
> INSTALLS_SHLIB= yes
> LDCONFIG_DIRS=  %%PREFIX%%/lib/mysql
>
> CONFIGURE_ARGS+=--without-server
>
> post-patch:
>         @${REINPLACE_CMD} -e "s|SUBDIRS =|SUBDIRS = include
> @sql_client_dirs@ scripts man|g" ${WRKSRC}/Makefile.in
>         @${REINPLACE_CMD} -e "s|install-exec-am:
> install-pkglibLIBRARIES|install-exec-am:|g" ${WRKSRC}/strings/Makefile.in
>         @${REINPLACE_CMD} -e "s|all: config.h|all: config.h all-local|g"
> ${WRKSRC}/Makefile.in
>         @${REINPLACE_CMD} -e "s|bin_SCRIPTS =|bin_SCRIPTS = mysql_config
> mysql_fix_privilege_tables mysqlbug|g" ${WRKSRC}/scripts/Makefile.in
>         @${REINPLACE_CMD} -e "s|dist_pkgdata_DATA =|dist_pkgdata_DATA =
> mysql_fix_privilege_tables.sql|g" ${WRKSRC}/scripts/Makefile.in
>         @${REINPLACE_CMD} -e "s|man_MANS =|man_MANS = ${MAN1}|g"
> ${WRKSRC}/man/Makefile.in
> .if defined(WITH_PROC_SCOPE_PTH)
>         @${REINPLACE_CMD} -e
> "s|PTHREAD_SCOPE_SYSTEM|PTHREAD_SCOPE_PROCESS|g"
> ${WRKSRC}/tools/mysqlmanager.c
> .endif
>
> post-install:
>         @${SED} "s|%%PREFIX%%|${PREFIX}|g" < ${FILESDIR}/mysql-client.sh >
> ${PREFIX}/etc/rc.d/000.mysql-client.sh
>         @${CHMOD} 750 ${PREFIX}/etc/rc.d/000.mysql-client.sh
>
> .else
> # MySQL-Scripts part
> USE_MYSQL=      yes
> WANT_MYSQL_VER= 50
> USE_PERL5=      yes
>
> RUN_DEPENDS=
> ${SITE_PERL}/${PERL_ARCH}/Mysql.pm:${PORTSDIR}/databases/p5-DBD-mysql50
> .if ${PERL_LEVEL} <= 500800
> RUN_DEPENDS+=   ${SITE_PERL}/File/Temp.pm:${PORTSDIR}/devel/p5-File-Temp
> .endif
>
>
> LATEST_LINK=    mysql50-scripts
>
> CONFLICTS=      mysql-scripts-3.* mysql-scripts-4.*
>
> MAN1=           mysql_zap.1 mysqlaccess.1 mysqld_multi.1
> mysql_fix_privilege_tables.1
>
> SCRIPTS=        msql2mysql mysql_fix_extensions mysql_setpermission \
>                 mysql_secure_installation mysql_zap mysqlaccess \
>                 mysql_convert_table_format mysql_find_rows mysqlhotcopy \
>                 mysqldumpslow mysql_explain_log mysql_tableinfo
> mysqld_multi
>
> post-patch:
>         @${REINPLACE_CMD} -e "s|SUBDIRS =|SUBDIRS = scripts man|g"
> ${WRKSRC}/Makefile.in
>         @${REINPLACE_CMD} -e "s|bin_SCRIPTS =|bin_SCRIPTS = ${SCRIPTS}|g"
> ${WRKSRC}/scripts/Makefile.in
>         @${REINPLACE_CMD} -e "s|install-exec-am
> install-data-am|install-exec-am|g" ${WRKSRC}/scripts/Makefile.in
>         @${REINPLACE_CMD} -e "s|man_MANS =|man_MANS = ${MAN1}|g"
> ${WRKSRC}/man/Makefile.in
> .endif
> .endif
> # Common part
> post-extract:
>         @${CP} /usr/include/tcpd.h ${WRKSRC}/sql/mytcpd.h
>
> .if defined(WITH_OPENSSL) && defined(BUILD_STATIC)
> pre-configure:
>         @${ECHO} "You can't use the BUILD_STATIC option when using
> OpenSSL."
>         @${FALSE}
> .endif
>
> .include <bsd.port.post.mk>
>
> --
> Thanks!
>
> BR / vj
>



-- 
Thanks!

BR / vj


More information about the freebsd-questions mailing list