PDA

View Full Version : [Solved] First port: make: cannot open Makefile.


Ben
April 9th, 2010, 10:13
Hi,

I am trying to make a port for phpredis.

This is what I have:

Makefile:
# 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:
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

Ben
April 9th, 2010, 17:00
Ok, I guess the error comes from a missing Makefile in the tar.gz-Archive.

What can I do to prevent this?

SirDice
April 9th, 2010, 17:03
It probably needs to run ./configure first.

http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/building.html#USING-CONFIGURE

Ben
April 9th, 2010, 17:12
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":
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.

ckester
April 9th, 2010, 21:54
Thanks for your advice.

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



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.

Ben
April 9th, 2010, 22:00
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.

Ben
April 14th, 2010, 10:06
I can't figure it out.

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

expl
April 14th, 2010, 17:31
Attach your current port in tar.gz/bz format and Ill take a look.

Ben
April 14th, 2010, 20:35
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.

expl
April 15th, 2010, 06:09
Ok after having a look at bsd.php.mk I found a line
PHP_MODNAME?= ${PORTNAME}

So simply adding:
PHP_MODNAME=redis

to port's makefile should fix this error at "make install" stage.

Ben
April 15th, 2010, 07:05
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!!

Ben
April 17th, 2010, 21:17
Fyi: The port is in the tree now: http://www.freshports.org/databases/php5-redis/

Thanks for the fast commit and your help!