1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

First port: make: cannot open Makefile.

Discussion in 'Porting New Software' started by Ben, Apr 9, 2010.

  1. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    Hi,

    I am trying to make a port for phpredis.

    This is what I have:

    Makefile:
    Code:
    # New ports collection makefile for:   php-redis
    # Date created:        9 April 2010
    # Whom:                ben
    #
    # $FreeBSD$
    #
    
    PORTNAME=       php5-redis
    PORTVERSION=    1.2.0
    CATEGORIES=     databases
    MASTER_SITES=   http://localhost/
    
    MAINTAINER=     some@mail.net
    COMMENT=        PHP5-Extension for Redis
    
    USE_PHPIZE=     yes
    
    PLIST_FILES=    lib/php/20060613/redis.so
    
    .include <bsd.port.mk>
    
    The php5-redis-1.2.0.tar.gz is in the root directory of localhost (for testing).

    Fetching and unpacking works, but I get "make: cannot open Makefile."

    My aim is to run phpize, ./configure, make and make install but I have no idea how to do it.

    I read the Porters handbook but I dont see the mistake here.

    Can anybody help?

    Thanks a lot in advance!

    EDIT:

    I added the following lines which work if I call them directly (by make do-make etc) but this is not the way it should work:
    Code:
    do-make:
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && /usr/local/bin/phpize
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && ./configure
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && /usr/bin/make
    
    do-install:
            cd ${WRKSRC}/${PORTNAME}-${PORTVERSION}/ && make install
     
  2. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    Ok, I guess the error comes from a missing Makefile in the tar.gz-Archive.

    What can I do to prevent this?
     
  3. SirDice

    SirDice Moderator Staff Member Moderator

    Messages:
    17,359
    Likes Received:
    0
  4. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    Thanks for your advice.

    I tried this by setting GNU_CONFIGURE= yes but first I need to run "phpize" before I can run "configure".

    Do you know a way how I can influence this?

    Thanks for your help.

    EDIT:

    Coming closer. Now I get this error which is clear as the file is called "redis.so" not "php5-redis.so":
    Code:
    install: /var/ports/usr/ports/databases/php5-redis/work/php5-redis-1.2.0/modules/php5-redis.so: No such file or directory
    *** Error code 71
    
    I need to find out how I can overwrite this. I tried by "do-install:" but then it says I defined this twice so it will be ignored.

    Strange.
     
  5. ckester

    ckester New Member

    Messages:
    288
    Likes Received:
    0
    You can use a "post-patch" target in your port Makefile to run phpize after the sources are unpacked and patched but before configure is run.
     
  6. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    Actually this works now. Only the name of the extension is not correct.

    It seems the script expects the extension to be called php5-redis.so but instead it is called redis.so.

    I only want to overwrite this.
     
  7. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    I can't figure it out.

    As there seems nobody able to help I will not port redis to FreeBSD. Thats a pitty.
     
  8. expl

    expl New Member

    Messages:
    664
    Likes Received:
    0
    Attach your current port in tar.gz/bz format and Ill take a look.
     
  9. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    Thank you, that's very nice.

    Please find the port attached!

    Would be great if you can find the mistake and tell me what I did wrong.
     

    Attached Files:

  10. expl

    expl New Member

    Messages:
    664
    Likes Received:
    0
    Ok after having a look at bsd.php.mk I found a line
    Code:
    PHP_MODNAME?=	${PORTNAME}
    So simply adding:
    Code:
    PHP_MODNAME=redis
    to port's makefile should fix this error at "make install" stage.
     
  11. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0
    I found this line also but I didn't know that I can overwrite variables this way easily.

    Dude, a long way to go :)

    Thank you very much for your help!!

    Now I will make tests to check if I can submit the port officially soon.

    Thanks!!
     
  12. Ben

    Ben New Member

    Messages:
    242
    Likes Received:
    0