When i tried to merge lighttpd, i encountered the following error: gcc -c -Os -march=pentium2 -pipe -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/ngx_modules.o \ objs/ngx_modules.c cp -p src/http/modules/perl/nginx.* objs/src/http/modules/perl/ cp -p src/http/modules/perl/typemap objs/src/http/modules/perl/ cp -p src/http/modules/perl/Makefile.PL objs/src/http/modules/perl/ cd objs/src/http/modules/perl && NGX_PM_CFLAGS="-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/lib/perl5/5.8.8/i686-freebsd/CORE -g " NGX_PCRE=YES NGX_OBJS=objs perl Makefile.PL LIB= Writing Makefile for nginx cp -p src/http/modules/perl/nginx.* objs/src/http/modules/perl/ cd objs/src/http/modules/perl && make make: don't know how to make w. Stop gmake[1]: *** [objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so] Error 2 gmake[1]: Leaving directory `/var/tmp/portage/www-servers/nginx-0.4.13/work/nginx-0.4.13' gmake: *** [build] Error 2 !!! ERROR: www-servers/nginx-0.4.13 failed. Call stack: ebuild.sh, line 1568: Called dyn_compile ebuild.sh, line 937: Called src_compile nginx-0.4.13.ebuild, line 56: Called die !!! failed to compile !!! If you need support, post the topmost build error, and the call stack if relevant.
perl USE flag is the problem... when building without perl USE it compiles fine. Now, to build nginx perl module a perl Makefile.PL must be executed, that generates a Makefile which is gmake compatible but not with BSD make. If you change line 14 in auto/lib/perl/make in nginx sources from: cd $NGX_OBJS/src/http/modules/perl && make to: cd $NGX_OBJS/src/http/modules/perl && gmake it compiles OK! I think it has to do with the fact that Makefile.PL does not produce standard makefiles? Best regards,
Attaching ebuild patch and source patch to make nginx-0.6.30 compile in gfbsd. The patch substitutes a hard-coded make for $(MAKE) in auto/libs/perl/make (thanks to ndansmith) for gfbsd. The ebuild applies no patch for other systems. This is because in the case of nginx for Gentoo Linux, $(MAKE) is not expanded into 'make' thus emerge fails... Best regards, PD: Although this is a patch for nginx-0.6.30, the same principle should apply to all versions.
Created attachment 152561 [details, diff] Patch for www-servers/nginx-0.6.30.ebuild Patch for www-servers/nginx-0.6.30 to make it compile on gfbsd
Created attachment 152563 [details, diff] Patch for www-servers/nginx-0.6.30 source. Patch to substitute 'make' for $(MAKE) in www-servers/nginx-0.6.30 sources (auto/libs/perl/make) to make it compile in gfbsd.. Goes into 'files' dir. Best regards
voxus, can you apply the patch to latest nginx (0.7.34), so we can finally keyword it?
17 Mar 2009; Timothy Redaelli <drizzt@gentoo.org> nginx-0.7.39.ebuild: QA: Don't abuse ROOT wrt #232969, #258118. Add ~x86-fbsd keyword (with small patch) wrt #155623, #236429. (Maintainer is in devaway status)