# First port: make: cannot open Makefile.



## Ben (Apr 9, 2010)

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 (Apr 9, 2010)

Ok, I guess the error comes from a missing Makefile in the tar.gz-Archive.

What can I do to prevent this?


----------



## SirDice (Apr 9, 2010)

It probably needs to run ./configure first.

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


----------



## Ben (Apr 9, 2010)

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 (Apr 9, 2010)

Ben said:
			
		

> 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 (Apr 9, 2010)

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 (Apr 14, 2010)

I can't figure it out.

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


----------



## expl (Apr 14, 2010)

Attach your current port in tar.gz/bz format and Ill take a look.


----------



## Ben (Apr 14, 2010)

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 (Apr 15, 2010)

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 (Apr 15, 2010)

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 (Apr 17, 2010)

Fyi: The port is in the tree now: http://www.freshports.org/databases/php5-redis/

Thanks for the fast commit and your help!


----------

